diff --git a/include/interface.hpp b/include/interface.hpp index 06a727c4c2c21ae2e5963befc2d6db327f52e661..93127e48af7f707d2d08fac29238e8d084102df8 100644 --- a/include/interface.hpp +++ b/include/interface.hpp @@ -94,6 +94,8 @@ private slots: //! \brief Bouton permettant de réintialiser la grille à zéro void on_pushButton_clicked(); + void on_simSpeedSlider_sliderMoved(int position); + private: //! \brief Initialiser la liste des transitions et voisinages disponibles void init_transition_neighborhood_list(); diff --git a/src/interface.cpp b/src/interface.cpp index 227d83ecb3c1c803d1f25d0781352c5f5100f2e7..8a23437a158e04bcfd3947958971c2f8b4dd8a14 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -13,6 +13,7 @@ #include "neighborhoodDialog.hpp" #include "colorlabel.h" +#include <QtGlobal> #include <QJsonArray> #include <QDate> #include <QTextStream> @@ -20,6 +21,15 @@ #include <QTimer> #include <QElapsedTimer> +#if QT_VERSION >= 0x050000 && QT_VERSION < 0x060000 +#define BAD_APPLE_AUDIO +#endif + +#ifdef BAD_APPLE_AUDIO +#include <QMediaPlayer> +#endif + + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) @@ -644,7 +654,11 @@ void MainWindow::play_bad_apple() static QJsonArray bad_apple_frame_list; static QTimer bad_apple_timer; static bool bad_apple_connected; +#ifdef BAD_APPLE_AUDIO + static QMediaPlayer bad_apple_player; +#else static QElapsedTimer bad_apple_elapsed; +#endif QFile f("extras/bad_apple.json"); if (!f.open(QFile::ReadOnly | QFile::Text)) @@ -665,8 +679,11 @@ void MainWindow::play_bad_apple() { bad_apple_timer.callOnTimeout([this] { - +#ifdef BAD_APPLE_AUDIO + unsigned frame_idx = bad_apple_player.position()/(1000.f/30); +#else unsigned frame_idx = bad_apple_elapsed.elapsed()/(1000.f/30); +#endif if ((int)frame_idx >= bad_apple_frame_list.size()) { bad_apple_timer.stop(); @@ -693,19 +710,17 @@ void MainWindow::play_bad_apple() ui->grid_view->copy_grid(grid); }); } - - //bad_apple_player.setMedia(QUrl::fromLocalFile("bad-apple.mp3")); - //bad_apple_player.play(); ; -#ifdef BAD_APPLE_WIN - PlaySound(TEXT("extras/bad-apple.wav"), GetModuleHandle(NULL), SND_FILENAME | SND_ASYNC); - Sleep(1300); // delay for the sound to load +#ifdef BAD_APPLE_AUDIO + + bad_apple_player.setMedia(QUrl::fromLocalFile("extras/bad-apple.wav")); + bad_apple_player.play(); #else - QMessageBox::information(this, "", "Music functionnality is only available on Windows"); + QMessageBox::information(this, "", "Music functionnality is only available with Qt 5"); + bad_apple_elapsed.start(); #endif - bad_apple_elapsed.start(); bad_apple_timer.start(24); statusBar()->showMessage("Original : \"Bad Apple!!\" feat. Nomico by Alstroemeria Records", 60000); } @@ -860,6 +875,5 @@ void MainWindow::on_simSpeedSlider_sliderMoved(int position) return; timer->setInterval(1000/frequence); - timer->start(); } diff --git a/src/src.pro b/src/src.pro index ee5b0d1b1254146ac67c6baa7ac5c4d9d3b5e6b3..11a3a98667912f91bd8a76ea785638e420281bdb 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,6 +1,7 @@ QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +equals(QT_MAJOR_VERSION, 5): QT += multimedia CONFIG += c++14 TEMPLATE = app @@ -96,10 +97,6 @@ qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -win32 { -LIBS += -lwinmm -} - CONFIG(debug, debug|release) { DEBUG_OR_RELEASE = debug } else {