mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
Initial structure IVoiceClient and implementation
refs #36 - Added initial structure for IVoiceClient interface - Added initial structure for the vatlib voice implementation refs #81
This commit is contained in:
committed by
Mathew Sutcliffe
parent
f24d16019f
commit
62e1b411c5
84
src/blackcore/voiceclient.h
Normal file
84
src/blackcore/voiceclient.h
Normal file
@@ -0,0 +1,84 @@
|
||||
/* Copyright (C) 2013 VATSIM Community / authors
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/*!
|
||||
\file
|
||||
*/
|
||||
|
||||
#ifndef BLACKCORE_VOICE_H
|
||||
#define BLACKCORE_VOICE_H
|
||||
|
||||
#include "../blackmisc/context.h"
|
||||
#include "../blackmisc/avcallsign.h"
|
||||
|
||||
#include <vatlib/vatlib.h>
|
||||
|
||||
#include <QObject>
|
||||
|
||||
namespace BlackCore
|
||||
{
|
||||
class IVoiceClient : public QObject
|
||||
{
|
||||
|
||||
/* 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:
|
||||
|
||||
/*!
|
||||
* \brief Default constructor with parent
|
||||
* \param parent
|
||||
*/
|
||||
IVoiceClient(QObject *parent = 0) : QObject(parent) {}
|
||||
|
||||
public:
|
||||
BLACK_INTERFACE(BlackCore::IVoice)
|
||||
|
||||
virtual ~IVoiceClient() {}
|
||||
|
||||
virtual void setCallsign(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
||||
virtual void joinVoiceServer(const uint32_t comUnit, const QString &serverSpec) = 0;
|
||||
virtual void leaveVoiceServer(const uint32_t comUnit) = 0;
|
||||
virtual void setVolume(const uint32_t comUnit, const uint32_t volumne) = 0;
|
||||
virtual void startTransmitting(const uint32_t comUnit) = 0;
|
||||
virtual void stopTransmitting(const uint32_t comUnit) = 0;
|
||||
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;
|
||||
|
||||
signals:
|
||||
void notConnected(const uint32_t comUnit);
|
||||
void connecting(const uint32_t comUnit);
|
||||
void connected(const uint32_t comUnit);
|
||||
void connectionFailed(const uint32_t comUnit);
|
||||
void kicked(const uint32_t comUnit);
|
||||
void disconnecting(const uint32_t comUnit);
|
||||
void disconnected(const uint32_t comUnit);
|
||||
void userJoined(const uint32_t comUnit, const BlackMisc::Aviation::CCallsign &callsign);
|
||||
void userLeft(const uint32_t comUnit, const BlackMisc::Aviation::CCallsign &callsign);
|
||||
void audioStarted(const uint32_t comUnit);
|
||||
void audioStopped(const uint32_t comUnit);
|
||||
|
||||
void userList(const uint32_t comIndex);
|
||||
|
||||
void outputDeviceList();
|
||||
void inputDeviceList();
|
||||
|
||||
public slots:
|
||||
|
||||
};
|
||||
|
||||
} // namespace BlackCore
|
||||
|
||||
#endif // BLACKCORE_VOICE_H
|
||||
87
src/blackcore/voiceclient_vatlib.cpp
Normal file
87
src/blackcore/voiceclient_vatlib.cpp
Normal file
@@ -0,0 +1,87 @@
|
||||
/* Copyright (C) 2013 VATSIM Community / authors
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "voiceclient_vatlib.h"
|
||||
|
||||
namespace BlackCore
|
||||
{
|
||||
|
||||
CVoiceClientVatlib::CVoiceClientVatlib(QObject *parent) :
|
||||
IVoiceClient(parent),
|
||||
m_voice(Create_Cvatlib_Voice_Simple())
|
||||
{
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::setCallsign(const BlackMisc::Aviation::CCallsign &callsign)
|
||||
{
|
||||
m_callsign = callsign;
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::joinVoiceServer(const uint32_t comIndex, const QString &serverSpec)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::leaveVoiceServer(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::setVolume(const uint32_t comIndex, const uint32_t volumne)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::startTransmitting(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::stopTransmitting(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool CVoiceClientVatlib::isReceiving(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool CVoiceClientVatlib::isConnected(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::getUserList(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::getInputDevices(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::getOutputDevices(const uint32_t comIndex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::onRoomStatusUpdate(Cvatlib_Voice_Simple *obj, roomStatusUpdate upd, int32_t roomIndex, void *cbVar)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::onRoomUserReceived(vatlib_Voice_Simple *obj, const char *name, void *cbVar)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVoiceClientVatlib::onHardwareDeviceReceived(Cvatlib_Voice_Simple *obj, const char *name, void *cbVar)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace BlackCore
|
||||
55
src/blackcore/voiceclient_vatlib.h
Normal file
55
src/blackcore/voiceclient_vatlib.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright (C) 2013 VATSIM Community / authors
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef VOICECLIENT_VATLIB_H
|
||||
#define VOICECLIENT_VATLIB_H
|
||||
|
||||
#include "voiceclient.h"
|
||||
|
||||
#include <QScopedPointer>
|
||||
|
||||
namespace BlackCore
|
||||
{
|
||||
|
||||
class CVoiceClientVatlib : public IVoiceClient
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CVoiceClientVatlib(QObject *parent = 0);
|
||||
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 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);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
|
||||
// shimlib callbacks
|
||||
void onRoomStatusUpdate(Cvatlib_Voice_Simple* obj, roomStatusUpdate upd, INT roomIndex, void* cbVar);
|
||||
void onRoomUserReceived(vatlib_Voice_Simple* obj, const char* name, void* cbVar);
|
||||
void onHardwareDeviceReceived(Cvatlib_Voice_Simple* obj, const char* name, void* cbVar);
|
||||
|
||||
QScopedPointer<Cvatlib_Voice_Simple> m_voice;
|
||||
BlackMisc::Aviation::CCallsign m_callsign;
|
||||
|
||||
};
|
||||
|
||||
} // namespace BlackCore
|
||||
|
||||
#endif // VOICECLIENT_VATLIB_H
|
||||
Reference in New Issue
Block a user