mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-22 05:27:20 +00:00
xcb: added xcb_stop and xcb_initOptions support
Added basic functions and the necessary variables for the `.initOptions` and `.stop` items in the capture interface.
This commit is contained in:
parent
bb74a9d9c8
commit
2824238b4d
1
AUTHORS
1
AUTHORS
@ -55,3 +55,4 @@ vroad <396351+vroad@users.noreply.github.com> (vroad)
|
|||||||
williamvds <w.vigolodasilva@gmail.com> (williamvds)
|
williamvds <w.vigolodasilva@gmail.com> (williamvds)
|
||||||
SytheZN <sythe.zn@gmail.com> (SytheZN)
|
SytheZN <sythe.zn@gmail.com> (SytheZN)
|
||||||
RTXUX <wyf@rtxux.xyz> (RTXUX)
|
RTXUX <wyf@rtxux.xyz> (RTXUX)
|
||||||
|
Vincent LaRocca <vincentmlarocca@gmail.com> (VMFortress)
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include "interface/capture.h"
|
#include "interface/capture.h"
|
||||||
#include "interface/platform.h"
|
#include "interface/platform.h"
|
||||||
|
#include "common/option.h"
|
||||||
#include "common/debug.h"
|
#include "common/debug.h"
|
||||||
#include "common/event.h"
|
#include "common/event.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -33,6 +34,7 @@
|
|||||||
struct xcb
|
struct xcb
|
||||||
{
|
{
|
||||||
bool initialized;
|
bool initialized;
|
||||||
|
bool stop;
|
||||||
xcb_connection_t * xcb;
|
xcb_connection_t * xcb;
|
||||||
xcb_screen_t * xcbScreen;
|
xcb_screen_t * xcbScreen;
|
||||||
uint32_t seg;
|
uint32_t seg;
|
||||||
@ -61,6 +63,16 @@ static const char * xcb_getName(void)
|
|||||||
return "XCB";
|
return "XCB";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void xcb_initOptions(void)
|
||||||
|
{
|
||||||
|
struct Option options[] =
|
||||||
|
{
|
||||||
|
{0}
|
||||||
|
};
|
||||||
|
|
||||||
|
option_register(options);
|
||||||
|
}
|
||||||
|
|
||||||
static bool xcb_create(CaptureGetPointerBuffer getPointerBufferFn, CapturePostPointerBuffer postPointerBufferFn)
|
static bool xcb_create(CaptureGetPointerBuffer getPointerBufferFn, CapturePostPointerBuffer postPointerBufferFn)
|
||||||
{
|
{
|
||||||
DEBUG_ASSERT(!this);
|
DEBUG_ASSERT(!this);
|
||||||
@ -86,6 +98,7 @@ static bool xcb_init(void)
|
|||||||
|
|
||||||
lgResetEvent(this->frameEvent);
|
lgResetEvent(this->frameEvent);
|
||||||
|
|
||||||
|
this->stop = false;
|
||||||
this->xcb = xcb_connect(NULL, NULL);
|
this->xcb = xcb_connect(NULL, NULL);
|
||||||
if (!this->xcb || xcb_connection_has_error(this->xcb))
|
if (!this->xcb || xcb_connection_has_error(this->xcb))
|
||||||
{
|
{
|
||||||
@ -131,6 +144,17 @@ fail:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void xcb_stop(void)
|
||||||
|
{
|
||||||
|
this->stop = true;
|
||||||
|
|
||||||
|
if(this->pointerThread)
|
||||||
|
{
|
||||||
|
lgJoinThread(this->pointerThread, NULL);
|
||||||
|
this->pointerThread = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static bool xcb_deinit(void)
|
static bool xcb_deinit(void)
|
||||||
{
|
{
|
||||||
DEBUG_ASSERT(this);
|
DEBUG_ASSERT(this);
|
||||||
@ -232,9 +256,11 @@ struct CaptureInterface Capture_XCB =
|
|||||||
{
|
{
|
||||||
.shortName = "XCB",
|
.shortName = "XCB",
|
||||||
.asyncCapture = true,
|
.asyncCapture = true,
|
||||||
|
.initOptions = xcb_initOptions,
|
||||||
.getName = xcb_getName,
|
.getName = xcb_getName,
|
||||||
.create = xcb_create,
|
.create = xcb_create,
|
||||||
.init = xcb_init,
|
.init = xcb_init,
|
||||||
|
.stop = xcb_stop,
|
||||||
.deinit = xcb_deinit,
|
.deinit = xcb_deinit,
|
||||||
.free = xcb_free,
|
.free = xcb_free,
|
||||||
.capture = xcb_capture,
|
.capture = xcb_capture,
|
||||||
|
Loading…
Reference in New Issue
Block a user