if (sp) {
if (!in_device_list && !out_device_list) {
pa_log_error("invalid arguments");
- goto FAILURE;
+ goto fail;
}
if (sp->idx_route_in_devices) {
}
} else {
pa_log_error("failed to update, idx_route_in_devices[%p]", sp->idx_route_in_devices);
- goto FAILURE;
+ goto fail;
}
if (sp->idx_route_out_devices) {
}
} else {
pa_log_error("failed to update, idx_route_out_devices[%p]", sp->idx_route_out_devices);
- goto FAILURE;
+ goto fail;
}
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
} else {
pa_log_error("could not find matching client for this parent_id[%u]", id);
- goto FAILURE;
+ goto fail;
}
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
-FAILURE:
+fail:
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
else {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
ret = -1;
- goto FAILURE;
+ goto finish;
}
if ((ret = set_volume_level_by_type(m, stream_type, type, level)))
else
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
-FAILURE:
+finish:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
else {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_UINT32, 0, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
- goto FAILURE;
+ goto finish;
}
if (get_volume_level_by_type(m, GET_VOLUME_CURRENT_LEVEL, stream_type, type, &level)) {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
}
-FAILURE:
+finish:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
else {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_UINT32, 0, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
- goto FAILURE;
+ goto finish;
}
if (get_volume_level_by_type(m, GET_VOLUME_MAX_LEVEL, stream_type, type, &level)) {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_UINT32, &level, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
}
-FAILURE:
+finish:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
stream_type = STREAM_SINK_INPUT;
else {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
- goto FAILURE;
+ goto finish;
}
if (set_volume_mute_by_type(m, stream_type, type, (bool)do_mute))
else
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
-FAILURE:
+finish:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
else {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_UINT32, 0, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
- goto FAILURE;
+ goto fail;
}
if (get_volume_mute_by_type(m, stream_type, type, (bool*)&is_muted)) {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
}
-FAILURE:
+fail:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
else {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &dbus_str_none, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
- goto FAILURE;
+ goto fail;
}
if ((s = (stream_type == STREAM_SINK_INPUT) ? (void*)(m->cur_highest_priority.sink_input) : (void*)(m->cur_highest_priority.source_output)))
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR_NO_STREAM], DBUS_TYPE_INVALID));
}
-FAILURE:
+fail:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
} else {
pa_log_error("could not find matching client for this parent_id[%u]", id);
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
- goto FAILURE;
+ goto fail;
}
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
-FAILURE:
+fail:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
if (handle_restrictions(m, name, value) < 0) {
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_ERROR], DBUS_TYPE_INVALID));
- goto FAILURE;
+ goto fail;
}
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_INDEX_OK], DBUS_TYPE_INVALID));
-FAILURE:
+fail:
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
return;
pa_log_debug(" - type : %s", type);
} else {
pa_log_error("Get type failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_LATENCY_FRAGSIZE_MS, &item_o) && json_object_is_type(item_o, json_type_int)) {
l->fragsize_ms = json_object_get_int(item_o);
pa_log_debug(" - fragsize-ms : %d", l->fragsize_ms);
} else {
pa_log_error("Get fragsize-ms failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_LATENCY_TLENGTH_MS, &item_o) && json_object_is_type(item_o, json_type_int)) {
l->tlength_ms = json_object_get_int(item_o);
pa_log_debug(" - tlength-ms : %d", l->tlength_ms);
} else {
pa_log_error("Get tlength-ms failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_LATENCY_MINREQ_MS, &item_o) && json_object_is_type(item_o, json_type_int)) {
l->minreq_ms = json_object_get_int(item_o);
pa_log_debug(" - minreq-ms : %d", l->minreq_ms);
} else {
pa_log_error("Get minreq-ms failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_LATENCY_PREBUF_MS, &item_o) && json_object_is_type(item_o, json_type_int)) {
l->prebuf_ms = json_object_get_int(item_o);
pa_log_debug(" - prebuf-ms : %d", l->prebuf_ms);
} else {
pa_log_error("Get prebuf-ms failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_LATENCY_MAXLENGTH, &item_o) && json_object_is_type(item_o, json_type_int)) {
l->maxlength = json_object_get_int(item_o);
pa_log_debug(" - maxlength : %d", l->maxlength);
} else {
pa_log_error("Get maxlength failed");
- goto failed;
+ goto fail;
}
pa_hashmap_put(m->latency_infos, (void*)type, l);
}
pa_log_debug(" - type : %s", type);
} else {
pa_log_error("Get volume type failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_VOLUME_IS_FOR_HAL, &item_o) && json_object_is_type(item_o, json_type_int)) {
v->is_hal_volume_type = (bool)json_object_get_int(item_o);
pa_log_debug(" - is-hal-volume : %d", v->is_hal_volume_type);
} else {
pa_log_error("Get is-hal-volume failed");
- goto failed;
+ goto fail;
}
pa_hashmap_put(m->volume_infos, (void*)type, v);
}
pa_log_debug(" - role : %s", role);
} else {
pa_log_error("Get stream role failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_STREAM_PRIORITY, &item_o) && json_object_is_type(item_o, json_type_int)) {
s->priority = json_object_get_int(item_o);
pa_log_debug(" - priority : %d", s->priority);
} else {
pa_log_error("Get stream priority failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_STREAM_ROUTE_TYPE, &item_o) && json_object_is_type(item_o, json_type_string)) {
if (convert_route_type(&(s->route_type), json_object_get_string(item_o))) {
pa_log_error("convert stream route-type failed");
- goto failed;
+ goto fail;
}
pa_log_debug(" - route-type : %d", s->route_type);
} else {
pa_log_error("Get stream route-type failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_STREAM_VOLUME_TYPES, &sub_array_o) && json_object_is_type(sub_array_o, json_type_object)) {
if (json_object_object_get_ex(sub_array_o, STREAM_MAP_STREAM_VOLUME_TYPE_IN, &item_o) && json_object_is_type(item_o, json_type_string))
s->volume_types[STREAM_DIRECTION_IN] = json_object_get_string(item_o);
else {
pa_log_error("Get stream volume-type-in failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(sub_array_o, STREAM_MAP_STREAM_VOLUME_TYPE_OUT, &item_o) && json_object_is_type(item_o, json_type_string))
s->volume_types[STREAM_DIRECTION_OUT] = json_object_get_string(item_o);
else {
pa_log_error("Get stream volume-type-out failed");
- goto failed;
+ goto fail;
}
pa_log_debug(" - volume-types : in[%s], out[%s]", s->volume_types[STREAM_DIRECTION_IN], s->volume_types[STREAM_DIRECTION_OUT]);
} else {
pa_log_error("Get stream volume-types failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_STREAM_AVAIL_IN_DEVICES, &sub_array_o) && json_object_is_type(sub_array_o, json_type_array)) {
j = 0;
}
} else {
pa_log_error("Get stream avail-in-devices failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_STREAM_AVAIL_OUT_DEVICES, &sub_array_o) && json_object_is_type(sub_array_o, json_type_array)) {
j = 0;
}
} else {
pa_log_error("Get stream avail-out-devices failed");
- goto failed;
+ goto fail;
}
if (json_object_object_get_ex(array_item_o, STREAM_MAP_STREAM_AVAIL_FRAMEWORKS, &sub_array_o) && json_object_is_type(sub_array_o, json_type_array)) {
j = 0;
}
} else {
pa_log_error("Get stream avail-frameworks failed");
- goto failed;
+ goto fail;
}
pa_hashmap_put(m->stream_infos, (void*)role, s);
}
}
} else {
pa_log_error("Get streams object failed");
- goto failed;
+ goto fail;
}
dump_stream_map(m);
return 0;
-failed:
+fail:
pa_log_error("failed to initialize stream-map");
if (m->stream_infos) {
PA_HASHMAP_FOREACH(s, m->stream_infos, state) {
/* set it to null sink/source */
if (is_new_data)
SET_NEW_DATA_STREAM_TO_NULL_SINK_SOURCE(m, stream, type);
- goto FAILURE;
+ goto finish;
}
if (command == PROCESS_COMMAND_PREPARE) {
/* skip roles */
if (check_role_to_skip(m, role)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
}
/* update the priority of this stream */
if (ret == false) {
pa_log_error("could not update the priority of '%s' role.", role);
result = PROCESS_STREAM_RESULT_STOP;
- goto FAILURE;
+ goto finish;
}
/* update the route type of this stream */
ret = update_route_type_of_stream(m, stream, type, role);
if (ret == false) {
pa_log_error("could not update the route type of '%s' role.", role);
result = PROCESS_STREAM_RESULT_STOP;
- goto FAILURE;
+ goto finish;
}
/* update the volume type of this stream */
ret = update_volume_type_of_stream(m, stream, type, role);
if ((route_type_str = pa_proplist_gets(GET_STREAM_NEW_PROPLIST(stream, type), PA_PROP_MEDIA_ROLE_ROUTE_TYPE))) {
if (check_route_type_to_skip(command, route_type_str)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
}
/* skip roles */
if (check_role_to_skip(m, role)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
/* skip route types */
if (check_route_type_to_skip(command, route_type_str)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
if (!is_new_data) {
if (ret == false) {
pa_log_error("could not update the priority of '%s' role.", role);
result = PROCESS_STREAM_RESULT_STOP;
- goto FAILURE;
+ goto finish;
}
}
if (ret == false) {
pa_log_error("could not update the highest priority stream");
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
/* need to skip if this stream does not belong to internal device */
/* skip roles */
if (check_role_to_skip(m, role)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
/* skip route types */
if ((route_type_str = pa_proplist_gets(GET_STREAM_PROPLIST(stream, type), PA_PROP_MEDIA_ROLE_ROUTE_TYPE))) {
if (check_route_type_to_skip(command, route_type_str)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
}
if (pa_proplist_get(GET_STREAM_PROPLIST(stream, type), PA_PROP_MEDIA_ROLE_PRIORITY, (const void**)&prior_priority, &size)) {
pa_log_debug("it has already been processed for PROCESS_COMMAND_CHANGE_ROUTE_BY_STREAM_ENDED, skip it..");
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
pa_proplist_unset(GET_STREAM_PROPLIST(stream, type), PA_PROP_MEDIA_ROLE_PRIORITY);
if (ret == false) {
pa_log_error("could not update the highest priority stream");
result = PROCESS_STREAM_RESULT_STOP;
- goto FAILURE;
+ goto finish;
}
do_notify(m, NOTIFY_COMMAND_INFORM_STREAM_DISCONNECTED, type, false, stream);
/* skip roles */
if (check_role_to_skip(m, role)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
/* skip route types */
if ((route_type_str = pa_proplist_gets(GET_STREAM_PROPLIST(stream, type), PA_PROP_MEDIA_ROLE_ROUTE_TYPE))) {
if (check_route_type_to_skip(command, route_type_str)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
}
if (ret == false) {
pa_log_error("could not update the highest priority stream");
result = PROCESS_STREAM_RESULT_STOP;
- goto FAILURE;
+ goto finish;
}
/* need to skip if this stream does not belong to internal device */
/* skip roles */
if (check_role_to_skip(m, role)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
/* skip route types */
if ((route_type_str = pa_proplist_gets(GET_STREAM_PROPLIST(stream, type), PA_PROP_MEDIA_ROLE_ROUTE_TYPE))) {
if (check_route_type_to_skip(command, route_type_str)) {
result = PROCESS_STREAM_RESULT_SKIP;
- goto FAILURE;
+ goto finish;
}
}
update_buffer_attribute(m, stream, type, is_new_data);
}
-FAILURE:
+finish:
pa_log_debug("<<< process_stream(%s): result(%d), stream(%p)", process_command_type_str[command], result, stream);
return result;
}