diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2015-10-30 09:16:32 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-10-30 09:16:32 +0100 |
commit | 0739d5b595be9492c1e574192eba12174111e52c (patch) | |
tree | 01225d2335ff784b35b59a5438f8ea1e07535486 /proto-vjoy/ftnoir_protocol_vjoy.cpp | |
parent | 05b2f05b72c706908e961eff8c0e4aa70dcadbd3 (diff) |
also rename protocol -> proto
Diffstat (limited to 'proto-vjoy/ftnoir_protocol_vjoy.cpp')
-rw-r--r-- | proto-vjoy/ftnoir_protocol_vjoy.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/proto-vjoy/ftnoir_protocol_vjoy.cpp b/proto-vjoy/ftnoir_protocol_vjoy.cpp new file mode 100644 index 00000000..24148c63 --- /dev/null +++ b/proto-vjoy/ftnoir_protocol_vjoy.cpp @@ -0,0 +1,33 @@ +#include "ftnoir_protocol_vjoy.h" +#include "opentrack/plugin-api.hpp" + +FTNoIR_Protocol::FTNoIR_Protocol() +{ + static char meh[1] = {0}; + VJoy_Initialize(meh, meh); +} + +FTNoIR_Protocol::~FTNoIR_Protocol() +{ + VJoy_Shutdown(); +} + +void FTNoIR_Protocol::pose( const double *headpose ) { +#ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + JOYSTICK_STATE state[2] = { 0 }; + + state[0].POV = (4 << 12) | (4 << 8) | (4 << 4) | 4; + + state[0].XAxis = std::min<int>(VJOY_AXIS_MAX, std::max<int>(VJOY_AXIS_MIN, headpose[Yaw] * VJOY_AXIS_MAX / 180.0)); + state[0].YAxis = std::min<int>(VJOY_AXIS_MAX, std::max<int>(VJOY_AXIS_MIN, headpose[Pitch] * VJOY_AXIS_MAX / 180.0)); + state[0].ZAxis = std::min<int>(VJOY_AXIS_MAX, std::max<int>(VJOY_AXIS_MIN, headpose[Roll] * VJOY_AXIS_MAX / 180.0)); + state[0].XRotation = std::min<int>(VJOY_AXIS_MAX, std::max<int>(VJOY_AXIS_MIN, headpose[TX] * VJOY_AXIS_MAX / 100.0)); + state[0].YRotation = std::min<int>(VJOY_AXIS_MAX, std::max<int>(VJOY_AXIS_MIN, headpose[TY] * VJOY_AXIS_MAX / 100.0)); + state[0].ZRotation = std::min<int>(VJOY_AXIS_MAX, std::max<int>(VJOY_AXIS_MIN, headpose[TZ] * VJOY_AXIS_MAX / 100.0)); + + VJoy_UpdateJoyState(0, state); +} + +OPENTRACK_DECLARE_PROTOCOL(FTNoIR_Protocol, VJoyControls, FTNoIR_ProtocolDll) |