--- a/radioapp/radiouiengine/src/radiouiengine.cpp Tue Oct 12 11:25:14 2010 +0300
+++ b/radioapp/radiouiengine/src/radiouiengine.cpp Fri Oct 15 16:26:27 2010 +0300
@@ -39,6 +39,7 @@
#include "radiosettings.h"
#include "radioscannerengine.h"
#include "radiogenrelocalizer.h"
+#include "radiotimerpool.h"
#include "radiologger.h"
// Constants
@@ -58,6 +59,8 @@
const QLatin1String RADIO_RANGE_USEURO( "useuro" );
const QLatin1String RADIO_RANGE_JAPAN( "japan" );
+enum TimerId { PowerOff };
+
// ====== STATIC FUNCTIONS ========
/*!
@@ -180,12 +183,7 @@
{
setMute( false );
- Q_D( RadioUiEngine );
- if ( d->mPowerOffTimer ) {
- d->mPowerOffTimer->stop();
- d->mPowerOffTimer->deleteLater();
- d->mPowerOffTimer = NULL;
- }
+ cancelTimer( PowerOff, this );
}
/*!
@@ -193,20 +191,14 @@
*/
void RadioUiEngine::setPowerOff( int delay )
{
- Q_D( RadioUiEngine );
- d->mEngineWrapper->setMute( true, false );
-
if ( delay > 0 ) {
- if ( !d->mPowerOffTimer ) {
- d->mPowerOffTimer = new QTimer( this );
- Radio::connect( d->mPowerOffTimer, SIGNAL(timeout()),
- this, SIGNAL(powerOffRequested()) );
- }
-
- d->mPowerOffTimer->start( delay );
+ startTimer( delay, PowerOff, this, SIGNAL(powerOffRequested()) );
} else {
emit powerOffRequested();
}
+
+ Q_D( RadioUiEngine );
+ d->mEngineWrapper->setMute( true, false );
}
/*!
@@ -214,8 +206,7 @@
*/
bool RadioUiEngine::isPoweringOff() const
{
- Q_D( const RadioUiEngine );
- return d->mPowerOffTimer && d->mPowerOffTimer->isActive();
+ return isTimerActive( PowerOff, this );
}
/*!
@@ -476,6 +467,35 @@
}
/*!
+ *
+ */
+void RadioUiEngine::startTimer( int msec, int id, QObject* receiver, const char* member, QVariant param )
+{
+ Q_D( RadioUiEngine );
+ d->mTimerPool->startTimer( msec, id, receiver, member, param );
+}
+
+/*!
+ *
+ */
+void RadioUiEngine::cancelTimer( int id, const QObject* receiver )
+{
+ Q_D( RadioUiEngine );
+ if ( d->mTimerPool ) {
+ d->mTimerPool->cancelTimer( id, receiver );
+ }
+}
+
+/*!
+ *
+ */
+bool RadioUiEngine::isTimerActive( int id, const QObject* receiver ) const
+{
+ Q_D( const RadioUiEngine );
+ return d->mTimerPool->isTimerActive( id, receiver );
+}
+
+/*!
* Public slot
* volume update command slot for the engine
*/