68 lines
1.8 KiB
C++
68 lines
1.8 KiB
C++
#ifndef B351F133_EBBC_42F5_9C48_5BA22D16BB53
|
|
#define B351F133_EBBC_42F5_9C48_5BA22D16BB53
|
|
/*
|
|
*******************************************************************************
|
|
* INCLUDE
|
|
*******************************************************************************
|
|
*/
|
|
#include "MPPChannel.h"
|
|
#include "../../core/VideoMixer.h"
|
|
|
|
namespace Video
|
|
{
|
|
namespace MPP5
|
|
{
|
|
/*
|
|
*******************************************************************************
|
|
* CLASS DECLARE
|
|
*******************************************************************************
|
|
*/
|
|
class VideoMixer: public MPPChannel, public Core::VideoMixer
|
|
{
|
|
public:
|
|
class Channel: public MPPChannel, public Core::VideoMixer::Channel
|
|
{
|
|
public:
|
|
using Ptr = Poco::AutoPtr<Channel>;
|
|
|
|
protected:
|
|
Channel(VideoMixer::Ptr, uint32_t id);
|
|
|
|
public:
|
|
~Channel();
|
|
|
|
protected:
|
|
virtual void start() override;
|
|
virtual void stop() override;
|
|
void onConfigChanged(ParameterNames& names) override;
|
|
void onLink(Core::Component::Ptr pPrevious) override;
|
|
void onUnlink(Core::Component::Ptr pPrevious) override;
|
|
|
|
void activate();
|
|
void deactivate();
|
|
|
|
PROPERTY_DECLARE(Activated, bool, false, protected, protected)
|
|
|
|
void configureChannel();
|
|
|
|
friend class VideoMixer;
|
|
};
|
|
|
|
public:
|
|
VideoMixer(const std::string& name);
|
|
~VideoMixer();
|
|
|
|
protected:
|
|
void start() override;
|
|
void stop() override;
|
|
void initialize() override;
|
|
void deinitialize() override;
|
|
void onConfigChanged(ParameterNames& names) override;
|
|
|
|
Core::VideoMixer::Channel::Ptr createChannel(uint32_t id) override;
|
|
|
|
friend class Channel;
|
|
};
|
|
}
|
|
}
|
|
#endif
|