mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 00:25:35 +08:00
Handle users joining and leaving properly in audio context and gui
Before this change signals when users were joining or leaving the voice room were not properly handled. A new signal in audio context is emitted now and gui will rebuild the user list when it is emitted.
This commit is contained in:
committed by
Klaus Basan
parent
a50e45e451
commit
0760a67138
@@ -84,6 +84,9 @@ namespace BlackCore
|
||||
//! \details the flag indicates, whether a room got connected or disconnected
|
||||
void changedVoiceRooms(const BlackMisc::Audio::CVoiceRoomList &voiceRooms, bool connected);
|
||||
|
||||
//! Voice room members changed
|
||||
void changedVoiceRoomMembers();
|
||||
|
||||
//! Audio volume changed
|
||||
//! \sa setVoiceOutputVolume
|
||||
void changedAudioVolume(int volume);
|
||||
|
||||
@@ -49,9 +49,13 @@ namespace BlackCore
|
||||
m_channel1 = m_voice->createVoiceChannel();
|
||||
m_channel1->setMyAircraftCallsign(ownCallsign);
|
||||
connect(m_channel1.data(), &IVoiceChannel::connectionStatusChanged, this, &CContextAudio::ps_connectionStatusChanged);
|
||||
connect(m_channel1.data(), &IVoiceChannel::userJoinedRoom, this, &CContextAudio::ps_userJoinedRoom);
|
||||
connect(m_channel1.data(), &IVoiceChannel::userLeftRoom, this, &CContextAudio::ps_userLeftRoom);
|
||||
m_channel2 = m_voice->createVoiceChannel();
|
||||
m_channel2->setMyAircraftCallsign(ownCallsign);
|
||||
connect(m_channel2.data(), &IVoiceChannel::connectionStatusChanged, this, &CContextAudio::ps_connectionStatusChanged);
|
||||
connect(m_channel1.data(), &IVoiceChannel::userJoinedRoom, this, &CContextAudio::ps_userJoinedRoom);
|
||||
connect(m_channel1.data(), &IVoiceChannel::userLeftRoom, this, &CContextAudio::ps_userLeftRoom);
|
||||
|
||||
m_voiceInputDevice = m_voice->createInputDevice();
|
||||
m_voiceOutputDevice = m_voice->createOutputDevice();
|
||||
@@ -546,6 +550,16 @@ namespace BlackCore
|
||||
}
|
||||
}
|
||||
|
||||
void CContextAudio::ps_userJoinedRoom(const CCallsign & /**callsign**/)
|
||||
{
|
||||
emit this->changedVoiceRoomMembers();
|
||||
}
|
||||
|
||||
void CContextAudio::ps_userLeftRoom(const CCallsign & /**callsign**/)
|
||||
{
|
||||
emit this->changedVoiceRoomMembers();
|
||||
}
|
||||
|
||||
QSharedPointer<IVoiceChannel> CContextAudio::getVoiceChannelBy(const CVoiceRoom &voiceRoom)
|
||||
{
|
||||
QSharedPointer<IVoiceChannel> voiceChannel;
|
||||
|
||||
@@ -139,6 +139,12 @@ namespace BlackCore
|
||||
|
||||
void ps_setVoiceTransmission(bool enable);
|
||||
|
||||
//! User joined the room
|
||||
void ps_userJoinedRoom(const BlackMisc::Aviation::CCallsign &callsign);
|
||||
|
||||
//! User left the room
|
||||
void ps_userLeftRoom(const BlackMisc::Aviation::CCallsign &callsign);
|
||||
|
||||
private:
|
||||
const int MinUnmuteVolume = 20; //!< minimum volume when unmuted
|
||||
|
||||
|
||||
Reference in New Issue
Block a user