neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
i_hid_device.hpp
Go to the documentation of this file.
1// i_hid_device.hpp
2/*
3 neogfx C++ App/Game Engine
4 Copyright (c) 2020 Leigh Johnston. All Rights Reserved.
5
6 This program is free software: you can redistribute it and / or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#pragma once
21
22#include <neogfx/neogfx.hpp>
24#include <neolib/core/uuid.hpp>
25#include <neogfx/core/event.hpp>
26
27namespace neogfx
28{
29 enum class hid_device_type : uint32_t
30 {
31 Input,
32 Output
33 };
34
35 enum class hid_device_class : uint32_t
36 {
38 Mouse,
41 };
42
43 enum class hid_device_subclass : uint32_t
44 {
46 Keypad,
47 Mouse,
50 Gamepad,
51 Wheel,
55 Guitar,
57 DrumKit,
61 };
62
64
66 {
67 public:
69 public:
70 declare_event(enabled)
71 declare_event(disabled)
72 public:
73 virtual hid_device_type device_type() const = 0;
74 virtual hid_device_class device_class() const = 0;
76 virtual hid_device_uuid product_id() const = 0;
77 virtual hid_device_uuid instance_id() const = 0;
78 virtual bool is_enabled() const = 0;
79 virtual void enable() = 0;
80 virtual void disable() = 0;
81 public:
82 virtual const i_string& product_name() const = 0;
83 };
84}
virtual bool is_enabled() const =0
virtual const i_string & product_name() const =0
virtual void disable()=0
virtual hid_device_uuid product_id() const =0
virtual void enable()=0
virtual declare_event(enabled) declare_event(disabled) public hid_device_class device_class() const =0
i_hid_device abstract_type
virtual hid_device_uuid instance_id() const =0
virtual hid_device_subclass device_subclass() const =0
neolib::uuid hid_device_uuid
#define declare_event(declName,...)
Definition i_event.hpp:305