#ifndef F4486E13_26A4_47A9_B4C0_193369C1A700 #define F4486E13_26A4_47A9_B4C0_193369C1A700 /* ******************************************************************************* * INCLUDE ******************************************************************************* */ #include "VideoScanMode.h" #include namespace Video { namespace Core { /* ******************************************************************************* * CLASS DECLARE ******************************************************************************* */ class Frontend { public: using Ptr = Poco::SharedPtr; struct MediaInfo { bool haveVideo; bool haveAudio; struct { uint32_t width; uint32_t height; uint32_t frameRate; VideoScanMode scanMode; } video; struct { uint32_t sampleRate; } audio; }; public: Poco::BasicEvent StatusChanged; public: Frontend(std::string name); virtual ~Frontend(); std::string name(); virtual void read(MediaInfo& info) = 0; protected: void notifyStatusChanged(); void notifyStatusChanged(MediaInfo& info); private: std::string _name; }; } } #endif