vrpn 07.35
Virtual Reality Peripheral Network
Loading...
Searching...
No Matches
vrpn_Imager_Remote Class Reference

This is the class users deal with: it tells the format and the region data when it arrives. More...

#include <vrpn_Imager.h>

Inheritance diagram for vrpn_Imager_Remote:
Collaboration diagram for vrpn_Imager_Remote:

Public Member Functions

 vrpn_Imager_Remote (const char *name, vrpn_Connection *c=NULL)
 
virtual int register_region_handler (void *userdata, vrpn_IMAGERREGIONHANDLER handler)
 Register a handler for when new data arrives (can look up info in object when this happens)
 
virtual int unregister_region_handler (void *userdata, vrpn_IMAGERREGIONHANDLER handler)
 
virtual int register_description_handler (void *userdata, vrpn_IMAGERDESCRIPTIONHANDLER handler)
 Register a handler for when the object's description changes (if desired).
 
virtual int unregister_description_handler (void *userdata, vrpn_IMAGERDESCRIPTIONHANDLER handler)
 
virtual int register_begin_frame_handler (void *userdata, vrpn_IMAGERBEGINFRAMEHANDLER handler)
 Register a handler for frame beginning (if the application cares)
 
virtual int unregister_begin_frame_handler (void *userdata, vrpn_IMAGERBEGINFRAMEHANDLER handler)
 
virtual int register_end_frame_handler (void *userdata, vrpn_IMAGERENDFRAMEHANDLER handler)
 Register a handler for frame end (if the application cares)
 
virtual int unregister_end_frame_handler (void *userdata, vrpn_IMAGERENDFRAMEHANDLER handler)
 
virtual int register_discarded_frames_handler (void *userdata, vrpn_IMAGERDISCARDEDFRAMESHANDLER handler)
 Register a handler for discarded frame notifications (if the application cares)
 
virtual int unregister_discarded_frames_handler (void *userdata, vrpn_IMAGERDISCARDEDFRAMESHANDLER handler)
 
virtual bool throttle_sender (vrpn_int32 N)
 Request that the server send at most N more frames until a new request is sent.
 
virtual void mainloop (void)
 XXX It could be nice to let the user specify separate callbacks for.
 
const vrpn_Imager_Channelchannel (unsigned chanNum) const
 Accessors for the member variables: can be queried in the handler for object changes.
 
bool is_description_valid ()
 have we gotten a description message yet?
 
- Public Member Functions inherited from vrpn_Imager
 vrpn_Imager (const char *name, vrpn_Connection *c=NULL)
 
vrpn_int32 nRows (void) const
 
vrpn_int32 nCols (void) const
 
vrpn_int32 nDepth (void) const
 
vrpn_int32 nChannels (void) const
 
- Public Member Functions inherited from vrpn_BaseClass
 vrpn_BaseClass (const char *name, vrpn_Connection *c=NULL)
 Names the device and assigns or opens connection, calls registration methods.
 
virtual ~vrpn_BaseClass ()
 
virtual void mainloop ()=0
 Called once through each main loop iteration to handle updates. Remote object mainloop() should call client_mainloop() and then call d_connection->mainloop(). Server object mainloop() should service the device and then call server_mainloop(), but should not normally call d_connection->mainloop().
 
- Public Member Functions inherited from vrpn_BaseClassUnique
 vrpn_BaseClassUnique ()
 
virtual ~vrpn_BaseClassUnique ()
 Unregister all of the message handlers that were to be autodeleted.
 
vrpn_ConnectionconnectionPtr ()
 Returns a pointer to the connection this object is using.
 

Static Protected Member Functions

static int VRPN_CALLBACK handle_region_message (void *userdata, vrpn_HANDLERPARAM p)
 Handler for region update message from the server.
 
static int VRPN_CALLBACK handle_description_message (void *userdata, vrpn_HANDLERPARAM p)
 Handler for resolution and channel list message from the server.
 
static int VRPN_CALLBACK handle_connection_dropped_message (void *userdata, vrpn_HANDLERPARAM p)
 Handler for connection dropped message.
 
