Added CAudioDevice and cleaning up IVoice

refs #36
- Added a common class CAudioDevice encapsulating each audio device
- One subclass for input and output devices
- Changed IVoice interface slightly to better fit into the event flow

refs #81
This commit is contained in:
Roland Winklmeier
2013-11-29 00:25:51 +01:00
committed by Mathew Sutcliffe
parent fcebc44b02
commit 158de31c0b
7 changed files with 340 additions and 21 deletions

View File

@@ -13,6 +13,7 @@
#include "../blackmisc/context.h"
#include "../blackmisc/avcallsign.h"
#include "../blackmisc/vvoiceroom.h"
#include "../blackmisc/vaudiodevice.h"
#include <vatlib/vatlib.h>
@@ -25,11 +26,9 @@ namespace BlackCore
/* TODOS:
* - Find a replacement for comUnit. Maybe map it to the ComUnit in the aircraft as a class
* - Object: class encapsulating a hardware device (vatlib uses integer index, which is necessarily persistent)
* - Settings: Settings classes to store hardware settings (squelch, background noise, hardware device)
*/
Q_OBJECT
protected:
@@ -54,13 +53,23 @@ namespace BlackCore
virtual bool isReceiving(const uint32_t comUnit) = 0;
virtual bool isConnected(const uint32_t comUnit) = 0;
virtual void getUserList(const uint32_t comUnit) = 0;
virtual void getInputDevices(const uint32_t comUnit) = 0;
virtual void getOutputDevices(const uint32_t comUnit) = 0;
// The following methods should be called everytime you receive a update signal.
// Reason:
// We cannot say when the device and user lists are completed. Instead information is cached internally
// and signals emitted in case of a change. This way other objects can listen to this signals and call the getter
// again.
virtual void roomUserList(const uint32_t comUnit) = 0;
virtual void audioInputDevices(const uint32_t comUnit) = 0;
virtual void audioOutputDevices(const uint32_t comUnit) = 0;
virtual void setInputDevice(const uint32_t comUnit, BlackMisc::Voice::CInputAudioDevice &device) = 0;
virtual void setOutputDevice(const uint32_t comUnit, BlackMisc::Voice::COutputAudioDevice &device) = 0;
virtual const BlackMisc::Voice::CVoiceRoom &voiceRoom (const uint32_t comUnit) = 0;
signals:
// Signals regarding the voice server connection
void notConnected(const uint32_t comUnit);
void connecting(const uint32_t comUnit);
void connected(const uint32_t comUnit);
@@ -68,16 +77,15 @@ namespace BlackCore
void kicked(const uint32_t comUnit);
void disconnecting(const uint32_t comUnit);
void disconnected(const uint32_t comUnit);
// Signals about users joining and leaving
void userJoined(const uint32_t comUnit, const BlackMisc::Aviation::CCallsign &callsign);
void userLeft(const uint32_t comUnit, const BlackMisc::Aviation::CCallsign &callsign);
// Audio signals
void audioStarted(const uint32_t comUnit);
void audioStopped(const uint32_t comUnit);
void userList(const uint32_t comIndex);
void outputDeviceList();
void inputDeviceList();
public slots:
};

View File

@@ -19,12 +19,12 @@ namespace BlackCore
m_callsign = callsign;
}
void CVoiceClientVatlib::joinVoiceServer(const uint32_t comIndex, const QString &serverSpec)
void CVoiceClientVatlib::joinVoiceRoom(const uint32_t comUnit, const BlackMisc::Voice::CVoiceRoom &voiceRoom)
{
}
void CVoiceClientVatlib::leaveVoiceServer(const uint32_t comIndex)
void CVoiceClientVatlib::leaveVoiceRoom(const uint32_t comUnit)
{
}
@@ -54,17 +54,32 @@ namespace BlackCore
}
void CVoiceClientVatlib::getUserList(const uint32_t comIndex)
void CVoiceClientVatlib::roomUserList(const uint32_t comIndex)
{
}
void CVoiceClientVatlib::getInputDevices(const uint32_t comIndex)
void CVoiceClientVatlib::audioInputDevices(const uint32_t comIndex)
{
}
void CVoiceClientVatlib::getOutputDevices(const uint32_t comIndex)
void CVoiceClientVatlib::audioOutputDevices(const uint32_t comIndex)
{
}
void CVoiceClientVatlib::setInputDevice(const uint32_t comUnit, BlackMisc::Voice::CInputAudioDevice &device)
{
}
void CVoiceClientVatlib::setOutputDevice(const uint32_t comUnit, BlackMisc::Voice::COutputAudioDevice &device)
{
}
const BlackMisc::Voice::CVoiceRoom &CVoiceClientVatlib::voiceRoom(const uint32_t comUnit)
{
}

View File

@@ -23,17 +23,22 @@ namespace BlackCore
virtual ~CVoiceClientVatlib();
virtual void setCallsign(const BlackMisc::Aviation::CCallsign &callsign);
virtual void joinVoiceServer(const uint32_t comUnit, const QString &serverSpec);
virtual void leaveVoiceServer(const uint32_t comUnit) = 0;
virtual void joinVoiceRoom(const uint32_t comUnit, const BlackMisc::Voice::CVoiceRoom &voiceRoom);
virtual void leaveVoiceRoom(const uint32_t comUnit);
virtual void setVolume(const uint32_t comUnit, const uint32_t volumne);
virtual void startTransmitting(const uint32_t comUnit);
virtual void stopTransmitting(const uint32_t comUnit);
virtual bool isReceiving(const uint32_t comUnit);
virtual bool isConnected(const uint32_t comUnit);
virtual void getUserList(const uint32_t comUnit);
virtual void getInputDevices(const uint32_t comUnit);
virtual void getOutputDevices(const uint32_t comUnit);
virtual void roomUserList(const uint32_t comUnit);
virtual void audioInputDevices(const uint32_t comUnit);
virtual void audioOutputDevices(const uint32_t comUnit);
virtual void setInputDevice(const uint32_t comUnit, BlackMisc::Voice::CInputAudioDevice &device);
virtual void setOutputDevice(const uint32_t comUnit, BlackMisc::Voice::COutputAudioDevice &device);
virtual const BlackMisc::Voice::CVoiceRoom &voiceRoom (const uint32_t comUnit);
signals: