/* * CoreHandlers.hpp * Copyright (C) 2017-2018 Belledonne Communications, Grenoble, France * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Created on: February 2, 2017 * Author: Ronan Abhamon */ #ifndef CORE_HANDLERS_H_ #define CORE_HANDLERS_H_ #include #include // ============================================================================= class CoreManager; class QMutex; class CoreHandlers : public QObject, public linphone::CoreListener { Q_OBJECT; public: CoreHandlers (CoreManager *coreManager); ~CoreHandlers (); signals: void authenticationRequested (const std::shared_ptr &authInfo); void callEncryptionChanged (const std::shared_ptr &call); void callStateChanged (const std::shared_ptr &call, linphone::Call::State state); void callTransferFailed (const std::shared_ptr &call); void callTransferSucceeded (const std::shared_ptr &call); void callCreated(const std::shared_ptr & call); void coreStarted (); void isComposingChanged (const std::shared_ptr &chatRoom); void logsUploadStateChanged (linphone::Core::LogCollectionUploadState state, const std::string &info); void messageReceived (const std::shared_ptr &message); void presenceReceived (const QString &sipAddress, const std::shared_ptr &presenceModel); void registrationStateChanged (const std::shared_ptr &proxyConfig, linphone::RegistrationState state); private: void handleCoreCreated (); void notifyCoreStarted (); // --------------------------------------------------------------------------- // Linphone callbacks. // --------------------------------------------------------------------------- void onAuthenticationRequested ( const std::shared_ptr &core, const std::shared_ptr &authInfo, linphone::AuthMethod method ) override; void onCallEncryptionChanged ( const std::shared_ptr &core, const std::shared_ptr &call, bool on, const std::string &authenticationToken ) override; void onCallStateChanged ( const std::shared_ptr &core, const std::shared_ptr &call, linphone::Call::State state, const std::string &message ) override; void onCallStatsUpdated ( const std::shared_ptr &core, const std::shared_ptr &call, const std::shared_ptr &stats ) override; void onCallCreated( const std::shared_ptr & lc, const std::shared_ptr & call ) override; void onGlobalStateChanged ( const std::shared_ptr &core, linphone::GlobalState gstate, const std::string &message ) override; void onIsComposingReceived ( const std::shared_ptr &core, const std::shared_ptr &room ) override; void onLogCollectionUploadStateChanged ( const std::shared_ptr &core, linphone::Core::LogCollectionUploadState state, const std::string &info ) override; void onLogCollectionUploadProgressIndication ( const std::shared_ptr &lc, size_t offset, size_t total ) override; void onMessageReceived ( const std::shared_ptr &core, const std::shared_ptr &room, const std::shared_ptr &message ) override; void onNotifyPresenceReceivedForUriOrTel ( const std::shared_ptr &core, const std::shared_ptr &linphoneFriend, const std::string &uriOrTel, const std::shared_ptr &presenceModel ) override; void onNotifyPresenceReceived ( const std::shared_ptr &core, const std::shared_ptr &linphoneFriend ) override; void onRegistrationStateChanged ( const std::shared_ptr &core, const std::shared_ptr &proxyConfig, linphone::RegistrationState state, const std::string &message ) override; void onTransferStateChanged ( const std::shared_ptr &core, const std::shared_ptr &call, linphone::Call::State state ) override; void onVersionUpdateCheckResultReceived ( const std::shared_ptr &, linphone::VersionUpdateCheckResult result, const std::string &version, const std::string &url ) override; // --------------------------------------------------------------------------- bool mCoreCreated = false; bool mCoreStarted = false; QMutex *mCoreStartedLock = nullptr; }; #endif // CORE_HANDLERS_H_