From f9fc3e1a814a4d385f8a993e431ca953e8d66094 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 25 Sep 2017 14:11:31 +0200 Subject: [PATCH] Change the state of the client group chat room to "created" when it has been created remotely. --- src/chat/client-group-chat-room.cpp | 15 +++++++++++++-- src/chat/client-group-chat-room.h | 5 +++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/chat/client-group-chat-room.cpp b/src/chat/client-group-chat-room.cpp index 9e03e37d2..4ecf2ee45 100644 --- a/src/chat/client-group-chat-room.cpp +++ b/src/chat/client-group-chat-room.cpp @@ -87,11 +87,13 @@ void ClientGroupChatRoom::removeParticipants (const list // ----------------------------------------------------------------------------- void ClientGroupChatRoom::onConferenceCreated (const Address &addr) { - // TODO + L_D(ClientGroupChatRoom); + d->setState(ChatRoom::State::Created); } void ClientGroupChatRoom::onConferenceTerminated (const Address &addr) { - // TODO + L_D(ClientGroupChatRoom); + d->setState(ChatRoom::State::Terminated); } void ClientGroupChatRoom::onParticipantAdded (const Address &addr) { @@ -137,4 +139,13 @@ void ClientGroupChatRoom::onParticipantSetAdmin (const Address &addr, bool isAdm cb(cr, L_GET_C_BACK_PTR(participant), isAdmin); } +// ----------------------------------------------------------------------------- + +void ClientGroupChatRoom::onCallSessionStateChanged (const CallSession &session, LinphoneCallState state, const std::string &message) { + if (state == LinphoneCallConnected) { + // TODO: Get the conference ID instead of the remote address + onConferenceCreated(session.getRemoteAddress()); + } +} + LINPHONE_END_NAMESPACE diff --git a/src/chat/client-group-chat-room.h b/src/chat/client-group-chat-room.h index aa31265c4..8207b62dd 100644 --- a/src/chat/client-group-chat-room.h +++ b/src/chat/client-group-chat-room.h @@ -24,6 +24,7 @@ #include "chat/chat-room.h" #include "conference/remote-conference.h" +#include "conference/session/call-session.h" #include "linphone/types.h" @@ -57,6 +58,10 @@ private: void onParticipantRemoved (const Address &addr) override; void onParticipantSetAdmin (const Address &addr, bool isAdmin) override; +private: + /* CallSessionListener */ + void onCallSessionStateChanged (const CallSession &session, LinphoneCallState state, const std::string &message) override; + private: L_DECLARE_PRIVATE(ClientGroupChatRoom); L_DISABLE_COPY(ClientGroupChatRoom);