35 #define OSVR_CALLBACK_METHODS(TYPE)                                            \ 
   36     OSVR_ReturnCode osvrGet##TYPE##State(OSVR_ClientInterface iface,           \ 
   37                                          struct OSVR_TimeValue *timestamp,     \ 
   38                                          OSVR_##TYPE##State *state) {          \ 
   40             iface->getState<OSVR_##TYPE##Report>(*timestamp, *state);          \ 
   41         return hasState ? OSVR_RETURN_SUCCESS : OSVR_RETURN_FAILURE;           \ 
   44 OSVR_CALLBACK_METHODS(Pose)
 
   45 OSVR_CALLBACK_METHODS(Position)
 
   46 OSVR_CALLBACK_METHODS(Orientation)
 
   47 OSVR_CALLBACK_METHODS(Velocity)
 
   48 OSVR_CALLBACK_METHODS(LinearVelocity)
 
   49 OSVR_CALLBACK_METHODS(AngularVelocity)
 
   50 OSVR_CALLBACK_METHODS(Acceleration)
 
   51 OSVR_CALLBACK_METHODS(LinearAcceleration)
 
   52 OSVR_CALLBACK_METHODS(AngularAcceleration)
 
   53 OSVR_CALLBACK_METHODS(Button)
 
   54 OSVR_CALLBACK_METHODS(Analog)
 
   55 OSVR_CALLBACK_METHODS(Location2D)
 
   56 OSVR_CALLBACK_METHODS(Direction)
 
   57 OSVR_CALLBACK_METHODS(EyeTracker2D)
 
   58 OSVR_CALLBACK_METHODS(EyeTracker3D)
 
   59 OSVR_CALLBACK_METHODS(EyeTrackerBlink)
 
   60 OSVR_CALLBACK_METHODS(NaviVelocity)
 
   61 OSVR_CALLBACK_METHODS(NaviPosition)
 
   63 #undef OSVR_CALLBACK_METHODS