Select Git revision
codecmodel.cpp
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
codecmodel.cpp 12.05 KiB
/****************************************************************************
* Copyright (C) 2017-2022 Savoir-faire Linux Inc. *
* Author: Sébastien Blin <sebastien.blin@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/>. *
***************************************************************************/
#include "api/codecmodel.h"
// LRC
#include "callbackshandler.h"
#include "dbus/configurationmanager.h"
// Daemon
#include <account_const.h>
// Qt
#include <QObject>
#include <QList>
// std
#include <mutex>
namespace lrc {
using namespace api;
class CodecModelPimpl : public QObject
{
Q_OBJECT
public:
CodecModelPimpl(const CodecModel& linked, const CallbacksHandler& callbacksHandler);
~CodecModelPimpl();
void loadFromDaemon();
QVector<unsigned int> codecsList_;
QList<Codec> videoCodecs;
std::mutex audioCodecsMtx;
QList<Codec> audioCodecs;
std::mutex videoCodecsMtx;
const CallbacksHandler& callbacksHandler;
const CodecModel& linked;
void setActiveCodecs();
void setCodecDetails(const Codec& codec, bool isAudio);
private:
void addCodec(const unsigned int& id, const QVector<unsigned int>& activeCodecs);
};
CodecModel::CodecModel(const account::Info& owner, const CallbacksHandler& callbacksHandler)
: owner(owner)
, pimpl_(std::make_unique<CodecModelPimpl>(*this, callbacksHandler))
{}
CodecModel::~CodecModel() {}
QList<Codec>