@@ -52,9 +52,10 @@ namespace dolbyio::comms::native {
5252 * @brief C# ConnectionOptions C struct.
5353 */
5454 struct connection_options {
55- // max forwarding
55+ int max_video_forwarding;
5656 char * conference_access_token;
5757 bool spatial_audio;
58+ bool simulcast;
5859 };
5960
6061 /* *
@@ -94,6 +95,19 @@ namespace dolbyio::comms::native {
9495 bool audible_locally;
9596 };
9697
98+ /* *
99+ * @brief C# Video Track C Struct
100+ */
101+ struct video_track {
102+ char * peer_id;
103+ char * stream_id;
104+ char * track_id;
105+ char * sdp_track_id;
106+
107+ bool is_screenshare;
108+ bool remote;
109+ };
110+
97111 struct on_conference_status_updated {
98112 using event = dolbyio::comms::conference_status_updated;
99113 using type = void (*)(int status, const char * conferenceId);
@@ -125,7 +139,7 @@ namespace dolbyio::comms::native {
125139 };
126140
127141 struct on_active_speaker_change {
128- using event = dolbyio::comms::active_speaker_change ;
142+ using event = dolbyio::comms::active_speaker_changed ;
129143 using type = void (*)(char * conference_id, int count, char * active_speakers[]);
130144 static constexpr const char * name = " on_active_speaker_change" ;
131145 };
@@ -142,6 +156,18 @@ namespace dolbyio::comms::native {
142156 static constexpr const char * name = " on_conference_invitation_received" ;
143157 };
144158
159+ struct on_conference_video_track_added {
160+ using event = dolbyio::comms::video_track_added;
161+ using type = void (*)(video_track track);
162+ static constexpr const char * name = " on_conference_video_track_added" ;
163+ };
164+
165+ struct on_conference_video_track_removed {
166+ using event = dolbyio::comms::video_track_removed;
167+ using type = void (*)(video_track track);
168+ static constexpr const char * name = " on_conference_video_track_removed" ;
169+ };
170+
145171 template <typename Traits>
146172 struct translator <dolbyio::comms::native::conference_options, dolbyio::comms::services::conference::conference_options, Traits> {
147173 static void to_c (typename Traits::c_type* dest, const typename Traits::cpp_type& src) {
@@ -190,13 +216,17 @@ namespace dolbyio::comms::native {
190216 template <typename Traits>
191217 struct translator <dolbyio::comms::native::connection_options, dolbyio::comms::services::conference::connection_options, Traits> {
192218 static void to_c (typename Traits::c_type* dest, const typename Traits::cpp_type& src) {
219+ dest->max_video_forwarding = src.max_video_forwarding .value_or (25 );
193220 dest->conference_access_token = strdup (src.conference_access_token .value_or (" " ));
194221 dest->spatial_audio = src.spatial_audio ;
222+ dest->simulcast = src.simulcast ;
195223 }
196224
197225 static void to_cpp (typename Traits::cpp_type& dest, typename Traits::c_type* src) {
226+ dest.max_video_forwarding = src->max_video_forwarding ;
198227 dest.conference_access_token = src->conference_access_token ;
199228 dest.spatial_audio = src->spatial_audio ;
229+ dest.simulcast = src->simulcast ;
200230 }
201231 };
202232
@@ -268,6 +298,29 @@ namespace dolbyio::comms::native {
268298 }
269299 };
270300
301+ template <typename Traits>
302+ struct translator <dolbyio::comms::native::video_track, dolbyio::comms::video_track, Traits> {
303+ static void to_c (typename Traits::c_type* dest, const typename Traits::cpp_type& src) {
304+ dest->peer_id = strdup (src.peer_id );
305+ dest->stream_id = strdup (src.stream_id );
306+ dest->track_id = strdup (src.track_id );
307+ dest->sdp_track_id = strdup (src.sdp_track_id );
308+
309+ dest->is_screenshare = src.is_screenshare ;
310+ dest->remote = src.remote ;
311+ }
312+
313+ static void to_cpp (typename Traits::cpp_type& dest, typename Traits::c_type* src) {
314+ dest.peer_id = std::string (src->peer_id );
315+ dest.stream_id = std::string (src->stream_id );
316+ dest.track_id = std::string (src->track_id );
317+ dest.sdp_track_id = std::string (src->sdp_track_id );
318+
319+ dest.is_screenshare = src->is_screenshare ;
320+ dest.remote = src->remote ;
321+ }
322+ };
323+
271324} // namespace dolbyio::comms::native
272325
273326#endif // _CONFERENCE_H_
0 commit comments