/** @file * @author Edouard DUPIN * @copyright 2011, Edouard DUPIN, all right reserved * @license MPL v2.0 (see license file) */ #pragma once #include #include #include #include #include #include #include #include namespace appl { namespace widget { class Player; using PlayerShared = ememory::SharedPtr; using PlayerWeak = ememory::WeakPtr; class Player : public ewol::widget::Composer { public: // properties public: // signals esignal::Signal<> signalFinished; //!< the play is finished esignal::Signal<> signalNext; //!< Next file is requested esignal::Signal<> signalPrevious; //!< Previous file is requested protected: Player(); void init() override; public: DECLARE_WIDGET_FACTORY(Player, "Player"); virtual ~Player(); protected: ememory::SharedPtr m_display; //!< Display widget ememory::SharedPtr m_progress; //!< Display widget public: void playStream(ememory::SharedPtr _property, uint32_t _mediaId); void stop(); void suspend(); public: void onGetFocus() override; private: // callback functions: void onCallbackButtonPrevious(); void onCallbackButtonNext(); void onCallbackButtonPlay(const bool& _value); void onCallbackPosition(const echrono::Duration& _value); void onCallbackDuration(const echrono::Duration& _value); void onCallbackSeekRequest(const float& _value); void onCallbackVolumeRequest(const float& _value); void onCallbackLightRequest(const float& _value); void onCallbackFPS(const int32_t& _fps); void onCallbackFinished(); }; }; };