Deskflow
1.26.0.418
Keyboard and mouse sharing utility
Toggle main menu visibility
Loading...
Searching...
No Matches
EiEventQueueBuffer.h
Go to the documentation of this file.
1
/*
2
* Deskflow -- mouse and keyboard sharing utility
3
* SPDX-FileCopyrightText: (C) 2024 Synergy App Ltd
4
* SPDX-FileCopyrightText: (C) 2022 Red Hat, Inc.
5
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6
*/
7
8
#pragma once
9
10
#include "
base/IEventQueueBuffer.h
"
11
#include "
platform/EiScreen.h
"
12
13
#include <libei.h>
14
#include <mutex>
15
#include <queue>
16
17
namespace
deskflow
{
18
20
class
EiEventQueueBuffer
:
public
IEventQueueBuffer
21
{
22
public
:
23
EiEventQueueBuffer
(ei *ei,
IEventQueue
*events);
24
~EiEventQueueBuffer
()
override
;
25
26
// IEventQueueBuffer overrides
27
void
init
()
override
28
{
29
// do nothing
30
}
31
void
waitForEvent
(
double
msTimeout)
override
;
32
Type
getEvent
(
Event
&event, uint32_t &dataID)
override
;
33
bool
addEvent
(uint32_t dataID)
override
;
34
bool
isEmpty
()
const override
;
35
36
private
:
37
ei *m_ei;
38
IEventQueue
*m_events;
39
std::queue<std::pair<bool, uint32_t>> m_queue;
40
int
m_pipeWrite;
41
int
m_pipeRead;
42
43
mutable
std::mutex m_mutex;
44
};
45
46
}
// namespace deskflow
EiScreen.h
IEventQueueBuffer.h
Event
Event.
Definition
Event.h:43
IEventQueueBuffer
Event queue buffer interface.
Definition
IEventQueueBuffer.h:22
IEventQueueBuffer::Type
Type
Definition
IEventQueueBuffer.h:26
IEventQueue
Event queue interface.
Definition
IEventQueue.h:29
deskflow::EiEventQueueBuffer::getEvent
Type getEvent(Event &event, uint32_t &dataID) override
Get the next event.
Definition
EiEventQueueBuffer.cpp:86
deskflow::EiEventQueueBuffer::waitForEvent
void waitForEvent(double msTimeout) override
Block waiting for an event.
Definition
EiEventQueueBuffer.cpp:41
deskflow::EiEventQueueBuffer::addEvent
bool addEvent(uint32_t dataID) override
Post an event.
Definition
EiEventQueueBuffer.cpp:116
deskflow::EiEventQueueBuffer::EiEventQueueBuffer
EiEventQueueBuffer(ei *ei, IEventQueue *events)
Definition
EiEventQueueBuffer.cpp:23
deskflow::EiEventQueueBuffer::init
void init() override
Initialize.
Definition
EiEventQueueBuffer.h:27
deskflow::EiEventQueueBuffer::isEmpty
bool isEmpty() const override
Check if event queue buffer is empty.
Definition
EiEventQueueBuffer.cpp:128
deskflow
Definition
DaemonApp.h:18
src
lib
platform
EiEventQueueBuffer.h
Generated by
1.18.0