static int VRPN_CALLBACK handle_begin_frame_message (void *userdata, vrpn_HANDLERPARAM p)
 Handler for begin-frame message from the server.
 
static int VRPN_CALLBACK handle_end_frame_message (void *userdata, vrpn_HANDLERPARAM p)
 Handler for end-frame message from the server.
 
static int VRPN_CALLBACK handle_discarded_frames_message (void *userdata, vrpn_HANDLERPARAM p)
 Handler for discarded-frames message from the server.
 
- Static Protected Member Functions inherited from vrpn_BaseClassUnique
static int encode_text_message_to_buffer (char *buf, vrpn_TEXT_SEVERITY severity, vrpn_uint32 level, const char *msg)
 Encodes the body of the text message into a buffer, preparing for sending.
 
static int decode_text_message_from_buffer (char *msg, vrpn_TEXT_SEVERITY *severity, vrpn_uint32 *level, const char *buf)
 Decodes the body of the text message from a buffer from the connection.
 

Protected Attributes

bool d_got_description
 
vrpn_Callback_List< struct timeval > d_description_list
 
vrpn_Callback_List< vrpn_IMAGERREGIONCBd_region_list
 
vrpn_Callback_List< vrpn_IMAGERBEGINFRAMECBd_begin_frame_list
 
vrpn_Callback_List< vrpn_IMAGERENDFRAMECBd_end_frame_list
 
vrpn_Callback_List< vrpn_IMAGERDISCARDEDFRAMESCBd_discarded_frames_list
 
- Protected Attributes inherited from vrpn_Imager
vrpn_int32 d_nRows
 
vrpn_int32 d_nCols
 
vrpn_int32 d_nDepth
 
vrpn_int32 d_nChannels
 
vrpn_Imager_Channel d_channels [vrpn_IMAGER_MAX_CHANNELS]
 
vrpn_int32 d_description_m_id
 
vrpn_int32 d_begin_frame_m_id
 
vrpn_int32 d_end_frame_m_id
 
vrpn_int32 d_discarded_frames_m_id
 
vrpn_int32 d_throttle_frames_m_id
 
vrpn_int32 d_regionu8_m_id
 
vrpn_int32 d_regionu12in16_m_id
 
vrpn_int32 d_regionu16_m_id
 
vrpn_int32 d_regionf32_m_id
 
- Protected Attributes inherited from vrpn_BaseClassUnique
vrpn_Connectiond_connection
 Connection that this object talks to.
 
char * d_servicename
 Name of this device, not including the connection part.
 
vrpn_int32 d_sender_id
 Sender ID registered with the connection.
 
vrpn_int32 d_text_message_id
 ID for text messages.
 
vrpn_int32 d_ping_message_id
 Ask the server if they are there.
 
vrpn_int32 d_pong_message_id
 Server telling that it is there.
 

Additional Inherited Members

- Public Attributes inherited from vrpn_BaseClassUnique
bool shutup
 
vrpn_MESSAGEHANDLER handler
 
vrpn_int32 sender
 
vrpn_int32 type
 
void * userdata
 
- Protected Member Functions inherited from vrpn_Imager
virtual int register_types (void)
 Register the types of messages this device sends/receives. Return 0 on success, -1 on fail.
 
- Protected Member Functions inherited from vrpn_BaseClass
virtual int init (void)
 Initialize things that the constructor can't. Returns 0 on success, -1 on failure.
 
virtual int register_senders (void)
 Register the sender for this device (by default, the name of the device). Return 0 on success, -1 on fail.
 
virtual int register_types (void)=0
 Register the types of messages this device sends/receives. Return 0 on success, -1 on fail.
 
- Protected Member Functions inherited from vrpn_BaseClassUnique
int register_autodeleted_handler (vrpn_int32 type, vrpn_MESSAGEHANDLER handler, void *userdata, vrpn_int32 sender=vrpn_ANY_SENDER)
 Registers a handler with the connection, and remembers to delete at destruction.
 
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.
 
