mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-22 15:11:31 +00:00
[client] cosmetics/naming cleanup
This commit is contained in:
@@ -339,11 +339,11 @@ static void fileImportCallback(uint32_t events, void * opaque)
|
||||
wlCb.fileImport = NULL;
|
||||
LG_UNLOCK(wlCb.lock);
|
||||
if (current && (!complete ||
|
||||
!lgClipboardFiles_setLocal(import->mime,
|
||||
!clipboardFiles_setLocal(import->mime,
|
||||
import->data, import->size)))
|
||||
{
|
||||
lgClipboardFiles_clearLocal();
|
||||
lgClipboard_release();
|
||||
clipboardFiles_clearLocal();
|
||||
clipboard_release();
|
||||
}
|
||||
if (current)
|
||||
waylandPollUnregister(import->fd);
|
||||
@@ -536,7 +536,7 @@ static void dataDeviceHandleSelection(void * opaque,
|
||||
{
|
||||
const LG_ClipboardRequest request = read->request;
|
||||
clipboardReadRetire(read);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
}
|
||||
if (oldImport)
|
||||
waylandPollUnregister(oldImport->fd);
|
||||
@@ -548,12 +548,12 @@ static void dataDeviceHandleSelection(void * opaque,
|
||||
{
|
||||
if (!fileImportStart(offer, wlCb.mimetypes[LG_CLIPBOARD_DATA_FILES]))
|
||||
{
|
||||
lgClipboardFiles_clearLocal();
|
||||
lgClipboard_release();
|
||||
clipboardFiles_clearLocal();
|
||||
clipboard_release();
|
||||
}
|
||||
}
|
||||
else
|
||||
lgClipboard_notifyTypes(types, idx);
|
||||
clipboard_notifyTypes(types, idx);
|
||||
}
|
||||
|
||||
static void dataDeviceHandleEnter(void * data, struct wl_data_device * device,
|
||||
@@ -676,17 +676,17 @@ static enum ClipboardReadCallResult clipboardReadCall(
|
||||
switch (operation)
|
||||
{
|
||||
case CLIPBOARD_READ_BEGIN:
|
||||
result = lgClipboard_dataBegin(
|
||||
result = clipboard_dataBegin(
|
||||
request, type, LG_CLIPBOARD_SIZE_UNKNOWN);
|
||||
break;
|
||||
|
||||
case CLIPBOARD_READ_CHUNK:
|
||||
result = lgClipboard_dataChunk(
|
||||
result = clipboard_dataChunk(
|
||||
request, offset, data->buffer, pending);
|
||||
break;
|
||||
|
||||
case CLIPBOARD_READ_END:
|
||||
result = lgClipboard_dataEnd(request, offset);
|
||||
result = clipboard_dataEnd(request, offset);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -755,7 +755,7 @@ static void clipboardReadCallback(uint32_t events, void * opaque)
|
||||
if (events & EPOLLERR)
|
||||
{
|
||||
if (clipboardReadClaim(data))
|
||||
lgClipboard_abort(data->request);
|
||||
clipboard_abort(data->request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -810,7 +810,7 @@ static void clipboardReadCallback(uint32_t events, void * opaque)
|
||||
return;
|
||||
DEBUG_ERROR("Failed to read from clipboard: %s", strerror(readError));
|
||||
if (clipboardReadClaim(data))
|
||||
lgClipboard_abort(data->request);
|
||||
clipboard_abort(data->request);
|
||||
return;
|
||||
}
|
||||
if (!haveOperation)
|
||||
@@ -866,17 +866,17 @@ static void waylandCBInvalidateLocal(enum ClipboardInvalidateMode mode)
|
||||
if (notifyProvider)
|
||||
{
|
||||
if (read)
|
||||
lgClipboard_abort(request);
|
||||
lgClipboard_release();
|
||||
clipboard_abort(request);
|
||||
clipboard_release();
|
||||
}
|
||||
LG_UNLOCK(wlCb.lock);
|
||||
|
||||
if (import)
|
||||
waylandPollUnregister(import->fd);
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_clearLocal();
|
||||
|
||||
if (read && !notifyProvider)
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
|
||||
if (offer)
|
||||
wl_data_offer_destroy(offer);
|
||||
@@ -899,7 +899,7 @@ void waylandCBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
if (pipe(fds) < 0)
|
||||
{
|
||||
DEBUG_ERROR("Failed to get a clipboard pipe: %s", strerror(errno));
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
const int readFlags = fcntl(fds[0], F_GETFL);
|
||||
@@ -913,7 +913,7 @@ void waylandCBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
DEBUG_ERROR("Failed to configure clipboard pipe: %s", strerror(errno));
|
||||
close(fds[0]);
|
||||
close(fds[1]);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -923,7 +923,7 @@ void waylandCBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
DEBUG_ERROR("Failed to allocate memory to read clipboard");
|
||||
close(fds[0]);
|
||||
close(fds[1]);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -956,7 +956,7 @@ void waylandCBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
{
|
||||
const LG_ClipboardRequest oldRequest = old->request;
|
||||
clipboardReadRetire(old);
|
||||
lgClipboard_abort(oldRequest);
|
||||
clipboard_abort(oldRequest);
|
||||
}
|
||||
if (!registered)
|
||||
{
|
||||
@@ -964,7 +964,7 @@ void waylandCBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
DEBUG_ERROR("Failed to register clipboard read into epoll: %s",
|
||||
strerror(errno));
|
||||
clipboardReadCleanup(data);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1005,7 +1005,7 @@ void waylandCBRequestReady(LG_ClipboardRequest request)
|
||||
{
|
||||
const LG_ClipboardRequest id = failed->request;
|
||||
clipboardReadRetire(failed);
|
||||
lgClipboard_abort(id);
|
||||
clipboard_abort(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1192,7 +1192,7 @@ struct ClipboardFileWrite
|
||||
static void fileTransferDestroy(struct WCBTransfer * transfer)
|
||||
{
|
||||
if (transfer->filePresentation)
|
||||
lgClipboardFiles_remotePresentationRelease(transfer->filePresentation);
|
||||
clipboardFiles_remotePresentationRelease(transfer->filePresentation);
|
||||
free(transfer->fileUri);
|
||||
free(transfer->fileGnome);
|
||||
free(transfer->fileKde);
|
||||
@@ -1216,7 +1216,7 @@ static void clipboardFileWriteCleanup(void * opaque)
|
||||
{
|
||||
struct ClipboardFileWrite * write = opaque;
|
||||
if (write->complete && write->deliversUri)
|
||||
lgClipboardFiles_remotePresentationDelivered(
|
||||
clipboardFiles_remotePresentationDelivered(
|
||||
write->transfer->filePresentation);
|
||||
close(write->fd);
|
||||
free(write->data);
|
||||
@@ -1369,7 +1369,7 @@ static void clipboardWriteCallback(uint32_t events, void * opaque)
|
||||
const LG_ClipboardRequest request = data->request;
|
||||
LG_UNLOCK(data->lock);
|
||||
if (ready)
|
||||
lgClipboard_requestReady(request);
|
||||
clipboard_requestReady(request);
|
||||
return;
|
||||
|
||||
error:
|
||||
@@ -1391,7 +1391,7 @@ error:
|
||||
if (fd >= 0)
|
||||
waylandPollUnregister(fd);
|
||||
if (errorReady)
|
||||
lgClipboard_requestReady(errorRequest);
|
||||
clipboard_requestReady(errorRequest);
|
||||
}
|
||||
|
||||
static void dataSourceHandleTarget(void * data, struct wl_data_source * source,
|
||||
@@ -1451,7 +1451,7 @@ static void dataSourceHandleSend(void * data, struct wl_data_source * source,
|
||||
LG_LOCK(data->lock);
|
||||
data->requesting = true;
|
||||
LG_UNLOCK(data->lock);
|
||||
const bool result = lgClipboard_requestStream(transfer->type,
|
||||
const bool result = clipboard_requestStream(transfer->type,
|
||||
&clipboardWriteStream, data, &data->request);
|
||||
|
||||
int retireFd = -1;
|
||||
@@ -1529,16 +1529,16 @@ static bool waylandCBPublish(LG_ClipboardData type)
|
||||
transfer->next = NULL;
|
||||
if (type == LG_CLIPBOARD_DATA_FILES)
|
||||
transfer->filePresentation =
|
||||
lgClipboardFiles_remotePresentationAcquire();
|
||||
clipboardFiles_remotePresentationAcquire();
|
||||
if (type == LG_CLIPBOARD_DATA_FILES &&
|
||||
(!transfer->filePresentation ||
|
||||
!lgClipboardFiles_getRemotePresentation(transfer->filePresentation,
|
||||
!clipboardFiles_getRemotePresentation(transfer->filePresentation,
|
||||
"text/uri-list",
|
||||
&transfer->fileUri, &transfer->fileUriSize) ||
|
||||
!lgClipboardFiles_getRemotePresentation(transfer->filePresentation,
|
||||
!clipboardFiles_getRemotePresentation(transfer->filePresentation,
|
||||
"x-special/gnome-copied-files",
|
||||
&transfer->fileGnome, &transfer->fileGnomeSize) ||
|
||||
!lgClipboardFiles_getRemotePresentation(transfer->filePresentation,
|
||||
!clipboardFiles_getRemotePresentation(transfer->filePresentation,
|
||||
"application/x-kde-cutselection",
|
||||
&transfer->fileKde, &transfer->fileKdeSize)))
|
||||
{
|
||||
@@ -1628,7 +1628,7 @@ void waylandCBFree(void)
|
||||
clipboardReadRetire(read);
|
||||
if (import)
|
||||
waylandPollUnregister(import->fd);
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_clearLocal();
|
||||
if (offer)
|
||||
wl_data_offer_destroy(offer);
|
||||
if (dndOffer && dndOffer != offer)
|
||||
|
||||
@@ -227,12 +227,12 @@ bool x11CBEventThread(const XEvent * xe)
|
||||
NULL, 0);
|
||||
XFlush(x11.display);
|
||||
if (write->event.xselection.target != x11cb.aFileKde)
|
||||
lgClipboardFiles_remotePresentationDelivered(
|
||||
clipboardFiles_remotePresentationDelivered(
|
||||
write->filePresentation);
|
||||
const uint64_t presentation = write->filePresentation;
|
||||
writeRemoveNL(write);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
lgClipboardFiles_remotePresentationRelease(presentation);
|
||||
clipboardFiles_remotePresentationRelease(presentation);
|
||||
free(write->fileData);
|
||||
free(write);
|
||||
return true;
|
||||
@@ -249,7 +249,7 @@ bool x11CBEventThread(const XEvent * xe)
|
||||
if (write)
|
||||
{
|
||||
if (request != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_requestReady(request);
|
||||
clipboard_requestReady(request);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -517,9 +517,9 @@ static void x11CBSelectionRequest(const XSelectionRequestEvent e)
|
||||
if (available)
|
||||
{
|
||||
writePresentation =
|
||||
lgClipboardFiles_remotePresentationAcquire();
|
||||
clipboardFiles_remotePresentationAcquire();
|
||||
available = writePresentation == presentation &&
|
||||
lgClipboardFiles_getRemotePresentation(writePresentation,
|
||||
clipboardFiles_getRemotePresentation(writePresentation,
|
||||
fileMime, &data, &size);
|
||||
}
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
@@ -527,7 +527,7 @@ static void x11CBSelectionRequest(const XSelectionRequestEvent e)
|
||||
{
|
||||
free(data);
|
||||
if (writePresentation)
|
||||
lgClipboardFiles_remotePresentationRelease(writePresentation);
|
||||
clipboardFiles_remotePresentationRelease(writePresentation);
|
||||
goto nodata;
|
||||
}
|
||||
|
||||
@@ -535,7 +535,7 @@ static void x11CBSelectionRequest(const XSelectionRequestEvent e)
|
||||
if (!write)
|
||||
{
|
||||
free(data);
|
||||
lgClipboardFiles_remotePresentationRelease(writePresentation);
|
||||
clipboardFiles_remotePresentationRelease(writePresentation);
|
||||
DEBUG_ERROR("out of memory");
|
||||
goto nodata;
|
||||
}
|
||||
@@ -579,7 +579,7 @@ static void x11CBSelectionRequest(const XSelectionRequestEvent e)
|
||||
if (duplicate)
|
||||
{
|
||||
free(write->fileData);
|
||||
lgClipboardFiles_remotePresentationRelease(
|
||||
clipboardFiles_remotePresentationRelease(
|
||||
write->filePresentation);
|
||||
free(write);
|
||||
goto nodata;
|
||||
@@ -627,7 +627,7 @@ static void x11CBSelectionRequest(const XSelectionRequestEvent e)
|
||||
goto nodata;
|
||||
}
|
||||
|
||||
const bool result = lgClipboard_requestStream(requestType,
|
||||
const bool result = clipboard_requestStream(requestType,
|
||||
&x11CBWriteStream, write, &write->request);
|
||||
LG_LOCK(x11cb.lock);
|
||||
const bool linked = writeLinkedNL(write);
|
||||
@@ -682,7 +682,7 @@ static void x11CBSelectionClear(const XSelectionClearEvent e)
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
|
||||
if (presentation)
|
||||
lgClipboardFiles_remotePresentationRelease(presentation);
|
||||
clipboardFiles_remotePresentationRelease(presentation);
|
||||
}
|
||||
|
||||
/* x11cb.lock must be held. */
|
||||
@@ -817,7 +817,7 @@ static void cancelFileWrites(
|
||||
XChangeProperty(x11.display, writes->event.xselection.requestor,
|
||||
writes->event.xselection.property,
|
||||
writes->event.xselection.target, 8, PropModeReplace, NULL, 0);
|
||||
lgClipboardFiles_remotePresentationRelease(
|
||||
clipboardFiles_remotePresentationRelease(
|
||||
writes->filePresentation);
|
||||
free(writes->fileData);
|
||||
free(writes);
|
||||
@@ -889,10 +889,10 @@ static bool startFileImport(Atom target)
|
||||
static void finishFileImport(struct X11ClipboardFileImport import,
|
||||
const void * data, size_t size)
|
||||
{
|
||||
if (!lgClipboardFiles_setLocal(import.mime, data, size))
|
||||
if (!clipboardFiles_setLocal(import.mime, data, size))
|
||||
{
|
||||
lgClipboardFiles_clearLocal();
|
||||
lgClipboard_release();
|
||||
clipboardFiles_clearLocal();
|
||||
clipboard_release();
|
||||
}
|
||||
free(import.data);
|
||||
}
|
||||
@@ -923,7 +923,7 @@ static bool x11CBFileImportSelectionNotify(const XSelectionEvent e)
|
||||
if (data)
|
||||
XFree(data);
|
||||
free(failed.data);
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -936,7 +936,7 @@ static bool x11CBFileImportSelectionNotify(const XSelectionEvent e)
|
||||
if (data)
|
||||
XFree(data);
|
||||
free(failed.data);
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
return true;
|
||||
}
|
||||
x11cb.fileImport.incremental = true;
|
||||
@@ -954,7 +954,7 @@ static bool x11CBFileImportSelectionNotify(const XSelectionEvent e)
|
||||
else
|
||||
{
|
||||
free(import.data);
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
}
|
||||
if (data)
|
||||
XFree(data);
|
||||
@@ -993,7 +993,7 @@ readProperty:
|
||||
if (data)
|
||||
XFree(data);
|
||||
free(failed.data);
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1019,7 +1019,7 @@ readProperty:
|
||||
const struct X11ClipboardFileImport failed = takeFileImportNL();
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
free(failed.data);
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
return;
|
||||
}
|
||||
x11cb.fileImport.propertyOffset += (long)units;
|
||||
@@ -1069,15 +1069,15 @@ static enum X11ClipboardReadCallResult x11CBReadCallNL(
|
||||
switch (operation)
|
||||
{
|
||||
case X11_CLIPBOARD_READ_BEGIN:
|
||||
result = lgClipboard_dataBegin(request, type, sizeHint);
|
||||
result = clipboard_dataBegin(request, type, sizeHint);
|
||||
break;
|
||||
|
||||
case X11_CLIPBOARD_READ_CHUNK:
|
||||
result = lgClipboard_dataChunk(request, offset, data, size);
|
||||
result = clipboard_dataChunk(request, offset, data, size);
|
||||
break;
|
||||
|
||||
case X11_CLIPBOARD_READ_END:
|
||||
result = lgClipboard_dataEnd(request, offset);
|
||||
result = clipboard_dataEnd(request, offset);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1151,7 +1151,7 @@ readProperty:
|
||||
const struct X11ClipboardRead read = clearReadNL();
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
free(read.pending);
|
||||
lgClipboard_abort(read.request);
|
||||
clipboard_abort(read.request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1170,7 +1170,7 @@ readProperty:
|
||||
if (data)
|
||||
XFree(data);
|
||||
free(read.pending);
|
||||
lgClipboard_abort(read.request);
|
||||
clipboard_abort(read.request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1206,7 +1206,7 @@ readProperty:
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
XFree(data);
|
||||
free(read.pending);
|
||||
lgClipboard_abort(read.request);
|
||||
clipboard_abort(read.request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1217,7 +1217,7 @@ readProperty:
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
XFree(data);
|
||||
free(read.pending);
|
||||
lgClipboard_abort(read.request);
|
||||
clipboard_abort(read.request);
|
||||
return;
|
||||
}
|
||||
memcpy(copy, data, itemCount);
|
||||
@@ -1261,7 +1261,7 @@ readProperty:
|
||||
const struct X11ClipboardRead read = clearReadNL();
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
free(read.pending);
|
||||
lgClipboard_abort(read.request);
|
||||
clipboard_abort(read.request);
|
||||
return;
|
||||
}
|
||||
goto readProperty;
|
||||
@@ -1300,11 +1300,11 @@ static void x11CBXFixesSelectionNotify(const XFixesSelectionNotifyEvent e)
|
||||
XFlush(x11.display);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
if (oldRequest != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(oldRequest);
|
||||
clipboard_abort(oldRequest);
|
||||
if (presentation)
|
||||
lgClipboardFiles_remotePresentationRelease(presentation);
|
||||
lgClipboardFiles_clearLocal();
|
||||
lgClipboard_release();
|
||||
clipboardFiles_remotePresentationRelease(presentation);
|
||||
clipboardFiles_clearLocal();
|
||||
clipboard_release();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1319,11 +1319,11 @@ static void x11CBXFixesSelectionNotify(const XFixesSelectionNotifyEvent e)
|
||||
XFlush(x11.display);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
if (oldRequest != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(oldRequest);
|
||||
clipboard_abort(oldRequest);
|
||||
if (presentation)
|
||||
lgClipboardFiles_remotePresentationRelease(presentation);
|
||||
lgClipboardFiles_clearLocal();
|
||||
lgClipboard_release();
|
||||
clipboardFiles_remotePresentationRelease(presentation);
|
||||
clipboardFiles_clearLocal();
|
||||
clipboard_release();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1339,10 +1339,10 @@ static void x11CBXFixesSelectionNotify(const XFixesSelectionNotifyEvent e)
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
|
||||
if (oldRequest != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(oldRequest);
|
||||
clipboard_abort(oldRequest);
|
||||
if (presentation)
|
||||
lgClipboardFiles_remotePresentationRelease(presentation);
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_remotePresentationRelease(presentation);
|
||||
clipboardFiles_clearLocal();
|
||||
}
|
||||
|
||||
static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
@@ -1365,7 +1365,7 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
{
|
||||
clearTargetsNL();
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1384,7 +1384,7 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
{
|
||||
clearTargetsNL();
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
return;
|
||||
}
|
||||
clearTargetsNL();
|
||||
@@ -1395,7 +1395,7 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
// an array of padded 64-bit values
|
||||
if (!data || format != 32)
|
||||
{
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -1421,9 +1421,9 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
|
||||
if (fileTarget != None)
|
||||
{
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_clearLocal();
|
||||
if (!startFileImport(fileTarget))
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -1435,7 +1435,7 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
break;
|
||||
}
|
||||
|
||||
lgClipboard_notifyTypes(types, typeCount);
|
||||
clipboard_notifyTypes(types, typeCount);
|
||||
goto out;
|
||||
}
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
@@ -1451,7 +1451,7 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
{
|
||||
const LG_ClipboardRequest request = cancelReadNL(true);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1470,7 +1470,7 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
{
|
||||
const LG_ClipboardRequest request = cancelReadNL(true);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1482,7 +1482,7 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
if (data)
|
||||
XFree(data);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1543,11 +1543,11 @@ static void x11CBSelectionNotify(const XSelectionEvent e)
|
||||
if (!valid)
|
||||
{
|
||||
DEBUG_WARN("Invalid clipboard data");
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
goto out;
|
||||
}
|
||||
|
||||
lgClipboard_data(request, dataType, data, itemCount);
|
||||
clipboard_data(request, dataType, data, itemCount);
|
||||
|
||||
out:
|
||||
if (data)
|
||||
@@ -1557,7 +1557,7 @@ out:
|
||||
void x11CBNotice(LG_ClipboardData type)
|
||||
{
|
||||
const uint64_t nextPresentation = type == LG_CLIPBOARD_DATA_FILES ?
|
||||
lgClipboardFiles_remotePresentationAcquire() : 0;
|
||||
clipboardFiles_remotePresentationAcquire() : 0;
|
||||
LG_LOCK(x11cb.lock);
|
||||
const LG_ClipboardRequest oldRequest = x11cb.read.window ?
|
||||
cancelReadNL(true) : LG_CLIPBOARD_REQUEST_INVALID;
|
||||
@@ -1573,10 +1573,10 @@ void x11CBNotice(LG_ClipboardData type)
|
||||
XFlush(x11.display);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
if (oldRequest != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(oldRequest);
|
||||
clipboard_abort(oldRequest);
|
||||
if (oldPresentation)
|
||||
lgClipboardFiles_remotePresentationRelease(oldPresentation);
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_remotePresentationRelease(oldPresentation);
|
||||
clipboardFiles_clearLocal();
|
||||
}
|
||||
|
||||
void x11CBRelease(void)
|
||||
@@ -1593,7 +1593,7 @@ void x11CBRelease(void)
|
||||
XFlush(x11.display);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
if (presentation)
|
||||
lgClipboardFiles_remotePresentationRelease(presentation);
|
||||
clipboardFiles_remotePresentationRelease(presentation);
|
||||
}
|
||||
|
||||
void x11CBFree(void)
|
||||
@@ -1609,9 +1609,9 @@ void x11CBFree(void)
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
|
||||
if (request != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(request);
|
||||
cancelFileWrites(writes, true);
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_clearLocal();
|
||||
}
|
||||
|
||||
void x11CBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
@@ -1627,8 +1627,8 @@ void x11CBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
{
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
if (oldRequest != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(oldRequest);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(oldRequest);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1638,8 +1638,8 @@ void x11CBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
{
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
if (oldRequest != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(oldRequest);
|
||||
lgClipboard_abort(request);
|
||||
clipboard_abort(oldRequest);
|
||||
clipboard_abort(request);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1661,7 +1661,7 @@ void x11CBRequest(LG_ClipboardRequest request, LG_ClipboardData type)
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
|
||||
if (oldRequest != LG_CLIPBOARD_REQUEST_INVALID)
|
||||
lgClipboard_abort(oldRequest);
|
||||
clipboard_abort(oldRequest);
|
||||
}
|
||||
|
||||
void x11CBRequestReady(LG_ClipboardRequest request)
|
||||
@@ -1706,7 +1706,7 @@ void x11CBRequestReady(LG_ClipboardRequest request)
|
||||
{
|
||||
const LG_ClipboardRequest abort = cancelReadNL(true);
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
lgClipboard_abort(abort);
|
||||
clipboard_abort(abort);
|
||||
return;
|
||||
}
|
||||
memcpy(pending, x11cb.read.pending, pendingSize);
|
||||
@@ -1767,7 +1767,7 @@ void x11CBRequestReady(LG_ClipboardRequest request)
|
||||
const struct X11ClipboardRead read = clearReadNL();
|
||||
LG_UNLOCK(x11cb.lock);
|
||||
free(read.pending);
|
||||
lgClipboard_abort(read.request);
|
||||
clipboard_abort(read.request);
|
||||
return;
|
||||
}
|
||||
processProperty = true;
|
||||
|
||||
@@ -23,55 +23,55 @@
|
||||
|
||||
#include "interface/clipboard.h"
|
||||
|
||||
bool lgClipboard_init(void);
|
||||
void lgClipboard_free(void);
|
||||
void lgClipboard_setLocalAvailable(bool available);
|
||||
bool clipboard_init(void);
|
||||
void clipboard_free(void);
|
||||
void clipboard_setLocalAvailable(bool available);
|
||||
|
||||
void lgClipboard_setFallback(const LG_ClipboardOps * ops, void * opaque);
|
||||
void clipboard_setFallback(const LG_ClipboardOps * ops, void * opaque);
|
||||
/* Drop functions remove a dead endpoint without invoking it. */
|
||||
void lgClipboard_dropFallback(void);
|
||||
void lgClipboard_setTransport(const LG_ClipboardOps * ops, void * opaque);
|
||||
void lgClipboard_dropTransport(void);
|
||||
void clipboard_dropFallback(void);
|
||||
void clipboard_setTransport(const LG_ClipboardOps * ops, void * opaque);
|
||||
void clipboard_dropTransport(void);
|
||||
|
||||
void lgClipboard_release(void);
|
||||
void lgClipboard_notifyTypes(
|
||||
void clipboard_release(void);
|
||||
void clipboard_notifyTypes(
|
||||
const LG_ClipboardData types[], size_t count);
|
||||
void lgClipboard_notifyFiles(uint64_t dataset);
|
||||
LG_ClipboardResult lgClipboard_dataBegin(LG_ClipboardRequest request,
|
||||
void clipboard_notifyFiles(uint64_t dataset);
|
||||
LG_ClipboardResult clipboard_dataBegin(LG_ClipboardRequest request,
|
||||
LG_ClipboardData type, uint64_t sizeHint);
|
||||
LG_ClipboardResult lgClipboard_dataChunk(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataChunk(LG_ClipboardRequest request,
|
||||
uint64_t offset, const void * data, size_t size);
|
||||
LG_ClipboardResult lgClipboard_dataEnd(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataEnd(LG_ClipboardRequest request,
|
||||
uint64_t finalSize);
|
||||
void lgClipboard_data(LG_ClipboardRequest request,
|
||||
void clipboard_data(LG_ClipboardRequest request,
|
||||
LG_ClipboardData type, const void * data, size_t size);
|
||||
void lgClipboard_abort(LG_ClipboardRequest request);
|
||||
void clipboard_abort(LG_ClipboardRequest request);
|
||||
/* request is published before provider dispatch. Its storage must remain
|
||||
* valid until this function returns and may be observed by stream callbacks
|
||||
* before then. */
|
||||
bool lgClipboard_requestStream(LG_ClipboardData type,
|
||||
bool clipboard_requestStream(LG_ClipboardData type,
|
||||
const LG_ClipboardStreamOps * stream, void * opaque,
|
||||
LG_ClipboardRequest * request);
|
||||
bool lgClipboard_requestReady(LG_ClipboardRequest request);
|
||||
bool lgClipboard_request(LG_ClipboardData type,
|
||||
bool clipboard_requestReady(LG_ClipboardRequest request);
|
||||
bool clipboard_request(LG_ClipboardData type,
|
||||
LG_ClipboardReplyFn replyFn, void * opaque);
|
||||
|
||||
/* File-dataset transport entry points used by clipboard_files.c. */
|
||||
bool lgClipboard_fileAcquire(uint64_t dataset, uint64_t acquisition);
|
||||
bool lgClipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
bool clipboard_fileAcquire(uint64_t dataset, uint64_t acquisition);
|
||||
bool clipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
LG_ClipboardFileError error);
|
||||
bool lgClipboard_fileRelease(uint64_t dataset, uint64_t acquisition);
|
||||
bool lgClipboard_fileRequest(const LG_ClipboardFileRequest * request);
|
||||
LG_ClipboardResult lgClipboard_fileDataBegin(
|
||||
bool clipboard_fileRelease(uint64_t dataset, uint64_t acquisition);
|
||||
bool clipboard_fileRequest(const LG_ClipboardFileRequest * request);
|
||||
LG_ClipboardResult clipboard_fileDataBegin(
|
||||
const LG_ClipboardFileRequest * request, uint64_t sizeHint);
|
||||
LG_ClipboardResult lgClipboard_fileDataChunk(
|
||||
LG_ClipboardResult clipboard_fileDataChunk(
|
||||
const LG_ClipboardFileRequest * request, uint64_t responseOffset,
|
||||
const void * data, size_t size, bool end);
|
||||
LG_ClipboardResult lgClipboard_fileDataEnd(
|
||||
LG_ClipboardResult clipboard_fileDataEnd(
|
||||
const LG_ClipboardFileRequest * request, uint64_t finalSize);
|
||||
bool lgClipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
bool clipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
LG_ClipboardFileError reason);
|
||||
void lgClipboard_fileRemoteReady(uint64_t dataset);
|
||||
void lgClipboard_fileRemoteFailed(uint64_t dataset);
|
||||
void clipboard_fileRemoteReady(uint64_t dataset);
|
||||
void clipboard_fileRemoteFailed(uint64_t dataset);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,63 +23,63 @@
|
||||
|
||||
#include "interface/clipboard.h"
|
||||
|
||||
bool lgClipboardFiles_init(void);
|
||||
void lgClipboardFiles_free(void);
|
||||
bool clipboardFiles_init(void);
|
||||
void clipboardFiles_free(void);
|
||||
|
||||
/* Desktop backends install a local file selection after reading one of the
|
||||
* standard URI clipboard representations. The payload is copied. */
|
||||
bool lgClipboardFiles_setLocal(const char * mime,
|
||||
bool clipboardFiles_setLocal(const char * mime,
|
||||
const void * data, size_t size);
|
||||
void lgClipboardFiles_clearLocal(void);
|
||||
void clipboardFiles_clearLocal(void);
|
||||
|
||||
/* Returns an allocated desktop representation for the current guest offer. */
|
||||
bool lgClipboardFiles_getRemote(const char * mime,
|
||||
bool clipboardFiles_getRemote(const char * mime,
|
||||
char ** data, size_t * size);
|
||||
uint64_t lgClipboardFiles_remotePresentationAcquire(void);
|
||||
bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
uint64_t clipboardFiles_remotePresentationAcquire(void);
|
||||
bool clipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
const char * mime, char ** data, size_t * size);
|
||||
void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation);
|
||||
void lgClipboardFiles_remotePresentationRelease(uint64_t presentation);
|
||||
bool lgClipboardFiles_remoteReady(uint64_t dataset);
|
||||
void clipboardFiles_remotePresentationDelivered(uint64_t presentation);
|
||||
void clipboardFiles_remotePresentationRelease(uint64_t presentation);
|
||||
bool clipboardFiles_remoteReady(uint64_t dataset);
|
||||
|
||||
/* Events delivered by the active clipboard transport. */
|
||||
bool lgClipboardFiles_remoteOffer(uint64_t dataset);
|
||||
void lgClipboardFiles_remoteClear(void);
|
||||
void lgClipboardFiles_providerUnavailable(void);
|
||||
void lgClipboardFiles_remoteAcquired(uint64_t dataset,
|
||||
bool clipboardFiles_remoteOffer(uint64_t dataset);
|
||||
void clipboardFiles_remoteClear(void);
|
||||
void clipboardFiles_providerUnavailable(void);
|
||||
void clipboardFiles_remoteAcquired(uint64_t dataset,
|
||||
uint64_t acquisition, LG_ClipboardFileError error);
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataBegin(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataBegin(
|
||||
const LG_ClipboardFileRequest * request, uint64_t sizeHint);
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataChunk(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataChunk(
|
||||
const LG_ClipboardFileRequest * request, uint64_t responseOffset,
|
||||
const void * data, size_t size);
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataEnd(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataEnd(
|
||||
const LG_ClipboardFileRequest * request, uint64_t finalSize);
|
||||
void lgClipboardFiles_remoteCancel(uint64_t dataset,
|
||||
void clipboardFiles_remoteCancel(uint64_t dataset,
|
||||
uint64_t request, LG_ClipboardFileError reason);
|
||||
|
||||
void lgClipboardFiles_localAcquire(uint64_t dataset,
|
||||
void clipboardFiles_localAcquire(uint64_t dataset,
|
||||
uint64_t acquisition);
|
||||
void lgClipboardFiles_localRelease(uint64_t dataset,
|
||||
void clipboardFiles_localRelease(uint64_t dataset,
|
||||
uint64_t acquisition);
|
||||
void lgClipboardFiles_localRequest(
|
||||
void clipboardFiles_localRequest(
|
||||
const LG_ClipboardFileRequest * request);
|
||||
void lgClipboardFiles_localCancel(uint64_t dataset,
|
||||
void clipboardFiles_localCancel(uint64_t dataset,
|
||||
uint64_t request, LG_ClipboardFileError reason);
|
||||
void lgClipboardFiles_localReady(uint64_t request);
|
||||
void clipboardFiles_localReady(uint64_t request);
|
||||
|
||||
#ifdef ENABLE_TESTS
|
||||
bool lgClipboardFiles_testInit(uint64_t nonce);
|
||||
bool lgClipboardFiles_testFuseStopWake(void);
|
||||
bool lgClipboardFiles_testUnsentRemoteOwnership(void);
|
||||
size_t lgClipboardFiles_testRemoteDatasetCount(void);
|
||||
void lgClipboardFiles_testExpireRemoteDeliveries(void);
|
||||
bool lgClipboardFiles_testBeginRemoteLookup(uint64_t presentation);
|
||||
void lgClipboardFiles_testEndRemoteLookup(uint64_t presentation);
|
||||
bool lgClipboardFiles_testRemoteRead(uint64_t presentation,
|
||||
bool clipboardFiles_testInit(uint64_t nonce);
|
||||
bool clipboardFiles_testFuseStopWake(void);
|
||||
bool clipboardFiles_testUnsentRemoteOwnership(void);
|
||||
size_t clipboardFiles_testRemoteDatasetCount(void);
|
||||
void clipboardFiles_testExpireRemoteDeliveries(void);
|
||||
bool clipboardFiles_testBeginRemoteLookup(uint64_t presentation);
|
||||
void clipboardFiles_testEndRemoteLookup(uint64_t presentation);
|
||||
bool clipboardFiles_testRemoteRead(uint64_t presentation,
|
||||
uint64_t node, uint64_t offset, uint32_t length);
|
||||
void lgClipboardFiles_testForceLocalEof(void);
|
||||
bool lgClipboardFiles_testLocalRequest(
|
||||
void clipboardFiles_testForceLocalEof(void);
|
||||
bool clipboardFiles_testLocalRequest(
|
||||
const LG_ClipboardFileRequest * request);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ void app_mouseTrace(const char * file, unsigned int line,
|
||||
return;
|
||||
|
||||
flockfile(stderr);
|
||||
debug_info(file, line, function, "Mouse %06" PRIu64 ": %s", seq,
|
||||
debug_info(file, line, function, "Mouse %06lu: %s", seq,
|
||||
message);
|
||||
funlockfile(stderr);
|
||||
}
|
||||
|
||||
@@ -389,7 +389,7 @@ static void resetRemote(void)
|
||||
LG_UNLOCK(clipboard.stateLock);
|
||||
LG_UNLOCK(clipboard.requestLock);
|
||||
|
||||
lgClipboardFiles_providerUnavailable();
|
||||
clipboardFiles_providerUnavailable();
|
||||
|
||||
LG_LOCK(clipboard.callbackLock);
|
||||
cancelRequestsNL(NULL, 0, true, LG_CLIPBOARD_CANCEL_UNAVAILABLE);
|
||||
@@ -522,7 +522,7 @@ static void eventNotice(void * opaque,
|
||||
LG_UNLOCK(clipboard.stateLock);
|
||||
LG_UNLOCK(clipboard.requestLock);
|
||||
if (!hasFiles)
|
||||
lgClipboardFiles_remoteClear();
|
||||
clipboardFiles_remoteClear();
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
|
||||
LG_LOCK(clipboard.callbackLock);
|
||||
@@ -545,7 +545,7 @@ static void eventNotice(void * opaque,
|
||||
if (notice && active)
|
||||
{
|
||||
if (type != LG_CLIPBOARD_DATA_FILES ||
|
||||
lgClipboardFiles_remoteReady(fileDataset))
|
||||
clipboardFiles_remoteReady(fileDataset))
|
||||
g_state.ds->cbNotice(type);
|
||||
}
|
||||
else if (release && active && g_state.ds->cbRelease)
|
||||
@@ -948,7 +948,7 @@ static void eventRelease(void * opaque)
|
||||
LG_UNLOCK(clipboard.requestLock);
|
||||
|
||||
LG_LOCK(clipboard.fileLock);
|
||||
lgClipboardFiles_remoteClear();
|
||||
clipboardFiles_remoteClear();
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
|
||||
LG_LOCK(clipboard.callbackLock);
|
||||
@@ -1097,13 +1097,13 @@ static void eventFileOffer(void * opaque, uint64_t dataset)
|
||||
LG_LOCK(clipboard.stateLock);
|
||||
clipboard.remoteFileDataset = dataset;
|
||||
LG_UNLOCK(clipboard.stateLock);
|
||||
if (!lgClipboardFiles_remoteOffer(dataset))
|
||||
if (!clipboardFiles_remoteOffer(dataset))
|
||||
{
|
||||
LG_LOCK(clipboard.stateLock);
|
||||
if (clipboard.remoteFileDataset == dataset)
|
||||
clipboard.remoteFileDataset = 0;
|
||||
LG_UNLOCK(clipboard.stateLock);
|
||||
lgClipboardFiles_remoteClear();
|
||||
clipboardFiles_remoteClear();
|
||||
}
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
}
|
||||
@@ -1117,7 +1117,7 @@ static void eventFileAcquire(void * opaque, uint64_t dataset,
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return;
|
||||
}
|
||||
lgClipboardFiles_localAcquire(dataset, acquisition);
|
||||
clipboardFiles_localAcquire(dataset, acquisition);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
}
|
||||
|
||||
@@ -1130,7 +1130,7 @@ static void eventFileAcquired(void * opaque, uint64_t dataset,
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return;
|
||||
}
|
||||
lgClipboardFiles_remoteAcquired(dataset, acquisition, error);
|
||||
clipboardFiles_remoteAcquired(dataset, acquisition, error);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
}
|
||||
|
||||
@@ -1143,7 +1143,7 @@ static void eventFileRelease(void * opaque, uint64_t dataset,
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return;
|
||||
}
|
||||
lgClipboardFiles_localRelease(dataset, acquisition);
|
||||
clipboardFiles_localRelease(dataset, acquisition);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
}
|
||||
|
||||
@@ -1156,7 +1156,7 @@ static void eventFileRequest(void * opaque,
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return;
|
||||
}
|
||||
lgClipboardFiles_localRequest(request);
|
||||
clipboardFiles_localRequest(request);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
}
|
||||
|
||||
@@ -1170,7 +1170,7 @@ static LG_ClipboardResult eventFileDataBegin(void * opaque,
|
||||
return LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
const LG_ClipboardResult result =
|
||||
lgClipboardFiles_remoteDataBegin(request, sizeHint);
|
||||
clipboardFiles_remoteDataBegin(request, sizeHint);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return result;
|
||||
}
|
||||
@@ -1185,7 +1185,7 @@ static LG_ClipboardResult eventFileDataChunk(void * opaque,
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
const LG_ClipboardResult result = lgClipboardFiles_remoteDataChunk(
|
||||
const LG_ClipboardResult result = clipboardFiles_remoteDataChunk(
|
||||
request, responseOffset, data, size);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return result;
|
||||
@@ -1201,7 +1201,7 @@ static LG_ClipboardResult eventFileDataEnd(void * opaque,
|
||||
return LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
const LG_ClipboardResult result =
|
||||
lgClipboardFiles_remoteDataEnd(request, finalSize);
|
||||
clipboardFiles_remoteDataEnd(request, finalSize);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return result;
|
||||
}
|
||||
@@ -1214,7 +1214,7 @@ static void eventFileDataReady(void * opaque, uint64_t request)
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return;
|
||||
}
|
||||
lgClipboardFiles_localReady(request);
|
||||
clipboardFiles_localReady(request);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
}
|
||||
|
||||
@@ -1227,8 +1227,8 @@ static void eventFileCancel(void * opaque, uint64_t dataset,
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
return;
|
||||
}
|
||||
lgClipboardFiles_remoteCancel(dataset, request, reason);
|
||||
lgClipboardFiles_localCancel(dataset, request, reason);
|
||||
clipboardFiles_remoteCancel(dataset, request, reason);
|
||||
clipboardFiles_localCancel(dataset, request, reason);
|
||||
LG_UNLOCK(clipboard.fileLock);
|
||||
}
|
||||
|
||||
@@ -1386,7 +1386,7 @@ static void setBinding(ClipboardBinding * target,
|
||||
LG_UNLOCK(clipboard.registrationLock);
|
||||
}
|
||||
|
||||
bool lgClipboard_init(void)
|
||||
bool clipboard_init(void)
|
||||
{
|
||||
memset(&clipboard, 0, sizeof(clipboard));
|
||||
LG_LOCK_INIT(clipboard.registrationLock);
|
||||
@@ -1400,7 +1400,7 @@ bool lgClipboard_init(void)
|
||||
clipboard.remoteType = LG_CLIPBOARD_DATA_NONE;
|
||||
clipboard.remoteRequestType = LG_CLIPBOARD_DATA_NONE;
|
||||
clipboard.requests = ll_new();
|
||||
if (!lgClipboardFiles_init())
|
||||
if (!clipboardFiles_init())
|
||||
{
|
||||
DEBUG_ERROR("Failed to initialize clipboard file transfer");
|
||||
return false;
|
||||
@@ -1408,12 +1408,12 @@ bool lgClipboard_init(void)
|
||||
return true;
|
||||
}
|
||||
|
||||
void lgClipboard_free(void)
|
||||
void clipboard_free(void)
|
||||
{
|
||||
lgClipboard_setLocalAvailable(false);
|
||||
lgClipboard_setTransport(NULL, NULL);
|
||||
lgClipboard_setFallback(NULL, NULL);
|
||||
lgClipboardFiles_free();
|
||||
clipboard_setLocalAvailable(false);
|
||||
clipboard_setTransport(NULL, NULL);
|
||||
clipboard_setFallback(NULL, NULL);
|
||||
clipboardFiles_free();
|
||||
LG_LOCK(clipboard.callbackLock);
|
||||
cancelRequestsNL(NULL, 0, true, LG_CLIPBOARD_CANCEL_UNAVAILABLE);
|
||||
LG_UNLOCK(clipboard.callbackLock);
|
||||
@@ -1433,7 +1433,7 @@ void lgClipboard_free(void)
|
||||
LG_LOCK_FREE(clipboard.registrationLock);
|
||||
}
|
||||
|
||||
void lgClipboard_setLocalAvailable(bool available)
|
||||
void clipboard_setLocalAvailable(bool available)
|
||||
{
|
||||
bool notice;
|
||||
bool release;
|
||||
@@ -1459,7 +1459,7 @@ void lgClipboard_setLocalAvailable(bool available)
|
||||
if (notice)
|
||||
{
|
||||
if (type != LG_CLIPBOARD_DATA_FILES ||
|
||||
lgClipboardFiles_remoteReady(fileDataset))
|
||||
clipboardFiles_remoteReady(fileDataset))
|
||||
g_state.ds->cbNotice(type);
|
||||
}
|
||||
if (!available)
|
||||
@@ -1475,7 +1475,7 @@ void lgClipboard_setLocalAvailable(bool available)
|
||||
LG_UNLOCK(clipboard.callbackLock);
|
||||
}
|
||||
|
||||
void lgClipboard_setFallback(const LG_ClipboardOps * ops, void * opaque)
|
||||
void clipboard_setFallback(const LG_ClipboardOps * ops, void * opaque)
|
||||
{
|
||||
setBinding(&clipboard.fallback,
|
||||
ops, opaque, fallbackStatusChanged);
|
||||
@@ -1494,23 +1494,23 @@ static void dropBinding(ClipboardBinding * target)
|
||||
LG_UNLOCK(clipboard.registrationLock);
|
||||
}
|
||||
|
||||
void lgClipboard_dropFallback(void)
|
||||
void clipboard_dropFallback(void)
|
||||
{
|
||||
dropBinding(&clipboard.fallback);
|
||||
}
|
||||
|
||||
void lgClipboard_setTransport(const LG_ClipboardOps * ops, void * opaque)
|
||||
void clipboard_setTransport(const LG_ClipboardOps * ops, void * opaque)
|
||||
{
|
||||
setBinding(&clipboard.transport,
|
||||
ops, opaque, transportStatusChanged);
|
||||
}
|
||||
|
||||
void lgClipboard_dropTransport(void)
|
||||
void clipboard_dropTransport(void)
|
||||
{
|
||||
dropBinding(&clipboard.transport);
|
||||
}
|
||||
|
||||
void lgClipboard_release(void)
|
||||
void clipboard_release(void)
|
||||
{
|
||||
if (!g_params.clipboardToVM)
|
||||
return;
|
||||
@@ -1530,14 +1530,14 @@ void lgClipboard_release(void)
|
||||
LG_UNLOCK(clipboard.writeLock);
|
||||
}
|
||||
|
||||
void lgClipboard_notifyTypes(
|
||||
void clipboard_notifyTypes(
|
||||
const LG_ClipboardData types[], size_t count)
|
||||
{
|
||||
if (!g_params.clipboardToVM)
|
||||
return;
|
||||
if (count == 0)
|
||||
{
|
||||
lgClipboard_release();
|
||||
clipboard_release();
|
||||
return;
|
||||
}
|
||||
if (!types || count > LG_CLIPBOARD_DATA_NONE)
|
||||
@@ -1564,7 +1564,7 @@ void lgClipboard_notifyTypes(
|
||||
LG_UNLOCK(clipboard.writeLock);
|
||||
}
|
||||
|
||||
void lgClipboard_notifyFiles(uint64_t dataset)
|
||||
void clipboard_notifyFiles(uint64_t dataset)
|
||||
{
|
||||
if (!g_params.clipboardToVM || !dataset)
|
||||
return;
|
||||
@@ -1827,7 +1827,7 @@ static LG_ClipboardResult pumpRemoteCompat(void)
|
||||
}
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataBegin(LG_ClipboardRequest transfer,
|
||||
LG_ClipboardResult clipboard_dataBegin(LG_ClipboardRequest transfer,
|
||||
LG_ClipboardData type, uint64_t sizeHint)
|
||||
{
|
||||
if (!g_params.clipboardToVM ||
|
||||
@@ -1846,7 +1846,7 @@ LG_ClipboardResult lgClipboard_dataBegin(LG_ClipboardRequest transfer,
|
||||
return result;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataChunk(LG_ClipboardRequest transfer,
|
||||
LG_ClipboardResult clipboard_dataChunk(LG_ClipboardRequest transfer,
|
||||
uint64_t offset, const void * data, size_t size)
|
||||
{
|
||||
if (!g_params.clipboardToVM ||
|
||||
@@ -1865,7 +1865,7 @@ LG_ClipboardResult lgClipboard_dataChunk(LG_ClipboardRequest transfer,
|
||||
return result;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataEnd(LG_ClipboardRequest transfer,
|
||||
LG_ClipboardResult clipboard_dataEnd(LG_ClipboardRequest transfer,
|
||||
uint64_t finalSize)
|
||||
{
|
||||
if (!g_params.clipboardToVM ||
|
||||
@@ -1884,7 +1884,7 @@ LG_ClipboardResult lgClipboard_dataEnd(LG_ClipboardRequest transfer,
|
||||
return result;
|
||||
}
|
||||
|
||||
void lgClipboard_data(LG_ClipboardRequest transfer,
|
||||
void clipboard_data(LG_ClipboardRequest transfer,
|
||||
LG_ClipboardData type, const void * data, size_t size)
|
||||
{
|
||||
if (!g_params.clipboardToVM ||
|
||||
@@ -1953,7 +1953,7 @@ void lgClipboard_data(LG_ClipboardRequest transfer,
|
||||
DEBUG_WARN("Failed to send remote clipboard data");
|
||||
}
|
||||
|
||||
void lgClipboard_abort(LG_ClipboardRequest transfer)
|
||||
void clipboard_abort(LG_ClipboardRequest transfer)
|
||||
{
|
||||
if (!g_params.clipboardToVM ||
|
||||
transfer == LG_CLIPBOARD_REQUEST_INVALID)
|
||||
@@ -2049,7 +2049,7 @@ static bool requestClipboard(LG_ClipboardData type,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool lgClipboard_requestStream(LG_ClipboardData type,
|
||||
bool clipboard_requestStream(LG_ClipboardData type,
|
||||
const LG_ClipboardStreamOps * stream, void * opaque,
|
||||
LG_ClipboardRequest * request)
|
||||
{
|
||||
@@ -2058,7 +2058,7 @@ bool lgClipboard_requestStream(LG_ClipboardData type,
|
||||
return requestClipboard(type, NULL, stream, opaque, request);
|
||||
}
|
||||
|
||||
bool lgClipboard_requestReady(LG_ClipboardRequest id)
|
||||
bool clipboard_requestReady(LG_ClipboardRequest id)
|
||||
{
|
||||
if (id == LG_CLIPBOARD_REQUEST_INVALID || !clipboard.requests)
|
||||
return false;
|
||||
@@ -2116,7 +2116,7 @@ bool lgClipboard_requestReady(LG_ClipboardRequest id)
|
||||
return result;
|
||||
}
|
||||
|
||||
bool lgClipboard_request(LG_ClipboardData type,
|
||||
bool clipboard_request(LG_ClipboardData type,
|
||||
LG_ClipboardReplyFn replyFn, void * opaque)
|
||||
{
|
||||
if (!replyFn)
|
||||
@@ -2124,7 +2124,7 @@ bool lgClipboard_request(LG_ClipboardData type,
|
||||
return requestClipboard(type, replyFn, NULL, opaque, NULL);
|
||||
}
|
||||
|
||||
bool lgClipboard_fileAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
bool clipboard_fileAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
{
|
||||
bool result = false;
|
||||
LG_LOCK_SHARED(clipboard.activeLock);
|
||||
@@ -2135,7 +2135,7 @@ bool lgClipboard_fileAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
return result;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
bool clipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
LG_ClipboardFileError error)
|
||||
{
|
||||
bool result = false;
|
||||
@@ -2147,7 +2147,7 @@ bool lgClipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
return result;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileRelease(uint64_t dataset, uint64_t acquisition)
|
||||
bool clipboard_fileRelease(uint64_t dataset, uint64_t acquisition)
|
||||
{
|
||||
bool result = false;
|
||||
LG_LOCK_SHARED(clipboard.activeLock);
|
||||
@@ -2158,7 +2158,7 @@ bool lgClipboard_fileRelease(uint64_t dataset, uint64_t acquisition)
|
||||
return result;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileRequest(const LG_ClipboardFileRequest * request)
|
||||
bool clipboard_fileRequest(const LG_ClipboardFileRequest * request)
|
||||
{
|
||||
bool result = false;
|
||||
LG_LOCK_SHARED(clipboard.activeLock);
|
||||
@@ -2169,7 +2169,7 @@ bool lgClipboard_fileRequest(const LG_ClipboardFileRequest * request)
|
||||
return result;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_fileDataBegin(
|
||||
LG_ClipboardResult clipboard_fileDataBegin(
|
||||
const LG_ClipboardFileRequest * request, uint64_t sizeHint)
|
||||
{
|
||||
LG_ClipboardResult result = LG_CLIPBOARD_RESULT_FAILED;
|
||||
@@ -2181,7 +2181,7 @@ LG_ClipboardResult lgClipboard_fileDataBegin(
|
||||
return result;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_fileDataChunk(
|
||||
LG_ClipboardResult clipboard_fileDataChunk(
|
||||
const LG_ClipboardFileRequest * request, uint64_t responseOffset,
|
||||
const void * data, size_t size, bool end)
|
||||
{
|
||||
@@ -2194,7 +2194,7 @@ LG_ClipboardResult lgClipboard_fileDataChunk(
|
||||
return result;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_fileDataEnd(
|
||||
LG_ClipboardResult clipboard_fileDataEnd(
|
||||
const LG_ClipboardFileRequest * request, uint64_t finalSize)
|
||||
{
|
||||
LG_ClipboardResult result = LG_CLIPBOARD_RESULT_FAILED;
|
||||
@@ -2206,7 +2206,7 @@ LG_ClipboardResult lgClipboard_fileDataEnd(
|
||||
return result;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
bool clipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
LG_ClipboardFileError reason)
|
||||
{
|
||||
bool result = false;
|
||||
@@ -2218,7 +2218,7 @@ bool lgClipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
return result;
|
||||
}
|
||||
|
||||
void lgClipboard_fileRemoteReady(uint64_t dataset)
|
||||
void clipboard_fileRemoteReady(uint64_t dataset)
|
||||
{
|
||||
LG_LOCK(clipboard.callbackLock);
|
||||
LG_LOCK(clipboard.stateLock);
|
||||
@@ -2232,7 +2232,7 @@ void lgClipboard_fileRemoteReady(uint64_t dataset)
|
||||
LG_UNLOCK(clipboard.callbackLock);
|
||||
}
|
||||
|
||||
void lgClipboard_fileRemoteFailed(uint64_t dataset)
|
||||
void clipboard_fileRemoteFailed(uint64_t dataset)
|
||||
{
|
||||
if (!dataset)
|
||||
return;
|
||||
|
||||
@@ -503,13 +503,13 @@ static void performRemoteAction(struct RemoteAction action)
|
||||
switch (action.type)
|
||||
{
|
||||
case REMOTE_ACTION_CANCEL_ACQUISITION:
|
||||
if (!lgClipboard_fileCancel(action.dataset, action.acquisition,
|
||||
if (!clipboard_fileCancel(action.dataset, action.acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_CANCELLED))
|
||||
DEBUG_WARN("Failed to cancel retired clipboard file acquisition");
|
||||
break;
|
||||
|
||||
case REMOTE_ACTION_RELEASE_ACQUISITION:
|
||||
if (!lgClipboard_fileRelease(action.dataset, action.acquisition))
|
||||
if (!clipboard_fileRelease(action.dataset, action.acquisition))
|
||||
DEBUG_WARN("Failed to release retired clipboard file acquisition");
|
||||
break;
|
||||
|
||||
@@ -754,7 +754,7 @@ static void failRemoteRequest(struct RemoteRequest * request, int error)
|
||||
return;
|
||||
if (request->reply == REMOTE_REPLY_INITIAL)
|
||||
DEBUG_WARN("Remote clipboard file root list failed: "
|
||||
"dataset=%" PRIu64 ", request=%" PRIu64 ", error=%d (%s)",
|
||||
"dataset=%lu, request=%lu, error=%d (%s)",
|
||||
request->request.dataset, request->request.request,
|
||||
error, strerror(error));
|
||||
unregisterRemoteInterrupt(request);
|
||||
@@ -768,7 +768,7 @@ static void failRemoteRequest(struct RemoteRequest * request, int error)
|
||||
freeRemoteRequest(request);
|
||||
performRemoteAction(action);
|
||||
if (failedDataset)
|
||||
lgClipboard_fileRemoteFailed(failedDataset);
|
||||
clipboard_fileRemoteFailed(failedDataset);
|
||||
}
|
||||
|
||||
static void completeRemoteRequest(struct RemoteRequest * request)
|
||||
@@ -1014,9 +1014,9 @@ static void finishRemoteRequest(struct RemoteRequest * request)
|
||||
if (current)
|
||||
{
|
||||
DEBUG_INFO("Remote clipboard file root list ready; publishing: "
|
||||
"dataset=%" PRIu64 ", request=%" PRIu64,
|
||||
"dataset=%lu, request=%lu",
|
||||
datasetId, requestId);
|
||||
lgClipboard_fileRemoteReady(datasetId);
|
||||
clipboard_fileRemoteReady(datasetId);
|
||||
}
|
||||
completeRemoteRequest(request);
|
||||
return;
|
||||
@@ -1067,7 +1067,7 @@ static void interruptRemoteRequest(fuse_req_t fuseRequest, void * opaque)
|
||||
|
||||
const LG_ClipboardFileRequest descriptor = request->request;
|
||||
if (request->transportStarted &&
|
||||
!lgClipboard_fileCancel(descriptor.dataset, descriptor.request,
|
||||
!clipboard_fileCancel(descriptor.dataset, descriptor.request,
|
||||
LG_CLIPBOARD_FILE_ERROR_CANCELLED))
|
||||
DEBUG_WARN("Failed to cancel interrupted clipboard file request");
|
||||
fuse_reply_err(fuseRequest, EINTR);
|
||||
@@ -1142,7 +1142,7 @@ static bool requestRemote(struct RemoteDataset * dataset,
|
||||
struct RemoteRequest * live = files.remoteRequests;
|
||||
while (live && live != request)
|
||||
live = live->next;
|
||||
const bool sent = live && lgClipboard_fileRequest(&descriptor);
|
||||
const bool sent = live && clipboard_fileRequest(&descriptor);
|
||||
if (sent)
|
||||
request->transportStarted = true;
|
||||
LG_UNLOCK(files.lock);
|
||||
@@ -2019,7 +2019,7 @@ static struct LocalNode * addLocalNode(struct LocalDataset * dataset,
|
||||
return node;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_setLocal(const char * mime,
|
||||
bool clipboardFiles_setLocal(const char * mime,
|
||||
const void * data, size_t size)
|
||||
{
|
||||
if (!mime || (!data && size) ||
|
||||
@@ -2099,7 +2099,7 @@ bool lgClipboardFiles_setLocal(const char * mime,
|
||||
const uint64_t datasetId = dataset->dataset;
|
||||
LG_UNLOCK(files.lock);
|
||||
freeLocalDataset(retired);
|
||||
lgClipboard_notifyFiles(datasetId);
|
||||
clipboard_notifyFiles(datasetId);
|
||||
return true;
|
||||
|
||||
invalid:
|
||||
@@ -2107,7 +2107,7 @@ invalid:
|
||||
return false;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_clearLocal(void)
|
||||
void clipboardFiles_clearLocal(void)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
struct LocalDataset * retired = NULL;
|
||||
@@ -2206,7 +2206,7 @@ error:
|
||||
return false;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_getRemote(const char * mime,
|
||||
bool clipboardFiles_getRemote(const char * mime,
|
||||
char ** data, size_t * size)
|
||||
{
|
||||
if (!mime || !data || !size)
|
||||
@@ -2221,7 +2221,7 @@ bool lgClipboardFiles_getRemote(const char * mime,
|
||||
return result;
|
||||
}
|
||||
|
||||
uint64_t lgClipboardFiles_remotePresentationAcquire(void)
|
||||
uint64_t clipboardFiles_remotePresentationAcquire(void)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
struct RemoteDataset * dataset = files.remoteCurrent;
|
||||
@@ -2233,7 +2233,7 @@ uint64_t lgClipboardFiles_remotePresentationAcquire(void)
|
||||
return presentation;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
bool clipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
const char * mime, char ** data, size_t * size)
|
||||
{
|
||||
if (!presentation || !mime || !data || !size)
|
||||
@@ -2249,7 +2249,7 @@ bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
return result;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
{
|
||||
if (!presentation)
|
||||
return;
|
||||
@@ -2276,7 +2276,7 @@ void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
reapRemoteDeliveries(true);
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
{
|
||||
if (!presentation)
|
||||
return;
|
||||
@@ -2289,7 +2289,7 @@ void lgClipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
performRemoteAction(action);
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_remoteReady(uint64_t dataset)
|
||||
bool clipboardFiles_remoteReady(uint64_t dataset)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
struct RemoteDataset * found = remoteDatasetByIdNL(dataset);
|
||||
@@ -2314,16 +2314,16 @@ static void cancelRetiredInitialRequest(struct RemoteRequest * request)
|
||||
return;
|
||||
const LG_ClipboardFileRequest descriptor = request->request;
|
||||
if (request->transportStarted &&
|
||||
!lgClipboard_fileCancel(descriptor.dataset, descriptor.request,
|
||||
!clipboard_fileCancel(descriptor.dataset, descriptor.request,
|
||||
LG_CLIPBOARD_FILE_ERROR_CANCELLED))
|
||||
DEBUG_WARN("Failed to cancel retired clipboard file request");
|
||||
unregisterRemoteInterrupt(request);
|
||||
completeRemoteRequest(request);
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_remoteOffer(uint64_t datasetId)
|
||||
bool clipboardFiles_remoteOffer(uint64_t datasetId)
|
||||
{
|
||||
DEBUG_INFO("Remote clipboard file offer received: dataset=%" PRIu64,
|
||||
DEBUG_INFO("dataset=%lu",
|
||||
datasetId);
|
||||
if (!datasetId)
|
||||
return false;
|
||||
@@ -2405,16 +2405,16 @@ bool lgClipboardFiles_remoteOffer(uint64_t datasetId)
|
||||
cancelRetiredInitialRequest(cancelled);
|
||||
performRemoteAction(previousAction);
|
||||
reapRemoteDeliveries(true);
|
||||
if (!lgClipboard_fileAcquire(datasetId, acquisition))
|
||||
if (!clipboard_fileAcquire(datasetId, acquisition))
|
||||
{
|
||||
lgClipboardFiles_remoteCancel(datasetId, acquisition,
|
||||
clipboardFiles_remoteCancel(datasetId, acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_DISCONNECTED);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remoteClear(void)
|
||||
void clipboardFiles_remoteClear(void)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
struct RemoteDataset * previous = files.remoteCurrent;
|
||||
@@ -2432,7 +2432,7 @@ void lgClipboardFiles_remoteClear(void)
|
||||
performRemoteAction(action);
|
||||
}
|
||||
|
||||
void lgClipboardFiles_providerUnavailable(void)
|
||||
void clipboardFiles_providerUnavailable(void)
|
||||
{
|
||||
if (!files.initialized)
|
||||
return;
|
||||
@@ -2509,7 +2509,7 @@ void lgClipboardFiles_providerUnavailable(void)
|
||||
}
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remoteAcquired(uint64_t datasetId,
|
||||
void clipboardFiles_remoteAcquired(uint64_t datasetId,
|
||||
uint64_t acquisition, LG_ClipboardFileError error)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
@@ -2530,16 +2530,13 @@ void lgClipboardFiles_remoteAcquired(uint64_t datasetId,
|
||||
retireRemoteDatasetNL(dataset) : (struct RemoteAction) { 0 };
|
||||
LG_UNLOCK(files.lock);
|
||||
if (valid && error)
|
||||
DEBUG_WARN("Remote clipboard file acquisition failed: "
|
||||
"dataset=%" PRIu64 ", acquisition=%" PRIu64 ", error=%u (%s)",
|
||||
DEBUG_WARN("failed: dataset=%lu, acquisition=%lu, error=%u (%s)",
|
||||
datasetId, acquisition, (unsigned)error, fileErrorName(error));
|
||||
else if (valid)
|
||||
DEBUG_INFO("Remote clipboard file acquisition succeeded: "
|
||||
"dataset=%" PRIu64 ", acquisition=%" PRIu64,
|
||||
datasetId, acquisition);
|
||||
DEBUG_INFO("dataset=%lu, acquisition=%lu", datasetId, acquisition);
|
||||
performRemoteAction(action);
|
||||
if (failedDataset)
|
||||
lgClipboard_fileRemoteFailed(failedDataset);
|
||||
clipboard_fileRemoteFailed(failedDataset);
|
||||
if (!pinned)
|
||||
return;
|
||||
if (!requestRemote(dataset, root, LG_CLIPBOARD_FILE_LIST,
|
||||
@@ -2552,7 +2549,7 @@ void lgClipboardFiles_remoteAcquired(uint64_t datasetId,
|
||||
LG_UNLOCK(files.lock);
|
||||
performRemoteAction(failed);
|
||||
if (unsentDataset)
|
||||
lgClipboard_fileRemoteFailed(unsentDataset);
|
||||
clipboard_fileRemoteFailed(unsentDataset);
|
||||
}
|
||||
releaseRemoteOperation(dataset);
|
||||
}
|
||||
@@ -2569,7 +2566,7 @@ static bool sameRemoteFileRequest(
|
||||
request->request.operation == descriptor->operation;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataBegin(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataBegin(
|
||||
const LG_ClipboardFileRequest * descriptor, uint64_t sizeHint)
|
||||
{
|
||||
if (!descriptor)
|
||||
@@ -2595,7 +2592,7 @@ LG_ClipboardResult lgClipboardFiles_remoteDataBegin(
|
||||
LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataChunk(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataChunk(
|
||||
const LG_ClipboardFileRequest * descriptor, uint64_t responseOffset,
|
||||
const void * data, size_t size)
|
||||
{
|
||||
@@ -2629,7 +2626,7 @@ LG_ClipboardResult lgClipboardFiles_remoteDataChunk(
|
||||
LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataEnd(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataEnd(
|
||||
const LG_ClipboardFileRequest * descriptor, uint64_t finalSize)
|
||||
{
|
||||
if (!descriptor)
|
||||
@@ -2653,7 +2650,7 @@ LG_ClipboardResult lgClipboardFiles_remoteDataEnd(
|
||||
return LG_CLIPBOARD_RESULT_ACCEPTED;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remoteCancel(uint64_t dataset,
|
||||
void clipboardFiles_remoteCancel(uint64_t dataset,
|
||||
uint64_t requestId, LG_ClipboardFileError reason)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
@@ -2682,13 +2679,13 @@ void lgClipboardFiles_remoteCancel(uint64_t dataset,
|
||||
LG_UNLOCK(files.lock);
|
||||
if (acquisition)
|
||||
DEBUG_WARN("Remote clipboard file acquisition failed: "
|
||||
"dataset=%" PRIu64 ", acquisition=%" PRIu64 ", error=%u (%s)",
|
||||
"dataset=%lu, acquisition=%lu, error=%u (%s)",
|
||||
dataset, requestId, (unsigned)reason, fileErrorName(reason));
|
||||
if (acquisition && !request)
|
||||
{
|
||||
performRemoteAction(action);
|
||||
if (failedDataset)
|
||||
lgClipboard_fileRemoteFailed(failedDataset);
|
||||
clipboard_fileRemoteFailed(failedDataset);
|
||||
return;
|
||||
}
|
||||
if (!request || request->request.dataset != dataset)
|
||||
@@ -2696,16 +2693,16 @@ void lgClipboardFiles_remoteCancel(uint64_t dataset,
|
||||
failRemoteRequest(request, EIO);
|
||||
performRemoteAction(action);
|
||||
if (failedDataset)
|
||||
lgClipboard_fileRemoteFailed(failedDataset);
|
||||
clipboard_fileRemoteFailed(failedDataset);
|
||||
return;
|
||||
}
|
||||
failRemoteRequest(request, errnoFromFileError(reason));
|
||||
performRemoteAction(action);
|
||||
if (failedDataset)
|
||||
lgClipboard_fileRemoteFailed(failedDataset);
|
||||
clipboard_fileRemoteFailed(failedDataset);
|
||||
}
|
||||
|
||||
void lgClipboardFiles_localAcquire(uint64_t wireDataset,
|
||||
void clipboardFiles_localAcquire(uint64_t wireDataset,
|
||||
uint64_t acquisition)
|
||||
{
|
||||
LG_ClipboardFileError error = LG_CLIPBOARD_FILE_ERROR_STALE;
|
||||
@@ -2729,10 +2726,10 @@ void lgClipboardFiles_localAcquire(uint64_t wireDataset,
|
||||
LG_UNLOCK(files.lock);
|
||||
if (error)
|
||||
free(item);
|
||||
lgClipboard_fileAcquired(wireDataset, acquisition, error);
|
||||
clipboard_fileAcquired(wireDataset, acquisition, error);
|
||||
}
|
||||
|
||||
void lgClipboardFiles_localRelease(uint64_t wireDataset,
|
||||
void clipboardFiles_localRelease(uint64_t wireDataset,
|
||||
uint64_t acquisition)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
@@ -2774,14 +2771,14 @@ static bool sendJobCall(struct LocalJob * job, int operation,
|
||||
switch (operation)
|
||||
{
|
||||
case 0:
|
||||
result = lgClipboard_fileDataBegin(&job->request, offset);
|
||||
result = clipboard_fileDataBegin(&job->request, offset);
|
||||
break;
|
||||
case 1:
|
||||
result = lgClipboard_fileDataChunk(
|
||||
result = clipboard_fileDataChunk(
|
||||
&job->request, offset, data, size, end);
|
||||
break;
|
||||
default:
|
||||
result = lgClipboard_fileDataEnd(&job->request, offset);
|
||||
result = clipboard_fileDataEnd(&job->request, offset);
|
||||
break;
|
||||
}
|
||||
if (result == LG_CLIPBOARD_RESULT_ACCEPTED)
|
||||
@@ -3256,7 +3253,7 @@ static int localWorker(void * opaque)
|
||||
localList(job) : localRead(job);
|
||||
if (error && error != LG_CLIPBOARD_FILE_ERROR_CANCELLED &&
|
||||
!atomic_load_explicit(&job->cancelled, memory_order_acquire))
|
||||
lgClipboard_fileCancel(job->request.dataset,
|
||||
clipboard_fileCancel(job->request.dataset,
|
||||
job->request.request, error);
|
||||
LG_LOCK(files.lock);
|
||||
struct LocalJob ** link = &files.activeJobs;
|
||||
@@ -3275,7 +3272,7 @@ static int localWorker(void * opaque)
|
||||
}
|
||||
}
|
||||
|
||||
void lgClipboardFiles_localRequest(
|
||||
void clipboardFiles_localRequest(
|
||||
const LG_ClipboardFileRequest * request)
|
||||
{
|
||||
if (!request || !request->request ||
|
||||
@@ -3289,14 +3286,14 @@ void lgClipboardFiles_localRequest(
|
||||
request->length > (uint64_t)INT64_MAX - request->offset)))
|
||||
{
|
||||
if (request)
|
||||
lgClipboard_fileCancel(request->dataset, request->request,
|
||||
clipboard_fileCancel(request->dataset, request->request,
|
||||
LG_CLIPBOARD_FILE_ERROR_INVALID);
|
||||
return;
|
||||
}
|
||||
struct LocalJob * job = calloc(1, sizeof(*job));
|
||||
if (!job)
|
||||
{
|
||||
lgClipboard_fileCancel(request->dataset, request->request,
|
||||
clipboard_fileCancel(request->dataset, request->request,
|
||||
LG_CLIPBOARD_FILE_ERROR_NO_MEMORY);
|
||||
return;
|
||||
}
|
||||
@@ -3304,7 +3301,7 @@ void lgClipboardFiles_localRequest(
|
||||
if (!job->ready)
|
||||
{
|
||||
free(job);
|
||||
lgClipboard_fileCancel(request->dataset, request->request,
|
||||
clipboard_fileCancel(request->dataset, request->request,
|
||||
LG_CLIPBOARD_FILE_ERROR_NO_MEMORY);
|
||||
return;
|
||||
}
|
||||
@@ -3327,11 +3324,11 @@ void lgClipboardFiles_localRequest(
|
||||
}
|
||||
lgFreeEvent(job->ready);
|
||||
free(job);
|
||||
lgClipboard_fileCancel(request->dataset, request->request,
|
||||
clipboard_fileCancel(request->dataset, request->request,
|
||||
LG_CLIPBOARD_FILE_ERROR_STALE);
|
||||
}
|
||||
|
||||
void lgClipboardFiles_localCancel(uint64_t dataset,
|
||||
void clipboardFiles_localCancel(uint64_t dataset,
|
||||
uint64_t request, LG_ClipboardFileError reason)
|
||||
{
|
||||
(void)reason;
|
||||
@@ -3363,7 +3360,7 @@ void lgClipboardFiles_localCancel(uint64_t dataset,
|
||||
freeLocalDataset(retired);
|
||||
}
|
||||
|
||||
void lgClipboardFiles_localReady(uint64_t request)
|
||||
void clipboardFiles_localReady(uint64_t request)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
for (struct LocalJob * job = files.activeJobs; job; job = job->next)
|
||||
@@ -3397,9 +3394,9 @@ static void freeState(void)
|
||||
{
|
||||
struct RemoteDataset * next = remote->next;
|
||||
if (remote->acquired)
|
||||
lgClipboard_fileRelease(remote->dataset, remote->acquisition);
|
||||
clipboard_fileRelease(remote->dataset, remote->acquisition);
|
||||
else if (remote->acquiring)
|
||||
lgClipboard_fileCancel(remote->dataset, remote->acquisition,
|
||||
clipboard_fileCancel(remote->dataset, remote->acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_CANCELLED);
|
||||
free(remote);
|
||||
remote = next;
|
||||
@@ -3420,7 +3417,7 @@ static void freeState(void)
|
||||
}
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_init(void)
|
||||
bool clipboardFiles_init(void)
|
||||
{
|
||||
if (filesLockInitialized)
|
||||
return false;
|
||||
@@ -3512,12 +3509,12 @@ bool lgClipboardFiles_init(void)
|
||||
return true;
|
||||
|
||||
failed:
|
||||
lgClipboardFiles_free();
|
||||
clipboardFiles_free();
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_TESTS
|
||||
bool lgClipboardFiles_testFuseStopWake(void)
|
||||
bool clipboardFiles_testFuseStopWake(void)
|
||||
{
|
||||
const int stopFd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);
|
||||
if (stopFd < 0)
|
||||
@@ -3528,12 +3525,12 @@ bool lgClipboardFiles_testFuseStopWake(void)
|
||||
return result;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_testUnsentRemoteOwnership(void)
|
||||
bool clipboardFiles_testUnsentRemoteOwnership(void)
|
||||
{
|
||||
return finishUnsentRemoteRequest(0);
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_testInit(uint64_t nonce)
|
||||
bool clipboardFiles_testInit(uint64_t nonce)
|
||||
{
|
||||
if (filesLockInitialized)
|
||||
return false;
|
||||
@@ -3556,7 +3553,7 @@ bool lgClipboardFiles_testInit(uint64_t nonce)
|
||||
return true;
|
||||
}
|
||||
|
||||
size_t lgClipboardFiles_testRemoteDatasetCount(void)
|
||||
size_t clipboardFiles_testRemoteDatasetCount(void)
|
||||
{
|
||||
if (!filesLockInitialized)
|
||||
return 0;
|
||||
@@ -3569,7 +3566,7 @@ size_t lgClipboardFiles_testRemoteDatasetCount(void)
|
||||
return count;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_testExpireRemoteDeliveries(void)
|
||||
void clipboardFiles_testExpireRemoteDeliveries(void)
|
||||
{
|
||||
if (!filesLockInitialized)
|
||||
return;
|
||||
@@ -3582,7 +3579,7 @@ void lgClipboardFiles_testExpireRemoteDeliveries(void)
|
||||
reapRemoteDeliveries(false);
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_testBeginRemoteLookup(uint64_t presentation)
|
||||
bool clipboardFiles_testBeginRemoteLookup(uint64_t presentation)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
struct RemoteDataset * dataset =
|
||||
@@ -3593,7 +3590,7 @@ bool lgClipboardFiles_testBeginRemoteLookup(uint64_t presentation)
|
||||
return result;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_testEndRemoteLookup(uint64_t presentation)
|
||||
void clipboardFiles_testEndRemoteLookup(uint64_t presentation)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
struct RemoteDataset * dataset =
|
||||
@@ -3605,7 +3602,7 @@ void lgClipboardFiles_testEndRemoteLookup(uint64_t presentation)
|
||||
performRemoteAction(action);
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_testRemoteRead(uint64_t presentation,
|
||||
bool clipboardFiles_testRemoteRead(uint64_t presentation,
|
||||
uint64_t nodeId, uint64_t offset, uint32_t length)
|
||||
{
|
||||
LG_LOCK(files.lock);
|
||||
@@ -3625,12 +3622,12 @@ bool lgClipboardFiles_testRemoteRead(uint64_t presentation,
|
||||
return result;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_testForceLocalEof(void)
|
||||
void clipboardFiles_testForceLocalEof(void)
|
||||
{
|
||||
atomic_store_explicit(&forceLocalEof, true, memory_order_release);
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_testLocalRequest(
|
||||
bool clipboardFiles_testLocalRequest(
|
||||
const LG_ClipboardFileRequest * request)
|
||||
{
|
||||
if (!request ||
|
||||
@@ -3652,7 +3649,7 @@ bool lgClipboardFiles_testLocalRequest(
|
||||
request->operation == LG_CLIPBOARD_FILE_LIST ?
|
||||
localList(&job) : localRead(&job);
|
||||
if (error && error != LG_CLIPBOARD_FILE_ERROR_CANCELLED)
|
||||
lgClipboard_fileCancel(request->dataset, request->request, error);
|
||||
clipboard_fileCancel(request->dataset, request->request, error);
|
||||
LG_LOCK(files.lock);
|
||||
if (job.dataset->references)
|
||||
--job.dataset->references;
|
||||
@@ -3661,7 +3658,7 @@ bool lgClipboardFiles_testLocalRequest(
|
||||
}
|
||||
#endif
|
||||
|
||||
void lgClipboardFiles_free(void)
|
||||
void clipboardFiles_free(void)
|
||||
{
|
||||
if (!filesLockInitialized)
|
||||
return;
|
||||
|
||||
@@ -723,7 +723,7 @@ static void preSwapCallback(void * udata)
|
||||
if (!written)
|
||||
DEBUG_ERROR("Failed to write test capture to: %s", l_testCapture.path);
|
||||
else
|
||||
DEBUG_INFO("Wrote test capture for frame %" PRIu64 " to: %s",
|
||||
DEBUG_INFO("Wrote test capture for frame %lu to: %s",
|
||||
serial, l_testCapture.path);
|
||||
app_setState(APP_STATE_SHUTDOWN);
|
||||
#endif
|
||||
@@ -1142,13 +1142,13 @@ static int renderThread(void * unused)
|
||||
{
|
||||
lgInput_setTransport(NULL, NULL);
|
||||
lgAudio_setTransport(NULL, NULL);
|
||||
lgClipboard_setTransport(NULL, NULL);
|
||||
clipboard_setTransport(NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
lgInput_dropTransport();
|
||||
lgAudio_dropTransport();
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
}
|
||||
|
||||
core_stopVideoThreads();
|
||||
@@ -1206,7 +1206,7 @@ int main_cursorThread(void * unused)
|
||||
{
|
||||
lgInput_dropTransport();
|
||||
lgAudio_dropTransport();
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
primaryLost();
|
||||
}
|
||||
else
|
||||
@@ -1410,7 +1410,7 @@ int main_frameThread(void * unused)
|
||||
{
|
||||
lgInput_dropTransport();
|
||||
lgAudio_dropTransport();
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
primaryLost();
|
||||
}
|
||||
else if (status == LG_TRANSPORT_END)
|
||||
@@ -3322,7 +3322,7 @@ static int lg_run(void)
|
||||
frameTimingInit();
|
||||
lgInput_init();
|
||||
lgAudio_init();
|
||||
if (!lgClipboard_init())
|
||||
if (!clipboard_init())
|
||||
return -1;
|
||||
|
||||
#ifdef ENABLE_TESTS
|
||||
@@ -3654,7 +3654,7 @@ static int lg_run(void)
|
||||
g_state.ds->startup();
|
||||
const bool clipboardAvailable =
|
||||
g_state.ds->cbInit && g_state.ds->cbInit();
|
||||
lgClipboard_setLocalAvailable(clipboardAvailable);
|
||||
clipboard_setLocalAvailable(clipboardAvailable);
|
||||
|
||||
if (g_params.captureOnStart)
|
||||
core_setGrab(true);
|
||||
@@ -3876,7 +3876,7 @@ restart:
|
||||
g_state.transport.ops->getClipboardOps ?
|
||||
g_state.transport.ops->getClipboardOps(
|
||||
g_state.transport.handle, &clipboardOpaque) : NULL;
|
||||
lgClipboard_setTransport(clipboardOps, clipboardOpaque);
|
||||
clipboard_setTransport(clipboardOps, clipboardOpaque);
|
||||
|
||||
DEBUG_INFO("Starting session");
|
||||
atomic_store_explicit(
|
||||
@@ -3912,7 +3912,7 @@ restart:
|
||||
{
|
||||
lgInput_dropTransport();
|
||||
lgAudio_dropTransport();
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
primaryLost();
|
||||
break;
|
||||
}
|
||||
@@ -3942,7 +3942,7 @@ restart:
|
||||
videoSourceClearCursor(LG_VIDEO_SOURCE_PRIMARY);
|
||||
lgInput_dropTransport();
|
||||
lgAudio_dropTransport();
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
g_state.transport.ops->disconnect(g_state.transport.handle);
|
||||
|
||||
if (app_transitionState(APP_STATE_RESTART, APP_STATE_RUNNING))
|
||||
@@ -3999,19 +3999,19 @@ static void lg_shutdown(void)
|
||||
g_state.transport.ops->sessionValid(g_state.transport.handle))
|
||||
{
|
||||
lgAudio_setTransport(NULL, NULL);
|
||||
lgClipboard_setTransport(NULL, NULL);
|
||||
clipboard_setTransport(NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
lgAudio_dropTransport();
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
}
|
||||
lgTransport_destroy(&g_state.transport);
|
||||
}
|
||||
|
||||
lgInput_free();
|
||||
lgAudio_free();
|
||||
lgClipboard_setLocalAvailable(false);
|
||||
clipboard_setLocalAvailable(false);
|
||||
|
||||
if (e_startup)
|
||||
{
|
||||
@@ -4030,7 +4030,7 @@ static void lg_shutdown(void)
|
||||
|
||||
/* Clipboard sources own FUSE dataset references and are released by the
|
||||
* display server before the filesystem is unmounted. */
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
|
||||
// Input callbacks have stopped; the evdev state and overlays can go
|
||||
evdev_free();
|
||||
|
||||
@@ -229,13 +229,13 @@ static void unpublishProviders(LG_TransportFallback * fallback, bool live)
|
||||
{
|
||||
lgInput_setFallback(NULL, NULL);
|
||||
lgAudio_setFallback(NULL, NULL);
|
||||
lgClipboard_setFallback(NULL, NULL);
|
||||
clipboard_setFallback(NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
lgInput_dropFallback();
|
||||
lgAudio_dropFallback();
|
||||
lgClipboard_dropFallback();
|
||||
clipboard_dropFallback();
|
||||
}
|
||||
fallback->providersPublished = false;
|
||||
LG_UNLOCK(fallback->providerLock);
|
||||
@@ -322,7 +322,7 @@ static bool publishProviders(LG_TransportFallback * fallback)
|
||||
fallback->transport.ops->getClipboardOps ?
|
||||
fallback->transport.ops->getClipboardOps(
|
||||
fallback->transport.handle, &clipboardOpaque) : NULL;
|
||||
lgClipboard_setFallback(clipboardOps, clipboardOpaque);
|
||||
clipboard_setFallback(clipboardOps, clipboardOpaque);
|
||||
fallback->providersPublished = true;
|
||||
LG_UNLOCK_SHARED(fallback->lock);
|
||||
LG_UNLOCK(fallback->providerLock);
|
||||
|
||||
@@ -1817,8 +1817,8 @@ static void reportPlaybackDebug(LG_USBAudio * audio)
|
||||
!audio->playbackInvalidPackets)
|
||||
return;
|
||||
|
||||
DEBUG_INFO("USB playback: concealed %" PRIu64
|
||||
" packets, invalid %" PRIu64,
|
||||
DEBUG_INFO("USB playback: concealed %lu"
|
||||
" packets, invalid %lu",
|
||||
audio->playbackConcealedPackets,
|
||||
audio->playbackInvalidPackets);
|
||||
audio->playbackConcealedPackets = 0;
|
||||
|
||||
@@ -20,97 +20,97 @@
|
||||
|
||||
#include "core/clipboard_files.h"
|
||||
|
||||
unsigned lgClipboardFilesStubRemoteOfferCount;
|
||||
unsigned lgClipboardFilesStubRemoteClearCount;
|
||||
uint64_t lgClipboardFilesStubRemoteDataset;
|
||||
bool lgClipboardFilesStubRemoteReady;
|
||||
bool lgClipboardFilesStubRemoteOfferResult = true;
|
||||
unsigned clipboardFilesStubRemoteOfferCount;
|
||||
unsigned clipboardFilesStubRemoteClearCount;
|
||||
uint64_t clipboardFilesStubRemoteDataset;
|
||||
bool clipboardFilesStubRemoteReady;
|
||||
bool clipboardFilesStubRemoteOfferResult = true;
|
||||
|
||||
bool lgClipboardFiles_init(void) { return true; }
|
||||
void lgClipboardFiles_free(void) {}
|
||||
bool lgClipboardFiles_setLocal(const char * mime,
|
||||
bool clipboardFiles_init(void) { return true; }
|
||||
void clipboardFiles_free(void) {}
|
||||
bool clipboardFiles_setLocal(const char * mime,
|
||||
const void * data, size_t size)
|
||||
{
|
||||
(void)mime; (void)data; (void)size; return false;
|
||||
}
|
||||
void lgClipboardFiles_clearLocal(void) {}
|
||||
bool lgClipboardFiles_getRemote(const char * mime, char ** data, size_t * size)
|
||||
void clipboardFiles_clearLocal(void) {}
|
||||
bool clipboardFiles_getRemote(const char * mime, char ** data, size_t * size)
|
||||
{
|
||||
(void)mime; (void)data; (void)size; return false;
|
||||
}
|
||||
uint64_t lgClipboardFiles_remotePresentationAcquire(void) { return 0; }
|
||||
bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
uint64_t clipboardFiles_remotePresentationAcquire(void) { return 0; }
|
||||
bool clipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
const char * mime, char ** data, size_t * size)
|
||||
{
|
||||
(void)presentation; (void)mime; (void)data; (void)size; return false;
|
||||
}
|
||||
void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
{
|
||||
(void)presentation;
|
||||
}
|
||||
void lgClipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
{
|
||||
(void)presentation;
|
||||
}
|
||||
bool lgClipboardFiles_remoteReady(uint64_t dataset)
|
||||
bool clipboardFiles_remoteReady(uint64_t dataset)
|
||||
{
|
||||
return lgClipboardFilesStubRemoteReady &&
|
||||
dataset == lgClipboardFilesStubRemoteDataset;
|
||||
return clipboardFilesStubRemoteReady &&
|
||||
dataset == clipboardFilesStubRemoteDataset;
|
||||
}
|
||||
bool lgClipboardFiles_remoteOffer(uint64_t dataset)
|
||||
bool clipboardFiles_remoteOffer(uint64_t dataset)
|
||||
{
|
||||
++lgClipboardFilesStubRemoteOfferCount;
|
||||
lgClipboardFilesStubRemoteDataset = dataset;
|
||||
return lgClipboardFilesStubRemoteOfferResult;
|
||||
++clipboardFilesStubRemoteOfferCount;
|
||||
clipboardFilesStubRemoteDataset = dataset;
|
||||
return clipboardFilesStubRemoteOfferResult;
|
||||
}
|
||||
void lgClipboardFiles_remoteClear(void)
|
||||
void clipboardFiles_remoteClear(void)
|
||||
{
|
||||
++lgClipboardFilesStubRemoteClearCount;
|
||||
lgClipboardFilesStubRemoteDataset = 0;
|
||||
++clipboardFilesStubRemoteClearCount;
|
||||
clipboardFilesStubRemoteDataset = 0;
|
||||
}
|
||||
void lgClipboardFiles_providerUnavailable(void) {}
|
||||
void lgClipboardFiles_remoteAcquired(uint64_t dataset,
|
||||
void clipboardFiles_providerUnavailable(void) {}
|
||||
void clipboardFiles_remoteAcquired(uint64_t dataset,
|
||||
uint64_t acquisition, LG_ClipboardFileError error)
|
||||
{
|
||||
(void)dataset; (void)acquisition; (void)error;
|
||||
}
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataBegin(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataBegin(
|
||||
const LG_ClipboardFileRequest * request, uint64_t sizeHint)
|
||||
{
|
||||
(void)request; (void)sizeHint; return LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataChunk(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataChunk(
|
||||
const LG_ClipboardFileRequest * request, uint64_t offset,
|
||||
const void * data, size_t size)
|
||||
{
|
||||
(void)request; (void)offset; (void)data; (void)size;
|
||||
return LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
LG_ClipboardResult lgClipboardFiles_remoteDataEnd(
|
||||
LG_ClipboardResult clipboardFiles_remoteDataEnd(
|
||||
const LG_ClipboardFileRequest * request, uint64_t size)
|
||||
{
|
||||
(void)request; (void)size; return LG_CLIPBOARD_RESULT_FAILED;
|
||||
}
|
||||
void lgClipboardFiles_remoteCancel(uint64_t dataset,
|
||||
void clipboardFiles_remoteCancel(uint64_t dataset,
|
||||
uint64_t request, LG_ClipboardFileError reason)
|
||||
{
|
||||
(void)dataset; (void)request; (void)reason;
|
||||
}
|
||||
void lgClipboardFiles_localAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
void clipboardFiles_localAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
{
|
||||
(void)dataset; (void)acquisition;
|
||||
}
|
||||
void lgClipboardFiles_localRelease(uint64_t dataset, uint64_t acquisition)
|
||||
void clipboardFiles_localRelease(uint64_t dataset, uint64_t acquisition)
|
||||
{
|
||||
(void)dataset; (void)acquisition;
|
||||
}
|
||||
void lgClipboardFiles_localRequest(const LG_ClipboardFileRequest * request)
|
||||
void clipboardFiles_localRequest(const LG_ClipboardFileRequest * request)
|
||||
{
|
||||
(void)request;
|
||||
}
|
||||
void lgClipboardFiles_localCancel(uint64_t dataset,
|
||||
void clipboardFiles_localCancel(uint64_t dataset,
|
||||
uint64_t request, LG_ClipboardFileError reason)
|
||||
{
|
||||
(void)dataset; (void)request; (void)reason;
|
||||
}
|
||||
void lgClipboardFiles_localReady(uint64_t request) { (void)request; }
|
||||
void clipboardFiles_localReady(uint64_t request) { (void)request; }
|
||||
|
||||
@@ -59,13 +59,13 @@ static uint64_t cancelledDataset;
|
||||
static uint64_t cancelledRequest;
|
||||
static LG_ClipboardFileError cancelledReason;
|
||||
|
||||
void lgClipboard_notifyFiles(uint64_t dataset)
|
||||
void clipboard_notifyFiles(uint64_t dataset)
|
||||
{
|
||||
CHECK(notices < sizeof(datasets) / sizeof(datasets[0]));
|
||||
datasets[notices++] = dataset;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
bool clipboard_fileAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
{
|
||||
++acquireCount;
|
||||
acquiredDataset = dataset;
|
||||
@@ -73,7 +73,7 @@ bool lgClipboard_fileAcquire(uint64_t dataset, uint64_t acquisition)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
bool clipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
LG_ClipboardFileError error)
|
||||
{
|
||||
(void)dataset;
|
||||
@@ -82,7 +82,7 @@ bool lgClipboard_fileAcquired(uint64_t dataset, uint64_t acquisition,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileRelease(uint64_t dataset, uint64_t acquisition)
|
||||
bool clipboard_fileRelease(uint64_t dataset, uint64_t acquisition)
|
||||
{
|
||||
++releaseCount;
|
||||
releasedDataset = dataset;
|
||||
@@ -90,7 +90,7 @@ bool lgClipboard_fileRelease(uint64_t dataset, uint64_t acquisition)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileRequest(const LG_ClipboardFileRequest * request)
|
||||
bool clipboard_fileRequest(const LG_ClipboardFileRequest * request)
|
||||
{
|
||||
CHECK(request);
|
||||
++requestCount;
|
||||
@@ -98,7 +98,7 @@ bool lgClipboard_fileRequest(const LG_ClipboardFileRequest * request)
|
||||
return remoteRequestSucceeds;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_fileDataBegin(
|
||||
LG_ClipboardResult clipboard_fileDataBegin(
|
||||
const LG_ClipboardFileRequest * request, uint64_t sizeHint)
|
||||
{
|
||||
CHECK(request);
|
||||
@@ -110,7 +110,7 @@ LG_ClipboardResult lgClipboard_fileDataBegin(
|
||||
return LG_CLIPBOARD_RESULT_ACCEPTED;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_fileDataChunk(
|
||||
LG_ClipboardResult clipboard_fileDataChunk(
|
||||
const LG_ClipboardFileRequest * request, uint64_t responseOffset,
|
||||
const void * data, size_t size, bool end)
|
||||
{
|
||||
@@ -135,7 +135,7 @@ LG_ClipboardResult lgClipboard_fileDataChunk(
|
||||
return LG_CLIPBOARD_RESULT_ACCEPTED;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_fileDataEnd(
|
||||
LG_ClipboardResult clipboard_fileDataEnd(
|
||||
const LG_ClipboardFileRequest * request, uint64_t finalSize)
|
||||
{
|
||||
CHECK(request);
|
||||
@@ -147,7 +147,7 @@ LG_ClipboardResult lgClipboard_fileDataEnd(
|
||||
return LG_CLIPBOARD_RESULT_ACCEPTED;
|
||||
}
|
||||
|
||||
bool lgClipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
bool clipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
LG_ClipboardFileError reason)
|
||||
{
|
||||
++cancelCount;
|
||||
@@ -157,13 +157,13 @@ bool lgClipboard_fileCancel(uint64_t dataset, uint64_t request,
|
||||
return true;
|
||||
}
|
||||
|
||||
void lgClipboard_fileRemoteReady(uint64_t dataset)
|
||||
void clipboard_fileRemoteReady(uint64_t dataset)
|
||||
{
|
||||
CHECK(dataset == acquiredDataset);
|
||||
++remoteReadyCount;
|
||||
}
|
||||
|
||||
void lgClipboard_fileRemoteFailed(uint64_t dataset)
|
||||
void clipboard_fileRemoteFailed(uint64_t dataset)
|
||||
{
|
||||
CHECK(dataset);
|
||||
++remoteFailedCount;
|
||||
@@ -191,7 +191,7 @@ static bool runLocalRequest(uint64_t dataset, uint64_t node,
|
||||
.length = length,
|
||||
.operation = operation,
|
||||
};
|
||||
const bool result = lgClipboardFiles_testLocalRequest(&request);
|
||||
const bool result = clipboardFiles_testLocalRequest(&request);
|
||||
CHECK(!result || responseComplete);
|
||||
CHECK(!result || !responseSize || responseWireEnded);
|
||||
CHECK(result ? cancelCount == 0U : cancelCount == 1U);
|
||||
@@ -251,40 +251,40 @@ static void testLocalLifecycle(void)
|
||||
CHECK(write(fd, "clipboard", 9) == 9);
|
||||
CHECK(close(fd) == 0);
|
||||
|
||||
CHECK(lgClipboardFiles_testInit(UINT64_C(0x1234000012340000)));
|
||||
CHECK(clipboardFiles_testInit(UINT64_C(0x1234000012340000)));
|
||||
char uri[320];
|
||||
const int uriLength = snprintf(uri, sizeof(uri), "file://%s\r\n", path);
|
||||
CHECK(uriLength > 0 && (size_t)uriLength < sizeof(uri));
|
||||
CHECK(lgClipboardFiles_setLocal(
|
||||
CHECK(clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)uriLength));
|
||||
CHECK(notices == 1);
|
||||
CHECK(datasets[0] != 0);
|
||||
CHECK(kvmfrClipboardTransferFromClient(datasets[0]));
|
||||
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_clearLocal();
|
||||
char gnome[336];
|
||||
const int gnomeLength = snprintf(
|
||||
gnome, sizeof(gnome), "copy\nfile://%s\n", path);
|
||||
CHECK(gnomeLength > 0 && (size_t)gnomeLength < sizeof(gnome));
|
||||
CHECK(lgClipboardFiles_setLocal("x-special/gnome-copied-files",
|
||||
CHECK(clipboardFiles_setLocal("x-special/gnome-copied-files",
|
||||
gnome, (size_t)gnomeLength));
|
||||
CHECK(notices == 2);
|
||||
CHECK(datasets[1] != datasets[0]);
|
||||
|
||||
static const char invalid[] = "file:///does/not/exist\n";
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", invalid, sizeof(invalid) - 1U));
|
||||
lgClipboardFiles_clearLocal();
|
||||
lgClipboardFiles_free();
|
||||
lgClipboardFiles_free();
|
||||
clipboardFiles_clearLocal();
|
||||
clipboardFiles_free();
|
||||
clipboardFiles_free();
|
||||
|
||||
CHECK(lgClipboardFiles_testInit(UINT64_C(0x5678000056780000)));
|
||||
CHECK(lgClipboardFiles_setLocal(
|
||||
CHECK(clipboardFiles_testInit(UINT64_C(0x5678000056780000)));
|
||||
CHECK(clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)uriLength));
|
||||
CHECK(notices == 3);
|
||||
CHECK(datasets[2] != datasets[0]);
|
||||
CHECK(datasets[2] != datasets[1]);
|
||||
lgClipboardFiles_free();
|
||||
clipboardFiles_free();
|
||||
|
||||
CHECK(unlink(path) == 0);
|
||||
CHECK(rmdir(directory) == 0);
|
||||
@@ -309,81 +309,81 @@ static void testLocalUriValidation(void)
|
||||
CHECK(symlink("item.txt", link) == 0);
|
||||
CHECK(symlink(".", alias) == 0);
|
||||
|
||||
CHECK(lgClipboardFiles_testInit(UINT64_C(0x684b2452684b2452)));
|
||||
CHECK(clipboardFiles_testInit(UINT64_C(0x684b2452684b2452)));
|
||||
const unsigned before = notices;
|
||||
char uri[512];
|
||||
int length = snprintf(uri, sizeof(uri),
|
||||
"FILE://LOCALHOST%s/item%%20space.txt\r\n", directory);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(lgClipboardFiles_setLocal(
|
||||
CHECK(clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_clearLocal();
|
||||
|
||||
length = snprintf(uri, sizeof(uri), "file://%s%%\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s%%0\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s%%GG\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s%%00suffix\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s?query\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s#fragment\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://example.invalid%s\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
static const char root[] = "file:///\n";
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", root, sizeof(root) - 1U));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s/\n", directory);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(lgClipboardFiles_setLocal(
|
||||
CHECK(clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
lgClipboardFiles_clearLocal();
|
||||
clipboardFiles_clearLocal();
|
||||
length = snprintf(uri, sizeof(uri), "file://%s/./item.txt\n", directory);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s//item.txt\n", directory);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s\n", link);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri),
|
||||
"file://%s/alias/item.txt\n", directory);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri), "file://%s\n", spaced);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)length));
|
||||
length = snprintf(uri, sizeof(uri),
|
||||
"cutx\nfile://%s\n", plain);
|
||||
CHECK(length > 0 && (size_t)length < sizeof(uri));
|
||||
CHECK(!lgClipboardFiles_setLocal(
|
||||
CHECK(!clipboardFiles_setLocal(
|
||||
"x-special/gnome-copied-files", uri, (size_t)length));
|
||||
CHECK(notices == before + 2U);
|
||||
|
||||
lgClipboardFiles_free();
|
||||
clipboardFiles_free();
|
||||
CHECK(unlink(alias) == 0);
|
||||
CHECK(unlink(link) == 0);
|
||||
CHECK(unlink(spaced) == 0);
|
||||
@@ -404,12 +404,12 @@ static void testLocalSnapshot(void)
|
||||
createFile(stable, "stable");
|
||||
createFile(changed, "before");
|
||||
|
||||
CHECK(lgClipboardFiles_testInit(UINT64_C(0x1a72021b1a72021b)));
|
||||
CHECK(clipboardFiles_testInit(UINT64_C(0x1a72021b1a72021b)));
|
||||
char uri[320];
|
||||
const int uriLength = snprintf(
|
||||
uri, sizeof(uri), "file://%s\r\n", directory);
|
||||
CHECK(uriLength > 0 && (size_t)uriLength < sizeof(uri));
|
||||
CHECK(lgClipboardFiles_setLocal(
|
||||
CHECK(clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)uriLength));
|
||||
const uint64_t dataset = datasets[notices - 1U];
|
||||
|
||||
@@ -441,7 +441,7 @@ static void testLocalSnapshot(void)
|
||||
LG_CLIPBOARD_FILE_READ, 0, (uint32_t)stableEntry.size));
|
||||
CHECK(responseSize == strlen("stable"));
|
||||
CHECK(!memcmp(responseData, "stable", responseSize));
|
||||
lgClipboardFiles_testForceLocalEof();
|
||||
clipboardFiles_testForceLocalEof();
|
||||
CHECK(!runLocalRequest(dataset, stableEntry.node,
|
||||
LG_CLIPBOARD_FILE_READ, 0, (uint32_t)stableEntry.size));
|
||||
CHECK(cancelledReason == LG_CLIPBOARD_FILE_ERROR_IO);
|
||||
@@ -476,7 +476,7 @@ static void testLocalSnapshot(void)
|
||||
LG_CLIPBOARD_FILE_READ, 0, (uint32_t)stableEntry.size));
|
||||
CHECK(cancelledReason == LG_CLIPBOARD_FILE_ERROR_STALE);
|
||||
|
||||
lgClipboardFiles_free();
|
||||
clipboardFiles_free();
|
||||
CHECK(unlink(replacement) == 0);
|
||||
CHECK(rmdir(directory) == 0);
|
||||
CHECK(unlink(movedStable) == 0);
|
||||
@@ -500,12 +500,12 @@ static void testLocalUnsupportedEntry(void)
|
||||
CHECK(symlink("target.txt", link) == 0);
|
||||
CHECK(mkfifo(fifo, 0600) == 0);
|
||||
|
||||
CHECK(lgClipboardFiles_testInit(UINT64_C(0x62d1147362d11473)));
|
||||
CHECK(clipboardFiles_testInit(UINT64_C(0x62d1147362d11473)));
|
||||
char uri[320];
|
||||
const int uriLength = snprintf(
|
||||
uri, sizeof(uri), "file://%s\r\n", directory);
|
||||
CHECK(uriLength > 0 && (size_t)uriLength < sizeof(uri));
|
||||
CHECK(lgClipboardFiles_setLocal(
|
||||
CHECK(clipboardFiles_setLocal(
|
||||
"text/uri-list", uri, (size_t)uriLength));
|
||||
const uint64_t dataset = datasets[notices - 1U];
|
||||
CHECK(runLocalRequest(dataset, KVMFR_CLIPBOARD_FILE_ROOT_NODE,
|
||||
@@ -518,7 +518,7 @@ static void testLocalUnsupportedEntry(void)
|
||||
LG_CLIPBOARD_FILE_LIST, 0, 0));
|
||||
CHECK(cancelledReason == LG_CLIPBOARD_FILE_ERROR_NOT_SUPPORTED);
|
||||
|
||||
lgClipboardFiles_free();
|
||||
clipboardFiles_free();
|
||||
CHECK(unlink(fifo) == 0);
|
||||
CHECK(unlink(link) == 0);
|
||||
CHECK(unlink(target) == 0);
|
||||
@@ -530,12 +530,12 @@ static uint64_t completeRemoteOffer(uint64_t dataset, const char * name)
|
||||
const unsigned previousAcquires = acquireCount;
|
||||
const unsigned previousRequests = requestCount;
|
||||
const unsigned previousReady = remoteReadyCount;
|
||||
CHECK(lgClipboardFiles_remoteOffer(dataset));
|
||||
CHECK(clipboardFiles_remoteOffer(dataset));
|
||||
CHECK(acquireCount == previousAcquires + 1U);
|
||||
CHECK(acquiredDataset == dataset);
|
||||
const uint64_t acquisition = acquiredRequest;
|
||||
|
||||
lgClipboardFiles_remoteAcquired(dataset, acquisition,
|
||||
clipboardFiles_remoteAcquired(dataset, acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_NONE);
|
||||
CHECK(requestCount == previousRequests + 1U);
|
||||
CHECK(remoteRequest.dataset == dataset);
|
||||
@@ -558,22 +558,22 @@ static uint64_t completeRemoteOffer(uint64_t dataset, const char * name)
|
||||
};
|
||||
memcpy(wire, &entry, sizeof(entry));
|
||||
memcpy(wire + sizeof(entry), name, nameLength);
|
||||
CHECK(lgClipboardFiles_remoteDataBegin(
|
||||
CHECK(clipboardFiles_remoteDataBegin(
|
||||
&remoteRequest, wireSize) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboardFiles_remoteDataChunk(&remoteRequest, 0,
|
||||
CHECK(clipboardFiles_remoteDataChunk(&remoteRequest, 0,
|
||||
wire, (size_t)wireSize) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboardFiles_remoteDataEnd(
|
||||
CHECK(clipboardFiles_remoteDataEnd(
|
||||
&remoteRequest, wireSize) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
free(wire);
|
||||
CHECK(remoteReadyCount == previousReady + 1U);
|
||||
CHECK(lgClipboardFiles_remoteReady(dataset));
|
||||
CHECK(clipboardFiles_remoteReady(dataset));
|
||||
return acquisition;
|
||||
}
|
||||
|
||||
static uint64_t beginRemoteOffer(uint64_t dataset)
|
||||
{
|
||||
const unsigned previousAcquires = acquireCount;
|
||||
CHECK(lgClipboardFiles_remoteOffer(dataset));
|
||||
CHECK(clipboardFiles_remoteOffer(dataset));
|
||||
CHECK(acquireCount == previousAcquires + 1U);
|
||||
CHECK(acquiredDataset == dataset);
|
||||
return acquiredRequest;
|
||||
@@ -584,7 +584,7 @@ static LG_ClipboardFileRequest beginRemoteList(uint64_t dataset,
|
||||
{
|
||||
const unsigned previousRequests = requestCount;
|
||||
*acquisition = beginRemoteOffer(dataset);
|
||||
lgClipboardFiles_remoteAcquired(dataset, *acquisition,
|
||||
clipboardFiles_remoteAcquired(dataset, *acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_NONE);
|
||||
CHECK(requestCount == previousRequests + 1U);
|
||||
CHECK(remoteRequest.dataset == dataset);
|
||||
@@ -601,12 +601,12 @@ static void checkRemoteFailure(uint64_t dataset,
|
||||
CHECK(releaseCount == previousReleases + (acquired ? 1U : 0U));
|
||||
if (acquired)
|
||||
CHECK(releasedDataset == dataset);
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
}
|
||||
|
||||
static void testRemoteFailures(void)
|
||||
{
|
||||
CHECK(lgClipboardFiles_testInit(UINT64_C(0x7315000073150000)));
|
||||
CHECK(clipboardFiles_testInit(UINT64_C(0x7315000073150000)));
|
||||
acquireCount = 0;
|
||||
releaseCount = 0;
|
||||
requestCount = 0;
|
||||
@@ -619,7 +619,7 @@ static void testRemoteFailures(void)
|
||||
uint64_t acquisition = beginRemoteOffer(dataset);
|
||||
unsigned previousFailures = remoteFailedCount;
|
||||
unsigned previousReleases = releaseCount;
|
||||
lgClipboardFiles_remoteAcquired(dataset, acquisition,
|
||||
clipboardFiles_remoteAcquired(dataset, acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_ACCESS);
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, false);
|
||||
|
||||
@@ -627,7 +627,7 @@ static void testRemoteFailures(void)
|
||||
acquisition = beginRemoteOffer(dataset);
|
||||
previousFailures = remoteFailedCount;
|
||||
previousReleases = releaseCount;
|
||||
lgClipboardFiles_remoteCancel(dataset, acquisition,
|
||||
clipboardFiles_remoteCancel(dataset, acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_CANCELLED);
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, false);
|
||||
|
||||
@@ -635,7 +635,7 @@ static void testRemoteFailures(void)
|
||||
LG_ClipboardFileRequest request = beginRemoteList(dataset, &acquisition);
|
||||
previousFailures = remoteFailedCount;
|
||||
previousReleases = releaseCount;
|
||||
lgClipboardFiles_remoteCancel(dataset, request.request,
|
||||
clipboardFiles_remoteCancel(dataset, request.request,
|
||||
LG_CLIPBOARD_FILE_ERROR_CANCELLED);
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, true);
|
||||
|
||||
@@ -644,7 +644,7 @@ static void testRemoteFailures(void)
|
||||
previousFailures = remoteFailedCount;
|
||||
previousReleases = releaseCount;
|
||||
remoteRequestSucceeds = false;
|
||||
lgClipboardFiles_remoteAcquired(dataset, acquisition,
|
||||
clipboardFiles_remoteAcquired(dataset, acquisition,
|
||||
LG_CLIPBOARD_FILE_ERROR_NONE);
|
||||
remoteRequestSucceeds = true;
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, true);
|
||||
@@ -655,27 +655,27 @@ static void testRemoteFailures(void)
|
||||
malformed.node += 1U;
|
||||
previousFailures = remoteFailedCount;
|
||||
previousReleases = releaseCount;
|
||||
CHECK(lgClipboardFiles_remoteDataBegin(&malformed, 0) ==
|
||||
CHECK(clipboardFiles_remoteDataBegin(&malformed, 0) ==
|
||||
LG_CLIPBOARD_RESULT_FAILED);
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, true);
|
||||
|
||||
dataset += 1U;
|
||||
request = beginRemoteList(dataset, &acquisition);
|
||||
CHECK(lgClipboardFiles_remoteDataBegin(&request, 1) ==
|
||||
CHECK(clipboardFiles_remoteDataBegin(&request, 1) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
previousFailures = remoteFailedCount;
|
||||
previousReleases = releaseCount;
|
||||
CHECK(lgClipboardFiles_remoteDataChunk(&request, 0, NULL, 1) ==
|
||||
CHECK(clipboardFiles_remoteDataChunk(&request, 0, NULL, 1) ==
|
||||
LG_CLIPBOARD_RESULT_FAILED);
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, true);
|
||||
|
||||
dataset += 1U;
|
||||
request = beginRemoteList(dataset, &acquisition);
|
||||
CHECK(lgClipboardFiles_remoteDataBegin(&request, 1) ==
|
||||
CHECK(clipboardFiles_remoteDataBegin(&request, 1) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
previousFailures = remoteFailedCount;
|
||||
previousReleases = releaseCount;
|
||||
CHECK(lgClipboardFiles_remoteDataEnd(&request, 0) ==
|
||||
CHECK(clipboardFiles_remoteDataEnd(&request, 0) ==
|
||||
LG_CLIPBOARD_RESULT_FAILED);
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, true);
|
||||
|
||||
@@ -695,25 +695,25 @@ static void testRemoteFailures(void)
|
||||
};
|
||||
memcpy(wire, &entry, sizeof(entry));
|
||||
memcpy(wire + sizeof(entry), invalidName, sizeof(invalidName) - 1U);
|
||||
CHECK(lgClipboardFiles_remoteDataBegin(&request, wireSize) ==
|
||||
CHECK(clipboardFiles_remoteDataBegin(&request, wireSize) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboardFiles_remoteDataChunk(&request, 0, wire, wireSize) ==
|
||||
CHECK(clipboardFiles_remoteDataChunk(&request, 0, wire, wireSize) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
previousFailures = remoteFailedCount;
|
||||
previousReleases = releaseCount;
|
||||
CHECK(lgClipboardFiles_remoteDataEnd(&request, wireSize) ==
|
||||
CHECK(clipboardFiles_remoteDataEnd(&request, wireSize) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
free(wire);
|
||||
checkRemoteFailure(dataset, previousFailures, previousReleases, true);
|
||||
|
||||
lgClipboardFiles_free();
|
||||
clipboardFiles_free();
|
||||
}
|
||||
|
||||
static void checkRemoteUri(uint64_t presentation, const char * name)
|
||||
{
|
||||
char * uri = NULL;
|
||||
size_t size = 0;
|
||||
CHECK(lgClipboardFiles_getRemotePresentation(
|
||||
CHECK(clipboardFiles_getRemotePresentation(
|
||||
presentation, "text/uri-list", &uri, &size));
|
||||
CHECK(uri);
|
||||
CHECK(size == strlen(uri));
|
||||
@@ -733,7 +733,7 @@ static void * releasePresentation(void * opaque)
|
||||
ReleasePresentationTask * task = opaque;
|
||||
const int result = pthread_barrier_wait(task->barrier);
|
||||
CHECK(result == 0 || result == PTHREAD_BARRIER_SERIAL_THREAD);
|
||||
lgClipboardFiles_remotePresentationRelease(task->presentation);
|
||||
clipboardFiles_remotePresentationRelease(task->presentation);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -759,9 +759,9 @@ static void releasePresentationConcurrently(uint64_t presentation)
|
||||
|
||||
static void testRemoteLifecycle(void)
|
||||
{
|
||||
CHECK(lgClipboardFiles_testFuseStopWake());
|
||||
CHECK(lgClipboardFiles_testInit(UINT64_C(0x7311000073110000)));
|
||||
CHECK(lgClipboardFiles_testUnsentRemoteOwnership());
|
||||
CHECK(clipboardFiles_testFuseStopWake());
|
||||
CHECK(clipboardFiles_testInit(UINT64_C(0x7311000073110000)));
|
||||
CHECK(clipboardFiles_testUnsentRemoteOwnership());
|
||||
acquireCount = 0;
|
||||
releaseCount = 0;
|
||||
requestCount = 0;
|
||||
@@ -772,59 +772,59 @@ static void testRemoteLifecycle(void)
|
||||
UINT64_C(0x73110001);
|
||||
const uint64_t first = completeRemoteOffer(firstDataset, "first.txt");
|
||||
|
||||
CHECK(lgClipboardFiles_testRemoteRead(first, 2, 0, 9));
|
||||
CHECK(clipboardFiles_testRemoteRead(first, 2, 0, 9));
|
||||
LG_ClipboardFileRequest shortRead = remoteRequest;
|
||||
CHECK(lgClipboardFiles_remoteDataBegin(&shortRead, 8) ==
|
||||
CHECK(clipboardFiles_remoteDataBegin(&shortRead, 8) ==
|
||||
LG_CLIPBOARD_RESULT_FAILED);
|
||||
|
||||
CHECK(lgClipboardFiles_testRemoteRead(first, 2, 0, 9));
|
||||
CHECK(clipboardFiles_testRemoteRead(first, 2, 0, 9));
|
||||
shortRead = remoteRequest;
|
||||
CHECK(lgClipboardFiles_remoteDataBegin(&shortRead, 9) ==
|
||||
CHECK(clipboardFiles_remoteDataBegin(&shortRead, 9) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
const uint8_t shortData[8] = { 0 };
|
||||
CHECK(lgClipboardFiles_remoteDataChunk(&shortRead, 0,
|
||||
CHECK(clipboardFiles_remoteDataChunk(&shortRead, 0,
|
||||
shortData, sizeof(shortData)) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboardFiles_remoteDataEnd(&shortRead, sizeof(shortData)) ==
|
||||
CHECK(clipboardFiles_remoteDataEnd(&shortRead, sizeof(shortData)) ==
|
||||
LG_CLIPBOARD_RESULT_FAILED);
|
||||
|
||||
const uint64_t firstPresentation =
|
||||
lgClipboardFiles_remotePresentationAcquire();
|
||||
clipboardFiles_remotePresentationAcquire();
|
||||
CHECK(firstPresentation == first);
|
||||
checkRemoteUri(firstPresentation, "first.txt");
|
||||
|
||||
const uint64_t secondDataset = KVMFR_CLIPBOARD_TRANSFER_HELPER |
|
||||
UINT64_C(0x73110002);
|
||||
completeRemoteOffer(secondDataset, "second.txt");
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 2U);
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 2U);
|
||||
CHECK(releaseCount == 0U);
|
||||
checkRemoteUri(firstPresentation, "first.txt");
|
||||
lgClipboardFiles_remotePresentationRelease(firstPresentation);
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
clipboardFiles_remotePresentationRelease(firstPresentation);
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
CHECK(releaseCount == 1U);
|
||||
CHECK(releasedDataset == firstDataset);
|
||||
CHECK(releasedAcquisition == first);
|
||||
|
||||
const uint64_t secondPresentation =
|
||||
lgClipboardFiles_remotePresentationAcquire();
|
||||
clipboardFiles_remotePresentationAcquire();
|
||||
CHECK(secondPresentation != 0);
|
||||
checkRemoteUri(secondPresentation, "second.txt");
|
||||
lgClipboardFiles_remotePresentationDelivered(secondPresentation);
|
||||
lgClipboardFiles_remotePresentationRelease(secondPresentation);
|
||||
clipboardFiles_remotePresentationDelivered(secondPresentation);
|
||||
clipboardFiles_remotePresentationRelease(secondPresentation);
|
||||
const uint64_t thirdDataset = KVMFR_CLIPBOARD_TRANSFER_HELPER |
|
||||
UINT64_C(0x73110003);
|
||||
completeRemoteOffer(thirdDataset, "third.txt");
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 2U);
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 2U);
|
||||
CHECK(releaseCount == 1U);
|
||||
CHECK(lgClipboardFiles_testBeginRemoteLookup(secondPresentation));
|
||||
lgClipboardFiles_testExpireRemoteDeliveries();
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 2U);
|
||||
CHECK(clipboardFiles_testBeginRemoteLookup(secondPresentation));
|
||||
clipboardFiles_testExpireRemoteDeliveries();
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 2U);
|
||||
CHECK(releaseCount == 1U);
|
||||
lgClipboardFiles_testEndRemoteLookup(secondPresentation);
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
clipboardFiles_testEndRemoteLookup(secondPresentation);
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
CHECK(releaseCount == 2U);
|
||||
CHECK(releasedDataset == secondDataset);
|
||||
lgClipboardFiles_remoteClear();
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
clipboardFiles_remoteClear();
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
CHECK(releaseCount == 3U);
|
||||
|
||||
for (uint64_t i = 0; i < 10; ++i)
|
||||
@@ -834,16 +834,16 @@ static void testRemoteLifecycle(void)
|
||||
const uint64_t acquisition =
|
||||
completeRemoteOffer(dataset, "grace.txt");
|
||||
const uint64_t presentation =
|
||||
lgClipboardFiles_remotePresentationAcquire();
|
||||
clipboardFiles_remotePresentationAcquire();
|
||||
CHECK(presentation == acquisition);
|
||||
checkRemoteUri(presentation, "grace.txt");
|
||||
lgClipboardFiles_remotePresentationDelivered(presentation);
|
||||
lgClipboardFiles_remotePresentationRelease(presentation);
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() <= 5U);
|
||||
clipboardFiles_remotePresentationDelivered(presentation);
|
||||
clipboardFiles_remotePresentationRelease(presentation);
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() <= 5U);
|
||||
}
|
||||
lgClipboardFiles_remoteClear();
|
||||
lgClipboardFiles_testExpireRemoteDeliveries();
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
clipboardFiles_remoteClear();
|
||||
clipboardFiles_testExpireRemoteDeliveries();
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
|
||||
for (uint64_t i = 0; i < 16; ++i)
|
||||
{
|
||||
@@ -852,7 +852,7 @@ static void testRemoteLifecycle(void)
|
||||
const uint64_t oldAcquisition =
|
||||
completeRemoteOffer(oldDataset, "old.txt");
|
||||
const uint64_t presentation =
|
||||
lgClipboardFiles_remotePresentationAcquire();
|
||||
clipboardFiles_remotePresentationAcquire();
|
||||
CHECK(presentation == oldAcquisition);
|
||||
const uint64_t currentDataset = oldDataset + 1U;
|
||||
completeRemoteOffer(currentDataset, "current.txt");
|
||||
@@ -860,27 +860,27 @@ static void testRemoteLifecycle(void)
|
||||
releasePresentationConcurrently(presentation);
|
||||
CHECK(releaseCount == previousReleases + 1U);
|
||||
CHECK(releasedDataset == oldDataset);
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
lgClipboardFiles_remoteClear();
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
clipboardFiles_remoteClear();
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
}
|
||||
|
||||
const uint64_t pendingDataset = KVMFR_CLIPBOARD_TRANSFER_HELPER |
|
||||
UINT64_C(0x73140001);
|
||||
CHECK(lgClipboardFiles_remoteOffer(pendingDataset));
|
||||
CHECK(clipboardFiles_remoteOffer(pendingDataset));
|
||||
CHECK(acquiredDataset == pendingDataset);
|
||||
const uint64_t pendingAcquisition = acquiredRequest;
|
||||
const uint64_t replacementDataset = pendingDataset + 1U;
|
||||
const unsigned previousCancels = cancelCount;
|
||||
CHECK(lgClipboardFiles_remoteOffer(replacementDataset));
|
||||
CHECK(clipboardFiles_remoteOffer(replacementDataset));
|
||||
CHECK(cancelCount == previousCancels + 1U);
|
||||
CHECK(cancelledDataset == pendingDataset);
|
||||
CHECK(cancelledRequest == pendingAcquisition);
|
||||
CHECK(cancelledReason == LG_CLIPBOARD_FILE_ERROR_CANCELLED);
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
lgClipboardFiles_remoteClear();
|
||||
CHECK(lgClipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
lgClipboardFiles_free();
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 1U);
|
||||
clipboardFiles_remoteClear();
|
||||
CHECK(clipboardFiles_testRemoteDatasetCount() == 0U);
|
||||
clipboardFiles_free();
|
||||
}
|
||||
|
||||
static int testMount(void)
|
||||
@@ -889,8 +889,8 @@ static int testMount(void)
|
||||
return 77;
|
||||
if (!getenv("XDG_RUNTIME_DIR"))
|
||||
CHECK(setenv("XDG_RUNTIME_DIR", "/tmp", 1) == 0);
|
||||
CHECK(lgClipboardFiles_init());
|
||||
lgClipboardFiles_free();
|
||||
CHECK(clipboardFiles_init());
|
||||
clipboardFiles_free();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -144,11 +144,11 @@ static struct Provider q;
|
||||
static struct Provider r;
|
||||
static struct Display d;
|
||||
|
||||
extern unsigned lgClipboardFilesStubRemoteOfferCount;
|
||||
extern unsigned lgClipboardFilesStubRemoteClearCount;
|
||||
extern uint64_t lgClipboardFilesStubRemoteDataset;
|
||||
extern bool lgClipboardFilesStubRemoteReady;
|
||||
extern bool lgClipboardFilesStubRemoteOfferResult;
|
||||
extern unsigned clipboardFilesStubRemoteOfferCount;
|
||||
extern unsigned clipboardFilesStubRemoteClearCount;
|
||||
extern uint64_t clipboardFilesStubRemoteDataset;
|
||||
extern bool clipboardFilesStubRemoteReady;
|
||||
extern bool clipboardFilesStubRemoteOfferResult;
|
||||
|
||||
struct AppState g_state;
|
||||
struct AppParams g_params;
|
||||
@@ -457,14 +457,14 @@ static void dsRequest(LG_ClipboardRequest id, LG_ClipboardData type)
|
||||
d.reqId[no] = id;
|
||||
d.reqType[no] = type;
|
||||
if (d.autoData)
|
||||
lgClipboard_data(id, d.autoType, d.autoBuf, d.autoSize);
|
||||
clipboard_data(id, d.autoType, d.autoBuf, d.autoSize);
|
||||
}
|
||||
|
||||
static void dsRequestReady(LG_ClipboardRequest id)
|
||||
{
|
||||
++d.ready;
|
||||
if (d.autoBegin)
|
||||
d.readyResult = lgClipboard_dataBegin(
|
||||
d.readyResult = clipboard_dataBegin(
|
||||
id, LG_CLIPBOARD_DATA_TEXT, LG_CLIPBOARD_SIZE_UNKNOWN);
|
||||
}
|
||||
|
||||
@@ -512,21 +512,21 @@ static void init(void)
|
||||
atomic_init(&d.blockCancel, false);
|
||||
atomic_init(&d.cancelEntered, false);
|
||||
atomic_init(&d.releaseCancel, false);
|
||||
lgClipboardFilesStubRemoteOfferCount = 0;
|
||||
lgClipboardFilesStubRemoteClearCount = 0;
|
||||
lgClipboardFilesStubRemoteDataset = 0;
|
||||
lgClipboardFilesStubRemoteReady = false;
|
||||
lgClipboardFilesStubRemoteOfferResult = true;
|
||||
clipboardFilesStubRemoteOfferCount = 0;
|
||||
clipboardFilesStubRemoteClearCount = 0;
|
||||
clipboardFilesStubRemoteDataset = 0;
|
||||
clipboardFilesStubRemoteReady = false;
|
||||
clipboardFilesStubRemoteOfferResult = true;
|
||||
g_state.ds = &dsOps;
|
||||
g_params.clipboardToVM = true;
|
||||
g_params.clipboardToLocal = true;
|
||||
CHECK(lgClipboard_init());
|
||||
lgClipboard_setLocalAvailable(true);
|
||||
CHECK(clipboard_init());
|
||||
clipboard_setLocalAvailable(true);
|
||||
}
|
||||
|
||||
static void bind(struct Provider * provider)
|
||||
{
|
||||
lgClipboard_setFallback(&plainOps, provider);
|
||||
clipboard_setFallback(&plainOps, provider);
|
||||
CHECK(provider->attach == 1);
|
||||
}
|
||||
|
||||
@@ -574,7 +574,7 @@ static void onReply(void * opaque, LG_ClipboardData type,
|
||||
CHECK(!buf);
|
||||
|
||||
if (type != LG_CLIPBOARD_DATA_NONE && reply->next)
|
||||
reply->nested = lgClipboard_request(
|
||||
reply->nested = clipboard_request(
|
||||
LG_CLIPBOARD_DATA_TEXT, onReply, reply->next);
|
||||
}
|
||||
|
||||
@@ -589,13 +589,13 @@ static void testPreference(void)
|
||||
{
|
||||
init();
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
|
||||
lgClipboard_setFallback(&statOps, &p);
|
||||
clipboard_setFallback(&statOps, &p);
|
||||
CHECK(p.attach == 1);
|
||||
CHECK(p.notice == 1);
|
||||
|
||||
lgClipboard_setTransport(&statOps, &q);
|
||||
clipboard_setTransport(&statOps, &q);
|
||||
CHECK(p.release == 1);
|
||||
CHECK(p.detach == 1);
|
||||
CHECK(q.attach == 1);
|
||||
@@ -611,7 +611,7 @@ static void testPreference(void)
|
||||
const LG_ClipboardStatusFn staleFn = q.statFn;
|
||||
void * staleCtx = q.statCtx;
|
||||
CHECK(staleFn);
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
CHECK(q.release == 0);
|
||||
CHECK(q.detach == 0);
|
||||
CHECK(p.attach == 2);
|
||||
@@ -624,68 +624,68 @@ static void testPreference(void)
|
||||
staleFn(staleCtx, &stale);
|
||||
CHECK(p.attach == 2);
|
||||
|
||||
lgClipboard_setTransport(&statOps, &r);
|
||||
clipboard_setTransport(&statOps, &r);
|
||||
CHECK(p.release == 2);
|
||||
CHECK(p.detach == 2);
|
||||
CHECK(r.attach == 1);
|
||||
lgClipboard_setTransport(NULL, NULL);
|
||||
clipboard_setTransport(NULL, NULL);
|
||||
CHECK(r.statClear == 1);
|
||||
CHECK(r.release == 1);
|
||||
CHECK(r.detach == 1);
|
||||
CHECK(p.attach == 3);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testFilePublication(void)
|
||||
{
|
||||
init();
|
||||
lgClipboard_setFallback(&fileOps, &p);
|
||||
clipboard_setFallback(&fileOps, &p);
|
||||
|
||||
const uint64_t dataset = UINT64_C(0x123456789abcdef);
|
||||
lgClipboard_notifyFiles(dataset);
|
||||
clipboard_notifyFiles(dataset);
|
||||
CHECK(p.fileOffer == 1);
|
||||
CHECK(p.fileDataset[0] == dataset);
|
||||
|
||||
const LG_ClipboardData files[] = { LG_CLIPBOARD_DATA_FILES };
|
||||
lgClipboard_notifyTypes(files, 1);
|
||||
clipboard_notifyTypes(files, 1);
|
||||
CHECK(p.notice == 0);
|
||||
CHECK(p.fileOffer == 1);
|
||||
|
||||
lgClipboard_setTransport(&plainOps, &r);
|
||||
clipboard_setTransport(&plainOps, &r);
|
||||
CHECK(r.attach == 1);
|
||||
CHECK(r.release == 1);
|
||||
const uint64_t replacement = dataset + 1U;
|
||||
lgClipboard_notifyFiles(replacement);
|
||||
clipboard_notifyFiles(replacement);
|
||||
CHECK(r.release == 2);
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
CHECK(p.attach == 2);
|
||||
CHECK(p.fileOffer == 2);
|
||||
CHECK(p.fileDataset[1] == replacement);
|
||||
|
||||
lgClipboard_setTransport(&fileOps, &q);
|
||||
clipboard_setTransport(&fileOps, &q);
|
||||
CHECK(q.attach == 1);
|
||||
CHECK(q.fileOffer == 1);
|
||||
CHECK(q.fileDataset[0] == replacement);
|
||||
|
||||
lgClipboard_dropTransport();
|
||||
clipboard_dropTransport();
|
||||
CHECK(p.attach == 3);
|
||||
CHECK(p.fileOffer == 3);
|
||||
CHECK(p.fileDataset[2] == replacement);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testFileReplacement(void)
|
||||
{
|
||||
init();
|
||||
bind(&p);
|
||||
lgClipboardFilesStubRemoteReady = true;
|
||||
clipboardFilesStubRemoteReady = true;
|
||||
|
||||
const uint64_t first = UINT64_C(0x2000000000000001);
|
||||
p.ev->fileOffer(p.evCtx, first);
|
||||
CHECK(lgClipboardFilesStubRemoteOfferCount == 1);
|
||||
CHECK(lgClipboardFilesStubRemoteDataset == first);
|
||||
CHECK(clipboardFilesStubRemoteOfferCount == 1);
|
||||
CHECK(clipboardFilesStubRemoteDataset == first);
|
||||
const LG_ClipboardData files[] = { LG_CLIPBOARD_DATA_FILES };
|
||||
p.ev->notice(p.evCtx, files, 1);
|
||||
CHECK(d.notice == 1);
|
||||
@@ -693,8 +693,8 @@ static void testFileReplacement(void)
|
||||
|
||||
const LG_ClipboardData text[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
p.ev->notice(p.evCtx, text, 1);
|
||||
CHECK(lgClipboardFilesStubRemoteClearCount == 1);
|
||||
CHECK(lgClipboardFilesStubRemoteDataset == 0);
|
||||
CHECK(clipboardFilesStubRemoteClearCount == 1);
|
||||
CHECK(clipboardFilesStubRemoteDataset == 0);
|
||||
CHECK(d.notice == 2);
|
||||
CHECK(d.noticeType[1] == LG_CLIPBOARD_DATA_TEXT);
|
||||
|
||||
@@ -706,17 +706,17 @@ static void testFileReplacement(void)
|
||||
LG_CLIPBOARD_DATA_FILES,
|
||||
};
|
||||
p.ev->notice(p.evCtx, mixed, 2);
|
||||
CHECK(lgClipboardFilesStubRemoteClearCount == 1);
|
||||
CHECK(lgClipboardFilesStubRemoteDataset == mixedDataset);
|
||||
CHECK(clipboardFilesStubRemoteClearCount == 1);
|
||||
CHECK(clipboardFilesStubRemoteDataset == mixedDataset);
|
||||
CHECK(d.notice == 3);
|
||||
CHECK(d.noticeType[2] == LG_CLIPBOARD_DATA_FILES);
|
||||
|
||||
p.ev->notice(p.evCtx, text, 1);
|
||||
CHECK(lgClipboardFilesStubRemoteClearCount == 2);
|
||||
CHECK(lgClipboardFilesStubRemoteDataset == 0);
|
||||
CHECK(clipboardFilesStubRemoteClearCount == 2);
|
||||
CHECK(clipboardFilesStubRemoteDataset == 0);
|
||||
CHECK(d.notice == 4);
|
||||
CHECK(d.noticeType[3] == LG_CLIPBOARD_DATA_TEXT);
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testFileFailure(void)
|
||||
@@ -742,37 +742,37 @@ static void testFileFailure(void)
|
||||
CHECK(d.notice == 1);
|
||||
CHECK(d.release == 0);
|
||||
|
||||
lgClipboard_fileRemoteFailed(first);
|
||||
clipboard_fileRemoteFailed(first);
|
||||
CHECK(d.release == 0);
|
||||
CHECK(lgClipboardFilesStubRemoteDataset == second);
|
||||
CHECK(clipboardFilesStubRemoteDataset == second);
|
||||
|
||||
lgClipboard_fileRemoteFailed(second);
|
||||
clipboard_fileRemoteFailed(second);
|
||||
CHECK(d.release == 1);
|
||||
lgClipboard_fileRemoteFailed(second);
|
||||
clipboard_fileRemoteFailed(second);
|
||||
CHECK(d.release == 1);
|
||||
|
||||
p.ev->notice(p.evCtx, text, 1);
|
||||
CHECK(d.notice == 2);
|
||||
lgClipboardFilesStubRemoteOfferResult = false;
|
||||
const unsigned previousClears = lgClipboardFilesStubRemoteClearCount;
|
||||
clipboardFilesStubRemoteOfferResult = false;
|
||||
const unsigned previousClears = clipboardFilesStubRemoteClearCount;
|
||||
p.ev->fileOffer(p.evCtx, second + 1U);
|
||||
CHECK(lgClipboardFilesStubRemoteClearCount == previousClears + 1U);
|
||||
CHECK(clipboardFilesStubRemoteClearCount == previousClears + 1U);
|
||||
p.ev->notice(p.evCtx, files, 1);
|
||||
CHECK(d.notice == 2);
|
||||
CHECK(d.release == 2);
|
||||
|
||||
p.ev->notice(p.evCtx, text, 1);
|
||||
CHECK(d.notice == 3);
|
||||
lgClipboardFilesStubRemoteOfferResult = true;
|
||||
clipboardFilesStubRemoteOfferResult = true;
|
||||
const uint64_t pending = second + 2U;
|
||||
p.ev->fileOffer(p.evCtx, pending);
|
||||
lgClipboard_fileRemoteFailed(pending);
|
||||
clipboard_fileRemoteFailed(pending);
|
||||
CHECK(d.release == 2);
|
||||
p.ev->notice(p.evCtx, files, 1);
|
||||
CHECK(d.notice == 3);
|
||||
CHECK(d.release == 3);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
struct CallbackSerializationTask
|
||||
@@ -784,7 +784,7 @@ struct CallbackSerializationTask
|
||||
static void * switchClipboardProvider(void * opaque)
|
||||
{
|
||||
struct CallbackSerializationTask * task = opaque;
|
||||
lgClipboard_setTransport(&plainOps, &q);
|
||||
clipboard_setTransport(&plainOps, &q);
|
||||
atomic_store_explicit(&task->switched, true, memory_order_release);
|
||||
return NULL;
|
||||
}
|
||||
@@ -792,7 +792,7 @@ static void * switchClipboardProvider(void * opaque)
|
||||
static void * clearClipboardAvailability(void * opaque)
|
||||
{
|
||||
struct CallbackSerializationTask * task = opaque;
|
||||
lgClipboard_setLocalAvailable(false);
|
||||
clipboard_setLocalAvailable(false);
|
||||
atomic_store_explicit(
|
||||
&task->availabilityChanged, true, memory_order_release);
|
||||
return NULL;
|
||||
@@ -814,7 +814,7 @@ static void testCallbackSerialization(void)
|
||||
init();
|
||||
bind(&p);
|
||||
const LG_ClipboardData text[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
lgClipboard_notifyTypes(text, 1);
|
||||
clipboard_notifyTypes(text, 1);
|
||||
CHECK(p.ev->request(p.evCtx, 1, LG_CLIPBOARD_DATA_TEXT));
|
||||
CHECK(d.request == 1);
|
||||
|
||||
@@ -842,7 +842,7 @@ static void testCallbackSerialization(void)
|
||||
&task.availabilityChanged, memory_order_acquire));
|
||||
CHECK(d.cancel == 1);
|
||||
CHECK(d.cancelReason == LG_CLIPBOARD_CANCEL_UNAVAILABLE);
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testRequest(void)
|
||||
@@ -857,8 +857,8 @@ static void testRequest(void)
|
||||
|
||||
struct Reply a = { 0 };
|
||||
struct Reply b = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &a));
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &b));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &a));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &b));
|
||||
CHECK(p.request == 2);
|
||||
CHECK(p.reqId[0] != LG_CLIPBOARD_REQUEST_INVALID);
|
||||
CHECK(p.reqId[0] != p.reqId[1]);
|
||||
@@ -880,7 +880,7 @@ static void testRequest(void)
|
||||
CHECK(b.size == sizeof(two));
|
||||
CHECK(memcmp(b.data, two, sizeof(two)) == 0);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testRemoteKeepsLocalRequest(void)
|
||||
@@ -889,7 +889,7 @@ static void testRemoteKeepsLocalRequest(void)
|
||||
bind(&p);
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
CHECK(p.notice == 1);
|
||||
|
||||
g_params.clipboardToLocal = false;
|
||||
@@ -898,7 +898,7 @@ static void testRemoteKeepsLocalRequest(void)
|
||||
|
||||
/* A notice which is not published locally must not discard the local
|
||||
* clipboard advertised towards the guest. */
|
||||
lgClipboard_setTransport(&plainOps, &q);
|
||||
clipboard_setTransport(&plainOps, &q);
|
||||
CHECK(q.attach == 1);
|
||||
CHECK(q.notice == 1);
|
||||
CHECK(q.release == 0);
|
||||
@@ -914,7 +914,7 @@ static void testRemoteKeepsLocalRequest(void)
|
||||
CHECK(d.request == 1);
|
||||
CHECK(d.reqType[0] == LG_CLIPBOARD_DATA_TEXT);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testPendingRemoteKeepsLocalRequest(void)
|
||||
@@ -923,14 +923,14 @@ static void testPendingRemoteKeepsLocalRequest(void)
|
||||
bind(&p);
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
CHECK(p.notice == 1);
|
||||
lgClipboard_setLocalAvailable(false);
|
||||
clipboard_setLocalAvailable(false);
|
||||
|
||||
notice(&p, types, 1);
|
||||
CHECK(d.notice == 0);
|
||||
|
||||
lgClipboard_setLocalAvailable(true);
|
||||
clipboard_setLocalAvailable(true);
|
||||
CHECK(d.notice == 1);
|
||||
|
||||
/* Publishing a notice which arrived while the local clipboard was
|
||||
@@ -939,7 +939,7 @@ static void testPendingRemoteKeepsLocalRequest(void)
|
||||
CHECK(d.request == 1);
|
||||
CHECK(d.reqType[0] == LG_CLIPBOARD_DATA_TEXT);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testInvalid(void)
|
||||
@@ -954,12 +954,12 @@ static void testInvalid(void)
|
||||
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
notice(&p, types, 1);
|
||||
CHECK(!lgClipboard_request(
|
||||
CHECK(!clipboard_request(
|
||||
LG_CLIPBOARD_DATA_NONE, onReply, &(struct Reply) { 0 }));
|
||||
CHECK(!lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, NULL, NULL));
|
||||
CHECK(!clipboard_request(LG_CLIPBOARD_DATA_TEXT, NULL, NULL));
|
||||
|
||||
struct Reply empty = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &empty));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &empty));
|
||||
remoteData(&p, LG_CLIPBOARD_REQUEST_INVALID,
|
||||
LG_CLIPBOARD_DATA_TEXT, NULL, 0);
|
||||
CHECK(empty.count == 0);
|
||||
@@ -970,13 +970,13 @@ static void testInvalid(void)
|
||||
CHECK(empty.size == 0);
|
||||
|
||||
struct Reply wrong = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &wrong));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &wrong));
|
||||
remoteData(&p, p.reqId[p.request - 1],
|
||||
LG_CLIPBOARD_DATA_PNG, NULL, 0);
|
||||
checkNone(&wrong);
|
||||
|
||||
struct Reply null = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &null));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &null));
|
||||
remoteData(&p, p.reqId[p.request - 1],
|
||||
LG_CLIPBOARD_DATA_TEXT, NULL, 1);
|
||||
checkNone(&null);
|
||||
@@ -984,7 +984,7 @@ static void testInvalid(void)
|
||||
#if SIZE_MAX > UINT32_MAX
|
||||
struct Reply large = { 0 };
|
||||
const uint8_t byte = 1;
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &large));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &large));
|
||||
remoteData(&p, p.reqId[p.request - 1], LG_CLIPBOARD_DATA_TEXT,
|
||||
&byte, (size_t)UINT32_MAX + 1);
|
||||
checkNone(&large);
|
||||
@@ -992,11 +992,11 @@ static void testInvalid(void)
|
||||
|
||||
p.reqOK = false;
|
||||
struct Reply failed = { 0 };
|
||||
CHECK(!lgClipboard_request(
|
||||
CHECK(!clipboard_request(
|
||||
LG_CLIPBOARD_DATA_TEXT, onReply, &failed));
|
||||
CHECK(failed.count == 0);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testCancel(void)
|
||||
@@ -1008,7 +1008,7 @@ static void testCancel(void)
|
||||
|
||||
notice(&p, text, 1);
|
||||
struct Reply newer = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &newer));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &newer));
|
||||
const LG_ClipboardRequest newerId = p.reqId[p.request - 1];
|
||||
notice(&p, png, 1);
|
||||
checkNone(&newer);
|
||||
@@ -1016,7 +1016,7 @@ static void testCancel(void)
|
||||
CHECK(newer.count == 1);
|
||||
|
||||
struct Reply released = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_PNG, onReply, &released));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_PNG, onReply, &released));
|
||||
const LG_ClipboardRequest releaseId = p.reqId[p.request - 1];
|
||||
p.ev->release(p.evCtx);
|
||||
checkNone(&released);
|
||||
@@ -1025,39 +1025,39 @@ static void testCancel(void)
|
||||
|
||||
notice(&p, text, 1);
|
||||
struct Reply unavailable = { 0 };
|
||||
CHECK(lgClipboard_request(
|
||||
CHECK(clipboard_request(
|
||||
LG_CLIPBOARD_DATA_TEXT, onReply, &unavailable));
|
||||
const LG_ClipboardRequest unavailableId = p.reqId[p.request - 1];
|
||||
lgClipboard_setLocalAvailable(false);
|
||||
clipboard_setLocalAvailable(false);
|
||||
checkNone(&unavailable);
|
||||
remoteData(&p, unavailableId, LG_CLIPBOARD_DATA_TEXT, "x", 1);
|
||||
CHECK(unavailable.count == 1);
|
||||
|
||||
lgClipboard_setLocalAvailable(true);
|
||||
clipboard_setLocalAvailable(true);
|
||||
notice(&p, text, 1);
|
||||
struct Reply switched = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &switched));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &switched));
|
||||
const LG_ClipboardRequest switchedId = p.reqId[p.request - 1];
|
||||
lgClipboard_setTransport(&plainOps, &q);
|
||||
clipboard_setTransport(&plainOps, &q);
|
||||
checkNone(&switched);
|
||||
CHECK(p.oldEv);
|
||||
p.oldEv->data(p.oldCtx, switchedId, LG_CLIPBOARD_DATA_TEXT, "x", 1);
|
||||
CHECK(switched.count == 1);
|
||||
CHECK(d.release == 3);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testGeneration(void)
|
||||
{
|
||||
init();
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
lgClipboard_setFallback(&statOps, &p);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
clipboard_setFallback(&statOps, &p);
|
||||
notice(&p, types, 1);
|
||||
|
||||
struct Reply old = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &old));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &old));
|
||||
const LG_ClipboardRequest oldId = p.reqId[p.request - 1];
|
||||
setStatus(&p, true, 2);
|
||||
checkNone(&old);
|
||||
@@ -1069,7 +1069,7 @@ static void testGeneration(void)
|
||||
CHECK(old.count == 1);
|
||||
notice(&p, types, 1);
|
||||
struct Reply next = { 0 };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &next));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &next));
|
||||
remoteData(&p, p.reqId[p.request - 1],
|
||||
LG_CLIPBOARD_DATA_TEXT, "new", 3);
|
||||
CHECK(next.count == 1);
|
||||
@@ -1077,7 +1077,7 @@ static void testGeneration(void)
|
||||
CHECK(next.size == 3);
|
||||
CHECK(memcmp(next.data, "new", 3) == 0);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testLocal(void)
|
||||
@@ -1088,11 +1088,11 @@ static void testLocal(void)
|
||||
const LG_ClipboardData many[LG_CLIPBOARD_DATA_NONE + 1] = { 0 };
|
||||
const LG_ClipboardData types[] =
|
||||
{ LG_CLIPBOARD_DATA_TEXT, LG_CLIPBOARD_DATA_PNG };
|
||||
lgClipboard_notifyTypes(NULL, 1);
|
||||
lgClipboard_notifyTypes(bad, 1);
|
||||
lgClipboard_notifyTypes(many, LG_CLIPBOARD_DATA_NONE + 1);
|
||||
clipboard_notifyTypes(NULL, 1);
|
||||
clipboard_notifyTypes(bad, 1);
|
||||
clipboard_notifyTypes(many, LG_CLIPBOARD_DATA_NONE + 1);
|
||||
CHECK(p.notice == 0);
|
||||
lgClipboard_notifyTypes(types, 2);
|
||||
clipboard_notifyTypes(types, 2);
|
||||
CHECK(p.notice == 1);
|
||||
|
||||
CHECK(!p.ev->request(
|
||||
@@ -1103,9 +1103,9 @@ static void testLocal(void)
|
||||
CHECK(!p.ev->request(p.evCtx, 41, LG_CLIPBOARD_DATA_PNG));
|
||||
|
||||
const LG_ClipboardRequest first = d.reqId[0];
|
||||
lgClipboard_data(first + 100, LG_CLIPBOARD_DATA_TEXT, "x", 1);
|
||||
clipboard_data(first + 100, LG_CLIPBOARD_DATA_TEXT, "x", 1);
|
||||
CHECK(p.data == 0);
|
||||
lgClipboard_data(first, LG_CLIPBOARD_DATA_PNG, "x", 1);
|
||||
clipboard_data(first, LG_CLIPBOARD_DATA_PNG, "x", 1);
|
||||
CHECK(p.data == 1);
|
||||
CHECK(p.dataId[0] == 40);
|
||||
CHECK(p.dataType[0] == LG_CLIPBOARD_DATA_NONE);
|
||||
@@ -1113,9 +1113,9 @@ static void testLocal(void)
|
||||
|
||||
CHECK(p.ev->request(p.evCtx, 41, LG_CLIPBOARD_DATA_PNG));
|
||||
const LG_ClipboardRequest second = d.reqId[1];
|
||||
lgClipboard_abort(second + 100);
|
||||
clipboard_abort(second + 100);
|
||||
CHECK(p.data == 1);
|
||||
lgClipboard_abort(second);
|
||||
clipboard_abort(second);
|
||||
CHECK(p.data == 2);
|
||||
CHECK(p.dataId[1] == 41);
|
||||
CHECK(p.dataType[1] == LG_CLIPBOARD_DATA_NONE);
|
||||
@@ -1123,16 +1123,16 @@ static void testLocal(void)
|
||||
CHECK(p.ev->request(p.evCtx, 42, LG_CLIPBOARD_DATA_TEXT));
|
||||
const LG_ClipboardRequest third = d.reqId[2];
|
||||
const uint8_t buf[] = { 5, 6, 7 };
|
||||
lgClipboard_data(third, LG_CLIPBOARD_DATA_TEXT, buf, sizeof(buf));
|
||||
clipboard_data(third, LG_CLIPBOARD_DATA_TEXT, buf, sizeof(buf));
|
||||
CHECK(p.data == 3);
|
||||
CHECK(p.dataId[2] == 42);
|
||||
CHECK(p.dataType[2] == LG_CLIPBOARD_DATA_TEXT);
|
||||
CHECK(p.dataSize[2] == sizeof(buf));
|
||||
CHECK(memcmp(p.dataBuf[2], buf, sizeof(buf)) == 0);
|
||||
lgClipboard_data(third, LG_CLIPBOARD_DATA_TEXT, buf, sizeof(buf));
|
||||
clipboard_data(third, LG_CLIPBOARD_DATA_TEXT, buf, sizeof(buf));
|
||||
CHECK(p.data == 3);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testReentrant(void)
|
||||
@@ -1144,7 +1144,7 @@ static void testReentrant(void)
|
||||
|
||||
struct Reply second = { 0 };
|
||||
struct Reply first = { .next = &second };
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &first));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, onReply, &first));
|
||||
remoteData(&p, p.reqId[0], LG_CLIPBOARD_DATA_TEXT, "a", 1);
|
||||
CHECK(first.count == 1);
|
||||
CHECK(first.nested);
|
||||
@@ -1152,7 +1152,7 @@ static void testReentrant(void)
|
||||
remoteData(&p, p.reqId[1], LG_CLIPBOARD_DATA_TEXT, "b", 1);
|
||||
CHECK(second.count == 1);
|
||||
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
d.autoData = true;
|
||||
d.autoType = LG_CLIPBOARD_DATA_TEXT;
|
||||
d.autoBuf = "local";
|
||||
@@ -1164,27 +1164,27 @@ static void testReentrant(void)
|
||||
CHECK(p.dataSize[0] == 5);
|
||||
CHECK(memcmp(p.dataBuf[0], "local", 5) == 0);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testStreamLocal(void)
|
||||
{
|
||||
init();
|
||||
lgClipboard_setFallback(&streamOps, &p);
|
||||
clipboard_setFallback(&streamOps, &p);
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
|
||||
CHECK(p.ev->request(p.evCtx, 40, LG_CLIPBOARD_DATA_TEXT));
|
||||
const LG_ClipboardRequest transfer = d.reqId[0];
|
||||
CHECK(lgClipboard_dataBegin(transfer, LG_CLIPBOARD_DATA_TEXT,
|
||||
CHECK(clipboard_dataBegin(transfer, LG_CLIPBOARD_DATA_TEXT,
|
||||
LG_CLIPBOARD_SIZE_UNKNOWN) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
const uint8_t first[] = { 1, 2 };
|
||||
const uint8_t second[] = { 3, 4, 5 };
|
||||
CHECK(lgClipboard_dataChunk(transfer, 0, first, sizeof(first)) ==
|
||||
CHECK(clipboard_dataChunk(transfer, 0, first, sizeof(first)) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataChunk(transfer, sizeof(first),
|
||||
CHECK(clipboard_dataChunk(transfer, sizeof(first),
|
||||
second, sizeof(second)) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataEnd(transfer,
|
||||
CHECK(clipboard_dataEnd(transfer,
|
||||
sizeof(first) + sizeof(second)) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(p.begin == 1);
|
||||
CHECK(p.streamId == 40);
|
||||
@@ -1197,9 +1197,9 @@ static void testStreamLocal(void)
|
||||
|
||||
CHECK(p.ev->request(p.evCtx, 41, LG_CLIPBOARD_DATA_TEXT));
|
||||
const LG_ClipboardRequest invalid = d.reqId[1];
|
||||
CHECK(lgClipboard_dataBegin(invalid, LG_CLIPBOARD_DATA_TEXT, 1) ==
|
||||
CHECK(clipboard_dataBegin(invalid, LG_CLIPBOARD_DATA_TEXT, 1) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataChunk(invalid, 1, first, 1) ==
|
||||
CHECK(clipboard_dataChunk(invalid, 1, first, 1) ==
|
||||
LG_CLIPBOARD_RESULT_FAILED);
|
||||
CHECK(p.cancel == 1);
|
||||
CHECK(p.streamId == 41);
|
||||
@@ -1210,20 +1210,20 @@ static void testStreamLocal(void)
|
||||
CHECK(d.cancel == 1);
|
||||
CHECK(d.cancelReason == LG_CLIPBOARD_CANCEL_REPLACED);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testStreamBlocked(void)
|
||||
{
|
||||
init();
|
||||
lgClipboard_setFallback(&streamOps, &p);
|
||||
clipboard_setFallback(&streamOps, &p);
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
CHECK(p.ev->request(p.evCtx, 50, LG_CLIPBOARD_DATA_TEXT));
|
||||
|
||||
p.beginResult = LG_CLIPBOARD_RESULT_BLOCKED;
|
||||
uint8_t data[] = { 7, 8, 9 };
|
||||
lgClipboard_data(d.reqId[0], LG_CLIPBOARD_DATA_TEXT,
|
||||
clipboard_data(d.reqId[0], LG_CLIPBOARD_DATA_TEXT,
|
||||
data, sizeof(data));
|
||||
CHECK(p.begin == 1);
|
||||
CHECK(p.chunk == 0);
|
||||
@@ -1244,30 +1244,30 @@ static void testStreamBlocked(void)
|
||||
CHECK(p.ev->request(p.evCtx, 51, LG_CLIPBOARD_DATA_TEXT));
|
||||
const LG_ClipboardRequest transfer = d.reqId[1];
|
||||
p.beginResult = LG_CLIPBOARD_RESULT_BLOCKED;
|
||||
CHECK(lgClipboard_dataBegin(transfer, LG_CLIPBOARD_DATA_TEXT,
|
||||
CHECK(clipboard_dataBegin(transfer, LG_CLIPBOARD_DATA_TEXT,
|
||||
LG_CLIPBOARD_SIZE_UNKNOWN) == LG_CLIPBOARD_RESULT_BLOCKED);
|
||||
p.beginResult = LG_CLIPBOARD_RESULT_ACCEPTED;
|
||||
d.autoBegin = true;
|
||||
p.ev->dataReady(p.evCtx, 51);
|
||||
CHECK(d.ready == 1);
|
||||
CHECK(d.readyResult == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataEnd(transfer, 0) ==
|
||||
CHECK(clipboard_dataEnd(transfer, 0) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testStreamRemote(void)
|
||||
{
|
||||
init();
|
||||
lgClipboard_setFallback(&streamOps, &p);
|
||||
clipboard_setFallback(&streamOps, &p);
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
notice(&p, types, 1);
|
||||
|
||||
struct StreamSink sink = { 0 };
|
||||
initSink(&sink);
|
||||
LG_ClipboardRequest id;
|
||||
CHECK(lgClipboard_requestStream(
|
||||
CHECK(clipboard_requestStream(
|
||||
LG_CLIPBOARD_DATA_TEXT, &sinkOps, &sink, &id));
|
||||
CHECK(id == p.reqId[0]);
|
||||
CHECK(p.ev->dataBegin(p.evCtx, id, LG_CLIPBOARD_DATA_TEXT,
|
||||
@@ -1281,7 +1281,7 @@ static void testStreamRemote(void)
|
||||
LG_CLIPBOARD_RESULT_BLOCKED);
|
||||
CHECK(sink.chunk == 1);
|
||||
sink.chunkResult = LG_CLIPBOARD_RESULT_ACCEPTED;
|
||||
CHECK(lgClipboard_requestReady(id));
|
||||
CHECK(clipboard_requestReady(id));
|
||||
CHECK(p.ready == 1);
|
||||
CHECK(p.streamId == id);
|
||||
CHECK(p.ev->dataChunk(p.evCtx, id, 0, data, sizeof(data)) ==
|
||||
@@ -1295,19 +1295,19 @@ static void testStreamRemote(void)
|
||||
|
||||
struct StreamSink cancel = { 0 };
|
||||
initSink(&cancel);
|
||||
CHECK(lgClipboard_requestStream(
|
||||
CHECK(clipboard_requestStream(
|
||||
LG_CLIPBOARD_DATA_TEXT, &sinkOps, &cancel, &id));
|
||||
p.ev->dataCancel(p.evCtx, id, LG_CLIPBOARD_CANCEL_ABORTED);
|
||||
CHECK(cancel.cancel == 1);
|
||||
CHECK(cancel.reason == LG_CLIPBOARD_CANCEL_ABORTED);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testRequestPublication(void)
|
||||
{
|
||||
init();
|
||||
lgClipboard_setFallback(&streamOps, &p);
|
||||
clipboard_setFallback(&streamOps, &p);
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
notice(&p, types, 1);
|
||||
|
||||
@@ -1315,7 +1315,7 @@ static void testRequestPublication(void)
|
||||
initSink(&sink);
|
||||
sink.requireRequest = true;
|
||||
p.earlyBegin = true;
|
||||
CHECK(lgClipboard_requestStream(LG_CLIPBOARD_DATA_TEXT,
|
||||
CHECK(clipboard_requestStream(LG_CLIPBOARD_DATA_TEXT,
|
||||
&sinkOps, &sink, &sink.request));
|
||||
CHECK(sink.request == p.reqId[0]);
|
||||
CHECK(p.earlyResult == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
@@ -1324,7 +1324,7 @@ static void testRequestPublication(void)
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(sink.end == 1);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
static void testStreamLegacy(void)
|
||||
@@ -1332,19 +1332,19 @@ static void testStreamLegacy(void)
|
||||
init();
|
||||
bind(&p);
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
|
||||
CHECK(p.ev->request(p.evCtx, 60, LG_CLIPBOARD_DATA_TEXT));
|
||||
const LG_ClipboardRequest transfer = d.reqId[0];
|
||||
const uint8_t first[] = { 2, 4 };
|
||||
const uint8_t second[] = { 6, 8 };
|
||||
CHECK(lgClipboard_dataBegin(transfer, LG_CLIPBOARD_DATA_TEXT,
|
||||
CHECK(clipboard_dataBegin(transfer, LG_CLIPBOARD_DATA_TEXT,
|
||||
LG_CLIPBOARD_SIZE_UNKNOWN) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataChunk(transfer, 0, first, sizeof(first)) ==
|
||||
CHECK(clipboard_dataChunk(transfer, 0, first, sizeof(first)) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataChunk(transfer, sizeof(first), second,
|
||||
CHECK(clipboard_dataChunk(transfer, sizeof(first), second,
|
||||
sizeof(second)) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataEnd(transfer, 4) ==
|
||||
CHECK(clipboard_dataEnd(transfer, 4) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(p.data == 1);
|
||||
CHECK(p.dataId[0] == 60);
|
||||
@@ -1357,7 +1357,7 @@ static void testStreamLegacy(void)
|
||||
initSink(&sink);
|
||||
sink.beginResult = LG_CLIPBOARD_RESULT_BLOCKED;
|
||||
LG_ClipboardRequest id;
|
||||
CHECK(lgClipboard_requestStream(
|
||||
CHECK(clipboard_requestStream(
|
||||
LG_CLIPBOARD_DATA_TEXT, &sinkOps, &sink, &id));
|
||||
const uint8_t remote[] = { 9, 8, 7 };
|
||||
remoteData(&p, id, LG_CLIPBOARD_DATA_TEXT, remote, sizeof(remote));
|
||||
@@ -1365,7 +1365,7 @@ static void testStreamLegacy(void)
|
||||
CHECK(sink.chunk == 0);
|
||||
|
||||
sink.beginResult = LG_CLIPBOARD_RESULT_ACCEPTED;
|
||||
CHECK(lgClipboard_requestReady(id));
|
||||
CHECK(clipboard_requestReady(id));
|
||||
CHECK(p.ready == 0);
|
||||
CHECK(sink.begin == 2);
|
||||
CHECK(sink.chunk == 1);
|
||||
@@ -1373,7 +1373,7 @@ static void testStreamLegacy(void)
|
||||
CHECK(sink.size == sizeof(remote));
|
||||
CHECK(memcmp(sink.data, remote, sizeof(remote)) == 0);
|
||||
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
}
|
||||
|
||||
struct Test
|
||||
|
||||
@@ -143,15 +143,15 @@ static SpiceClipboard * setup(void)
|
||||
g_state.ds = &displayOps;
|
||||
g_params.clipboardToVM = true;
|
||||
g_params.clipboardToLocal = true;
|
||||
CHECK(lgClipboard_init());
|
||||
lgClipboard_setLocalAvailable(true);
|
||||
lgClipboard_setFallback(spiceClipboard_getOps(), clipboard);
|
||||
CHECK(clipboard_init());
|
||||
clipboard_setLocalAvailable(true);
|
||||
clipboard_setFallback(spiceClipboard_getOps(), clipboard);
|
||||
return clipboard;
|
||||
}
|
||||
|
||||
static void teardown(SpiceClipboard ** clipboard)
|
||||
{
|
||||
lgClipboard_free();
|
||||
clipboard_free();
|
||||
spiceClipboard_setCallbackTarget(NULL);
|
||||
spiceClipboard_free(clipboard);
|
||||
}
|
||||
@@ -160,22 +160,22 @@ static void testOutbound(void)
|
||||
{
|
||||
SpiceClipboard * clipboard = setup();
|
||||
const LG_ClipboardData types[] = { LG_CLIPBOARD_DATA_TEXT };
|
||||
lgClipboard_notifyTypes(types, 1);
|
||||
clipboard_notifyTypes(types, 1);
|
||||
CHECK(test.grab == 1);
|
||||
|
||||
spiceClipboard_request(SPICE_DATA_TEXT);
|
||||
CHECK(test.localRequest != LG_CLIPBOARD_REQUEST_INVALID);
|
||||
const uint8_t first[] = { 1, 2 };
|
||||
const uint8_t second[] = { 3, 4 };
|
||||
CHECK(lgClipboard_dataBegin(test.localRequest,
|
||||
CHECK(clipboard_dataBegin(test.localRequest,
|
||||
LG_CLIPBOARD_DATA_TEXT, LG_CLIPBOARD_SIZE_UNKNOWN) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataChunk(test.localRequest,
|
||||
CHECK(clipboard_dataChunk(test.localRequest,
|
||||
0, first, sizeof(first)) == LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataChunk(test.localRequest,
|
||||
CHECK(clipboard_dataChunk(test.localRequest,
|
||||
sizeof(first), second, sizeof(second)) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
CHECK(lgClipboard_dataEnd(test.localRequest, 4) ==
|
||||
CHECK(clipboard_dataEnd(test.localRequest, 4) ==
|
||||
LG_CLIPBOARD_RESULT_ACCEPTED);
|
||||
|
||||
CHECK(test.dataStart == 1);
|
||||
@@ -191,7 +191,7 @@ static void testInbound(void)
|
||||
SpiceClipboard * clipboard = setup();
|
||||
spiceClipboard_notice(SPICE_DATA_TEXT);
|
||||
CHECK(test.notice == 1);
|
||||
CHECK(lgClipboard_request(LG_CLIPBOARD_DATA_TEXT, reply, NULL));
|
||||
CHECK(clipboard_request(LG_CLIPBOARD_DATA_TEXT, reply, NULL));
|
||||
CHECK(test.request == 1);
|
||||
CHECK(test.requestType == SPICE_DATA_TEXT);
|
||||
|
||||
|
||||
@@ -400,12 +400,12 @@ void lgAudio_dropFallback(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
void lgClipboard_setFallback(const LG_ClipboardOps * ops, void * opaque)
|
||||
void clipboard_setFallback(const LG_ClipboardOps * ops, void * opaque)
|
||||
{
|
||||
setProvider(&pClipboard, ops, &clipboardOps, opaque);
|
||||
}
|
||||
|
||||
void lgClipboard_dropFallback(void)
|
||||
void clipboard_dropFallback(void)
|
||||
{
|
||||
atomic_fetch_add(&pClipboard.drop, 1);
|
||||
}
|
||||
|
||||
@@ -443,7 +443,7 @@ static void pollFire(unsigned int no, uint32_t events)
|
||||
pollCleanup(&rec.poll[i]);
|
||||
}
|
||||
|
||||
void lgClipboard_notifyTypes(
|
||||
void clipboard_notifyTypes(
|
||||
const LG_ClipboardData types[], size_t count)
|
||||
{
|
||||
CHECK(rec.noticeN < ARRAY_LENGTH(rec.notice));
|
||||
@@ -453,7 +453,7 @@ void lgClipboard_notifyTypes(
|
||||
notice->count = count;
|
||||
}
|
||||
|
||||
void lgClipboard_release(void)
|
||||
void clipboard_release(void)
|
||||
{
|
||||
if (rec.expectReleaseLocked)
|
||||
{
|
||||
@@ -464,13 +464,13 @@ void lgClipboard_release(void)
|
||||
++rec.releaseN;
|
||||
}
|
||||
|
||||
void lgClipboard_abort(LG_ClipboardRequest request)
|
||||
void clipboard_abort(LG_ClipboardRequest request)
|
||||
{
|
||||
CHECK(rec.abortN < ARRAY_LENGTH(rec.abort));
|
||||
rec.abort[rec.abortN++] = request;
|
||||
}
|
||||
|
||||
void lgClipboard_data(LG_ClipboardRequest request,
|
||||
void clipboard_data(LG_ClipboardRequest request,
|
||||
LG_ClipboardData type, const void * data, size_t size)
|
||||
{
|
||||
CHECK(rec.dataN < ARRAY_LENGTH(rec.data));
|
||||
@@ -482,7 +482,7 @@ void lgClipboard_data(LG_ClipboardRequest request,
|
||||
memcpy(notice->data, data, size);
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataBegin(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataBegin(LG_ClipboardRequest request,
|
||||
LG_ClipboardData type, uint64_t sizeHint)
|
||||
{
|
||||
struct StreamNotice * stream = &rec.streamData;
|
||||
@@ -493,7 +493,7 @@ LG_ClipboardResult lgClipboard_dataBegin(LG_ClipboardRequest request,
|
||||
return rec.beginResult;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataChunk(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataChunk(LG_ClipboardRequest request,
|
||||
uint64_t offset, const void * data, size_t size)
|
||||
{
|
||||
const LG_ClipboardResult result = rec.chunkResult;
|
||||
@@ -518,7 +518,7 @@ LG_ClipboardResult lgClipboard_dataChunk(LG_ClipboardRequest request,
|
||||
return result;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataEnd(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataEnd(LG_ClipboardRequest request,
|
||||
uint64_t finalSize)
|
||||
{
|
||||
const LG_ClipboardResult result = rec.endResult;
|
||||
@@ -535,7 +535,7 @@ LG_ClipboardResult lgClipboard_dataEnd(LG_ClipboardRequest request,
|
||||
return result;
|
||||
}
|
||||
|
||||
bool lgClipboard_requestStream(LG_ClipboardData type,
|
||||
bool clipboard_requestStream(LG_ClipboardData type,
|
||||
const LG_ClipboardStreamOps * stream, void * opaque,
|
||||
LG_ClipboardRequest * request)
|
||||
{
|
||||
@@ -562,14 +562,14 @@ bool lgClipboard_requestStream(LG_ClipboardData type,
|
||||
return rec.requestOK;
|
||||
}
|
||||
|
||||
bool lgClipboard_requestReady(LG_ClipboardRequest request)
|
||||
bool clipboard_requestReady(LG_ClipboardRequest request)
|
||||
{
|
||||
CHECK(request == rec.requestId);
|
||||
++rec.requestReadyN;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_setLocal(const char * mime,
|
||||
bool clipboardFiles_setLocal(const char * mime,
|
||||
const void * data, size_t size)
|
||||
{
|
||||
CHECK(mime);
|
||||
@@ -583,18 +583,18 @@ bool lgClipboardFiles_setLocal(const char * mime,
|
||||
return rec.fileSetOK;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_clearLocal(void)
|
||||
void clipboardFiles_clearLocal(void)
|
||||
{
|
||||
++rec.fileClearN;
|
||||
}
|
||||
|
||||
uint64_t lgClipboardFiles_remotePresentationAcquire(void)
|
||||
uint64_t clipboardFiles_remotePresentationAcquire(void)
|
||||
{
|
||||
++rec.presentationAcquireN;
|
||||
return rec.presentationOK ? 1000U + rec.presentationAcquireN : 0;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
bool clipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
const char * mime, char ** data, size_t * size)
|
||||
{
|
||||
CHECK(presentation >= 1001U);
|
||||
@@ -614,7 +614,7 @@ bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
return true;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
{
|
||||
CHECK(presentation);
|
||||
CHECK(rec.presentationDeliveredN <
|
||||
@@ -622,7 +622,7 @@ void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
rec.presentationDelivered[rec.presentationDeliveredN++] = presentation;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
{
|
||||
CHECK(presentation);
|
||||
CHECK(rec.presentationReleaseN <
|
||||
|
||||
@@ -438,7 +438,7 @@ int XFree(void * data)
|
||||
return Success;
|
||||
}
|
||||
|
||||
void lgClipboard_notifyTypes(
|
||||
void clipboard_notifyTypes(
|
||||
const LG_ClipboardData types[], size_t count)
|
||||
{
|
||||
CHECK(rec.noticeN < ARRAY_LENGTH(rec.notice));
|
||||
@@ -448,7 +448,7 @@ void lgClipboard_notifyTypes(
|
||||
memcpy(notice->type, types, count * sizeof(*types));
|
||||
}
|
||||
|
||||
void lgClipboard_data(LG_ClipboardRequest request,
|
||||
void clipboard_data(LG_ClipboardRequest request,
|
||||
LG_ClipboardData type, const void * data, size_t size)
|
||||
{
|
||||
CHECK(rec.dataN < ARRAY_LENGTH(rec.data));
|
||||
@@ -462,7 +462,7 @@ void lgClipboard_data(LG_ClipboardRequest request,
|
||||
memcpy(notice->data, data, size);
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataBegin(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataBegin(LG_ClipboardRequest request,
|
||||
LG_ClipboardData type, uint64_t sizeHint)
|
||||
{
|
||||
++rec.streamBeginN;
|
||||
@@ -481,7 +481,7 @@ LG_ClipboardResult lgClipboard_dataBegin(LG_ClipboardRequest request,
|
||||
return rec.beginResult;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataChunk(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataChunk(LG_ClipboardRequest request,
|
||||
uint64_t offset, const void * data, size_t size)
|
||||
{
|
||||
const LG_ClipboardResult result = rec.chunkResult;
|
||||
@@ -519,7 +519,7 @@ LG_ClipboardResult lgClipboard_dataChunk(LG_ClipboardRequest request,
|
||||
return result;
|
||||
}
|
||||
|
||||
LG_ClipboardResult lgClipboard_dataEnd(LG_ClipboardRequest request,
|
||||
LG_ClipboardResult clipboard_dataEnd(LG_ClipboardRequest request,
|
||||
uint64_t finalSize)
|
||||
{
|
||||
const LG_ClipboardResult result = rec.endResult;
|
||||
@@ -540,18 +540,18 @@ LG_ClipboardResult lgClipboard_dataEnd(LG_ClipboardRequest request,
|
||||
return result;
|
||||
}
|
||||
|
||||
void lgClipboard_abort(LG_ClipboardRequest request)
|
||||
void clipboard_abort(LG_ClipboardRequest request)
|
||||
{
|
||||
CHECK(rec.abortN < ARRAY_LENGTH(rec.abort));
|
||||
rec.abort[rec.abortN++] = request;
|
||||
}
|
||||
|
||||
void lgClipboard_release(void)
|
||||
void clipboard_release(void)
|
||||
{
|
||||
++rec.releaseN;
|
||||
}
|
||||
|
||||
bool lgClipboard_requestStream(LG_ClipboardData type,
|
||||
bool clipboard_requestStream(LG_ClipboardData type,
|
||||
const LG_ClipboardStreamOps * stream, void * opaque,
|
||||
LG_ClipboardRequest * request)
|
||||
{
|
||||
@@ -570,14 +570,14 @@ bool lgClipboard_requestStream(LG_ClipboardData type,
|
||||
return rec.requestOK;
|
||||
}
|
||||
|
||||
bool lgClipboard_requestReady(LG_ClipboardRequest request)
|
||||
bool clipboard_requestReady(LG_ClipboardRequest request)
|
||||
{
|
||||
CHECK(request == rec.requestId);
|
||||
++rec.requestReadyN;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_setLocal(const char * mime,
|
||||
bool clipboardFiles_setLocal(const char * mime,
|
||||
const void * data, size_t size)
|
||||
{
|
||||
CHECK(mime);
|
||||
@@ -591,18 +591,18 @@ bool lgClipboardFiles_setLocal(const char * mime,
|
||||
return rec.fileSetOK;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_clearLocal(void)
|
||||
void clipboardFiles_clearLocal(void)
|
||||
{
|
||||
++rec.fileClearN;
|
||||
}
|
||||
|
||||
uint64_t lgClipboardFiles_remotePresentationAcquire(void)
|
||||
uint64_t clipboardFiles_remotePresentationAcquire(void)
|
||||
{
|
||||
++rec.presentationAcquireN;
|
||||
return rec.presentationOK ? 2001U : 0;
|
||||
}
|
||||
|
||||
bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
bool clipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
const char * mime, char ** data, size_t * size)
|
||||
{
|
||||
CHECK(presentation >= 2001U);
|
||||
@@ -622,7 +622,7 @@ bool lgClipboardFiles_getRemotePresentation(uint64_t presentation,
|
||||
return true;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
{
|
||||
CHECK(presentation);
|
||||
CHECK(rec.presentationDeliveredN <
|
||||
@@ -630,7 +630,7 @@ void lgClipboardFiles_remotePresentationDelivered(uint64_t presentation)
|
||||
rec.presentationDelivered[rec.presentationDeliveredN++] = presentation;
|
||||
}
|
||||
|
||||
void lgClipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
void clipboardFiles_remotePresentationRelease(uint64_t presentation)
|
||||
{
|
||||
CHECK(presentation);
|
||||
CHECK(rec.presentationReleaseN <
|
||||
|
||||
@@ -750,15 +750,15 @@ static void logStats(const struct LGMPInputCounters * stats)
|
||||
const uint64_t ackAverage = stats->ackSamples ?
|
||||
stats->ackTotal / stats->ackSamples : 0;
|
||||
|
||||
DEBUG_TRACE("LGMP input: sent immediate/deferred %" PRIu64 "/%" PRIu64
|
||||
", queued %" PRIu64 " (high %u), initial busy/full %" PRIu64
|
||||
"/%" PRIu64 ", retry busy/full %" PRIu64 "/%" PRIu64
|
||||
", coalesced relative/absolute %" PRIu64 "/%" PRIu64
|
||||
", motion rejected/evicted %" PRIu64 "/%" PRIu64
|
||||
", overflow failures/resets %" PRIu64 "/%" PRIu64
|
||||
", published claim/release/keepalive %" PRIu64 "/%" PRIu64
|
||||
"/%" PRIu64 ", terminal failures %" PRIu64
|
||||
", LGMP ACK average/max %" PRIu64 "/%" PRIu64 " us (%" PRIu64
|
||||
DEBUG_TRACE("LGMP input: sent immediate/deferred %lu/%lu"
|
||||
", queued %lu (high %u), initial busy/full %lu"
|
||||
"/%lu, retry busy/full %lu/%lu"
|
||||
", coalesced relative/absolute %lu/%lu"
|
||||
", motion rejected/evicted %lu/%lu"
|
||||
", overflow failures/resets %lu/%lu"
|
||||
", published claim/release/keepalive %lu/%lu"
|
||||
"/%lu, terminal failures %lu"
|
||||
", LGMP ACK average/max %lu/%lu us (%lu"
|
||||
" samples)", stats->immediateSends, stats->deferredSends,
|
||||
stats->localEnqueues, stats->pendingHighWater,
|
||||
stats->initialBusy, stats->initialFull, stats->retryBusy,
|
||||
|
||||
Reference in New Issue
Block a user