Banuba SDK
Loading...
Searching...
No Matches
helpers.hpp
1#pragma once
2
13
14#include <functional>
15#include <memory>
16
17namespace bnb
18{
19 //
20 // Convenient C++ methods for creating interface implementations from std::functions
21 //
22
23 using error_listener_callback = std::function<void(const std::string&, const std::string&)>;
24 using camera_poi_callback = std::function<void(float x, float y)>;
25 using effect_event_callback = std::function<void(
26 const std::string&, const std::unordered_map<std::string, std::string>&
27 )>;
28 using face_number_callback = std::function<void(int32_t)>;
29 using frame_duration_callback = std::function<void(float, float)>;
30 using hint_callback = std::function<void(const std::string&)>;
31 using low_light_callback = std::function<void(bool)>;
32 using frame_data_callback = std::function<void(const std::shared_ptr<interfaces::frame_data>&)>;
33 using effect_activated_callback = std::function<void(const std::string&)>;
34 using effect_info_callback = std::function<void(const interfaces::effect_info&)>;
35
36 std::shared_ptr<interfaces::error_listener>
37 make_error_listener(const error_listener_callback& callback);
38
39 std::shared_ptr<interfaces::camera_poi_listener>
40 make_camera_poi_listener(const camera_poi_callback& callback);
41
42 std::shared_ptr<interfaces::effect_event_listener>
43 make_effect_event_listener(const effect_event_callback& callback);
44
45 std::shared_ptr<interfaces::face_number_listener>
46 make_face_number_listener(const face_number_callback& callback);
47
48 std::shared_ptr<interfaces::frame_duration_listener> make_frame_duration_listener(
49 const frame_duration_callback& recognizer_callback,
50 const frame_duration_callback& camera_callback,
51 const frame_duration_callback& render_callback
52 );
53
54 std::shared_ptr<interfaces::hint_listener> make_hint_listener(const hint_callback& callback);
55
56 std::shared_ptr<interfaces::frame_data_listener>
57 make_frame_data_listener(const frame_data_callback& callback);
58
59 std::shared_ptr<interfaces::effect_activated_listener>
60 make_effect_activated_listener(const effect_activated_callback& callback);
61
62 std::shared_ptr<interfaces::effect_info_listener>
63 make_effect_info_listener(const effect_info_callback& callback);
64} // namespace bnb