diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2016-07-07 14:15:18 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2016-07-07 14:15:18 +0200 |
commit | 5f5ca66c58ad30d0c218b2da904aa3f722e18ebe (patch) | |
tree | 8e8d5bae3ca7edf6c96c7f0e0da87f347486b045 /opentrack-logic/dinput.hpp | |
parent | c418644838e99416fb168066bacc28a4cbc36a04 (diff) |
logic/dinput: only ever use a single handle to DIRECTINPUT8 COM object
Diffstat (limited to 'opentrack-logic/dinput.hpp')
-rw-r--r-- | opentrack-logic/dinput.hpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/opentrack-logic/dinput.hpp b/opentrack-logic/dinput.hpp new file mode 100644 index 00000000..9300f39f --- /dev/null +++ b/opentrack-logic/dinput.hpp @@ -0,0 +1,27 @@ +#pragma once + +#ifdef _WIN32 + +#ifndef DIRECTINPUT_VERSION +# define DIRECTINPUT_VERSION 0x800 +#endif +#include <dinput.h> +#include <windows.h> + +struct dinput_handle final +{ + using di_t = LPDIRECTINPUT8; +private: + static dinput_handle self; + dinput_handle(); + ~dinput_handle(); + static di_t init_di(); + di_t handle; +public: + static di_t make_di(); + + dinput_handle(const dinput_handle&) = delete; + dinput_handle(dinput_handle&&) = delete; +}; + +#endif |