mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-29 04:35:41 +08:00
Removed m_voiceRoomCom1/2 members and directly updating voice context
with voice rooms
This commit is contained in:
@@ -118,8 +118,6 @@ private:
|
|||||||
BlackCore::IContextVoice *m_contextVoice;
|
BlackCore::IContextVoice *m_contextVoice;
|
||||||
BlackCore::IContextSettings *m_contextSettings;
|
BlackCore::IContextSettings *m_contextSettings;
|
||||||
BlackMisc::Aviation::CAircraft m_ownAircraft; /*!< own aircraft's state */
|
BlackMisc::Aviation::CAircraft m_ownAircraft; /*!< own aircraft's state */
|
||||||
BlackMisc::Voice::CVoiceRoom m_voiceRoomCom1;
|
|
||||||
BlackMisc::Voice::CVoiceRoom m_voiceRoomCom2;
|
|
||||||
QTimer *m_timerUpdateAtcStationsOnline; /*!< timer for update of stations */
|
QTimer *m_timerUpdateAtcStationsOnline; /*!< timer for update of stations */
|
||||||
QTimer *m_timerUpdateAircraftsInRange; /*!< timer for update of aircrafts */
|
QTimer *m_timerUpdateAircraftsInRange; /*!< timer for update of aircrafts */
|
||||||
QTimer *m_timerUpdateUsers; /*!< timer dor update of users */
|
QTimer *m_timerUpdateUsers; /*!< timer dor update of users */
|
||||||
@@ -450,9 +448,10 @@ private slots:
|
|||||||
void resetTransponderMode();
|
void resetTransponderMode();
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Override voice room (allows to set an arbitrary voice room for testing purposes)
|
* Set voice rooms, also
|
||||||
|
* allows to set an arbitrary voice room for testing purposes
|
||||||
*/
|
*/
|
||||||
void voiceRoomOverride();
|
void setAudioVoiceRooms();
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Audio volume handling and mute
|
* \brief Audio volume handling and mute
|
||||||
|
|||||||
@@ -32,32 +32,17 @@ bool MainWindow::reloadOwnAircraft()
|
|||||||
{
|
{
|
||||||
if (!this->isContextNetworkAvailableCheck()) return false;
|
if (!this->isContextNetworkAvailableCheck()) return false;
|
||||||
if (this->isCockpitUpdatePending()) return false;
|
if (this->isCockpitUpdatePending()) return false;
|
||||||
|
|
||||||
|
// check for changed aircraft
|
||||||
|
bool changed = false;
|
||||||
CAircraft loadedAircraft = this->m_contextNetwork->getOwnAircraft();
|
CAircraft loadedAircraft = this->m_contextNetwork->getOwnAircraft();
|
||||||
|
if (loadedAircraft != this->m_ownAircraft)
|
||||||
// changed aircraft
|
|
||||||
if (loadedAircraft == this->m_ownAircraft) return false;
|
|
||||||
this->m_ownAircraft = loadedAircraft;
|
|
||||||
|
|
||||||
// update voice rooms
|
|
||||||
if (this->m_contextVoiceAvailable)
|
|
||||||
{
|
{
|
||||||
CVoiceRoomList selectedRooms = this->m_contextNetwork->getSelectedVoiceRooms();
|
this->m_ownAircraft = loadedAircraft;
|
||||||
if (selectedRooms.size() == 2)
|
this->updateCockpitFromContext();
|
||||||
{
|
changed = true;
|
||||||
this->m_voiceRoomCom1 = this->ui->cb_CockpitVoiceRoom1Override->isChecked() ?
|
|
||||||
CVoiceRoom(this->ui->le_CockpitVoiceRoomCom1->text().trimmed()) :
|
|
||||||
selectedRooms[0];
|
|
||||||
this->m_voiceRoomCom2 = this->ui->cb_CockpitVoiceRoom2Override->isChecked() ?
|
|
||||||
CVoiceRoom(this->ui->le_CockpitVoiceRoomCom2->text().trimmed()) :
|
|
||||||
selectedRooms[1];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return changed;
|
||||||
//
|
|
||||||
this->updateCockpitFromContext();
|
|
||||||
|
|
||||||
// something has changed
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -34,6 +34,15 @@ void MainWindow::reloadAtcStationsOnline()
|
|||||||
this->m_atcListOnline->update(this->m_contextNetwork->getAtcStationsOnline());
|
this->m_atcListOnline->update(this->m_contextNetwork->getAtcStationsOnline());
|
||||||
this->ui->tv_AtcStationsOnline->resizeColumnsToContents();
|
this->ui->tv_AtcStationsOnline->resizeColumnsToContents();
|
||||||
this->ui->tv_AtcStationsOnline->resizeRowsToContents();
|
this->ui->tv_AtcStationsOnline->resizeRowsToContents();
|
||||||
|
|
||||||
|
if (!this->m_contextNetwork->isConnected())
|
||||||
|
{
|
||||||
|
// clear metar/ATIS
|
||||||
|
this->ui->te_AtcStationsOnlineInfo->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// after reloading, update cockpit based on better information
|
||||||
|
this->updateCockpitFromContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -111,15 +111,19 @@ void MainWindow::updateCockpitFromContext()
|
|||||||
//
|
//
|
||||||
if (this->m_contextVoiceAvailable)
|
if (this->m_contextVoiceAvailable)
|
||||||
{
|
{
|
||||||
bool com1Connected = this->m_voiceRoomCom1.isConnected();
|
// get all rooms, it is important to get the rooms from voice context here
|
||||||
bool com2Connected = this->m_voiceRoomCom2.isConnected();
|
// these are the ones featuring the real audio status
|
||||||
|
CVoiceRoomList rooms = this->m_contextVoice->getComVoiceRoomsWithAudioStatus();
|
||||||
|
Q_ASSERT(rooms.size() == 2);
|
||||||
Q_ASSERT(this->m_usersVoiceCom1);
|
Q_ASSERT(this->m_usersVoiceCom1);
|
||||||
Q_ASSERT(this->m_usersVoiceCom2);
|
Q_ASSERT(this->m_usersVoiceCom2);
|
||||||
|
bool com1Connected = rooms[0].isConnected();
|
||||||
|
bool com2Connected = rooms[1].isConnected();
|
||||||
|
|
||||||
|
// update views
|
||||||
this->m_usersVoiceCom1->update(this->m_contextVoice->getCom1RoomUsers());
|
this->m_usersVoiceCom1->update(this->m_contextVoice->getCom1RoomUsers());
|
||||||
this->ui->tv_CockpitVoiceRoom1->resizeColumnsToContents();
|
this->ui->tv_CockpitVoiceRoom1->resizeColumnsToContents();
|
||||||
this->ui->tv_CockpitVoiceRoom1->resizeRowsToContents();
|
this->ui->tv_CockpitVoiceRoom1->resizeRowsToContents();
|
||||||
|
|
||||||
this->m_usersVoiceCom2->update(this->m_contextVoice->getCom2RoomUsers());
|
this->m_usersVoiceCom2->update(this->m_contextVoice->getCom2RoomUsers());
|
||||||
this->ui->tv_CockpitVoiceRoom2->resizeColumnsToContents();
|
this->ui->tv_CockpitVoiceRoom2->resizeColumnsToContents();
|
||||||
this->ui->tv_CockpitVoiceRoom2->resizeRowsToContents();
|
this->ui->tv_CockpitVoiceRoom2->resizeRowsToContents();
|
||||||
@@ -129,7 +133,7 @@ void MainWindow::updateCockpitFromContext()
|
|||||||
{
|
{
|
||||||
// no override
|
// no override
|
||||||
QString s = com1Connected ?
|
QString s = com1Connected ?
|
||||||
QString("*%1").arg(this->m_voiceRoomCom1.getVoiceRoomUrl()) :
|
QString("*%1").arg(rooms[0].getVoiceRoomUrl()) :
|
||||||
"";
|
"";
|
||||||
this->ui->le_CockpitVoiceRoomCom1->setText(s);
|
this->ui->le_CockpitVoiceRoomCom1->setText(s);
|
||||||
}
|
}
|
||||||
@@ -139,7 +143,7 @@ void MainWindow::updateCockpitFromContext()
|
|||||||
{
|
{
|
||||||
// no overrride
|
// no overrride
|
||||||
QString s = com2Connected ?
|
QString s = com2Connected ?
|
||||||
QString("*%1").arg(this->m_voiceRoomCom2.getVoiceRoomUrl()) :
|
QString("*%1").arg(rooms[0].getVoiceRoomUrl()) :
|
||||||
"";
|
"";
|
||||||
this->ui->le_CockpitVoiceRoomCom2->setText(s);
|
this->ui->le_CockpitVoiceRoomCom2->setText(s);
|
||||||
}
|
}
|
||||||
@@ -256,28 +260,44 @@ void MainWindow::sendCockpitUpdates()
|
|||||||
// Now with the new voice room data, really set the
|
// Now with the new voice room data, really set the
|
||||||
// voice rooms in the context
|
// voice rooms in the context
|
||||||
//
|
//
|
||||||
if (changedCockpit && this->m_contextVoiceAvailable)
|
if (changedCockpit) this->setAudioVoiceRooms();
|
||||||
{
|
|
||||||
// set voice rooms here, this allows to use local/remote
|
|
||||||
// voice context
|
|
||||||
this->m_contextVoice->setComVoiceRooms(this->m_voiceRoomCom1, this->m_voiceRoomCom2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Voice room override
|
* Voice room override
|
||||||
*/
|
*/
|
||||||
void MainWindow::voiceRoomOverride()
|
void MainWindow::setAudioVoiceRooms()
|
||||||
{
|
{
|
||||||
|
if (!this->m_contextVoiceAvailable) return;
|
||||||
|
if (!this->m_contextNetworkAvailable) return;
|
||||||
|
|
||||||
|
// make fields readonly if not overriding
|
||||||
this->ui->le_CockpitVoiceRoomCom1->setReadOnly(!this->ui->cb_CockpitVoiceRoom1Override->isChecked());
|
this->ui->le_CockpitVoiceRoomCom1->setReadOnly(!this->ui->cb_CockpitVoiceRoom1Override->isChecked());
|
||||||
this->ui->le_CockpitVoiceRoomCom2->setReadOnly(!this->ui->cb_CockpitVoiceRoom2Override->isChecked());
|
this->ui->le_CockpitVoiceRoomCom2->setReadOnly(!this->ui->cb_CockpitVoiceRoom2Override->isChecked());
|
||||||
|
|
||||||
|
CVoiceRoom room1;
|
||||||
|
CVoiceRoom room2;
|
||||||
|
CVoiceRoomList selectedVoiceRooms = this->m_contextNetwork->getSelectedVoiceRooms();
|
||||||
|
Q_ASSERT(selectedVoiceRooms.size() == 2);
|
||||||
|
|
||||||
if (this->ui->cb_CockpitVoiceRoom1Override->isChecked())
|
if (this->ui->cb_CockpitVoiceRoom1Override->isChecked())
|
||||||
|
room1 = CVoiceRoom(this->ui->le_CockpitVoiceRoomCom1->text().trimmed());
|
||||||
|
else
|
||||||
{
|
{
|
||||||
this->m_voiceRoomCom1 = CVoiceRoom(this->ui->cb_CockpitVoiceRoom1Override->text().trimmed());
|
room1 = selectedVoiceRooms[0];
|
||||||
|
room1.setAudioPlaying(true);
|
||||||
|
this->ui->le_CockpitVoiceRoomCom1->setText(room1.getVoiceRoomUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->ui->cb_CockpitVoiceRoom2Override->isChecked())
|
if (this->ui->cb_CockpitVoiceRoom2Override->isChecked())
|
||||||
|
room2 = CVoiceRoom(this->ui->le_CockpitVoiceRoomCom1->text().trimmed());
|
||||||
|
else
|
||||||
{
|
{
|
||||||
this->m_voiceRoomCom2 = CVoiceRoom(this->ui->cb_CockpitVoiceRoom2Override->text().trimmed());
|
room2 = selectedVoiceRooms[1];
|
||||||
|
room2.setAudioPlaying(true);
|
||||||
|
this->ui->le_CockpitVoiceRoomCom2->setText(room2.getVoiceRoomUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set the real voice rooms for audio output
|
||||||
|
this->m_contextVoice->setComVoiceRooms(room1, room2);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -255,10 +255,10 @@ void MainWindow::initGuiSignals()
|
|||||||
this->connect(this->ui->ds_CockpitCom2Standby, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
this->connect(this->ui->ds_CockpitCom2Standby, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
||||||
this->connect(this->ui->ds_CockpitTransponder, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
this->connect(this->ui->ds_CockpitTransponder, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
||||||
|
|
||||||
this->connect(this->ui->cb_CockpitVoiceRoom1Override, &QCheckBox::clicked, this, &MainWindow::voiceRoomOverride);
|
this->connect(this->ui->cb_CockpitVoiceRoom1Override, &QCheckBox::clicked, this, &MainWindow::setAudioVoiceRooms);
|
||||||
this->connect(this->ui->cb_CockpitVoiceRoom2Override, &QCheckBox::clicked, this, &MainWindow::voiceRoomOverride);
|
this->connect(this->ui->cb_CockpitVoiceRoom2Override, &QCheckBox::clicked, this, &MainWindow::setAudioVoiceRooms);
|
||||||
this->connect(this->ui->le_CockpitVoiceRoomCom1, &QLineEdit::returnPressed, this, &MainWindow::voiceRoomOverride);
|
this->connect(this->ui->le_CockpitVoiceRoomCom1, &QLineEdit::returnPressed, this, &MainWindow::setAudioVoiceRooms);
|
||||||
this->connect(this->ui->le_CockpitVoiceRoomCom2, &QLineEdit::returnPressed, this, &MainWindow::voiceRoomOverride);
|
this->connect(this->ui->le_CockpitVoiceRoomCom2, &QLineEdit::returnPressed, this, &MainWindow::setAudioVoiceRooms);
|
||||||
this->connect(this->ui->pb_CockpitToggleCom1, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
this->connect(this->ui->pb_CockpitToggleCom1, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
||||||
this->connect(this->ui->pb_CockpitToggleCom2, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
this->connect(this->ui->pb_CockpitToggleCom2, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
||||||
this->connect(this->ui->pb_CockpitIdent, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
this->connect(this->ui->pb_CockpitIdent, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
||||||
|
|||||||
@@ -142,6 +142,6 @@ void MainWindow::audioVolumes()
|
|||||||
|
|
||||||
// update own aircraft, also set volume/mute in voice
|
// update own aircraft, also set volume/mute in voice
|
||||||
this->m_ownAircraft.setCom1System(com1);
|
this->m_ownAircraft.setCom1System(com1);
|
||||||
this->m_ownAircraft.setCom1System(com2);
|
this->m_ownAircraft.setCom2System(com2);
|
||||||
this->m_contextVoice->setVolumes(this->m_ownAircraft.getCom1System(), this->m_ownAircraft.getCom1System());
|
this->m_contextVoice->setVolumes(this->m_ownAircraft.getCom1System(), this->m_ownAircraft.getCom2System());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user