Changed media player to initialize in boot.
authoreshe <jessehakanen@gmail.com>
Wed, 28 Jul 2010 11:17:59 +0000 (12:17 +0100)
committereshe <jessehakanen@gmail.com>
Wed, 28 Jul 2010 11:17:59 +0000 (12:17 +0100)
debian/changelog
src/mainwindow.cpp
src/mediaplayer.cpp
src/mediaplayer.h

index 2b9fed6..2ba370e 100644 (file)
@@ -1,3 +1,9 @@
+jspeed (0.1-4) unstable; urgency=low
+
+  * Fixed a bug in theme scheduler settings saving.
+
+ -- Jesse Hakanen <jessehakanen@gmail.com>  Tue, 27 Jul 2010 16:59:38 +0100
+
 jspeed (0.1-3) unstable; urgency=low
 
   * Speed camera support added.
index 3ccacaf..e08ab2c 100644 (file)
 #include "widgetscreen.h"
 #include "poialerts.h"
 #include "speedalarm.h"
+#include "mediaplayer.h"
 
 MainWindow::MainWindow(): QMainWindow(0), menu_(0), themeLoader_(0), mainScreen_(0)
 {
     setWindowTitle(tr("jSpeed"));
     showFullScreen();
     addScreens();
-    QTimer::singleShot(800, this, SLOT(loadServices()));
+    QTimer::singleShot(500, this, SLOT(loadServices()));
 }
 
 MainWindow::~MainWindow()
@@ -49,11 +50,13 @@ void MainWindow::loadServices()
 {
     Odometer::instance().start();
     QApplication::processEvents();
+    startBacklight();
+    QApplication::processEvents();
     PoiAlerts::instance().start();
     QApplication::processEvents();
     SpeedAlarm::instance().start();
     QApplication::processEvents();
-    startBacklight();
+    MediaPlayer::init();
 }
 
 void MainWindow::addScreens()
index 6651036..df6e99f 100644 (file)
@@ -29,9 +29,14 @@ namespace
     QString const LOCAL_SOUND_DIR = ":/resources/sounds/";
 }
 
+void MediaPlayer::init()
+{
+    getPlayer();
+}
+
 bool MediaPlayer::play(QString const& file)
 {
-    static QMediaPlayer player;
+    QMediaPlayer* player = getPlayer();
 
     QMediaContent media(QUrl::fromLocalFile(file));
 
@@ -40,11 +45,17 @@ bool MediaPlayer::play(QString const& file)
         return false;
     }
 
-    player.setMedia(media);
-    player.play();
+    player->setMedia(media);
+    player->play();
     return true;
 }
 
+QMediaPlayer* MediaPlayer::getPlayer()
+{
+    static QMediaPlayer player;
+    return &player;
+}
+
 void MediaPlayer::getSupportedFormats(QList<QString>& formats)
 {
     formats.clear();
index 9a8ce7a..9a9e376 100644 (file)
 #include <QtCore/QStringList>
 #include <QtCore/QList>
 
+class QMediaPlayer;
+
 class MediaPlayer
 {
 public:
     enum Format {MP3, WAV, AAC, FORMAT_COUNT};
+    static void init();
     static bool play(QString const& file);
     static void getSupportedFormats(QList<QString>& formats);
     static QString getFormatPattern();
     static QStringList getFormatPatterns();
     static QString getSoundDir();
     static QString const& getLocalSoundDir();
+
+private:
+    static QMediaPlayer* getPlayer();
 };
 
 #endif