NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxMHDImageStreamer.h
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
12 #ifndef CXMHDIMAGESTREAMER_H_
13 #define CXMHDIMAGESTREAMER_H_
14 
15 #include "cxGrabberExport.h"
16 
17 #include "boost/shared_ptr.hpp"
18 #include "cxStreamer.h"
19 #include "cxForwardDeclarations.h"
20 
21 class QTimer;
22 class QDomElement;
23 
24 namespace cx
25 {
26 
27 typedef boost::shared_ptr<struct Package> PackagePtr;
28 typedef boost::shared_ptr<class FilePathProperty> FilePathPropertyPtr;
29 
30 vtkImageDataPtr loadImage(QString filename);
31 vtkLookupTablePtr createLookupTable(int numberOfTableValues);
34 
42 class cxGrabber_EXPORT ImageTestData
43 {
44 public:
45  static ImageTestData initializePrimaryData(vtkImageDataPtr source, QString filename);
46  static ImageTestData initializeSecondaryData(vtkImageDataPtr source, QString filename);
47  static PackagePtr createPackage(ImageTestData* data);
48 
50  boost::shared_ptr<class SplitFramesContainer> mDataSource;
52  QString mRawUid;
53 };
54 typedef boost::shared_ptr<class ImageTestData> ImageTestDataPtr;
55 
58 class cxGrabber_EXPORT ImageStreamerDummyArguments
59 {
60 public:
61  QStringList getArgumentDescription();
62  virtual std::vector<PropertyPtr> getSettings(QDomElement root);
63  StringMap convertToCommandLineArguments(QDomElement root);
64 
65  FilePathPropertyPtr getFilenameOption(QDomElement root);
66  BoolPropertyBasePtr getSecondaryOption(QDomElement root);
67 };
68 
69 
78 class cxGrabber_EXPORT DummyImageStreamer: public CommandLineStreamer
79 {
80 Q_OBJECT
81 
82 public:
84  virtual ~DummyImageStreamer(){};
85 
86  virtual void initialize(QString filename, bool secondaryStream, bool sendonce = false);
87  virtual void initialize(StringMap arguments);
88  virtual void startStreaming(SenderPtr sender);
89  virtual void stopStreaming();
90  virtual bool isStreaming();
91 
92  virtual QString getType();
93  virtual QStringList getArgumentDescription();
94 
95 private slots:
96  virtual void streamSlot();
97 
98 private:
99  vtkImageDataPtr internalLoadImage(QString filename);
100  QString getFileName();
101  void setSendOnce(bool sendonce);
102  bool mSendOnce;
103  QString mFilename;
104 
105  bool shouldSetupSecondaryDataSource();
106  vtkSmartPointer<vtkImageData> hasSecondaryData();
107  void createTestDataSource(vtkImageDataPtr source);
108  void sendTestDataFrames();
109 
110  bool mUseSecondaryStream;
111  ImageTestData mPrimaryDataSource;
112  ImageTestData mSecondaryDataSource;
113 };
114 typedef boost::shared_ptr<class DummyImageStreamer> DummyImageStreamerPtr;
115 
116 }
117 
118 #endif /* CXMHDIMAGESTREAMER_H_ */
cx::applyLUTToImage
vtkImageDataPtr applyLUTToImage(vtkImageDataPtr input, vtkLookupTablePtr lut)
Definition: cxMHDImageStreamer.cpp:114
cx::ImageTestData::mImageData
vtkImageDataPtr mImageData
Definition: cxMHDImageStreamer.h:49
cx::createLookupTable
vtkLookupTablePtr createLookupTable(int numberOfTableValues)
Definition: cxMHDImageStreamer.cpp:102
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::ImageStreamerDummyArguments
Definition: cxMHDImageStreamer.h:58
cxForwardDeclarations.h
cxStreamer.h
vtkImageDataPtr
vtkSmartPointer< class vtkImageData > vtkImageDataPtr
Definition: cxVideoConnectionWidget.h:30
cx::convertToTestColorImage
vtkImageDataPtr convertToTestColorImage(vtkImageDataPtr image)
Definition: cxMHDImageStreamer.cpp:124
cx::FilePathPropertyPtr
boost::shared_ptr< class FilePathProperty > FilePathPropertyPtr
Definition: cxPlusConnectWidget.h:28
cx::DummyImageStreamer::~DummyImageStreamer
virtual ~DummyImageStreamer()
Definition: cxMHDImageStreamer.h:84
cx::ImageTestDataPtr
boost::shared_ptr< class ImageTestData > ImageTestDataPtr
Definition: cxMHDImageStreamer.h:54
cx::StringMap
std::map< QString, QString > StringMap
Definition: cxCommandlineImageStreamerFactory.h:28
cx::ImageTestData::mCurrentFrame
int mCurrentFrame
Definition: cxMHDImageStreamer.h:51
cx::DummyImageStreamer
Definition: cxMHDImageStreamer.h:78
cx::DummyImageStreamerPtr
boost::shared_ptr< class DummyImageStreamer > DummyImageStreamerPtr
Definition: cxMHDImageStreamer.h:114
cx::BoolPropertyBasePtr
boost::shared_ptr< class BoolPropertyBase > BoolPropertyBasePtr
Definition: cxImageFileStreamerService.h:22
cx::ImageTestData::mRawUid
QString mRawUid
Definition: cxMHDImageStreamer.h:52
cx::PackagePtr
boost::shared_ptr< struct Package > PackagePtr
Definition: cxMHDImageStreamer.h:27
cx::CommandLineStreamer
Definition: cxStreamer.h:83
cx::ImageTestData::mDataSource
boost::shared_ptr< class SplitFramesContainer > mDataSource
Definition: cxMHDImageStreamer.h:50
cx::loadImage
vtkImageDataPtr loadImage(QString filename)
cx::SenderPtr
boost::shared_ptr< Sender > SenderPtr
Definition: cxSender.h:64
vtkLookupTablePtr
vtkSmartPointer< class vtkLookupTable > vtkLookupTablePtr
Definition: vtkForwardDeclarations.h:88
cx::ImageTestData
Definition: cxMHDImageStreamer.h:42