MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
QmitkNavigationDataPlayerControlWidget.cpp
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
14#include "ui_QmitkNavigationDataPlayerControlWidget.h"
15
16#include <QTimer>
17
19 QWidget(parent),
20 m_UpdateTimer(new QTimer(this)),
22{
23 ui->setupUi(this);
24
25 connect(m_UpdateTimer, SIGNAL(timeout()), this, SLOT(OnUpdate()));
26}
27
32
33void QmitkNavigationDataPlayerControlWidget::SetPlayer(mitk::NavigationDataPlayer::Pointer player)
34{
35 m_Player = player;
36
37 ui->samplePositionHorizontalSlider->setMaximum(player->GetNumberOfSnapshots()-1);
38}
39
41{
42 m_UpdateTimer->stop();
43 m_Player->StopPlaying();
44
45 ui->playPushButton->setChecked(false);
46
47 this->ResetPlayerDisplay();
48}
49
51{
52 switch ( m_Player->GetCurrentPlayerState() )
53 {
55 {
56 m_Player->StartPlaying();
57 if ( ! m_UpdateTimer->isActive() ) { m_UpdateTimer->start(10); }
58 if ( ! ui->playPushButton->isChecked() ) { ui->playPushButton->setChecked(true); }
59 break;
60 }
62 {
63 m_Player->Resume();
64 break;
65 }
67 {
68 m_Player->Pause();
69 break;
70 }
71 }
72}
73
79
81{
82 m_Player->Update();
83
84 int msc = static_cast<int>(m_Player->GetTimeStampSinceStart());
85
86 // calculation for playing time display
87 int ms = msc % 1000;
88 msc = (msc - ms) / 1000;
89 int s = msc % 60;
90 int min = (msc-s) / 60;
91
92 // set lcd numbers
93 ui->msecLCDNumber->display(ms);
94 ui->secLCDNumber->display(s);
95 ui->minLCDNumber->display(min);
96
97 ui->samplePositionHorizontalSlider->setValue(static_cast<int>(m_Player->GetCurrentSnapshotNumber()));
98
99 emit SignalUpdate();
100
101 if ( m_Player->GetCurrentPlayerState() == mitk::NavigationDataPlayer::PlayerStopped )
102 {
103 m_UpdateTimer->stop();
104 ui->playPushButton->setChecked(false);
105
106 emit SignalEndReached();
107 }
108}
109
110void QmitkNavigationDataPlayerControlWidget::ResetPlayerDisplay()
111{
112 // set lcd numbers
113 ui->msecLCDNumber->display(0);
114 ui->secLCDNumber->display(0);
115 ui->minLCDNumber->display(0);
116
117 ui->samplePositionHorizontalSlider->setValue(0);
118}
void SetPlayer(mitk::NavigationDataPlayer::Pointer player)