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