blob: 2e806b9605400a0d2bffc44703cff8bb8aa9f583 [file] [log] [blame]
HEADER
#pragma once
#include "GENERICDATATYPESubscriber.h"
#include "plugin/jamiplugin.h"
#include "plugin/mediahandler.h"
using avSubjectPtr = std::weak_ptr<jami::Observable<AVFrame*>>;
namespace jami {
class GENERICMediaHandler : public jami::CallMediaHandler
{
public:
GENERICMediaHandler(std::map<std::string, std::string>&& preferences, std::string&& dataPath);
~GENERICMediaHandler();
virtual void notifyAVFrameSubject(const StreamData& data, avSubjectPtr subject) override;
virtual std::map<std::string, std::string> getCallMediaHandlerDetails() override;
virtual void detach() override;
virtual void setPreferenceAttribute(const std::string& key, const std::string& value) override;
virtual bool preferenceMapHasKey(const std::string& key) override;
std::shared_ptr<GENERICDATATYPESubscriber> mediaSubscriber_;
private:
const std::string datapath_;
std::map<std::string, std::string> preferences_;
std::string attached_ {'0'};
};
} // namespace jami