Updated CVoiceVatlib::getComVoiceRoomsWithAudioStatus() to const

Callsign split for user onRoomUserReceived
Check in CVoiceVatlib::addTemporaryCallsignForRoom
This commit is contained in:
Klaus Basan
2014-01-25 01:51:54 +01:00
parent 2cd5f81828
commit 36bab20f58
3 changed files with 38 additions and 36 deletions

View File

@@ -130,7 +130,7 @@ namespace BlackCore
* Get COM1/2 voice rooms, which then allows to retrieve information * Get COM1/2 voice rooms, which then allows to retrieve information
* such as audio status etc. * such as audio status etc.
*/ */
virtual BlackMisc::Voice::CVoiceRoomList getComVoiceRoomsWithAudioStatus() = 0; virtual BlackMisc::Voice::CVoiceRoomList getComVoiceRoomsWithAudioStatus() const = 0;
/*! /*!
* Get COM1/2 voice rooms, const and with no status update * Get COM1/2 voice rooms, const and with no status update

View File

@@ -145,10 +145,10 @@ namespace BlackCore
/* /*
* Get voice rooms, with the latest status updated * Get voice rooms, with the latest status updated
*/ */
BlackMisc::Voice::CVoiceRoomList CVoiceVatlib::getComVoiceRoomsWithAudioStatus() BlackMisc::Voice::CVoiceRoomList CVoiceVatlib::getComVoiceRoomsWithAudioStatus() const
{ {
Q_ASSERT_X(m_voiceRooms.size() == 2, "CVoiceClientVatlib", "Wrong numer of COM voice rooms"); Q_ASSERT_X(m_voiceRooms.size() == 2, "CVoiceClientVatlib", "Wrong numer of COM voice rooms");
CVoiceRoomList voiceRooms;
if (m_voice->IsValid() && m_voice->IsSetup()) if (m_voice->IsValid() && m_voice->IsSetup())
{ {
// valid state, update // valid state, update
@@ -158,10 +158,16 @@ namespace BlackCore
com2.setConnected(m_voice->IsRoomConnected(static_cast<qint32>(COM2))); com2.setConnected(m_voice->IsRoomConnected(static_cast<qint32>(COM2)));
com1.setAudioPlaying(com1.isConnected() ? m_voice->IsAudioPlaying(static_cast<qint32>(COM1)) : false); com1.setAudioPlaying(com1.isConnected() ? m_voice->IsAudioPlaying(static_cast<qint32>(COM1)) : false);
com2.setAudioPlaying(com2.isConnected() ? m_voice->IsAudioPlaying(static_cast<qint32>(COM2)) : false); com2.setAudioPlaying(com2.isConnected() ? m_voice->IsAudioPlaying(static_cast<qint32>(COM2)) : false);
this->setVoiceRoomForUnit(COM1, com1); voiceRooms.push_back(com1);
this->setVoiceRoomForUnit(COM2, com2); voiceRooms.push_back(com2);
} }
return this->m_voiceRooms; else
{
CVoiceRoom def;
voiceRooms.push_back(def);
voiceRooms.push_back(def);
}
return voiceRooms;
} }
/* /*
@@ -524,7 +530,7 @@ namespace BlackCore
m_voice->GetRoomUserList(static_cast<qint32>(comUnit), onRoomUserReceived, this); m_voice->GetRoomUserList(static_cast<qint32>(comUnit), onRoomUserReceived, this);
m_temporaryUserRoomIndex = CVoiceVatlib::InvalidRoomIndex; // reset m_temporaryUserRoomIndex = CVoiceVatlib::InvalidRoomIndex; // reset
// we have all current users in m_voi // we have all current users in m_temporaryVoiceRoomCallsigns
foreach(CCallsign callsign, m_voiceRoomCallsigns.value(comUnit)) foreach(CCallsign callsign, m_voiceRoomCallsigns.value(comUnit))
{ {
if (!m_temporaryVoiceRoomCallsigns.contains(callsign)) if (!m_temporaryVoiceRoomCallsigns.contains(callsign))
@@ -588,11 +594,19 @@ namespace BlackCore
QString callsign = QString(name); QString callsign = QString(name);
if (callsign.isEmpty()) return; if (callsign.isEmpty()) return;
// add user // add callsign
CVoiceVatlib *voiceClientVatlib = cbvar_cast_voice(cbVar); CVoiceVatlib *voiceClientVatlib = cbvar_cast_voice(cbVar);
ComUnit comUnit = static_cast<ComUnit>(voiceClientVatlib->temporaryUserRoomIndex()); ComUnit comUnit = static_cast<ComUnit>(voiceClientVatlib->temporaryUserRoomIndex());
// add user // add user
// callsign might contain: VATSIM id, user name
if (callsign.contains(" "))
{
QStringList parts = callsign.split(" ");
callsign = parts[0];
// I throw away VATSIM id here, maybe we could use it
}
voiceClientVatlib->addTemporaryCallsignForRoom(comUnit, CCallsign(callsign)); voiceClientVatlib->addTemporaryCallsignForRoom(comUnit, CCallsign(callsign));
} }
@@ -637,6 +651,7 @@ namespace BlackCore
*/ */
void CVoiceVatlib::addTemporaryCallsignForRoom(const ComUnit /** comUnit **/, const CCallsign &callsign) void CVoiceVatlib::addTemporaryCallsignForRoom(const ComUnit /** comUnit **/, const CCallsign &callsign)
{ {
if (m_temporaryVoiceRoomCallsigns.contains(callsign)) return;
m_temporaryVoiceRoomCallsigns.push_back(callsign); m_temporaryVoiceRoomCallsigns.push_back(callsign);
} }

