1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-17 14:05:24 +02:00
jami-client-qt/src/libclient/api/lrc.h

133 lines
3.8 KiB
C
Raw Normal View History

misc: vendor libjamiclient into 'src/libclient/' This is libjamiclient from the jami-libclient.git repository as of 767c45b8b09806ac05cbada720864df93588c047, with the following changes: * src/libclient/newaccountmodel.cpp: (NewAccountModelPimpl::removeFromAccounts): The lock wait inside '#ifdef CHK_FREEABLE_BEFORE_ERASE_ACCOUNT' was not updated when the type of 'accounts' was changed over the years from this: std::map<std::string, account::Info> to this: std::map<QString, std::pair<account::Info, std::shared_ptr<Database>>> Basically we need to get the 'first' of the pair for 'account::Info'. So we now do that. * src/libclient/avmodel.cpp: * src/libclient/callbackshandler.cpp: * src/libclient/contactmodel.cpp: * src/libclient/conversationmodel.cpp: * src/libclient/database.cpp: * src/libclient/namedirectory.cpp: * src/libclient/newaccountmodel.cpp: * src/libclient/newcallmodel.cpp: * src/libclient/newdevicemodel.cpp: * src/libclient/peerdiscoverymodel.cpp: * src/libclient/pluginmodel.cpp: * src/libclient/smartinfohub.cpp: * src/libclient/vcard.h: * src/libclient/authority/storagehelper.cpp: Replace Qt's 'foreach' with 'Q_FOREACH' and its 'emit' with 'Q_EMIT' because in the client-qt code base we have '-DQT_NO_KEYWORDS' to avoid conflicts with other libraries we use. * cmake/FindLibJami.cmake: Import cmake/FindRing.cmake from the jami-libclient.git repository. Then, rename RING_BUILD_DIR to LIBJAMI_BUILD_DIR (though the old name is still supported for now). Also update other references of Ring to Jami. Further, add additional calls to 'find_library' to make sure specified local paths for libjami are checked before system-wide ones (in case of older/obsolete libjami being available system-wide, which might happen on GNU/Linux systems). * translations/lrc_*.ts: Import translation files from the libclient repository. The message location paths were corrected by running "sed -i 's|../src|&/libclient|g' lrc_*.ts" in 'translations/'. .tx/config: Add section for the newly-imported libclient translations. * CMakeLists.txt: Reformat, plus various fixes and cleanups, such as changing indentation to 2 spaces and wrapping lines at 70 characters, renaming the parent directory of translations from 'ring' to 'jami', and using all lowercase function calls. Also add copyright headers. * src/app/appsettingsmanager.cpp: (AppSettingsManager::loadTranslations): * src/app/utilsadapter.cpp (UtilsAdapter::supportedLang): Update to adapt to the renaming of the parent directory of translations from 'ring' to 'jami'. GitLab: #748 Change-Id: I86e3b0fb30e554755023e7b858b6a0d132cd59ab
2022-05-06 16:00:16 -04:00
/****************************************************************************
* Copyright (C) 2017-2022 Savoir-faire Linux Inc. *
* Author: Nicolas Jäger <nicolas.jager@savoirfairelinux.com> *
* Author: Sébastien Blin <sebastien.blin@savoirfairelinux.com> *
* Author : Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 of the License, or (at your option) any later version. *
* *
* This library 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 *
* Lesser 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 <http://www.gnu.org/licenses/>. *
***************************************************************************/
#pragma once
#include "typedefs.h"
#include <memory>
#include <vector>
#include <atomic>
namespace lrc {
class LrcPimpl;
namespace api {
class BehaviorController;
class NewAccountModel;
class DataTransferModel;
class AVModel;
class PluginModel;
class LIB_EXPORT Lrc
{
public:
/**
* Construct an Lrc object and optionally invoke callbacks
* to control ui informing the user of a possibly lengthy
* migration process.
* @param willMigrateCb
* @param didMigrateCb
*/
Lrc(MigrationCb willMigrateCb = {}, MigrationCb didMigrateCb = {}, bool muteDring = false);
~Lrc();
/**
* get a reference on account model.
* @return a NewAccountModel&.
*/
NewAccountModel& getAccountModel() const;
/**
* get a reference on the behavior controller.
* @return a BehaviorController&.
*/
BehaviorController& getBehaviorController() const;
/**
* get a reference on the audio-video controller.
* @return a AVModel&.
*/
AVModel& getAVModel() const;
/**
* get a reference on the PLUGIN controller.
* @return a PluginModel&.
*/
PluginModel& getPluginModel() const;
/**
* Inform the daemon that the connectivity changed
*/
void connectivityChanged() const;
/**
* Test connection with daemon
*/
static bool isConnected();
/**
* Can communicate with the daemon via dbus
*/
static bool dbusIsValid();
/**
* Connect to debugMessageReceived signal
*/
void subscribeToDebugReceived();
/**
* Helper: get active call list from daemon
*/
static VectorString activeCalls();
/**
* Close all active calls and conferences
*/
void hangupCallsAndConferences();
/**
* Helper: get call list from daemon
*/
static VectorString getCalls();
/**
* Helper: get conference list from daemon
*/
static VectorString getConferences(const QString& accountId = "");
/**
* Preference
*/
static std::atomic_bool holdConferences;
/**
* If cache contact's avatar or reload
*/
static std::atomic_bool cacheAvatars;
/**
* Make monitor continous or discrete
*/
static void monitor(bool continous);
private:
std::unique_ptr<LrcPimpl> lrcPimpl_;
};
} // namespace api
} // namespace lrc