-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsoundmanager.cpp
More file actions
59 lines (47 loc) · 1.62 KB
/
soundmanager.cpp
File metadata and controls
59 lines (47 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "soundmanager.h"
SoundManager::SoundManager(QString path, qint64 loop, QWidget *parent) :
QWidget(parent)
{
audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this);
mediaObject = new Phonon::MediaObject(this);
mediaObject->setTickInterval(100);
//Connexions
connect(mediaObject, SIGNAL(tick(qint64)), this, SLOT(tick(qint64)));
connect(mediaObject, SIGNAL(stateChanged(Phonon::State,Phonon::State)), this, SLOT(stateChanged(Phonon::State)));
connect(mediaObject, SIGNAL(prefinishMarkReached(qint32)), this, SLOT(loopManagement()));
Phonon::createPath(mediaObject, audioOutput);
Phonon::MediaSource source(path);
mediaObject->setCurrentSource(source);
mediaObject->setPrefinishMark(1100);
SoundPath = new QString(source.fileName());
loopTime = loop;
}
//SLOTS
void SoundManager::tick(qint64 time){
currentSoundTime = time;
}
void SoundManager::stateChanged(Phonon::State newState){
switch (newState) {
case Phonon::ErrorState:
if (mediaObject->errorType() == Phonon::FatalError)
std::cout << "Fatal Error" << std::endl;
else
std::cout << "Error" << std::endl;
break;
default:
;
}
}
void SoundManager::playPause(){
if(mediaObject->state() == Phonon::PlayingState)
mediaObject->pause();
else
{
mediaObject->play();
//Pour aller directement au final:
//mediaObject->seek(75000);
}
}
void SoundManager::loopManagement(){
mediaObject->seek(loopTime);
}