Added DUI control panel applet
[mafwsubrenderer] / qmafw-gst-subtitles-renderer / src / MafwGstRendererHaltState.cpp
1 /*
2  * This file is part of QMAFW
3  *
4  * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). All rights
5  * reserved.
6  *
7  * Contact: Visa Smolander <visa.smolander@nokia.com>
8  *
9  * This software, including documentation, is protected by copyright controlled
10  * by Nokia Corporation. All rights are reserved. Copying, including
11  * reproducing, storing, adapting or translating, any or all of this material
12  * requires the prior written consent of Nokia Corporation. This material also
13  * contains confidential information which may not be disclosed to others
14  * without the prior written consent of Nokia.
15  *
16  */
17
18 #include "MafwGstRendererHaltState.h"
19
20 int MafwGstRendererHaltState::DECAY_TIME = 20;
21
22 /********************************************************************
23  * MafwGstRendererHaltState::MafwGstRendererHaltState
24  ********************************************************************/
25 MafwGstRendererHaltState::MafwGstRendererHaltState()
26     :
27     QObject(),
28     m_state(MafwRenderer::Invalid),
29     m_position(-1)
30 {
31     connect(&m_decayTimer, SIGNAL(timeout()),
32             this, SIGNAL(decayed()));
33 }
34
35 /********************************************************************
36  * MafwGstRendererHaltState::MafwGstRendererHaltState
37  ********************************************************************/
38 MafwGstRendererHaltState::MafwGstRendererHaltState(const QString &uri,
39                                                    MafwRenderer::State state,
40                                                    int position)
41     :
42     QObject(),
43     m_uri(uri),
44     m_state(state),
45     m_position(position)
46 {
47     connect(&m_decayTimer, SIGNAL(timeout()),
48             this, SIGNAL(decayed()));
49     initializeDecayTimer();
50 }
51
52 /********************************************************************
53  * MafwGstRendererHaltState::MafwGstRendererHaltState
54  ********************************************************************/
55 MafwGstRendererHaltState::MafwGstRendererHaltState(const MafwGstRendererHaltState &other)
56     :
57     QObject()
58 {
59     *this = other;
60 }
61
62 /********************************************************************
63  * MafwGstRendererHaltState::operator =
64  ********************************************************************/
65 MafwGstRendererHaltState& MafwGstRendererHaltState::operator =(const MafwGstRendererHaltState &other)
66 {
67     if( this == &other )
68     {
69         return *this;
70     }
71
72     this->m_uri = other.m_uri;
73     this->m_position = other.m_position;
74     this->m_state = other.m_state;
75
76     initializeDecayTimer();
77
78     return *this;
79 }
80
81 /********************************************************************
82  * MafwGstRendererHaltState::~MafwGstRendererHaltState
83  ********************************************************************/
84 MafwGstRendererHaltState::~MafwGstRendererHaltState()
85 {
86
87 }
88
89 /********************************************************************
90  * MafwGstRendererHaltState::isSet
91  ********************************************************************/
92 bool MafwGstRendererHaltState::isSet() const
93 {
94     return ((m_uri.length() > 0)
95             && (m_state != MafwRenderer::Invalid)
96             && (m_decayTimer.isActive() || m_state == MafwRenderer::Paused));
97 }
98
99 /********************************************************************
100  * MafwGstRendererHaltState::setState
101  ********************************************************************/
102 void MafwGstRendererHaltState::clear()
103 {
104     m_uri.clear();
105     m_position = -1;
106     m_state = MafwRenderer::Invalid;
107     m_decayTimer.stop();
108 }
109
110 /********************************************************************
111  * MafwGstRendererHaltState::setState
112  ********************************************************************/
113 void MafwGstRendererHaltState::setState(MafwRenderer::State newState)
114 {
115     m_state = newState;
116     if( newState == MafwRenderer::Paused )
117     {
118         m_decayTimer.stop();
119     }
120 }
121
122 /********************************************************************
123  * MafwGstRendererHaltState::uri
124  ********************************************************************/
125 QString MafwGstRendererHaltState::uri() const
126 {
127     return m_uri;
128 }
129
130 /********************************************************************
131  * MafwGstRendererHaltState::state
132  ********************************************************************/
133 MafwRenderer::State MafwGstRendererHaltState::state() const
134 {
135     return m_state;
136 }
137
138 /********************************************************************
139  * MafwGstRendererHaltState::position
140  ********************************************************************/
141 int MafwGstRendererHaltState::position() const
142 {
143     return m_position;
144 }
145
146 /********************************************************************
147  * MafwGstRendererHaltState::initializeDecayTimer
148  ********************************************************************/
149 void MafwGstRendererHaltState::initializeDecayTimer()
150 {
151     if( m_uri.length() > 0 && m_state != MafwRenderer::Invalid )
152     {
153         m_decayTimer.setSingleShot(true);
154         m_decayTimer.setInterval(DECAY_TIME * 1000);
155         m_decayTimer.start();
156     }
157     else
158     {
159         m_decayTimer.stop();
160     }
161 }