Deskflow
1.26.0.418
Keyboard and mouse sharing utility
Toggle main menu visibility
Loading...
Searching...
No Matches
AppUtilWindows.h
Go to the documentation of this file.
1
/*
2
* Deskflow -- mouse and keyboard sharing utility
3
* SPDX-FileCopyrightText: (C) 2012 - 2025 Synergy App Ltd
4
* SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
5
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6
*/
7
8
#pragma once
9
10
#include "
deskflow/AppUtil.h
"
11
12
#define WIN32_LEAN_AND_MEAN
13
#include "Windows.h"
// IWYU pragma: keep
14
15
#include <condition_variable>
16
#include <mutex>
17
#include <thread>
18
19
#define ARCH_APP_UTIL AppUtilWindows
20
21
class
IEventQueue
;
22
23
enum
AppExitMode
24
{
25
kExitModeNormal
,
26
kExitModeDaemon
27
};
28
29
class
AppUtilWindows
:
public
AppUtil
30
{
31
public
:
32
explicit
AppUtilWindows
(
IEventQueue
*events);
33
~AppUtilWindows
()
override
;
34
35
static
AppUtilWindows
&
instance
();
36
37
int
daemonNTStartup
();
38
int
daemonNTMainLoop
();
39
int
run
()
override
;
40
void
exitApp
(
int
code)
override
;
41
void
startNode
()
override
;
42
std::vector<std::string>
getKeyboardLayoutList
()
override
;
43
std::string
getCurrentLanguageCode
()
override
;
44
HKL
getCurrentKeyboardLayout
()
const
;
45
46
private
:
47
AppExitMode
m_exitMode;
48
IEventQueue
*m_events;
49
std::thread m_eventThread;
// NOSONAR - No jthread on Windows
50
bool
m_eventThreadRunning =
false
;
51
std::condition_variable m_eventThreadStartedCond;
52
std::mutex m_eventThreadStartedMutex;
53
54
void
eventLoop();
55
56
static
BOOL
WINAPI consoleHandler(
DWORD
Event
);
57
};
AppExitMode
AppExitMode
Definition
AppUtilWindows.h:24
kExitModeNormal
@ kExitModeNormal
Definition
AppUtilWindows.h:25
kExitModeDaemon
@ kExitModeDaemon
Definition
AppUtilWindows.h:26
AppUtil.h
DWORD
static const WSAEVENT FAR DWORD
Definition
ArchNetworkWinsock.cpp:56
BOOL
static const WSAEVENT FAR BOOL
Definition
ArchNetworkWinsock.cpp:56
AppUtilWindows::getCurrentLanguageCode
std::string getCurrentLanguageCode() override
Definition
AppUtilWindows.cpp:158
AppUtilWindows::instance
static AppUtilWindows & instance()
Definition
AppUtilWindows.cpp:124
AppUtilWindows::run
int run() override
Definition
AppUtilWindows.cpp:106
AppUtilWindows::getCurrentKeyboardLayout
HKL getCurrentKeyboardLayout() const
Definition
AppUtilWindows.cpp:171
AppUtilWindows::startNode
void startNode() override
Definition
AppUtilWindows.cpp:129
AppUtilWindows::daemonNTMainLoop
int daemonNTMainLoop()
Definition
AppUtilWindows.cpp:64
AppUtilWindows::getKeyboardLayoutList
std::vector< std::string > getKeyboardLayoutList() override
Definition
AppUtilWindows.cpp:134
AppUtilWindows::exitApp
void exitApp(int code) override
Definition
AppUtilWindows.cpp:71
AppUtilWindows::AppUtilWindows
AppUtilWindows(IEventQueue *events)
Definition
AppUtilWindows.cpp:29
AppUtilWindows::daemonNTStartup
int daemonNTStartup()
Definition
AppUtilWindows.cpp:89
AppUtil::AppUtil
AppUtil()
Definition
AppUtil.cpp:14
Event
Event.
Definition
Event.h:43
IEventQueue
Event queue interface.
Definition
IEventQueue.h:29
src
lib
deskflow
win32
AppUtilWindows.h
Generated by
1.18.0