1 #ifndef VRPN_RUMBLEPAD_H 5 #if defined(_WIN32) && defined(VRPN_USE_DIRECTINPUT) 12 #ifndef DIRECTINPUT_VERSION 13 #define DIRECTINPUT_VERSION 0x0800 26 GUID device_guid = GUID_NULL);
28 ~vrpn_DirectXRumblePad();
34 static int VRPN_CALLBACK handle_request_message(
void *userdata,
36 static int VRPN_CALLBACK handle_request_channels_message(
void* userdata,
46 static BOOL CALLBACK joystick_enum_cb(LPCDIDEVICEINSTANCE lpddi, LPVOID ref);
47 static DWORD CALLBACK thread_proc(LPVOID ref);
48 static LRESULT CALLBACK window_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);
49 static BOOL CALLBACK axis_enum_cb(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID ref);
52 inline void FAIL(
const char *msg) {
79 LPDIRECTINPUT8 _directInput;
82 LPDIRECTINPUTDEVICE8 _gamepad;
83 LPDIRECTINPUTEFFECT _effect;
85 DIPERIODIC _diPeriodic;
89 #endif // _WIN32 and VRPN_USE_DIRECTINPUT 91 #define VRPN_RUMBLEPAD_H const vrpn_uint32 vrpn_CONNECTION_LOW_LATENCY
virtual void report_changes(vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW)
Send a report only if something has changed (for servers) Optionally, tell what time to stamp the val...
Generic connection class not specific to the transport mechanism.
virtual void report(vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW)
Send a report whether something has changed or not (for servers) Optionally, tell what time to stamp ...
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
This structure is what is passed to a vrpn_Connection message callback.
int send_text_message(const char *msg, struct timeval timestamp, vrpn_TEXT_SEVERITY type=vrpn_TEXT_NORMAL, vrpn_uint32 level=0)
Sends a NULL-terminated text message from the device d_sender_id.
#define vrpn_gettimeofday