12 #ifndef CXIMAGESTREAMERSONIX_H_
13 #define CXIMAGESTREAMERSONIX_H_
17 #include "cxGrabberExport.h"
19 #include "boost/shared_ptr.hpp"
21 #include <QStringList>
24 #include <vtkSmartPointer.h>
25 #include "cxImageSenderFactory.h"
34 typedef vtkSmartPointer<class vtkSonixVideoSource> vtkSonixVideoSourcePtr;
50 class cxGrabber_EXPORT ImageStreamerSonix :
public CommandLineStreamer
56 ~ImageStreamerSonix();
58 virtual void initialize(
StringMap arguments);
59 virtual bool startStreaming(
SenderPtr sender);
60 virtual void stopStreaming();
62 virtual QString getType();
63 virtual QStringList getArgumentDescription();
66 void sendOpenIGTLinkImageSlot(
int sendNumberOfMessages);
67 void sendOpenIGTLinkStatusSlot(
int sendNumberOfMessages);
70 void imageOnQueue(
int);
71 void queueInfo(
int size,
int dropped);
72 void statusOnQueue(
int);
75 void initializeSonixGrabber();
78 void receiveFrameSlot(
Frame& frame);
79 void initializeSonixSlot();
82 IGTLinkImageMessage::Pointer convertFrame(
Frame& frame);
85 void addImageToQueue(IGTLinkImageMessage::Pointer msg);
86 IGTLinkImageMessage::Pointer getLastImageMessageFromQueue();
91 std::string createDeviceName();
95 std::list<IGTLinkImageMessage::Pointer> mMutexedImageMessageQueue;
99 std::list<IGTLinkUSStatusMessage::Pointer> mMutexedStatusMessageQueue;
101 bool mEmitStatusMessage;
102 double mLastFrameTimestamp;
103 double mCurrentFrameTimestamp;
105 vtkSonixVideoSourcePtr mSonixGrabber;