@@ -17,95 +17,58 @@ extern "C" {
17
17
#endif
18
18
19
19
inline void OnPlayPauseStop (int32_t id, PlayerState* state) {
20
- std::vector<std::string> event{};
21
- event.emplace_back (std::to_string (id));
22
- event.emplace_back (" playbackEvent" );
23
- event.emplace_back (std::to_string (state->is_playing ()));
24
- event.emplace_back (std::to_string (state->is_seekable ()));
25
- size_t size = event.size ();
26
- char ** event_data = new char *[size];
27
- for (int index = 0 ; index < size; index++)
28
- event_data[index] = const_cast <char *>(event[index].c_str ());
29
- CallbackStringArray (static_cast <int >(size), event_data);
20
+ std::vector<std::string> event{std::to_string (id), " playbackEvent" ,
21
+ std::to_string (state->is_playing ()),
22
+ std::to_string (state->is_seekable ())};
30
23
31
- delete[] event_data ;
24
+ CallbackStringArray (event) ;
32
25
}
33
26
34
27
inline void OnPosition (int32_t id, PlayerState* state) {
35
- std::vector<std::string> event{};
36
- event.emplace_back (std::to_string (id));
37
- event.emplace_back (" positionEvent" );
38
- event.emplace_back (std::to_string (state->index ()));
39
- event.emplace_back (std::to_string (state->position ()));
40
- event.emplace_back (std::to_string (state->duration ()));
41
- size_t size = event.size ();
42
- char ** event_data = new char *[size];
43
- for (int index = 0 ; index < size; index++)
44
- event_data[index] = const_cast <char *>(event[index].c_str ());
45
- CallbackStringArray (static_cast <int >(size), event_data);
46
-
47
- delete[] event_data;
28
+ std::vector<std::string> event{
29
+ std::to_string (id), " positionEvent" , std::to_string (state->index ()),
30
+ std::to_string (state->position ()), std::to_string (state->duration ())};
31
+ CallbackStringArray (event);
48
32
}
49
33
50
34
inline void OnComplete (int32_t id, PlayerState* state) {
51
- std::vector<std::string> event{};
52
- event.emplace_back (std::to_string (id));
53
- event.emplace_back (" completeEvent" );
54
- event.emplace_back (std::to_string (state->is_completed ()));
55
- size_t size = event.size ();
56
- char ** event_data = new char *[size];
57
- for (int index = 0 ; index < size; index++)
58
- event_data[index] = const_cast <char *>(event[index].c_str ());
59
- CallbackStringArray (static_cast <int >(size), event_data);
60
-
61
- delete[] event_data;
35
+ std::vector<std::string> event{
36
+ std::to_string (id),
37
+ " completeEvent" ,
38
+ std::to_string (state->is_completed ()),
39
+ };
40
+ CallbackStringArray (event);
62
41
}
63
42
64
43
inline void OnVolume (int32_t id, PlayerState* state) {
65
- std::vector<std::string> event{};
66
- event.emplace_back (std::to_string (id));
67
- event.emplace_back (" volumeEvent" );
68
- event.emplace_back (std::to_string (state->volume ()));
69
- size_t size = event.size ();
70
- char ** event_data = new char *[size];
71
- for (int index = 0 ; index < size; index++)
72
- event_data[index] = const_cast <char *>(event[index].c_str ());
73
- CallbackStringArray (static_cast <int >(size), event_data);
74
-
75
- delete[] event_data;
44
+ std::vector<std::string> event{std::to_string (id), " volumeEvent" ,
45
+ std::to_string (state->volume ())};
46
+ CallbackStringArray (event);
76
47
}
77
48
78
49
inline void OnRate (int32_t id, PlayerState* state) {
79
- std::vector<std::string> event{};
80
- event.emplace_back (std::to_string (id));
81
- event.emplace_back (" rateEvent" );
82
- event.emplace_back (std::to_string (state->rate ()));
83
- size_t size = event.size ();
84
- char ** event_data = new char *[size];
85
- for (int index = 0 ; index < size; index++)
86
- event_data[index] = const_cast <char *>(event[index].c_str ());
87
- CallbackStringArray (static_cast <int >(size), event_data);
88
-
89
- delete[] event_data;
50
+ std::vector<std::string> event{std::to_string (id), " rateEvent" ,
51
+ std::to_string (state->rate ())};
52
+ CallbackStringArray (event);
90
53
}
91
54
92
55
inline void OnOpen (int32_t id, PlayerState* state) {
93
- std::vector<std::string> event{};
56
+ const auto & media_items = state->medias ()->medias ();
57
+
58
+ std::vector<std::string> event;
59
+ event.reserve (4 + media_items.size () * 2 );
60
+
94
61
event.emplace_back (std::to_string (id));
95
62
event.emplace_back (" openEvent" );
96
63
event.emplace_back (std::to_string (state->index ()));
97
64
event.emplace_back (std::to_string (state->is_playlist ()));
98
- for (std::shared_ptr<Media> media : state->medias ()->medias ()) {
65
+
66
+ for (const auto & media : media_items) {
99
67
event.emplace_back (media->media_type ());
100
68
event.emplace_back (media->resource ());
101
69
}
102
- size_t size = event.size ();
103
- char ** event_data = new char *[size];
104
- for (int index = 0 ; index < size; index++)
105
- event_data[index] = const_cast <char *>(event[index].c_str ());
106
- CallbackStringArray (static_cast <int >(size), event_data);
107
70
108
- delete[] event_data ;
71
+ CallbackStringArray (event) ;
109
72
}
110
73
111
74
inline void OnVideo (int32_t id, int size, PlayerState* state, uint8_t * frame) {
@@ -114,4 +77,4 @@ inline void OnVideo(int32_t id, int size, PlayerState* state, uint8_t* frame) {
114
77
115
78
#ifdef __cplusplus
116
79
}
117
- #endif
80
+ #endif
0 commit comments