3 #include <cgv/gui/key_event.h>
4 #include <cgv/gui/throttle_event.h>
5 #include <cgv/gui/stick_event.h>
6 #include <cgv/gui/pose_event.h>
7 #include <cgv/gui/event_handler.h>
9 #include <cgv/gui/window.h>
10 #include <cgv/signal/signal.h>
11 #include <cgv/signal/bool_signal.h>
12 #include <vr/vr_log.h>
15 #include "lib_begin.h"
46 VRF_GRAB_EXCLUSIVE = 3,
48 VRF_GRAB_PERMANENT = 5,
49 VRF_GRAB_PERMANENT_AND_EXCLUSIVE = 7
140 double last_device_scan;
141 double device_scan_interval;
142 std::vector<void*> vr_kit_handles;
143 std::vector<vr::vr_kit_state> last_states;
144 std::vector<unsigned> last_time_stamps;
148 std::unordered_map<int, cgv::data::ref_ptr<vr::vr_log>> log_data;
163 void set_device_scan_interval(
double duration);
167 void check_device_changes(
double time);
169 void check_and_emit_events(
double time);
171 bool check_new_state(
void* kit_handle,
const vr::vr_kit_state& new_state,
double time);
181 cgv::signal::bool_signal<cgv::gui::event&>
on_event;
188 void enable_log(
const std::string fn=
"",
const bool in_memory_log =
true,
const int filter=vr::vr_log::F_ALL,
const int kit_index = 0);
190 void disable_log(
const int kit_index=0);
207 #include <cgv/config/lib_end.h>
VRFocus
different types of event focus grabbing
Definition: vr_server.h:42
interface for all classes that want to receive events
Definition: event_handler.h:15
double get_device_scan_interval() const
return the time interval in seconds to check for device connection changes
Definition: vr_server.h:165
@ VRE_NONE
no events
Definition: vr_server.h:28
vr_server & ref_vr_server()
return a reference to gamepad server singleton
Definition: vr_server.cxx:397
@ VRE_ONE_AXIS
trigger / throttle / pedal events
Definition: vr_server.h:32
helper struct for logging vr events
Definition: vr_log.h:19
@ VRE_ALL
all event types
Definition: vr_server.h:37
cgv::signal::signal< void *, int, vr::VRStatus, vr::VRStatus > on_status_change
signal emitted to notify about status changes of trackables, first argument is handle,...
Definition: vr_server.h:185
cgv::signal::bool_signal< cgv::gui::event & > on_event
signal emitted to dispatch events
Definition: vr_server.h:181
@ VRE_DEVICE
device change events
Definition: vr_server.h:29
server for vr events
Definition: vr_server.h:136
cgv::signal::signal< void *, bool > on_device_change
signal emitted to notify about device changes, first argument is handle and second a flag telling whe...
Definition: vr_server.h:183
void connect_vr_server(bool connect_device_change_only_to_animation_trigger, cgv::gui::window_ptr w)
connect the gamepad server to the given window or the first window of the application,...
Definition: vr_server.cxx:414
@ VRE_KEY
key events
Definition: vr_server.h:31
@ VRE_STATUS
status change events
Definition: vr_server.h:30
structure that stores all information describing the state of a VR kit
Definition: vr_state.h:139
VREventTypeFlags
flags to define which events should be generated by server
Definition: vr_server.h:27
@ VRE_POSE
pose events
Definition: vr_server.h:36
@ VRE_ONE_AXIS_GENERATES_KEY
whether one axis events should generate a key event when passing inputs threshold value
Definition: vr_server.h:34
the cgv namespace
Definition: vr_calib.cxx:9
@ VRE_TWO_AXES
pad / stick events
Definition: vr_server.h:33
@ VRE_TWO_AXES_GENERATES_DPAD
whether two axes input generates direction pad keys when presses
Definition: vr_server.h:35