Initial commit to the repository
[deb_shairplay.git] / AirTV-Qt / raopcallbackhandler.cpp
1 #include "raopcallbackhandler.h"
2
3 RaopCallbackHandler::RaopCallbackHandler(QObject *parent) :
4 QObject(parent)
5 {
6 }
7
8 void RaopCallbackHandler::audioInit(void *session, int bits, int channels, int samplerate)
9 {
10 void **retval = (void**)session;
11
12 AudioOutput *audioOutput = new AudioOutput(0);
13 audioOutput->init(bits, channels, samplerate);
14 audioOutput->start();
15 *retval = audioOutput;
16
17 m_outputList.append(audioOutput);
18 }
19
20 void RaopCallbackHandler::audioSetVolume(void *session, float volume)
21 {
22 AudioOutput *audioOutput = (AudioOutput*)session;
23 audioOutput->setVolume(volume);
24 }
25
26 void RaopCallbackHandler::audioProcess(void *session, void *buffer, int buflen)
27 {
28 AudioOutput *audioOutput = (AudioOutput*)session;
29 audioOutput->output((const char *)buffer, buflen);
30 }
31
32 void RaopCallbackHandler::audioFlush(void *session)
33 {
34 AudioOutput *audioOutput = (AudioOutput*)session;
35 audioOutput->flush();
36 }
37
38 void RaopCallbackHandler::audioDestroy(void *session)
39 {
40 AudioOutput *audioOutput = (AudioOutput*)session;
41 m_outputList.removeAll(audioOutput);
42
43 audioOutput->stop();
44 delete audioOutput;
45 }