65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
// Copyright 2015-2023 The Mumble Developers. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license
|
|
// that can be found in the LICENSE file at the root of the
|
|
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
|
|
|
|
#ifndef MUMBLE_MUMBLE_GKEY_H
|
|
#define MUMBLE_MUMBLE_GKEY_H
|
|
|
|
#include "win.h"
|
|
|
|
#include <QtCore/QLibrary>
|
|
#include <QtCore/QString>
|
|
#include <QtCore/QUuid>
|
|
|
|
#define GKEY_LOGITECH_DLL_REG_HKEY HKEY_CLASSES_ROOT
|
|
#ifdef _M_X64
|
|
# define GKEY_LOGITECH_DLL_REG_PATH L"Wow6432Node\\CLSID\\{7bded654-f278-4977-a20f-6e72a0d07859}\\ServerBinary"
|
|
# define GKEY_LOGITECH_DLL_DEFAULT_LOCATION \
|
|
"C:/Program Files/Logitech Gaming Software/SDK/G-key/x64/LogitechGkey.dll"
|
|
#else
|
|
# define GKEY_LOGITECH_DLL_REG_PATH L"CLSID\\{7bded654-f278-4977-a20f-6e72a0d07859}\\ServerBinary"
|
|
# define GKEY_LOGITECH_DLL_DEFAULT_LOCATION \
|
|
"C:/Program Files/Logitech Gaming Software/SDK/G-key/x86/LogitechGkey.dll"
|
|
#endif
|
|
|
|
#define GKEY_MIN_MOUSE_BUTTON 6
|
|
#define GKEY_MAX_MOUSE_BUTTON 20
|
|
#define GKEY_MIN_KEYBOARD_BUTTON 1
|
|
#define GKEY_MAX_KEYBOARD_BUTTON 29
|
|
#define GKEY_MIN_KEYBOARD_MODE 1
|
|
#define GKEY_MAX_KEYBOARD_MODE 3
|
|
|
|
#define GKEY_BUTTON_MOUSE 1
|
|
#define GKEY_BUTTON_KEYBOARD 2
|
|
|
|
#define GKEY_MOUSE_GUID "c41e60af-9022-46cf-bc39-37981082d716"
|
|
#define GKEY_KEYBOARD_GUID "153e64e6-98c8-4e03-80ef-5ffd33d25b8a"
|
|
|
|
class GKeyLibrary {
|
|
public:
|
|
GKeyLibrary();
|
|
virtual ~GKeyLibrary();
|
|
bool isValid() const;
|
|
static const QUuid quMouse;
|
|
static const QUuid quKeyboard;
|
|
|
|
bool isMouseButtonPressed(int button);
|
|
bool isKeyboardGkeyPressed(int key, int mode);
|
|
QString getMouseButtonString(int button);
|
|
QString getKeyboardGkeyString(int key, int mode);
|
|
|
|
protected:
|
|
QLibrary qlLogiGkey;
|
|
bool bValid;
|
|
|
|
BOOL (*LogiGkeyInit)(void *);
|
|
void (*LogiGkeyShutdown)();
|
|
BOOL (*LogiGkeyIsMouseButtonPressed)(int button);
|
|
BOOL (*LogiGkeyIsKeyboardGkeyPressed)(int key, int mode);
|
|
wchar_t *(*LogiGkeyGetMouseButtonString)(int button);
|
|
wchar_t *(*LogiGkeyGetKeyboardGkeyString)(int key, int mode);
|
|
};
|
|
|
|
#endif // MUMBLE_MUMBLE_GKEY_H
|