20 class QmitkOpenCVVideoControlsPrivate
40 void ToPropertyList();
41 void FromPropertyList();
46 , QWidget * parent, Qt::WindowFlags f)
48 , m_VideoBackground(nullptr)
49 , m_RenderWindow(nullptr)
50 , m_VideoSource(nullptr)
52 , m_SliderCurrentlyMoved(false)
53 , d(new QmitkOpenCVVideoControlsPrivate(this,
"QmitkOpenCVVideoControls"))
56 m_Controls->FileChooser->SetFileMustExist(
true);
61 d->FromPropertyList();
65 if (persistenceService !=
nullptr)
71 MITK_WARN <<
"No Persistence Service available in constructor";
83 if (persistenceService !=
nullptr)
89 MITK_WARN <<
"No Persistence Service available in destructor";
103 m_Controls->GrabbingDevicePanel->setEnabled(
true);
104 m_Controls->VideoFilePanel->setEnabled(
false);
109 m_Controls->GrabbingDevicePanel->setEnabled(
false);
124 double progressRatio =
static_cast<double>(
m_Controls->VideoProgressSlider->value())
125 / static_cast<double>(
m_Controls->VideoProgressSlider->maximum());
169 if (
m_Controls->UseGrabbingDeviceButton->isChecked())
172 m_Controls->VideoFileControls->setEnabled(
false);
185 MITK_ERROR <<
"Video could not be initialized!";
190 int hertz =
m_Controls->UpdateRate->text().toInt();
191 int updateTime = itk::Math::Round<int, double>(1000.0 / hertz);
202 this->
m_Controls->StopButton->setEnabled(
true);
204 if (
m_Controls->UseVideoFileButton->isChecked())
206 m_Controls->VideoFileControls->setEnabled(
true);
207 m_Controls->RepeatVideoButton->setEnabled(
true);
208 m_Controls->VideoProgressSlider->setEnabled(
true);
213 m_Controls->GrabbingDevicePanel->setEnabled(
false);
214 m_Controls->VideoFilePanel->setEnabled(
false);
215 m_Controls->UseGrabbingDeviceButton->setEnabled(
false);
216 m_Controls->UseVideoFileButton->setEnabled(
false);
217 m_Controls->UpdateRatePanel->setEnabled(
false);
225 m_Controls->UseGrabbingDeviceButton->setEnabled(
true);
226 m_Controls->UseVideoFileButton->setEnabled(
true);
227 if (
m_Controls->UseGrabbingDeviceButton->isChecked())
232 m_Controls->UpdateRatePanel->setEnabled(
true);
234 m_Controls->VideoFileControls->setEnabled(
false);
235 this->
m_Controls->StopButton->setEnabled(
false);
262 m_Controls->PlayButton->setIcon(QIcon(
":/OpenCVVideoSupportUI/media-playback-start.png"));
268 m_Controls->PlayButton->setIcon(QIcon(
":/OpenCVVideoSupportUI/media-playback-pause.png"));
280 *
m_Controls->VideoProgressSlider->maximum())));
286 if (
m_Controls->RepeatVideoButton->isChecked())
303 if (_RenderWindow ==
nullptr)
311 this->setEnabled(
false);
315 this->setEnabled(
true);
341 this->setEnabled(
false);
345 this->setEnabled(
true);
366 this->setEnabled(
false);
385 void QmitkOpenCVVideoControlsPrivate::ToPropertyList()
389 if (persistenceService !=
nullptr)
392 propList->Set(
"deviceType", q->m_Controls->UseGrabbingDeviceButton->isChecked() ? 0 : 1);
393 propList->Set(
"grabbingDeviceNumber", q->m_Controls->GrabbingDeviceNumber->value());
394 propList->Set(
"updateRate", q->m_Controls->UpdateRate->value());
395 propList->Set(
"repeatVideo", q->m_Controls->RepeatVideoButton->isChecked());
399 MITK_WARN <<
"Persistence Service not available.";
403 void QmitkOpenCVVideoControlsPrivate::FromPropertyList()
407 if (persistenceService !=
nullptr)
411 bool repeatVideo =
false;
412 propList->Get(
"repeatVideo", repeatVideo);
413 q->m_Controls->RepeatVideoButton->setChecked(repeatVideo);
416 propList->Get(
"updateRate", updateRate);
417 q->m_Controls->UpdateRate->setValue(updateRate);
419 int grabbingDeviceNumber = 0;
420 propList->Get(
"grabbingDeviceNumber", grabbingDeviceNumber);
421 q->m_Controls->GrabbingDeviceNumber->setValue(grabbingDeviceNumber);
424 propList->Get(
"deviceType", deviceType);
427 q->m_Controls->UseGrabbingDeviceButton->setChecked(
true);
431 q->m_Controls->UseVideoFileButton->setChecked(
true);
436 MITK_WARN <<
"Persistence Service not available.";
443 d->FromPropertyList();
void on_VideoProgressSlider_sliderReleased()
QmitkRenderWindow * GetRenderWindow() const
virtual int SetVideoCaptureProperty(int property_id, double value)
void StopCapturing() override
virtual mitk::PropertyList::Pointer GetPropertyList(std::string &id, bool *existed=nullptr)=0
void on_VideoProgressSlider_valueChanged(int value)
virtual void AddPropertyListReplacedObserver(PropertyListReplacedObserver *observer)=0
void RemoveRenderWindow(vtkRenderWindow *renderWindow)
removes a renderwindow = disables video background there
void on_UseGrabbingDeviceButton_clicked(bool checked=false)
QmitkVideoBackground * GetVideoBackground() const
virtual short GetGrabbingDeviceNumber() const
void Disable()
disables visualization of the video.
QmitkOpenCVVideoControls(QmitkVideoBackground *_VideoBackground, QmitkRenderWindow *_RenderWindow, QWidget *parent=nullptr, Qt::WindowFlags f=nullptr)
void NewFrameAvailable(mitk::VideoSource *videoSource)
virtual double GetVideoCaptureProperty(int property_id)
void on_StopButton_clicked(bool checked=false)
void AddRenderWindow(vtkRenderWindow *renderWindow)
add a RenderWindow in which the video is displayed. -> must be initialized before enabling the backgr...
void EndOfVideoSourceReached(mitk::VideoSource *videoSource)
~QmitkOpenCVVideoControls() override
Key-value list holding instances of BaseProperty.
Ui::QmitkOpenCVVideoControls * m_Controls
void IsPlaying(bool paused)
void NewOpenCVFrameAvailable(const IplImage *)
void StartCapturing() override
void on_VideoProgressSlider_sliderPressed()
virtual void SetRepeatVideo(bool _arg)
QmitkRenderWindow * m_RenderWindow
void QObjectDestroyed(QObject *obj=nullptr)
Offers widgets to play/pause/stop a video on a certain render window with the use of an !initialized!...
virtual void SetVideoFileInput(const char *filename, bool repeatVideo, bool useCVCAMLib=false)
bool m_SliderCurrentlyMoved
virtual void SetVideoCameraInput(int cameraindex, bool useCVCAMLib=false)
void PauseCapturing() override
void SetVideoBackground(QmitkVideoBackground *_VideoBackground)
MITK implementation of the QVTKWidget.
virtual bool GetCapturePaused() const
void on_PlayButton_clicked(bool checked=false)
mitk::VideoSource * GetVideoSource()
virtual const IplImage * GetCurrentFrame()
#define PERSISTENCE_GET_SERVICE_METHOD_MACRO
void on_UseVideoFileButton_clicked(bool checked=false)
virtual bool IsCapturingEnabled() const
void SetTimerDelay(int ms)
sets the update rate of the video in milli seconds, by default 25.
void AfterPropertyListReplaced(const std::string &id, mitk::PropertyList *propertyList) override
virtual std::string GetVideoFileName() const
vtkRenderWindow * GetVtkRenderWindow() override
void SetRenderWindow(QmitkRenderWindow *_RenderWindow)
virtual void RemovePropertyListReplacedObserver(PropertyListReplacedObserver *observer)=0
void on_RepeatVideoButton_clicked(bool checked=false)
mitk::OpenCVVideoSource * m_VideoSource
QmitkVideoBackground * m_VideoBackground