From 2e948b8fffb8fcb6f6d68f20cd044fe032aca716 Mon Sep 17 00:00:00 2001 From: pingkai Date: Wed, 24 Jun 2020 19:19:13 +0800 Subject: [PATCH] feat(dca): add DCA direct component access Signed-off-by: pingkai --- framework/base/IDCA.h | 35 +++++++++++++++++++++++++++++++++++ framework/demuxer/IDemuxer.h | 16 +++++++++++----- 2 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 framework/base/IDCA.h diff --git a/framework/base/IDCA.h b/framework/base/IDCA.h new file mode 100644 index 000000000..a1f0bd7f4 --- /dev/null +++ b/framework/base/IDCA.h @@ -0,0 +1,35 @@ +// +// Created by moqi on 2020/6/24. +// + +#ifndef CICADAMEDIA_IDCA_H +#define CICADAMEDIA_IDCA_H +#include +// direct component access +namespace Cicada { + class IDCAObserver { + public: + virtual void onEvent(int level, const std::string &content) = 0; + }; + class IDCA { + public: + void setDCAObserver(IDCAObserver *observer) + { + mObserver = observer; + } + virtual int invoke(int cmd, const std::string &content) = 0; + virtual ~IDCA() = default; + + protected: + void sendEvent(int level, const std::string &content) + { + if (mObserver) { + mObserver->onEvent(level, content); + } + }; + + private: + IDCAObserver *mObserver{nullptr}; + }; +}// namespace Cicada +#endif//CICADAMEDIA_IDCA_H diff --git a/framework/demuxer/IDemuxer.h b/framework/demuxer/IDemuxer.h index 42559b52b..c2de8bc15 100644 --- a/framework/demuxer/IDemuxer.h +++ b/framework/demuxer/IDemuxer.h @@ -9,15 +9,16 @@ #include "utils/AFMediaType.h" #include "play_list/playList.h" +#include "DemuxerMetaInfo.h" +#include +#include +#include +#include #include #include #include #include -#include #include -#include -#include -#include "DemuxerMetaInfo.h" namespace Cicada { typedef enum demuxer_type { @@ -28,7 +29,7 @@ namespace Cicada { } demuxer_type; - class CICADA_CPLUS_EXTERN IDemuxer : public OptionOwner { + class CICADA_CPLUS_EXTERN IDemuxer : public OptionOwner, public IDCA { public: @@ -165,6 +166,11 @@ namespace Cicada { return false; } + int invoke(int cmd, const std::string &content) override + { + return 0; + } + protected: demuxer_callback_read mReadCb{nullptr}; demuxer_callback_seek mSeekCb{nullptr};