SendTextMessageBoundCall send_text_message (vrpn_TEXT_SEVERITY type=vrpn_TEXT_NORMAL)
 Returns an object you can stream into to send a text message from the device like send_text_message(vrpn_TEXT_WARNING) << "Value of i is: " << i; This use requires including vrpn_SendTextMessageStreamProxy.h.
 
void server_mainloop (void)
 Handles functions that all servers should provide in their mainloop() (ping/pong, for example) Should be called by all servers in their mainloop()
 
void client_mainloop (void)
 Handles functions that all clients should provide in their mainloop() (warning of no server, for example) Should be called by all clients in their mainloop()
 

Detailed Description

This is the class users deal with: it tells the format and the region data when it arrives.

Definition at line 626 of file vrpn_Imager.h.

Constructor & Destructor Documentation

◆ vrpn_Imager_Remote()

Member Function Documentation

◆ channel()

const vrpn_Imager_Channel * vrpn_Imager_Remote::channel ( unsigned  chanNum) const

Accessors for the member variables: can be queried in the handler for object changes.

Definition at line 1202 of file vrpn_Imager.C.

References vrpn_Imager::d_channels, and vrpn_Imager::d_nChannels.

Referenced by vrpn_Imager_Stream_Buffer::handle_image_description().

◆ handle_begin_frame_message()

◆ handle_connection_dropped_message()

int vrpn_Imager_Remote::handle_connection_dropped_message ( void *  userdata,
vrpn_HANDLERPARAM  p 
)
staticprotected

Handler for connection dropped message.

Definition at line 1366 of file vrpn_Imager.C.

References d_got_description, and vrpn_BaseClassUnique::userdata.

Referenced by vrpn_Imager_Remote().

◆ handle_description_message()

int vrpn_Imager_Remote::handle_description_message ( void *  userdata,
vrpn_HANDLERPARAM  p 
)
staticprotected

◆ handle_discarded_frames_message()

int vrpn_Imager_Remote::handle_discarded_frames_message ( void *  userdata,
vrpn_HANDLERPARAM  p 
)
staticprotected

◆ handle_end_frame_message()

◆ handle_region_message()

◆ is_description_valid()

bool vrpn_Imager_Remote::is_description_valid ( )
inline

have we gotten a description message yet?

Definition at line 730 of file vrpn_Imager.h.

◆ mainloop()

void vrpn_Imager_Remote::mainloop ( void  )
virtual

XXX It could be nice to let the user specify separate callbacks for.

Call this each time through the program's main loop

Implements vrpn_BaseClass.

Definition at line 1194 of file vrpn_Imager.C.

References vrpn_BaseClassUnique::client_mainloop(), vrpn_BaseClassUnique::d_connection, and vrpn_Connection::mainloop().

Referenced by vrpn_Imager_Stream_Buffer::logging_thread_func().

Here is the call graph for this function:

◆ register_begin_frame_handler()

virtual int vrpn_Imager_Remote::register_begin_frame_handler ( void *  userdata,
vrpn_IMAGERBEGINFRAMEHANDLER  handler 
)
inlinevirtual

Register a handler for frame beginning (if the application cares)

Definition at line 660 of file vrpn_Imager.h.

◆ register_description_handler()

virtual int vrpn_Imager_Remote::register_description_handler ( void *  userdata,
vrpn_IMAGERDESCRIPTIONHANDLER  handler 
)
inlinevirtual

Register a handler for when the object's description changes (if desired).

Definition at line 646 of file vrpn_Imager.h.

Referenced by vrpn_Imager_Stream_Buffer::setup_handlers_for_logging_connection().

◆ register_discarded_frames_handler()

virtual int vrpn_Imager_Remote::register_discarded_frames_handler ( void *  userdata,
vrpn_IMAGERDISCARDEDFRAMESHANDLER  handler 
)
inlinevirtual

Register a handler for discarded frame notifications (if the application cares)

Definition at line 687 of file vrpn_Imager.h.

