#include "CIICommand.h"
#include <core/producer/stage.h>
+#include <core/producer/cg_proxy.h>
#include <common/executor.h>
+#include <common/memory.h>
#include <string>
class CIIProtocolStrategy : public IO::IProtocolStrategy
{
public:
- CIIProtocolStrategy(const std::vector<spl::shared_ptr<core::video_channel>>& channels);
+ CIIProtocolStrategy(
+ const std::vector<spl::shared_ptr<core::video_channel>>& channels,
+ const spl::shared_ptr<core::cg_producer_registry>& cg_registry,
+ const spl::shared_ptr<const core::frame_producer_registry>& producer_registry);
void Parse(const std::wstring& message, IO::ClientInfoPtr pClientInfo);
- std::string GetCodepage() {return "ISO-8859-1";} //ISO 8859-1
+ std::string GetCodepage() const { return "ISO-8859-1"; } //ISO 8859-1
void SetProfile(const std::wstring& profile) {currentProfile_ = profile;}
- spl::shared_ptr<core::video_channel> GetChannel() const{return this->pChannel_;}
+ spl::shared_ptr<core::video_channel> GetChannel() const { return pChannel_; }
+ spl::shared_ptr<core::cg_producer_registry> get_cg_registry() const { return cg_registry_; }
+ spl::shared_ptr<const core::frame_producer_registry> get_producer_registry() const { return producer_registry_; }
+ core::frame_producer_dependencies get_dependencies() const { return core::frame_producer_dependencies(GetChannel()->frame_factory(), channels_, GetChannel()->video_format_desc(), producer_registry_); }
void DisplayMediaFile(const std::wstring& filename);
void DisplayTemplate(const std::wstring& titleName);
TitleHolder() : titleName(L""), pframe_producer(core::frame_producer::empty()) {}
TitleHolder(const std::wstring& name, spl::shared_ptr<core::frame_producer> pFP) : titleName(name), pframe_producer(pFP) {}
TitleHolder(const TitleHolder& th) : titleName(th.titleName), pframe_producer(th.pframe_producer) {}
- const TitleHolder& operator=(const TitleHolder& th)
+ TitleHolder& operator=(const TitleHolder& th)
{
titleName = th.titleName;
pframe_producer = th.pframe_producer;
+
+ return *this;
}
bool operator==(const TitleHolder& rhs)
{
typedef std::list<TitleHolder> TitleList;
TitleList titles_;
spl::shared_ptr<core::frame_producer> GetPreparedTemplate(const std::wstring& name);
- void PutPreparedTemplate(const std::wstring& name, spl::shared_ptr<core::frame_producer>& pframe_producer);
+ void PutPreparedTemplate(const std::wstring& name, const spl::shared_ptr<core::frame_producer>& pframe_producer);
static const wchar_t TokenDelimiter;
static const std::wstring MessageDelimiter;
std::wstring currentProfile_;
spl::shared_ptr<core::video_channel> pChannel_;
+ spl::shared_ptr<core::cg_producer_registry> cg_registry_;
+ spl::shared_ptr<const core::frame_producer_registry> producer_registry_;
+ std::vector<spl::shared_ptr<core::video_channel>> channels_;
};
-}}}
\ No newline at end of file
+}}}