--- /dev/null
+/*
+ * This file is part of QMAFW
+ *
+ * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). All rights
+ * reserved.
+ *
+ * Contact: Visa Smolander <visa.smolander@nokia.com>
+ *
+ * This software, including documentation, is protected by copyright controlled
+ * by Nokia Corporation. All rights are reserved. Copying, including
+ * reproducing, storing, adapting or translating, any or all of this material
+ * requires the prior written consent of Nokia Corporation. This material also
+ * contains confidential information which may not be disclosed to others
+ * without the prior written consent of Nokia.
+ *
+ */
+
+#include "MafwGstRendererHaltState.h"
+
+int MafwGstRendererHaltState::DECAY_TIME = 20;
+
+/********************************************************************
+ * MafwGstRendererHaltState::MafwGstRendererHaltState
+ ********************************************************************/
+MafwGstRendererHaltState::MafwGstRendererHaltState()
+ :
+ QObject(),
+ m_state(MafwRenderer::Invalid),
+ m_position(-1)
+{
+ connect(&m_decayTimer, SIGNAL(timeout()),
+ this, SIGNAL(decayed()));
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::MafwGstRendererHaltState
+ ********************************************************************/
+MafwGstRendererHaltState::MafwGstRendererHaltState(const QString &uri,
+ MafwRenderer::State state,
+ int position)
+ :
+ QObject(),
+ m_uri(uri),
+ m_state(state),
+ m_position(position)
+{
+ connect(&m_decayTimer, SIGNAL(timeout()),
+ this, SIGNAL(decayed()));
+ initializeDecayTimer();
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::MafwGstRendererHaltState
+ ********************************************************************/
+MafwGstRendererHaltState::MafwGstRendererHaltState(const MafwGstRendererHaltState &other)
+ :
+ QObject()
+{
+ *this = other;
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::operator =
+ ********************************************************************/
+MafwGstRendererHaltState& MafwGstRendererHaltState::operator =(const MafwGstRendererHaltState &other)
+{
+ if( this == &other )
+ {
+ return *this;
+ }
+
+ this->m_uri = other.m_uri;
+ this->m_position = other.m_position;
+ this->m_state = other.m_state;
+
+ initializeDecayTimer();
+
+ return *this;
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::~MafwGstRendererHaltState
+ ********************************************************************/
+MafwGstRendererHaltState::~MafwGstRendererHaltState()
+{
+
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::isSet
+ ********************************************************************/
+bool MafwGstRendererHaltState::isSet() const
+{
+ return ((m_uri.length() > 0)
+ && (m_state != MafwRenderer::Invalid)
+ && (m_decayTimer.isActive() || m_state == MafwRenderer::Paused));
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::setState
+ ********************************************************************/
+void MafwGstRendererHaltState::clear()
+{
+ m_uri.clear();
+ m_position = -1;
+ m_state = MafwRenderer::Invalid;
+ m_decayTimer.stop();
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::setState
+ ********************************************************************/
+void MafwGstRendererHaltState::setState(MafwRenderer::State newState)
+{
+ m_state = newState;
+ if( newState == MafwRenderer::Paused )
+ {
+ m_decayTimer.stop();
+ }
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::uri
+ ********************************************************************/
+QString MafwGstRendererHaltState::uri() const
+{
+ return m_uri;
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::state
+ ********************************************************************/
+MafwRenderer::State MafwGstRendererHaltState::state() const
+{
+ return m_state;
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::position
+ ********************************************************************/
+int MafwGstRendererHaltState::position() const
+{
+ return m_position;
+}
+
+/********************************************************************
+ * MafwGstRendererHaltState::initializeDecayTimer
+ ********************************************************************/
+void MafwGstRendererHaltState::initializeDecayTimer()
+{
+ if( m_uri.length() > 0 && m_state != MafwRenderer::Invalid )
+ {
+ m_decayTimer.setSingleShot(true);
+ m_decayTimer.setInterval(DECAY_TIME * 1000);
+ m_decayTimer.start();
+ }
+ else
+ {
+ m_decayTimer.stop();
+ }
+}