diff --git a/src/blackmisc/avcallsign.cpp b/src/blackmisc/avcallsign.cpp index 91f10b8f0..5dbc48f72 100644 --- a/src/blackmisc/avcallsign.cpp +++ b/src/blackmisc/avcallsign.cpp @@ -41,6 +41,18 @@ namespace BlackMisc return unified; } + /* + * Callsign as Observer + */ + QString CCallsign::getAsObserverCallsignString() const + { + if (this->isEmpty()) return ""; + QString obs = this->getStringAsSet(); + if (obs.endsWith("_OBS", Qt::CaseInsensitive)) return obs; + if (obs.contains('_')) obs = obs.left(obs.lastIndexOf('_')); + return obs.append("_OBS").toUpper(); + } + /* * Equals callsign? */ diff --git a/src/blackmisc/avcallsign.h b/src/blackmisc/avcallsign.h index 2446f8b97..538466cdb 100644 --- a/src/blackmisc/avcallsign.h +++ b/src/blackmisc/avcallsign.h @@ -76,11 +76,17 @@ namespace BlackMisc const QString &getCallsignPronounced() const { return this->m_callsignPronounced; } /*! - * \brief Get ICAO code, if this possible + * \brief Get ICAO code, if this makes sense (EDDF_TWR -> EDDF) * \return */ QString getIcaoCode() const { return m_callsign.left(4).toUpper(); } + /*! + * \brief Makes this callsign looking like an observer callsign (DAMBZ -> DAMBZ_OBS) + * \return + */ + QString getAsObserverCallsignString() const; + /*! * \brief Equals callsign string? * \param callsignString