LCOV - code coverage report
Current view: top level - src/client - ring_signal.cpp (source / functions) Hit Total Coverage
Test: jami-coverage-filtered.info Lines: 107 109 98.2 %
Date: 2024-04-19 19:18:04 Functions: 3 3 100.0 %

          Line data    Source code
       1             : /*
       2             :  *  Copyright (C) 2004-2024 Savoir-faire Linux Inc.
       3             :  *
       4             :  *  Author: Guillaume Roguez <Guillaume.Roguez@savoirfairelinux.com>
       5             :  *
       6             :  *  This program is free software; you can redistribute it and/or modify
       7             :  *  it under the terms of the GNU General Public License as published by
       8             :  *  the Free Software Foundation; either version 3 of the License, or
       9             :  *  (at your option) any later version.
      10             :  *
      11             :  *  This program is distributed in the hope that it will be useful,
      12             :  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
      13             :  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14             :  *  GNU General Public License for more details.
      15             :  *
      16             :  *  You should have received a copy of the GNU General Public License
      17             :  *  along with this program; if not, write to the Free Software
      18             :  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
      19             :  */
      20             : 
      21             : #include "ring_signal.h"
      22             : 
      23             : namespace jami {
      24             : 
      25             : SignalHandlerMap&
      26       25148 : getSignalHandlers()
      27             : {
      28             :     static SignalHandlerMap handlers = {
      29             :         /* Call */
      30          35 :         exported_callback<libjami::CallSignal::StateChange>(),
      31          72 :         exported_callback<libjami::CallSignal::TransferFailed>(),
      32          72 :         exported_callback<libjami::CallSignal::TransferSucceeded>(),
      33          72 :         exported_callback<libjami::CallSignal::RecordPlaybackStopped>(),
      34          72 :         exported_callback<libjami::CallSignal::VoiceMailNotify>(),
      35          72 :         exported_callback<libjami::CallSignal::IncomingMessage>(),
      36          72 :         exported_callback<libjami::CallSignal::IncomingCall>(),
      37          72 :         exported_callback<libjami::CallSignal::IncomingCallWithMedia>(),
      38          72 :         exported_callback<libjami::CallSignal::MediaChangeRequested>(),
      39          72 :         exported_callback<libjami::CallSignal::RecordPlaybackFilepath>(),
      40          72 :         exported_callback<libjami::CallSignal::ConferenceCreated>(),
      41          72 :         exported_callback<libjami::CallSignal::ConferenceChanged>(),
      42          72 :         exported_callback<libjami::CallSignal::UpdatePlaybackScale>(),
      43          72 :         exported_callback<libjami::CallSignal::ConferenceRemoved>(),
      44          72 :         exported_callback<libjami::CallSignal::RecordingStateChanged>(),
      45          72 :         exported_callback<libjami::CallSignal::RtcpReportReceived>(),
      46          72 :         exported_callback<libjami::CallSignal::PeerHold>(),
      47          72 :         exported_callback<libjami::CallSignal::VideoMuted>(),
      48          72 :         exported_callback<libjami::CallSignal::AudioMuted>(),
      49          72 :         exported_callback<libjami::CallSignal::SmartInfo>(),
      50          72 :         exported_callback<libjami::CallSignal::ConnectionUpdate>(),
      51          72 :         exported_callback<libjami::CallSignal::OnConferenceInfosUpdated>(),
      52          72 :         exported_callback<libjami::CallSignal::RemoteRecordingChanged>(),
      53          72 :         exported_callback<libjami::CallSignal::MediaNegotiationStatus>(),
      54             : 
      55             :         /* Configuration */
      56          72 :         exported_callback<libjami::ConfigurationSignal::VolumeChanged>(),
      57          72 :         exported_callback<libjami::ConfigurationSignal::AccountsChanged>(),
      58          72 :         exported_callback<libjami::ConfigurationSignal::AccountDetailsChanged>(),
      59          72 :         exported_callback<libjami::ConfigurationSignal::StunStatusFailed>(),
      60          72 :         exported_callback<libjami::ConfigurationSignal::RegistrationStateChanged>(),
      61          72 :         exported_callback<libjami::ConfigurationSignal::VolatileDetailsChanged>(),
      62          72 :         exported_callback<libjami::ConfigurationSignal::CertificatePinned>(),
      63          72 :         exported_callback<libjami::ConfigurationSignal::CertificatePathPinned>(),
      64          72 :         exported_callback<libjami::ConfigurationSignal::CertificateExpired>(),
      65          72 :         exported_callback<libjami::ConfigurationSignal::CertificateStateChanged>(),
      66          72 :         exported_callback<libjami::ConfigurationSignal::IncomingAccountMessage>(),
      67          72 :         exported_callback<libjami::ConfigurationSignal::ComposingStatusChanged>(),
      68          72 :         exported_callback<libjami::ConfigurationSignal::AccountMessageStatusChanged>(),
      69          72 :         exported_callback<libjami::ConfigurationSignal::NeedsHost>(),
      70          72 :         exported_callback<libjami::ConfigurationSignal::ActiveCallsChanged>(),
      71          72 :         exported_callback<libjami::ConfigurationSignal::ProfileReceived>(),
      72          72 :         exported_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(),
      73          72 :         exported_callback<libjami::ConfigurationSignal::ContactAdded>(),
      74          72 :         exported_callback<libjami::ConfigurationSignal::ContactRemoved>(),
      75          72 :         exported_callback<libjami::ConfigurationSignal::ExportOnRingEnded>(),
      76          72 :         exported_callback<libjami::ConfigurationSignal::KnownDevicesChanged>(),
      77          72 :         exported_callback<libjami::ConfigurationSignal::NameRegistrationEnded>(),
      78          72 :         exported_callback<libjami::ConfigurationSignal::RegisteredNameFound>(),
      79          72 :         exported_callback<libjami::ConfigurationSignal::UserSearchEnded>(),
      80          72 :         exported_callback<libjami::ConfigurationSignal::MediaParametersChanged>(),
      81          72 :         exported_callback<libjami::ConfigurationSignal::MigrationEnded>(),
      82          72 :         exported_callback<libjami::ConfigurationSignal::DeviceRevocationEnded>(),
      83          72 :         exported_callback<libjami::ConfigurationSignal::AccountProfileReceived>(),
      84          72 :         exported_callback<libjami::ConfigurationSignal::Error>(),
      85             : #if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
      86             :         exported_callback<libjami::ConfigurationSignal::GetHardwareAudioFormat>(),
      87             : #endif
      88             : #if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
      89             :         exported_callback<libjami::ConfigurationSignal::GetAppDataPath>(),
      90             :         exported_callback<libjami::ConfigurationSignal::GetDeviceName>(),
      91             : #endif
      92          72 :         exported_callback<libjami::ConfigurationSignal::HardwareDecodingChanged>(),
      93          72 :         exported_callback<libjami::ConfigurationSignal::HardwareEncodingChanged>(),
      94          72 :         exported_callback<libjami::ConfigurationSignal::MessageSend>(),
      95             : 
      96             :         /* Presence */
      97          72 :         exported_callback<libjami::PresenceSignal::NewServerSubscriptionRequest>(),
      98          72 :         exported_callback<libjami::PresenceSignal::NearbyPeerNotification>(),
      99          72 :         exported_callback<libjami::PresenceSignal::ServerError>(),
     100          72 :         exported_callback<libjami::PresenceSignal::NewBuddyNotification>(),
     101          72 :         exported_callback<libjami::PresenceSignal::SubscriptionStateChanged>(),
     102             : 
     103             :         /* Audio */
     104          72 :         exported_callback<libjami::AudioSignal::DeviceEvent>(),
     105          72 :         exported_callback<libjami::AudioSignal::AudioMeter>(),
     106             : 
     107             :         /* DataTransfer */
     108          72 :         exported_callback<libjami::DataTransferSignal::DataTransferEvent>(),
     109             : 
     110             : #ifdef ENABLE_VIDEO
     111             :         /* MediaPlayer */
     112          72 :         exported_callback<libjami::MediaPlayerSignal::FileOpened>(),
     113             : 
     114             :         /* Video */
     115          72 :         exported_callback<libjami::VideoSignal::DeviceEvent>(),
     116          72 :         exported_callback<libjami::VideoSignal::DecodingStarted>(),
     117          72 :         exported_callback<libjami::VideoSignal::DecodingStopped>(),
     118             : #ifdef __ANDROID__
     119             :         exported_callback<libjami::VideoSignal::GetCameraInfo>(),
     120             :         exported_callback<libjami::VideoSignal::SetParameters>(),
     121             :         exported_callback<libjami::VideoSignal::RequestKeyFrame>(),
     122             :         exported_callback<libjami::VideoSignal::SetBitrate>(),
     123             : #endif
     124          72 :         exported_callback<libjami::VideoSignal::StartCapture>(),
     125          72 :         exported_callback<libjami::VideoSignal::StopCapture>(),
     126          72 :         exported_callback<libjami::VideoSignal::DeviceAdded>(),
     127          72 :         exported_callback<libjami::VideoSignal::ParametersChanged>(),
     128             : #endif
     129             : 
     130             :         /* Conversation */
     131          72 :         exported_callback<libjami::ConversationSignal::ConversationLoaded>(),
     132          72 :         exported_callback<libjami::ConversationSignal::SwarmLoaded>(),
     133          72 :         exported_callback<libjami::ConversationSignal::MessagesFound>(),
     134          72 :         exported_callback<libjami::ConversationSignal::MessageReceived>(),
     135          72 :         exported_callback<libjami::ConversationSignal::SwarmMessageReceived>(),
     136          72 :         exported_callback<libjami::ConversationSignal::SwarmMessageUpdated>(),
     137          72 :         exported_callback<libjami::ConversationSignal::ReactionAdded>(),
     138          72 :         exported_callback<libjami::ConversationSignal::ReactionRemoved>(),
     139          72 :         exported_callback<libjami::ConversationSignal::ConversationProfileUpdated>(),
     140          72 :         exported_callback<libjami::ConversationSignal::ConversationRequestReceived>(),
     141          72 :         exported_callback<libjami::ConversationSignal::ConversationRequestDeclined>(),
     142          72 :         exported_callback<libjami::ConversationSignal::ConversationReady>(),
     143          72 :         exported_callback<libjami::ConversationSignal::ConversationRemoved>(),
     144          72 :         exported_callback<libjami::ConversationSignal::ConversationMemberEvent>(),
     145          72 :         exported_callback<libjami::ConversationSignal::ConversationSyncFinished>(),
     146          72 :         exported_callback<libjami::ConversationSignal::ConversationCloned>(),
     147          72 :         exported_callback<libjami::ConversationSignal::CallConnectionRequest>(),
     148          72 :         exported_callback<libjami::ConversationSignal::OnConversationError>(),
     149          72 :         exported_callback<libjami::ConversationSignal::ConversationPreferencesUpdated>(),
     150             : 
     151             : #ifdef ENABLE_PLUGIN
     152          72 :         exported_callback<libjami::PluginSignal::WebViewMessageReceived>(),
     153             : #endif
     154       31736 :     };
     155             : 
     156       25147 :     return handlers;
     157             : }
     158             : 
     159             : }; // namespace jami
     160             : 
     161             : namespace libjami {
     162             : 
     163             : void
     164         651 : registerSignalHandlers(const std::map<std::string, std::shared_ptr<CallbackWrapperBase>>& handlers)
     165             : {
     166         651 :     auto& handlers_ = jami::getSignalHandlers();
     167        2632 :     for (auto& item : handlers) {
     168        1981 :         auto iter = handlers_.find(item.first);
     169        1981 :         if (iter == handlers_.end()) {
     170           0 :             JAMI_ERR("Signal %s not supported", item.first.c_str());
     171           0 :             continue;
     172             :         }
     173        1981 :         iter->second = item.second;
     174             :     }
     175         651 : }
     176             : 
     177             : void
     178         704 : unregisterSignalHandlers()
     179             : {
     180         704 :     auto& handlers_ = jami::getSignalHandlers();
     181       65472 :     for (auto& item : handlers_) {
     182       64768 :         item.second = {};
     183             :     }
     184         704 : }
     185             : 
     186             : } // namespace libjami

Generated by: LCOV version 1.14