3 #include <bnb/player_api/interfaces/input.hpp>
4 #include <bnb/player_api/interfaces/output.hpp>
5 #include <bnb/player_api/interfaces/render_delegate.hpp>
8 #include <bnb/utils/defs.hpp>
12 namespace bnb::player_api::interfaces
17 namespace bnb::player_api
19 using player_sptr = std::shared_ptr<bnb::player_api::interfaces::player>;
20 using effect_sptr = std::shared_ptr<bnb::interfaces::effect>;
21 using js_callback_sptr = std::shared_ptr<bnb::interfaces::js_callback>;
22 using effect_player_sptr = std::shared_ptr<bnb::interfaces::effect_player>;
25 namespace bnb::player_api::interfaces
49 virtual ~
player() =
default;
55 virtual void set_render_mode(render_mode new_render_mode) = 0;
60 virtual void play() = 0;
65 virtual void pause() = 0;
70 virtual effect_player_sptr get_effect_player() = 0;
88 virtual player& unuse(
const output_sptr&
output =
nullptr) = 0;
94 virtual effect_sptr load(
const std::string& url) = 0;
100 virtual effect_sptr load_async(
const std::string& url) = 0;
107 virtual void eval_js(
const std::string& script, js_callback_sptr callback) = 0;
113 virtual int64_t render() = 0;