diff --git a/src/blackcore/context_network.h b/src/blackcore/context_network.h index 0945f941f..3c6a85e08 100644 --- a/src/blackcore/context_network.h +++ b/src/blackcore/context_network.h @@ -98,6 +98,9 @@ namespace BlackCore //! Users for given callsigns, e.g. for voice room resolution virtual BlackMisc::Network::CUserList getUsersForCallsigns(const BlackMisc::Aviation::CCallsignList &callsigns) const = 0; + //! User for given callsign, e.g. for text messages + virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0; + //! Get own aircraft virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const = 0; diff --git a/src/blackcore/context_network_impl.cpp b/src/blackcore/context_network_impl.cpp index ee084f402..c436d8c57 100644 --- a/src/blackcore/context_network_impl.cpp +++ b/src/blackcore/context_network_impl.cpp @@ -357,6 +357,18 @@ namespace BlackCore return users; } + /* + * User for callsign + */ + CUser CContextNetwork::getUserForCallsign(const CCallsign &callsign) const + { + CCallsignList callsigns; + callsigns.push_back(callsign); + CUserList users = this->getUsersForCallsigns(callsigns); + if (users.size() < 1) return CUser(); + return users[0]; + } + /* * Other clients */ diff --git a/src/blackcore/context_network_impl.h b/src/blackcore/context_network_impl.h index 886b7593b..93b0d6983 100644 --- a/src/blackcore/context_network_impl.h +++ b/src/blackcore/context_network_impl.h @@ -106,6 +106,9 @@ namespace BlackCore //! \copydoc IContextNetwork::getUsersForCallsigns virtual BlackMisc::Network::CUserList getUsersForCallsigns(const BlackMisc::Aviation::CCallsignList &callsigns) const override; + //! \copydoc IContextNetwork::getUsersForCallsign + virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; + //! \copydoc IContextNetwork::getOtherClients virtual BlackMisc::Network::CClientList getOtherClients() const override; diff --git a/src/blackcore/context_network_proxy.cpp b/src/blackcore/context_network_proxy.cpp index f171539a6..0cd6fd2ff 100644 --- a/src/blackcore/context_network_proxy.cpp +++ b/src/blackcore/context_network_proxy.cpp @@ -93,6 +93,11 @@ namespace BlackCore return this->m_dBusInterface->callDBusRet(QLatin1Literal("getUsersForCallsigns"), callsigns); } + BlackMisc::Network::CUser CContextNetworkProxy::getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const + { + return this->m_dBusInterface->callDBusRet(QLatin1Literal("getUserForCallsign"), callsign); + } + BlackMisc::Network::CClientList CContextNetworkProxy::getOtherClients() const { return this->m_dBusInterface->callDBusRet(QLatin1Literal("getOtherClients")); diff --git a/src/blackcore/context_network_proxy.h b/src/blackcore/context_network_proxy.h index c1e6aadc7..61427b238 100644 --- a/src/blackcore/context_network_proxy.h +++ b/src/blackcore/context_network_proxy.h @@ -119,6 +119,9 @@ namespace BlackCore //! \copydoc IContextNetwork::getUsersForCallsigns virtual BlackMisc::Network::CUserList getUsersForCallsigns(const BlackMisc::Aviation::CCallsignList &callsigns) const override; + //! \copydoc IContextNetwork::getUserForCallsign + virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; + //! \copydoc IContextNetwork::getOtherClients virtual BlackMisc::Network::CClientList getOtherClients() const override;