View File

@@ -66,60 +66,49 @@ namespace BlackCore
virtual qint32 micTestResult() const; virtual qint32 micTestResult() const;
virtual QString micTestResultAsString() const; virtual QString micTestResultAsString() const;
public slots: public slots:
/*! /*!
* \brief ATC station callsign, used for voice room designator * \copydoc IVoice::setMyAircraftCallsign()
* \param callsign
*/ */
virtual void setMyAircraftCallsign(const BlackMisc::Aviation::CCallsign &callsign); virtual void setMyAircraftCallsign(const BlackMisc::Aviation::CCallsign &callsign);
/*! /*!
* \brief Join a given voice room * \copydoc IVoice::joinVoiceRoom()
* \param comUnit
* \param voiceRoom
*/ */
virtual void joinVoiceRoom(const ComUnit comUnit, const BlackMisc::Voice::CVoiceRoom &voiceRoom); virtual void joinVoiceRoom(const ComUnit comUnit, const BlackMisc::Voice::CVoiceRoom &voiceRoom);
/*! /*!
* \brief Leave voice room * \copydoc IVoice::leaveVoiceRoom()
* \param comUnit
*/ */
virtual void leaveVoiceRoom(const ComUnit comUnit); virtual void leaveVoiceRoom(const ComUnit comUnit);
/*! /*!
* \brief Leave all voice rooms * \copydoc IVoice::leaveAllVoiceRooms()
*/ */
virtual void leaveAllVoiceRooms(); virtual void leaveAllVoiceRooms();
/*! /*!
* \brief Room output volume as per COM unit * \copydoc IVoice::setRoomOutputVolume()
* \param comUnit
* \param volumne
*/ */
virtual void setRoomOutputVolume(const ComUnit comUnit, const qint32 volumne); virtual void setRoomOutputVolume(const ComUnit comUnit, const qint32 volumne);
/*! /*!
* \brief Start transmitting ("talk") * \copydoc IVoice::startTransmitting()
* \param comUnit
*/ */
virtual void startTransmitting(const ComUnit comUnit); virtual void startTransmitting(const ComUnit comUnit);
/*! /*!
* \brief Stop transmitting ("talk") * \copydoc IVoice::stopTransmitting()
* \param comUnit
*/ */
virtual void stopTransmitting(const ComUnit comUnit); virtual void stopTransmitting(const ComUnit comUnit);
/*! /*!
* Get COM1/2 voice rooms, which then allows to retrieve information * \copydoc IVoice::getComVoiceRoomsWithAudioStatus()
* such as connection status etc.
* \return
*/ */
virtual BlackMisc::Voice::CVoiceRoomList getComVoiceRoomsWithAudioStatus(); virtual BlackMisc::Voice::CVoiceRoomList getComVoiceRoomsWithAudioStatus() const;
/*! /*!
* \brief Voice rooms, const version with no updates * \copydoc IVoice::getComVoiceRooms()
*/ */
virtual BlackMisc::Voice::CVoiceRoomList getComVoiceRooms() const virtual BlackMisc::Voice::CVoiceRoomList getComVoiceRooms() const
{ {
@@ -127,17 +116,15 @@ namespace BlackCore
} }
/*! /*!
* \brief Get voice room callsigns * \copydoc IVoice::getVoiceRoomCallsigns()
* \param comUnit COM1/2
* \return
*/ */
virtual BlackMisc::Aviation::CCallsignList getVoiceRoomCallsigns(const ComUnit comUnit) const; virtual BlackMisc::Aviation::CCallsignList getVoiceRoomCallsigns(const ComUnit comUnit) const;
/*! /*!
* \brief Switch audio output * \brief Switch audio output, enable or disable given COM unit.
* \param comUnit * \param comUnit
* \param enable * \param enable enable or disable output
*/ */
virtual void switchAudioOutput(const ComUnit comUnit, bool enable); virtual void switchAudioOutput(const ComUnit comUnit, bool enable);
/*! /*!