Browse Source

add method to un-/subscribe to audio output as well

pull/2509/head
Nils Fenner 10 years ago
parent
commit
c540faf271
No known key found for this signature in database
GPG Key ID: 9591A163FF9BE04C
  1. 24
      src/audio/audio.cpp
  2. 3
      src/audio/audio.h

24
src/audio/audio.cpp

@ -59,6 +59,7 @@ Audio::Audio() @@ -59,6 +59,7 @@ Audio::Audio()
, audioInLock(QMutex::Recursive)
, audioOutLock(QMutex::Recursive)
, inputSubscriptions(0)
, outputSubscriptions(0)
, alOutDev(nullptr)
, alInDev(nullptr)
, outputVolume(1.0)
@ -161,6 +162,29 @@ void Audio::unsubscribeInput() @@ -161,6 +162,29 @@ void Audio::unsubscribeInput()
cleanupInput();
}
void Audio::subscribeOutput()
{
QMutexLocker locker(&audioOutLock);
if (!alOutDev)
initOutput(Settings::getInstance().getOutDev());
outputSubscriptions++;
qDebug() << "Subscribed to audio output device [" << outputSubscriptions << " subscriptions ]";
}
void Audio::unsubscribeOutput()
{
if (outputSubscriptions > 0)
{
outputSubscriptions--;
qDebug() << "Unsubscribed from audio output device [" << outputSubscriptions << " subscriptions]";
}
if (!outputSubscriptions)
cleanupOutput();
}
/**
Open an input device, use before suscribing
*/

3
src/audio/audio.h

@ -62,6 +62,8 @@ public: @@ -62,6 +62,8 @@ public:
void subscribeInput();
void unsubscribeInput();
void subscribeOutput();
void unsubscribeOutput();
void openInput(const QString& inDevDescr);
bool openOutput(const QString& outDevDescr);
@ -114,6 +116,7 @@ private: @@ -114,6 +116,7 @@ private:
QMutex audioInLock;
QMutex audioOutLock;
std::atomic<int> inputSubscriptions;
std::atomic<int> outputSubscriptions;
ALCdevice* alOutDev;
ALCdevice* alInDev;
qreal outputVolume;

Loading…
Cancel
Save