equal
deleted
inserted
replaced
22 |
22 |
23 #include "audiooutput.h" |
23 #include "audiooutput.h" |
24 #include "defs.h" |
24 #include "defs.h" |
25 #include "mediaobject.h" |
25 #include "mediaobject.h" |
26 #include "utils.h" |
26 #include "utils.h" |
27 #include "volumeobserver.h" |
|
28 |
27 |
29 QT_BEGIN_NAMESPACE |
28 QT_BEGIN_NAMESPACE |
30 |
29 |
31 using namespace Phonon; |
30 using namespace Phonon; |
32 using namespace Phonon::MMF; |
31 using namespace Phonon::MMF; |
39 // Constructor / destructor |
38 // Constructor / destructor |
40 //----------------------------------------------------------------------------- |
39 //----------------------------------------------------------------------------- |
41 |
40 |
42 MMF::AudioOutput::AudioOutput(Backend *, QObject *parent) : MediaNode(parent) |
41 MMF::AudioOutput::AudioOutput(Backend *, QObject *parent) : MediaNode(parent) |
43 , m_volume(InitialVolume) |
42 , m_volume(InitialVolume) |
44 , m_observer(0) |
|
45 { |
43 { |
46 |
44 |
47 } |
45 } |
48 |
46 |
49 |
47 |
57 } |
55 } |
58 |
56 |
59 void MMF::AudioOutput::setVolume(qreal volume) |
57 void MMF::AudioOutput::setVolume(qreal volume) |
60 { |
58 { |
61 TRACE_CONTEXT(AudioOutput::setVolume, EAudioApi); |
59 TRACE_CONTEXT(AudioOutput::setVolume, EAudioApi); |
62 TRACE_ENTRY("observer 0x%08x volume %f", m_observer, volume); |
60 TRACE_ENTRY("volume %f", volume); |
63 |
61 |
64 if (volume != m_volume) { |
62 if (volume != m_volume) { |
65 if (m_observer) { |
|
66 m_observer->volumeChanged(volume); |
|
67 } |
|
68 |
63 |
69 m_volume = volume; |
64 m_volume = volume; |
70 TRACE("emit volumeChanged(%f)", volume) |
65 TRACE("emit volumeChanged(%f)", volume) |
71 emit volumeChanged(volume); |
66 emit volumeChanged(volume); |
72 } |
67 } |
84 Q_ASSERT_X(index == AudioOutputDeviceID, Q_FUNC_INFO, |
79 Q_ASSERT_X(index == AudioOutputDeviceID, Q_FUNC_INFO, |
85 "We only support one output device, with id 0"); |
80 "We only support one output device, with id 0"); |
86 return true; |
81 return true; |
87 } |
82 } |
88 |
83 |
89 void MMF::AudioOutput::setVolumeObserver(VolumeObserver* observer) |
|
90 { |
|
91 m_observer = observer; |
|
92 if (m_observer) { |
|
93 m_observer->volumeChanged(m_volume); |
|
94 } |
|
95 } |
|
96 |
|
97 bool MMF::AudioOutput::activateOnMediaObject(MediaObject *mo) |
84 bool MMF::AudioOutput::activateOnMediaObject(MediaObject *mo) |
98 { |
85 { |
99 setVolumeObserver(mo); |
86 // Ensure that the MediaObject has the correct initial volume |
|
87 mo->volumeChanged(m_volume); |
|
88 // Connect MediaObject to receive future volume changes |
|
89 connect(this, SIGNAL(volumeChanged(qreal)), mo, SLOT(volumeChanged(qreal))); |
100 return true; |
90 return true; |
101 } |
91 } |
102 |
92 |
103 QHash<QByteArray, QVariant> MMF::AudioOutput::audioOutputDescription(int index) |
93 QHash<QByteArray, QVariant> MMF::AudioOutput::audioOutputDescription(int index) |
104 { |
94 { |