◆ register_end_frame_handler()

virtual int vrpn_Imager_Remote::register_end_frame_handler ( void *  userdata,
vrpn_IMAGERENDFRAMEHANDLER  handler 
)
inlinevirtual

Register a handler for frame end (if the application cares)

Definition at line 673 of file vrpn_Imager.h.

◆ register_region_handler()

virtual int vrpn_Imager_Remote::register_region_handler ( void *  userdata,
vrpn_IMAGERREGIONHANDLER  handler 
)
inlinevirtual

Register a handler for when new data arrives (can look up info in object when this happens)

Definition at line 632 of file vrpn_Imager.h.

◆ throttle_sender()

bool vrpn_Imager_Remote::throttle_sender ( vrpn_int32  N)
virtual

Request that the server send at most N more frames until a new request is sent.

Definition at line 1377 of file vrpn_Imager.C.

References vrpn_BaseClassUnique::d_connection, vrpn_BaseClassUnique::d_sender_id, vrpn_Imager::d_throttle_frames_m_id, vrpn_Connection::pack_message(), vrpn_buffer(), vrpn_CONNECTION_RELIABLE, vrpn_CONNECTION_TCP_BUFLEN, and vrpn_gettimeofday.

Here is the call graph for this function:

◆ unregister_begin_frame_handler()

virtual int vrpn_Imager_Remote::unregister_begin_frame_handler ( void *  userdata,
vrpn_IMAGERBEGINFRAMEHANDLER  handler 
)
inlinevirtual

Definition at line 666 of file vrpn_Imager.h.

◆ unregister_description_handler()

virtual int vrpn_Imager_Remote::unregister_description_handler ( void *  userdata,
vrpn_IMAGERDESCRIPTIONHANDLER  handler 
)
inlinevirtual

◆ unregister_discarded_frames_handler()

virtual int vrpn_Imager_Remote::unregister_discarded_frames_handler ( void *  userdata,
vrpn_IMAGERDISCARDEDFRAMESHANDLER  handler 
)
inlinevirtual

Definition at line 692 of file vrpn_Imager.h.

◆ unregister_end_frame_handler()

virtual int vrpn_Imager_Remote::unregister_end_frame_handler ( void *  userdata,
vrpn_IMAGERENDFRAMEHANDLER  handler 
)
inlinevirtual

Definition at line 678 of file vrpn_Imager.h.

◆ unregister_region_handler()

virtual int vrpn_Imager_Remote::unregister_region_handler ( void *  userdata,
vrpn_IMAGERREGIONHANDLER  handler 
)
inlinevirtual

Definition at line 637 of file vrpn_Imager.h.

Member Data Documentation

◆ d_begin_frame_list

vrpn_Callback_List<vrpn_IMAGERBEGINFRAMECB> vrpn_Imager_Remote::d_begin_frame_list
protected

Definition at line 737 of file vrpn_Imager.h.

Referenced by handle_begin_frame_message().

◆ d_description_list

vrpn_Callback_List<struct timeval> vrpn_Imager_Remote::d_description_list
protected

Definition at line 735 of file vrpn_Imager.h.

Referenced by handle_description_message().

◆ d_discarded_frames_list

vrpn_Callback_List<vrpn_IMAGERDISCARDEDFRAMESCB> vrpn_Imager_Remote::d_discarded_frames_list
protected

Definition at line 739 of file vrpn_Imager.h.

Referenced by handle_discarded_frames_message().

◆ d_end_frame_list

vrpn_Callback_List<vrpn_IMAGERENDFRAMECB> vrpn_Imager_Remote::d_end_frame_list
protected

Definition at line 738 of file vrpn_Imager.h.

Referenced by handle_end_frame_message().

◆ d_got_description

◆ d_region_list

vrpn_Callback_List<vrpn_IMAGERREGIONCB> vrpn_Imager_Remote::d_region_list
protected

Definition at line 736 of file vrpn_Imager.h.

Referenced by handle_region_message().


The documentation for this class was generated from the following files: