11 #include <bnb/utils/defs.hpp>
16 namespace bnb {
namespace interfaces {
19 class effect_activated_listener;
20 class effect_event_listener;
35 virtual void add_error_listener(
const std::shared_ptr<error_listener> &
error_listener) = 0;
41 virtual void remove_error_listener(
const std::shared_ptr<error_listener> &
error_listener) = 0;
48 virtual void add_hint_listener(
const std::shared_ptr<hint_listener> &
hint_listener) = 0;
54 virtual void remove_hint_listener(
const std::shared_ptr<hint_listener> &
hint_listener) = 0;
60 virtual void add_effect_event_listener(
const std::shared_ptr<effect_event_listener> &
effect_event_listener) = 0;
66 virtual void remove_effect_event_listener(
const std::shared_ptr<effect_event_listener> &
effect_event_listener) = 0;
72 virtual void add_effect_activated_listener(
const std::shared_ptr<effect_activated_listener> &
effect_activated_listener) = 0;
78 virtual void remove_effect_activated_listener(
const std::shared_ptr<effect_activated_listener> &
effect_activated_listener) = 0;
81 virtual std::shared_ptr<effect> create_effect(
const std::string & work_dir)
const = 0;
87 virtual void set_current_effect(
const std::shared_ptr<effect> &
effect) = 0;
93 virtual std::shared_ptr<effect> load(
const std::string & url) = 0;
99 virtual std::shared_ptr<effect> load_async(
const std::string & url) = 0;
109 virtual std::shared_ptr<reload_result> reload_config(
const std::string & config) = 0;
116 static effect_info get_effect_info(
const std::string & url);
123 virtual void unload(
const std::shared_ptr<effect> &
effect) = 0;
129 virtual std::shared_ptr<effect> current()
const = 0;
136 virtual void update(
bool sync) = 0;
142 virtual ::bnb::interfaces::size effect_size()
const = 0;
148 virtual ::bnb::interfaces::size surface_size()
const = 0;
155 virtual float effect_volume()
const = 0;
162 virtual void set_effect_volume(
float volume) = 0;
168 virtual void set_effect_size(int32_t fx_width, int32_t fx_height) = 0;
171 virtual void set_render_surface(
const surface_data & data) = 0;
174 virtual void disable_surface_presentation() = 0;