Skip to content

Commit 0b01397

Browse files
kenmcgaughKen McGaugh
authored andcommitted
Add remove_media_source_atom and associated handler to media_actor.
Signed-off-by: Ken McGaugh <[email protected]>
1 parent 8cde0df commit 0b01397

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

include/xstudio/atoms.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,7 @@ CAF_BEGIN_TYPE_ID_BLOCK(xstudio_session_atoms, FIRST_CUSTOM_ID + (200 * 4))
599599
CAF_ADD_ATOM(xstudio_session_atoms, xstudio::media, acquire_media_detail_atom)
600600
CAF_ADD_ATOM(xstudio_session_atoms, xstudio::media, add_media_source_atom)
601601
CAF_ADD_ATOM(xstudio_session_atoms, xstudio::media, add_media_stream_atom)
602+
CAF_ADD_ATOM(xstudio_session_atoms, xstudio::media, remove_media_source_atom)
602603
CAF_ADD_ATOM(xstudio_session_atoms, xstudio::media, checksum_atom)
603604
CAF_ADD_ATOM(xstudio_session_atoms, xstudio::media, current_media_source_atom)
604605
CAF_ADD_ATOM(xstudio_session_atoms, xstudio::media, current_media_stream_atom)

src/media/src/media_actor.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,25 @@ caf::message_handler MediaActor::message_handler() {
434434
return true;
435435
},
436436

437+
[=](remove_media_source_atom, const UuidVector &uuids) -> bool {
438+
bool changed = false;
439+
for (const auto &uuid : uuids) {
440+
if (media_sources_.count(uuid)) {
441+
base_.remove_media_source(uuid);
442+
changed = true;
443+
auto a = media_sources_.at(uuid);
444+
media_sources_.erase(media_sources_.find(uuid));
445+
unlink_from(a);
446+
send_exit(a, caf::exit_reason::user_shutdown);
447+
}
448+
}
449+
if (changed) {
450+
base_.send_changed();
451+
}
452+
return changed;
453+
},
454+
455+
437456
[=](colour_pipeline::get_colour_pipe_params_atom atom) -> caf::result<JsonStore> {
438457
auto rp = make_response_promise<JsonStore>();
439458

0 commit comments

Comments
 (0)