pa_log_debug(" -- cur_highest_priority_stream->index[%u] belongs to this stream_parent[%p], do notify for the route change",
GET_STREAM_INDEX(cur_highest_priority_stream, type), sp);
ret = do_notify(m, NOTIFY_COMMAND_CHANGE_ROUTE_START, type, false, cur_highest_priority_stream);
- if (!ret && stream_is_call_family(PA_OBJECT(cur_highest_priority_stream)) && m->on_call) {
+ if (!ret && is_stream_related_call_active_routing(PA_OBJECT(cur_highest_priority_stream)) && m->on_call) {
pa_log_info("set active device for new call route device");
change_active_route_for_call(m, PA_OBJECT(cur_highest_priority_stream), false);
}
return (command < sizeof(process_command_type_str) / sizeof(char *));
}
-bool stream_is_call_family(pa_object *stream) {
+bool is_stream_related_call_active_routing(pa_object *stream) {
const char *stream_role;
pa_proplist *prop;
else
prop = PA_SOURCE_OUTPUT(stream)->proplist;
- stream_role = pa_proplist_gets(prop, PA_PROP_MEDIA_ROLE);
- if (stream_role && IS_ROLE_COMMUNICATION(stream_role))
+ if (!(stream_role = pa_proplist_gets(prop, PA_PROP_MEDIA_ROLE)))
+ return false;
+
+ if (pa_safe_streq(stream_role, STREAM_ROLE_CALL_VOICE) ||
+ pa_safe_streq(stream_role, STREAM_ROLE_CALL_VIDEO) ||
+ pa_safe_streq(stream_role, STREAM_ROLE_VOIP)) {
+ pa_log_info("%s relates call active routing", stream_role);
return true;
+ }
return false;
}
stream_role = pa_proplist_gets(prop, PA_PROP_MEDIA_ROLE);
- if (stream_is_call_family(stream) == false) {
- pa_log_error("Not call family stream");
- return -1;
- }
-
avail_device_types = get_avail_device_types(m, stream_role, GET_DIRECTION(stream));
if (!avail_device_types) {
pa_log_error("No avail device typs for [%s]", stream_role);
process_stream(m, i, STREAM_SINK_INPUT, PROCESS_COMMAND_ADD_PARENT_ID, false);
process_stream(m, i, STREAM_SINK_INPUT, PROCESS_COMMAND_APPLY_FILTER, false);
process_stream(m, i, STREAM_SINK_INPUT, PROCESS_COMMAND_UPDATE_VOLUME, false);
- if (stream_is_call_family(PA_OBJECT(i))) {
+ if (is_stream_related_call_active_routing(PA_OBJECT(i))) {
change_active_route_for_call(m, PA_OBJECT(i), true);
m->on_call = true;
}
pa_log_info("sink-input(%p, index:%u)", i, i->index);
- if (stream_is_call_family(PA_OBJECT(i))) {
+ if (is_stream_related_call_active_routing(PA_OBJECT(i))) {
m->on_call = false;
set_media_active_device(m);
}
update_mirroring_streams(m, o, true);
process_stream(m, o, STREAM_SOURCE_OUTPUT, PROCESS_COMMAND_ADD_PARENT_ID, false);
process_stream(m, o, STREAM_SOURCE_OUTPUT, PROCESS_COMMAND_UPDATE_VOLUME, false);
- if (stream_is_call_family(PA_OBJECT(o))) {
+ if (is_stream_related_call_active_routing(PA_OBJECT(o))) {
change_active_route_for_call(m, PA_OBJECT(o), true);
m->on_call = true;
}
pa_log_info("source-output(%p, index:%u)", o, o->index);
- if (stream_is_call_family(PA_OBJECT(o))) {
+ if (is_stream_related_call_active_routing(PA_OBJECT(o))) {
m->on_call = false;
set_media_active_device(m);
}