blob: 8b9ab06ec78713b32efffdf10fed5fe43cdbab2a (
plain)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#ifndef PHONONPLAYER_H
#define PHONONPLAYER_H
#include "audiointerface.h"
#include <QObject>
#include <QFile>
#include <QThread>
#include <phonon/MediaObject>
#include <phonon/AudioOutput>
class PhononPlayerFactory
: public QObject, public AudioPlayerFactory
{
Q_OBJECT
Q_INTERFACES(AudioPlayerFactory)
public:
virtual AudioPlayer *create(QObject *parent = 0);
};
/* --------------------------------------------------------------- */
class PhononPlayer
: public AudioPlayer
{
Q_OBJECT
friend class AudioManager;
friend class PhononPlayerFactory;
private:
class Sleeper
: public QThread
{
public:
static void sleep(unsigned long secs);
static void msleep(unsigned long msecs);
static void usleep(unsigned long usecs);
};
public:
virtual bool isWorking() const;
virtual void setMuted(bool mute = true);
virtual bool isMuted() const;
virtual void play();
virtual bool isPlaying();
virtual void pause();
virtual bool isPaused();
virtual void stop();
virtual bool isStopped();
virtual void clear();
virtual void clearQueue();
virtual void setPrefinishMark(qint32 msecToEnd);
virtual void seek(qint64 time);
protected:
PhononPlayer(QObject *parent = 0);
virtual void setWorking(bool working = true);
void test(QFile *sound, unsigned int length);
virtual void play(QFile *sound, unsigned int length);
virtual void setSource(QFile *sound, unsigned int length);
virtual void enqueue(QFile *sound, unsigned int length);
protected slots:
virtual void prefinishMarkReached_ex(qint32 mark);
void finished_ex();
void testFinished();
void stateChanged_ex(Phonon::State newstate, Phonon::State oldstate);
protected:
bool m_working;
Phonon::MediaObject *m_player;
Phonon::AudioOutput *m_output;
};
#endif // PHONONPLAYER_H
|