From 6d54b3c46da37d415009937a044ca9187da78978 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 4 Aug 2017 16:53:29 +0200 Subject: [PATCH] Add class skeletons for refactoring of conference. --- src/CMakeLists.txt | 22 +++++++ src/call/call.cpp | 54 +++++++++++++++ src/call/call.h | 46 +++++++++++++ src/chat/chat-room.cpp | 1 + src/chat/chat-room.h | 1 + src/conference/conference-listener.h | 37 +++++++++++ src/conference/conference-p.h | 43 ++++++++++++ src/conference/conference.cpp | 29 +++++++++ src/conference/conference.h | 44 +++++++++++++ src/conference/local-conference.cpp | 35 ++++++++++ src/conference/local-conference.h | 41 ++++++++++++ src/conference/params/call-session-params-p.h | 43 ++++++++++++ src/conference/params/call-session-params.cpp | 27 ++++++++ src/conference/params/call-session-params.h | 44 +++++++++++++ .../params/media-session-params.cpp | 36 ++++++++++ src/conference/params/media-session-params.h | 41 ++++++++++++ src/conference/participant.cpp | 65 +++++++++++++++++++ src/conference/participant.h | 48 ++++++++++++++ src/conference/remote-conference.cpp | 35 ++++++++++ src/conference/remote-conference.h | 41 ++++++++++++ src/conference/session/call-session-p.h | 43 ++++++++++++ src/conference/session/call-session.cpp | 29 +++++++++ src/conference/session/call-session.h | 44 +++++++++++++ src/conference/session/media-session.cpp | 41 ++++++++++++ src/conference/session/media-session.h | 41 ++++++++++++ 25 files changed, 931 insertions(+) create mode 100644 src/call/call.cpp create mode 100644 src/call/call.h create mode 100644 src/conference/conference-listener.h create mode 100644 src/conference/conference-p.h create mode 100644 src/conference/conference.cpp create mode 100644 src/conference/conference.h create mode 100644 src/conference/local-conference.cpp create mode 100644 src/conference/local-conference.h create mode 100644 src/conference/params/call-session-params-p.h create mode 100644 src/conference/params/call-session-params.cpp create mode 100644 src/conference/params/call-session-params.h create mode 100644 src/conference/params/media-session-params.cpp create mode 100644 src/conference/params/media-session-params.h create mode 100644 src/conference/participant.cpp create mode 100644 src/conference/participant.h create mode 100644 src/conference/remote-conference.cpp create mode 100644 src/conference/remote-conference.h create mode 100644 src/conference/session/call-session-p.h create mode 100644 src/conference/session/call-session.cpp create mode 100644 src/conference/session/call-session.h create mode 100644 src/conference/session/media-session.cpp create mode 100644 src/conference/session/media-session.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 94c5f0f96..c744240b8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,8 +24,21 @@ set(LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES address/address-p.h address/address.h c-wrapper/c-tools.h + call/call.h chat/chat-room-p.h chat/chat-room.h + conference/conference.h + conference/conference-listener.h + conference/conference-p.h + conference/local-conference.h + conference/params/call-session-params.h + conference/params/call-session-params-p.h + conference/params/media-session-params.h + conference/participant.h + conference/remote-conference.h + conference/session/call-session.h + conference/session/call-session-p.h + conference/session/media-session.h content/content.h core/core.h chat/imdn.h @@ -66,11 +79,20 @@ set(LINPHONE_CXX_OBJECTS_SOURCE_FILES address/address.cpp c-wrapper/api/c-address.cpp c-wrapper/api/c-event-log.cpp + call/call.cpp chat/chat-room.cpp content/content.cpp core/core.cpp chat/imdn.cpp chat/is-composing.cpp + conference/conference.cpp + conference/local-conference.cpp + conference/params/call-session-params.cpp + conference/params/media-session-params.cpp + conference/participant.cpp + conference/remote-conference.cpp + conference/session/call-session.cpp + conference/session/media-session.cpp cpim/header/cpim-core-headers.cpp cpim/header/cpim-generic-header.cpp cpim/header/cpim-header.cpp diff --git a/src/call/call.cpp b/src/call/call.cpp new file mode 100644 index 000000000..b5c8d88e9 --- /dev/null +++ b/src/call/call.cpp @@ -0,0 +1,54 @@ +/* + * call.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "object/object-p.h" + +#include "call.h" + +using namespace std; + +using namespace LinphonePrivate; + +// ============================================================================= + +class Call::CallPrivate : public ObjectPrivate { +public: + LinphoneCallDir direction; + LinphoneCallState state = LinphoneCallIdle; +}; + +// ============================================================================= + +Call::Call::Call (LinphoneCallDir direction) : Object(*new CallPrivate) { + L_D(Call); + d->direction = direction; +} + +// ----------------------------------------------------------------------------- + +LinphoneCallDir Call::Call::getDirection () const { + L_D(const Call); + return d->direction; +} + +// ----------------------------------------------------------------------------- + +LinphoneCallState Call::Call::getState () const { + L_D(const Call); + return d->state; +} diff --git a/src/call/call.h b/src/call/call.h new file mode 100644 index 000000000..03c6af06a --- /dev/null +++ b/src/call/call.h @@ -0,0 +1,46 @@ +/* + * call.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CALL_CALL_H_ +#define _CALL_CALL_H_ + +#include "linphone/types.h" + +#include "object/object.h" + +// ============================================================================= + +namespace LinphonePrivate { + namespace Call { + class CallPrivate; + + class Call : public Object { + public: + Call (LinphoneCallDir direction); + + LinphoneCallDir getDirection() const; + LinphoneCallState getState() const; + + private: + L_DECLARE_PRIVATE(Call); + L_DISABLE_COPY(Call); + }; + } +} + +#endif // ifndef _CALL_CALL_H_ diff --git a/src/chat/chat-room.cpp b/src/chat/chat-room.cpp index 3aeac16d8..72d37c6ca 100644 --- a/src/chat/chat-room.cpp +++ b/src/chat/chat-room.cpp @@ -995,3 +995,4 @@ const LinphoneAddress *ChatRoom::getPeerAddress () const { } LINPHONE_END_NAMESPACE + diff --git a/src/chat/chat-room.h b/src/chat/chat-room.h index 9584b3304..d3052d711 100644 --- a/src/chat/chat-room.h +++ b/src/chat/chat-room.h @@ -68,3 +68,4 @@ private: LINPHONE_END_NAMESPACE #endif // ifndef _CHAT_ROOM_H_ + diff --git a/src/conference/conference-listener.h b/src/conference/conference-listener.h new file mode 100644 index 000000000..80d312395 --- /dev/null +++ b/src/conference/conference-listener.h @@ -0,0 +1,37 @@ +/* + * conference-listener.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CONFERENCE_LISTENER_H_ +#define _CONFERENCE_LISTENER_H_ + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class ConferenceListener : public Object { +public: + virtual void conferenceCreated (LinphoneAddress *addr) = 0; + virtual void conferenceTerminated (LinphoneAddress *addr) = 0; + virtual void participantAdded (LinphoneAddress *addr) = 0; + virtual void participantRemoved (LinphoneAddress *addr) = 0; + virtual void participantSetAdmin (LinphoneAddress *addr, bool isAdmin) = 0; +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _CONFERENCE_LISTENER_H_ diff --git a/src/conference/conference-p.h b/src/conference/conference-p.h new file mode 100644 index 000000000..7584b8ebf --- /dev/null +++ b/src/conference/conference-p.h @@ -0,0 +1,43 @@ +/* + * conference-p.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CONFERENCE_P_H_ +#define _CONFERENCE_P_H_ + +#include "object/object-p.h" + +#include "conference.h" + +#include + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class ConferencePrivate : public ObjectPrivate { +public: + virtual ~ConferencePrivate () = default; + + std::string confId; + + L_DECLARE_PUBLIC(Conference); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _CONFERENCE_P_H_ diff --git a/src/conference/conference.cpp b/src/conference/conference.cpp new file mode 100644 index 000000000..b5072d3e9 --- /dev/null +++ b/src/conference/conference.cpp @@ -0,0 +1,29 @@ +/* + * conference.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "conference-p.h" + +#include "conference.h" + +LINPHONE_BEGIN_NAMESPACE + +// ============================================================================= + +Conference::Conference (ConferencePrivate &p) : Object(p) {} + +LINPHONE_END_NAMESPACE diff --git a/src/conference/conference.h b/src/conference/conference.h new file mode 100644 index 000000000..aa76a0cde --- /dev/null +++ b/src/conference/conference.h @@ -0,0 +1,44 @@ +/* + * conference.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CONFERENCE_H_ +#define _CONFERENCE_H_ + +#include "object/object.h" + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class ConferencePrivate; + +class Conference : public Object { +public: + Conference (); + +protected: + explicit Conference (ConferencePrivate &p); + +private: + L_DECLARE_PRIVATE(Conference); + L_DISABLE_COPY(Conference); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _CONFERENCE_H_ diff --git a/src/conference/local-conference.cpp b/src/conference/local-conference.cpp new file mode 100644 index 000000000..c330e5e5b --- /dev/null +++ b/src/conference/local-conference.cpp @@ -0,0 +1,35 @@ +/* + * local-conference.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "conference-p.h" + +#include "local-conference.h" + +LINPHONE_BEGIN_NAMESPACE + +// ============================================================================= + +class LocalConferencePrivate : public ConferencePrivate { +public: +}; + +// ============================================================================= + +LocalConference::LocalConference () : Conference(*new LocalConferencePrivate) {} + +LINPHONE_END_NAMESPACE diff --git a/src/conference/local-conference.h b/src/conference/local-conference.h new file mode 100644 index 000000000..7ff04d176 --- /dev/null +++ b/src/conference/local-conference.h @@ -0,0 +1,41 @@ +/* + * local-conference.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _LOCAL_CONFERENCE_H_ +#define _LOCAL_CONFERENCE_H_ + +#include "conference.h" + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class LocalConferencePrivate; + +class LocalConference : public Conference { +public: + LocalConference (); + +private: + L_DECLARE_PRIVATE(LocalConference); + L_DISABLE_COPY(LocalConference); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _LOCAL_CONFERENCE_H_ diff --git a/src/conference/params/call-session-params-p.h b/src/conference/params/call-session-params-p.h new file mode 100644 index 000000000..0ff9181e1 --- /dev/null +++ b/src/conference/params/call-session-params-p.h @@ -0,0 +1,43 @@ +/* + * call-session-params-p.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CONFERENCE_CALL_SESSION_PARAMS_P_H_ +#define _CONFERENCE_CALL_SESSION_PARAMS_P_H_ + +#include "object/object-p.h" + +#include "call-session-params.h" + +#include "linphone/types.h" + +// ============================================================================= + +namespace LinphonePrivate { + namespace Conference { + class CallSessionParamsPrivate : public ObjectPrivate { + public: + virtual ~CallSessionParamsPrivate () = default; + + LinphonePrivacyMask privacy = LinphonePrivacyNone; + + L_DECLARE_PUBLIC(CallSessionParams); + }; + } +} + +#endif // ifndef _CONFERENCE_CALL_SESSION_PARAMS_P_H_ diff --git a/src/conference/params/call-session-params.cpp b/src/conference/params/call-session-params.cpp new file mode 100644 index 000000000..bfab89a94 --- /dev/null +++ b/src/conference/params/call-session-params.cpp @@ -0,0 +1,27 @@ +/* + * call-session-params.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "call-session-params-p.h" + +#include "call-session-params.h" + +using namespace LinphonePrivate; + +// ============================================================================= + +Conference::CallSessionParams::CallSessionParams (CallSessionParamsPrivate &p) : Object(p) {} diff --git a/src/conference/params/call-session-params.h b/src/conference/params/call-session-params.h new file mode 100644 index 000000000..8414987f6 --- /dev/null +++ b/src/conference/params/call-session-params.h @@ -0,0 +1,44 @@ +/* + * call-session-params.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CONFERENCE_CALL_SESSION_PARAMS_H_ +#define _CONFERENCE_CALL_SESSION_PARAMS_H_ + +#include "object/object.h" + +// ============================================================================= + +namespace LinphonePrivate { + namespace Conference { + class CallSessionParamsPrivate; + + class CallSessionParams : public Object { + public: + CallSessionParams (); + + protected: + explicit CallSessionParams (CallSessionParamsPrivate &p); + + private: + L_DECLARE_PRIVATE(CallSessionParams); + L_DISABLE_COPY(CallSessionParams); + }; + } +} + +#endif // ifndef _CONFERENCE_CALL_SESSION_PARAMS_H_ diff --git a/src/conference/params/media-session-params.cpp b/src/conference/params/media-session-params.cpp new file mode 100644 index 000000000..028b04bfe --- /dev/null +++ b/src/conference/params/media-session-params.cpp @@ -0,0 +1,36 @@ +/* + * media-session-params.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "call-session-params-p.h" + +#include "media-session-params.h" + +#include "linphone/types.h" + +using namespace LinphonePrivate; + +// ============================================================================= + +class Conference::MediaSessionParamsPrivate : public CallSessionParamsPrivate { +public: + LinphoneMediaEncryption encryption = LinphoneMediaEncryptionNone; +}; + +// ============================================================================= + +Conference::MediaSessionParams::MediaSessionParams () : CallSessionParams(*new MediaSessionParamsPrivate) {} diff --git a/src/conference/params/media-session-params.h b/src/conference/params/media-session-params.h new file mode 100644 index 000000000..6b9ef351c --- /dev/null +++ b/src/conference/params/media-session-params.h @@ -0,0 +1,41 @@ +/* + * media-session-params.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CONFERENCE_MEDIA_SESSION_PARAMS_H_ +#define _CONFERENCE_MEDIA_SESSION_PARAMS_H_ + +#include "call-session-params.h" + +// ============================================================================= + +namespace LinphonePrivate { + namespace Conference { + class MediaSessionParamsPrivate; + + class MediaSessionParams : public CallSessionParams { + public: + MediaSessionParams (); + + private: + L_DECLARE_PRIVATE(MediaSessionParams); + L_DISABLE_COPY(MediaSessionParams); + }; + } +} + +#endif // ifndef _CONFERENCE_MEDIA_SESSION_PARAMS_H_ diff --git a/src/conference/participant.cpp b/src/conference/participant.cpp new file mode 100644 index 000000000..c636c1e6d --- /dev/null +++ b/src/conference/participant.cpp @@ -0,0 +1,65 @@ +/* + * participant.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "object/object-p.h" + +#include "participant.h" + +using namespace std; + +LINPHONE_BEGIN_NAMESPACE + +// ============================================================================= + +class ParticipantPrivate : public ObjectPrivate { +public: + ~ParticipantPrivate (); + + Address addr; + bool isAdmin = false; +}; + +ParticipantPrivate::~ParticipantPrivate() {} + +// ============================================================================= + +Participant::Participant (const Address &addr) : Object(*new ParticipantPrivate) { + L_D(Participant); + d->addr = addr; +} + +// ----------------------------------------------------------------------------- + +const Address& Participant::getAddress () const { + L_D(const Participant); + return d->addr; +} + +// ----------------------------------------------------------------------------- + +bool Participant::isAdmin () const { + L_D(const Participant); + return d->isAdmin; +} + +void Participant::setAdmin (bool isAdmin) { + L_D(Participant); + d->isAdmin = isAdmin; +} + +LINPHONE_END_NAMESPACE diff --git a/src/conference/participant.h b/src/conference/participant.h new file mode 100644 index 000000000..8a6ce2bca --- /dev/null +++ b/src/conference/participant.h @@ -0,0 +1,48 @@ +/* + * participant.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _PARTICIPANT_H_ +#define _PARTICIPANT_H_ + +#include "address/address.h" + +#include "object/object.h" + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class ParticipantPrivate; + +class Participant : public Object { +public: + Participant (const Address &addr); + + const Address& getAddress () const; + + bool isAdmin () const; + void setAdmin (bool isAdmin); + +private: + L_DECLARE_PRIVATE(Participant); + L_DISABLE_COPY(Participant); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _PARTICIPANT_H_ diff --git a/src/conference/remote-conference.cpp b/src/conference/remote-conference.cpp new file mode 100644 index 000000000..d73e2a17a --- /dev/null +++ b/src/conference/remote-conference.cpp @@ -0,0 +1,35 @@ +/* + * remote-conference.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "conference-p.h" + +#include "remote-conference.h" + +LINPHONE_BEGIN_NAMESPACE + +// ============================================================================= + +class RemoteConferencePrivate : public ConferencePrivate { +public: +}; + +// ============================================================================= + +RemoteConference::RemoteConference () : Conference(*new RemoteConferencePrivate) {} + +LINPHONE_END_NAMESPACE diff --git a/src/conference/remote-conference.h b/src/conference/remote-conference.h new file mode 100644 index 000000000..f6f456936 --- /dev/null +++ b/src/conference/remote-conference.h @@ -0,0 +1,41 @@ +/* + * remote-conference.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _REMOTE_CONFERENCE_H_ +#define _REMOTE_CONFERENCE_H_ + +#include "conference.h" + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class RemoteConferencePrivate; + +class RemoteConference : public Conference { +public: + RemoteConference (); + +private: + L_DECLARE_PRIVATE(RemoteConference); + L_DISABLE_COPY(RemoteConference); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _REMOTE_CONFERENCE_H_ diff --git a/src/conference/session/call-session-p.h b/src/conference/session/call-session-p.h new file mode 100644 index 000000000..e74d5b4a8 --- /dev/null +++ b/src/conference/session/call-session-p.h @@ -0,0 +1,43 @@ +/* + * call-session-p.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CALL_SESSION_P_H_ +#define _CALL_SESSION_P_H_ + +#include "object/object-p.h" + +#include "call-session.h" + +#include "bellesip_sal/sal_impl.h" + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class CallSessionPrivate : public ObjectPrivate { +public: + virtual ~CallSessionPrivate () = default; + + SalOp *op; + + L_DECLARE_PUBLIC(CallSession); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _CALL_SESSION_P_H_ diff --git a/src/conference/session/call-session.cpp b/src/conference/session/call-session.cpp new file mode 100644 index 000000000..1bae79848 --- /dev/null +++ b/src/conference/session/call-session.cpp @@ -0,0 +1,29 @@ +/* + * call-session.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "call-session-p.h" + +#include "call-session.h" + +LINPHONE_BEGIN_NAMESPACE + +// ============================================================================= + +CallSession::CallSession (CallSessionPrivate &p) : Object(p) {} + +LINPHONE_END_NAMESPACE diff --git a/src/conference/session/call-session.h b/src/conference/session/call-session.h new file mode 100644 index 000000000..fb6e9de78 --- /dev/null +++ b/src/conference/session/call-session.h @@ -0,0 +1,44 @@ +/* + * call-session.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _CALL_SESSION_H_ +#define _CALL_SESSION_H_ + +#include "object/object.h" + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class CallSessionPrivate; + +class CallSession : public Object { +public: + CallSession (); + +protected: + explicit CallSession (CallSessionPrivate &p); + +private: + L_DECLARE_PRIVATE(CallSession); + L_DISABLE_COPY(CallSession); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _CALL_SESSION_H_ diff --git a/src/conference/session/media-session.cpp b/src/conference/session/media-session.cpp new file mode 100644 index 000000000..0b4faf9ad --- /dev/null +++ b/src/conference/session/media-session.cpp @@ -0,0 +1,41 @@ +/* + * media-session.cpp + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "call-session-p.h" + +#include "media-session.h" + +#include + +LINPHONE_BEGIN_NAMESPACE + +// ============================================================================= + +class MediaSessionPrivate : public CallSessionPrivate { +public: + AudioStream *audioStream = nullptr; + VideoStream *videoStream = nullptr; + TextStream *textStream = nullptr; + IceSession *iceSession = nullptr; +}; + +// ============================================================================= + +MediaSession::MediaSession () : CallSession(*new MediaSessionPrivate) {} + +LINPHONE_END_NAMESPACE diff --git a/src/conference/session/media-session.h b/src/conference/session/media-session.h new file mode 100644 index 000000000..898ad283b --- /dev/null +++ b/src/conference/session/media-session.h @@ -0,0 +1,41 @@ +/* + * media-session.h + * Copyright (C) 2017 Belledonne Communications SARL + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _MEDIA_SESSION_H_ +#define _MEDIA_SESSION_H_ + +#include "call-session.h" + +// ============================================================================= + +LINPHONE_BEGIN_NAMESPACE + +class MediaSessionPrivate; + +class MediaSession : public CallSession { +public: + MediaSession (); + +private: + L_DECLARE_PRIVATE(MediaSession); + L_DISABLE_COPY(MediaSession); +}; + +LINPHONE_END_NAMESPACE + +#endif // ifndef _MEDIA_SESSION_H_