mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-04 16:56:53 +08:00
refs #372 Move voice channel sharing into CContextAudio
Before a very complex mechanism was implemented in order to share a vatlib voice channel resource if more than one COM unit was connected to the same channel. This is now moved into CContextAudio by mapping a COM unit to a shared voice channel pointer.
This commit is contained in:
committed by
Klaus Basan
parent
33dddf795e
commit
84ac5e9972
@@ -54,26 +54,17 @@ namespace BlackCore
|
||||
//! \copydoc IContextAudio::getComVoiceRoomsWithAudioStatus()
|
||||
virtual BlackMisc::Audio::CVoiceRoomList getComVoiceRoomsWithAudioStatus() const override;
|
||||
|
||||
//! \copydoc IContextAudio::getCom1VoiceRoom
|
||||
virtual BlackMisc::Audio::CVoiceRoom getCom1VoiceRoom(bool withAudioStatus) const override;
|
||||
|
||||
//! \copydoc IContextAudio::getCom2VoiceRoom
|
||||
virtual BlackMisc::Audio::CVoiceRoom getCom2VoiceRoom(bool withAudioStatus) const override;
|
||||
//! \copydoc IContextAudio::getVoiceRoom
|
||||
virtual BlackMisc::Audio::CVoiceRoom getVoiceRoom(int comUnitValue, bool withAudioStatus) const override;
|
||||
|
||||
//! \copydoc IContextAudio::setComVoiceRooms
|
||||
virtual void setComVoiceRooms(const BlackMisc::Audio::CVoiceRoomList &newRooms) override;
|
||||
|
||||
//! \copydoc IContextAudio::getCom1RoomCallsigns()
|
||||
virtual BlackMisc::Aviation::CCallsignList getCom1RoomCallsigns() const override;
|
||||
//! \copydoc IContextAudio::getRoomCallsigns()
|
||||
virtual BlackMisc::Aviation::CCallsignList getRoomCallsigns(int comUnitValue) const override;
|
||||
|
||||
//! \copydoc IContextAudio::getCom2RoomCallsigns()
|
||||
virtual BlackMisc::Aviation::CCallsignList getCom2RoomCallsigns() const override;
|
||||
|
||||
//! \copydoc IContextAudio::getCom1RoomUsers()
|
||||
virtual BlackMisc::Network::CUserList getCom1RoomUsers() const override;
|
||||
|
||||
//! \copydoc IContextAudio::getCom2RoomUsers()
|
||||
virtual BlackMisc::Network::CUserList getCom2RoomUsers() const override;
|
||||
//! \copydoc IContextAudio::getRoomUsers()
|
||||
virtual BlackMisc::Network::CUserList getRoomUsers(int comUnitValue) const override;
|
||||
|
||||
//! \copydoc IContextAudio::leaveAllVoiceRooms
|
||||
virtual void leaveAllVoiceRooms() override;
|
||||
@@ -149,11 +140,7 @@ namespace BlackCore
|
||||
|
||||
//! \copydoc IVoice::connectionStatusChanged
|
||||
//! \sa IContextAudio::changedVoiceRooms
|
||||
void ps_com1ConnectionStatusChanged(IVoiceChannel::ConnectionStatus oldStatus, IVoiceChannel::ConnectionStatus newStatus);
|
||||
|
||||
//! \copydoc IVoice::connectionStatusChanged
|
||||
//! \sa IContextAudio::changedVoiceRooms
|
||||
void ps_com2ConnectionStatusChanged(IVoiceChannel::ConnectionStatus oldStatus, IVoiceChannel::ConnectionStatus newStatus);
|
||||
void ps_connectionStatusChanged(IVoiceChannel::ConnectionStatus oldStatus, IVoiceChannel::ConnectionStatus newStatus);
|
||||
|
||||
//! Init notification sounds
|
||||
void ps_initNotificationSounds();
|
||||
@@ -161,12 +148,15 @@ namespace BlackCore
|
||||
void ps_setVoiceTransmission(bool enable);
|
||||
|
||||
private:
|
||||
|
||||
const int MinUnmuteVolume = 20; //!< minimum volume when unmuted
|
||||
const int VoiceRoomEnabledVolume = 95; //!< voice room volume when enabled
|
||||
|
||||
//! Connection in transition
|
||||
bool inTransitionState() const;
|
||||
|
||||
QSharedPointer<IVoiceChannel> getVoiceChannelBy(const BlackMisc::Audio::CVoiceRoom &voiceRoom);
|
||||
|
||||
CInputManager *m_inputManager = nullptr;
|
||||
CInputManager::RegistrationHandle m_handlePtt;
|
||||
|
||||
@@ -174,12 +164,15 @@ namespace BlackCore
|
||||
std::unique_ptr<IAudioMixer> m_audioMixer;
|
||||
|
||||
int m_outDeviceVolume = 100;
|
||||
std::unique_ptr<IVoiceChannel> m_channelCom1;
|
||||
std::unique_ptr<IVoiceChannel> m_channelCom2;
|
||||
|
||||
// For easy access.
|
||||
QSharedPointer<IVoiceChannel> m_channel1;
|
||||
QSharedPointer<IVoiceChannel> m_channel2;
|
||||
std::unique_ptr<IAudioOutputDevice> m_voiceOutputDevice;
|
||||
std::unique_ptr<IAudioInputDevice> m_voiceInputDevice;
|
||||
|
||||
|
||||
QList<QSharedPointer<IVoiceChannel>> m_unusedVoiceChannels;
|
||||
QHash<ComUnit, QSharedPointer<IVoiceChannel>> m_voiceChannelMapping;
|
||||
};
|
||||
} // namespace
|
||||
|
||||
|
||||
Reference in New Issue
Block a user