mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-06 18:25:37 +08:00
Completed enumeration of audio devices
refs #36 - Cvatlib_Voice_Simple object is created and setup - enumerates automatically a list of in and output devices. - both device lists are accessable immediately - added a sample demonstrating the interface so far refs #81
This commit is contained in:
committed by
Mathew Sutcliffe
parent
158de31c0b
commit
b511f2ffaa
@@ -60,8 +60,8 @@ namespace BlackCore
|
||||
// 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 const QList<BlackMisc::Voice::CInputAudioDevice> & audioInputDevices(const uint32_t comUnit) const = 0;
|
||||
virtual const QList<BlackMisc::Voice::COutputAudioDevice> & audioOutputDevices(const uint32_t comUnit) const = 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;
|
||||
|
||||
@@ -5,13 +5,22 @@
|
||||
|
||||
#include "voiceclient_vatlib.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
namespace BlackCore
|
||||
{
|
||||
|
||||
CVoiceClientVatlib::CVoiceClientVatlib(QObject *parent) :
|
||||
IVoiceClient(parent),
|
||||
m_voice(Create_Cvatlib_Voice_Simple())
|
||||
{
|
||||
m_voice->Setup(true, 3290, 2, 1, onRoomStatusUpdate, this);
|
||||
m_voice->GetInputDevices(onInputHardwareDeviceReceived, this);
|
||||
m_voice->GetOutputDevices(onOutputHardwareDeviceReceived, this);
|
||||
}
|
||||
|
||||
CVoiceClientVatlib::~CVoiceClientVatlib()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::setCallsign(const BlackMisc::Aviation::CCallsign &callsign)
|
||||
@@ -59,14 +68,14 @@ namespace BlackCore
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::audioInputDevices(const uint32_t comIndex)
|
||||
const QList<BlackMisc::Voice::CInputAudioDevice> &CVoiceClientVatlib::audioInputDevices(const uint32_t comIndex) const
|
||||
{
|
||||
|
||||
return m_inputDevices;
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::audioOutputDevices(const uint32_t comIndex)
|
||||
const QList<BlackMisc::Voice::COutputAudioDevice> &CVoiceClientVatlib::audioOutputDevices(const uint32_t comIndex) const
|
||||
{
|
||||
|
||||
return m_outputDevices;
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::setInputDevice(const uint32_t comUnit, BlackMisc::Voice::CInputAudioDevice &device)
|
||||
@@ -84,6 +93,15 @@ namespace BlackCore
|
||||
|
||||
}
|
||||
|
||||
/********************************** * * * * * * * * * * * * * * * * * * * ************************************/
|
||||
/********************************** shimlib callbacks ************************************/
|
||||
/********************************** * * * * * * * * * * * * * * * * * * * ************************************/
|
||||
|
||||
CVoiceClientVatlib *cbvar_cast(void *cbvar)
|
||||
{
|
||||
return static_cast<CVoiceClientVatlib *>(cbvar);
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::onRoomStatusUpdate(Cvatlib_Voice_Simple *obj, Cvatlib_Voice_Simple::roomStatusUpdate upd, int32_t roomIndex, void *cbVar)
|
||||
{
|
||||
|
||||
@@ -94,9 +112,16 @@ namespace BlackCore
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::onHardwareDeviceReceived(Cvatlib_Voice_Simple *obj, const char *name, void *cbVar)
|
||||
void CVoiceClientVatlib::onInputHardwareDeviceReceived(Cvatlib_Voice_Simple *obj, const char *name, void *cbVar)
|
||||
{
|
||||
BlackMisc::Voice::CInputAudioDevice inputDevice(cbvar_cast(cbVar)->m_inputDevices.size(), QString(name));
|
||||
cbvar_cast(cbVar)->m_inputDevices.append(inputDevice);
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::onOutputHardwareDeviceReceived(Cvatlib_Voice_Simple *obj, const char *name, void *cbVar)
|
||||
{
|
||||
BlackMisc::Voice::COutputAudioDevice outputDevice(cbvar_cast(cbVar)->m_outputDevices.size(), QString(name));
|
||||
cbvar_cast(cbVar)->m_outputDevices.append(outputDevice);
|
||||
}
|
||||
|
||||
} // namespace BlackCore
|
||||
|
||||
@@ -32,8 +32,8 @@ namespace BlackCore
|
||||
virtual bool isConnected(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 const QList<BlackMisc::Voice::CInputAudioDevice> &audioInputDevices(const uint32_t comUnit) const ;
|
||||
virtual const QList<BlackMisc::Voice::COutputAudioDevice> & audioOutputDevices(const uint32_t comUnit) const;
|
||||
|
||||
virtual void setInputDevice(const uint32_t comUnit, BlackMisc::Voice::CInputAudioDevice &device);
|
||||
virtual void setOutputDevice(const uint32_t comUnit, BlackMisc::Voice::COutputAudioDevice &device);
|
||||
@@ -47,14 +47,16 @@ namespace BlackCore
|
||||
private:
|
||||
|
||||
// shimlib callbacks
|
||||
void onRoomStatusUpdate(Cvatlib_Voice_Simple* obj, Cvatlib_Voice_Simple::roomStatusUpdate upd, INT roomIndex, void* cbVar);
|
||||
void onRoomUserReceived(Cvatlib_Voice_Simple* obj, const char* name, void* cbVar);
|
||||
void onHardwareDeviceReceived(Cvatlib_Voice_Simple* obj, const char* name, void* cbVar);
|
||||
static void onRoomStatusUpdate(Cvatlib_Voice_Simple* obj, Cvatlib_Voice_Simple::roomStatusUpdate upd, INT roomIndex, void* cbVar);
|
||||
static void onRoomUserReceived(Cvatlib_Voice_Simple* obj, const char* name, void* cbVar);
|
||||
static void onInputHardwareDeviceReceived(Cvatlib_Voice_Simple* obj, const char* name, void* cbVar);
|
||||
static void onOutputHardwareDeviceReceived(Cvatlib_Voice_Simple* obj, const char* name, void* cbVar);
|
||||
|
||||
QScopedPointer<Cvatlib_Voice_Simple> m_voice;
|
||||
BlackMisc::Aviation::CCallsign m_callsign;
|
||||
QMap<uint32_t, BlackMisc::Voice::CVoiceRoom> m_voiceRoomMap;
|
||||
|
||||
QList<BlackMisc::Voice::CInputAudioDevice> m_inputDevices;
|
||||
QList<BlackMisc::Voice::COutputAudioDevice> m_outputDevices;
|
||||
};
|
||||
|
||||
} // namespace BlackCore
|
||||
|
||||
Reference in New Issue
Block a user