Ref T775, special handling for "broadcast" messages

* identify broadcast messages
* do NOT play sound
* use "own" tab for text messages (group together)
This commit is contained in:
Klaus Basan
2020-02-03 17:45:53 +01:00
committed by Mat Sutcliffe
parent 4de544a991
commit 00ed15f111
5 changed files with 70 additions and 5 deletions

View File

@@ -134,6 +134,17 @@ namespace BlackMisc
return m_callsign.endsWith("SUP");
}
bool CCallsign::isBroadcastCallsign() const
{
return m_callsignAsSet == "*" || m_callsign == "*" || m_callsignAsSet == "BROADCAST";
}
void CCallsign::markAsBroadcastCallsign()
{
m_callsignAsSet = "BROADCAST";
m_callsign = "BROADCAST";
}
bool CCallsign::isMaybeCopilotCallsign(const CCallsign &pilotCallsign) const
{
return m_callsign.startsWith(pilotCallsign.asString()) &&

View File

@@ -78,6 +78,14 @@ namespace BlackMisc
//! Supervisor?
bool isSupervisorCallsign() const;
//! Pseudo callsing for broadcast messages
//! \remark hack, workaround for VATSIM using "*" as callsign for text messages
bool isBroadcastCallsign() const;
//! Set a human readable name as "broadcast" callsign
//! \remark hack, workaround for VATSIM using "*" as callsign for text messages
void markAsBroadcastCallsign();
//! Returns true if this is a co-pilot callsign of pilot. The logic is that the callsign is the same as the pilot one
//! but with a single character as suffix.
//! e.g Pilot logged in as DLH123, observer logged in as DLH123A

View File

@@ -62,6 +62,10 @@ namespace BlackMisc
bool CTextMessage::isSupervisorMessage() const
{
// ignore broadcast messages
if (this->isBroadcastMessage()) { return false; }
// normal SUP message
return m_senderCallsign.isSupervisorCallsign();
}
@@ -79,6 +83,11 @@ namespace BlackMisc
return m_relayedMessage || this->getMessage().startsWith(CTextMessage::swiftRelayMessage());
}
void CTextMessage::markAsBroadcastMessage()
{
}
void CTextMessage::makeRelayedMessage(const CCallsign &partnerCallsign)
{
if (this->getMessage().startsWith(CTextMessage::swiftRelayMessage())) { return; }
@@ -193,6 +202,12 @@ namespace BlackMisc
return (cs.asString().startsWith("SERVER", Qt::CaseInsensitive));
}
bool CTextMessage::isBroadcastMessage() const
{
const CCallsign cs = this->getRecipientCallsign();
return cs.isBroadcastCallsign();
}
QString CTextMessage::asString(bool withSender, bool withRecipient, const QString &separator) const
{
QString s(this->getFormattedUtcTimestampHms());

View File

@@ -114,6 +114,9 @@ namespace BlackMisc
//! Initial message of server?
bool isServerMessage() const;
//! Is this a broadcast message
bool isBroadcastMessage() const;
//! Whole message as formatted string. Used to display message in a console window.
//! \param withSender include sender information in string?
//! \param withRecipient include recipient information in string?
@@ -156,6 +159,9 @@ namespace BlackMisc
//! Mark as relayed message
void markAsRelayedMessage() { m_relayedMessage = true; }
//! Mark as broadcast message
void markAsBroadcastMessage();
//! Mark as relayed and keep original sender
void makeRelayedMessage(const Aviation::CCallsign &partnerCallsign);