#include "stream-manager-restriction-priv.h"
static const char *dbus_str_none = "none";
-static const char* stream_manager_dbus_ret_str[] = {"STREAM_MANAGER_RETURN_OK",
+static const char *stream_manager_dbus_ret_str[] = {"STREAM_MANAGER_RETURN_OK",
"STREAM_MANAGER_RETURN_ERROR_INTERNAL",
"STREAM_MANAGER_RETURN_ERROR_NO_STREAM",
"STREAM_MANAGER_RETURN_ERROR_INVALID_ARGUMENT",
pa_assert_se((reply = dbus_message_new_method_return(msg)));
/* get stream_ducking */
- pa_assert_se((sd = pa_hashmap_get(m->stream_duckings, (const void*)id)));
+ sd = pa_hashmap_get(m->stream_duckings, (const void*)id);
+ if (!sd) {
+ pa_log_error("no matched stream ducking for id[%u]", id);
+
+ pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_ERROR_INTERNAL], DBUS_TYPE_INVALID));
+ pa_assert_se(dbus_connection_send(conn, reply, NULL));
+ dbus_message_unref(reply);
+
+ return;
+ }
sd->duration = duration;
sd->ratio = ratio;
DBusMessage *reply = NULL;
pa_stream_manager *m = (pa_stream_manager*)userdata;
stream_ducking *sd = NULL;
+ dbus_bool_t is_ducked = FALSE;
+ ret_msg_t msg_index = RET_MSG_OK;
pa_assert(conn);
pa_assert(msg);
pa_assert_se((reply = dbus_message_new_method_return(msg)));
/* get stream_ducking */
- pa_assert_se((sd = pa_hashmap_get(m->stream_duckings, (const void*)id)));
-
- pa_log_info("id[%u], is_ducked[%p,%u]", id, sd, sd->is_ducked);
+ sd = pa_hashmap_get(m->stream_duckings, (const void *)id);
+ if (sd) {
+ is_ducked = (dbus_bool_t)sd->is_ducked;
+ pa_log_info("id[%u], is_ducked[%p,%u]", id, sd, sd->is_ducked);
+ } else {
+ msg_index = RET_MSG_ERROR_INTERNAL;
+ pa_log_error("no matched stream ducking for id[%u]", id);
+ }
- pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_BOOLEAN, &sd->is_ducked, DBUS_TYPE_INVALID));
- pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_OK], DBUS_TYPE_INVALID));
+ pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_BOOLEAN, &is_ducked, DBUS_TYPE_INVALID));
+ pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[msg_index], DBUS_TYPE_INVALID));
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);