11#ifndef VRPN_ANALOG_OUTPUT_H
12#define VRPN_ANALOG_OUTPUT_H
67 vrpn_int32 setNumChannels(vrpn_int32 sizeRequested);
73 virtual bool report_num_channels(
75 virtual vrpn_int32 encode_num_channels_to(
char* buf, vrpn_int32 num);
104typedef struct _vrpn_ANALOGOUTPUTCB {
168 unsigned int chan, vrpn_float64 val,
178 int num, vrpn_float64* vals,
vrpn_Callback_List< vrpn_ANALOGOUTPUTCB > d_callback_list
List of user-level routines that need to be called back to let them know that the values have changed...
virtual int unregister_change_handler(void *userdata, vrpn_ANALOGOUTPUTCHANGEHANDLER handler)
virtual int register_change_handler(void *userdata, vrpn_ANALOGOUTPUTCHANGEHANDLER handler)
vrpn_Analog_Output_Callback_Server(const char *name, vrpn_Connection *c, vrpn_int32 numChannels=vrpn_CHANNEL_MAX)
virtual bool request_change_channel_value(unsigned int chan, vrpn_float64 val, vrpn_uint32 class_of_service=vrpn_CONNECTION_RELIABLE)
virtual vrpn_int32 encode_change_channels_to(char *buf, vrpn_int32 num, vrpn_float64 *vals)
static int VRPN_CALLBACK handle_report_num_channels(void *userdata, vrpn_HANDLERPARAM p)
virtual bool request_change_channels(int num, vrpn_float64 *vals, vrpn_uint32 class_of_service=vrpn_CONNECTION_RELIABLE)
virtual vrpn_int32 encode_change_to(char *buf, vrpn_int32 chan, vrpn_float64 val)
vrpn_Analog_Output_Remote(const char *name, vrpn_Connection *c=NULL)
virtual void mainloop()
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
const vrpn_float64 * o_channels(void) const
Exposes an array of values for the user to read from.
vrpn_Analog_Output_Server(const char *name, vrpn_Connection *c, vrpn_int32 numChannels=vrpn_CHANNEL_MAX)
vrpn_int32 got_connection_m_id
vrpn_int32 report_num_channels_m_id
vrpn_float64 o_channel[vrpn_CHANNEL_MAX]
vrpn_int32 request_channels_m_id
vrpn_int32 getNumChannels() const
struct timeval o_timestamp
vrpn_Analog_Output(const char *name, vrpn_Connection *c=NULL)
vrpn_MESSAGEHANDLER handler
void server_mainloop(void)
Handles functions that all servers should provide in their mainloop() (ping/pong, for example) Should...
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
virtual int register_types(void)=0
Register the types of messages this device sends/receives. Return 0 on success, -1 on fail.
vrpn_BaseClass(const char *name, vrpn_Connection *c=NULL)
Names the device and assigns or opens connection, calls registration methods.
Generic connection class not specific to the transport mechanism.
const vrpn_float64 * channel
This structure is what is passed to a vrpn_Connection message callback.
void(VRPN_CALLBACK * vrpn_ANALOGOUTPUTCHANGEHANDLER)(void *userdata, const vrpn_ANALOGOUTPUTCB info)
All types of client/server/peer objects in VRPN should be derived from the vrpn_BaseClass type descri...
const vrpn_uint32 vrpn_CONNECTION_RELIABLE
Classes of service for messages, specify multiple by ORing them together Priority of satisfying these...
class VRPN_API vrpn_Analog_Output_Remote