25 #ifndef INCLUDED_ImagingComponent_h_GUID_BA26C922_01FD_43B3_8EB7_A9AB2777CEBC
26 #define INCLUDED_ImagingComponent_h_GUID_BA26C922_01FD_43B3_8EB7_A9AB2777CEBC
38 #include <vrpn_BaseClass.h>
45 typedef shared_ptr<OSVR_ImageBufferElement> ImageBufferPtr;
49 ImageBufferPtr buffer;
56 static const char *identifier();
58 #ifdef OSVR_COMMON_IN_PROCESS_IMAGING
59 class ImagePlacedInProcessMemory
62 class MessageSerialization;
63 static const char *identifier();
70 static const char *identifier();
81 static OSVR_COMMON_EXPORT shared_ptr<ImagingComponent>
91 #ifdef OSVR_COMMON_IN_PROCESS_IMAGING
92 messages::ImagePlacedInProcessMemory imagePlacedInProcessMemory;
97 OSVR_COMMON_EXPORT
void sendImageData(
101 typedef std::function<void(
ImageData const &,
103 OSVR_COMMON_EXPORT
void registerImageHandler(ImageHandler cb);
107 virtual void m_parentSet();
121 #ifdef OSVR_COMMON_IN_PROCESS_IMAGING
129 static int VRPN_CALLBACK
130 m_handleImageRegion(
void *userdata, vrpn_HANDLERPARAM p);
132 static int VRPN_CALLBACK
133 m_handleImagePlacedInSharedMemory(
void *userdata, vrpn_HANDLERPARAM p);
135 #ifdef OSVR_COMMON_IN_PROCESS_IMAGING
136 static int VRPN_CALLBACK
137 m_handleImagePlacedInProcessMemory(
void *userdata, vrpn_HANDLERPARAM p);
144 std::vector<ImageHandler> m_cb;
147 std::vector<IPCRingBufferPtr> m_shmBuf;
152 #endif // INCLUDED_ImagingComponent_h_GUID_BA26C922_01FD_43B3_8EB7_A9AB2777CEBC
uint32_t OSVR_ChannelCount
The integer type specifying a number of channels/sensors or a channel/sensor index.
static shared_ptr< ImagingComponent > create(OSVR_ChannelCount numSensor=0)
Factory method.
CRTP class template wrapping message-specific data and/or logic.
Generated header describing imaging component config.
Automatically-generated export header - do not edit!
messages::ImageRegion imageRegion
Message from server to client, containing some image data.
messages::ImagePlacedInSharedMemory imagePlacedInSharedMemory
Message from server to client, notifying of image data in the shared memory ring buffer.
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
unsigned char OSVR_ImageBufferElement
Type for raw buffer access to image data.