" <arg name=\"device_id\" direction=\"in\" type=\"i\"/>\n" \
" <arg name=\"device\" direction=\"out\" type=\"(isiisii)\"/>\n" \
" </method>\n" \
+ " <method name=\"IsDeviceRunningById\">\n" \
+ " <arg name=\"device_id\" direction=\"in\" type=\"i\"/>\n" \
+ " <arg name=\"is_running\" direction=\"out\" type=\"b\"/>\n" \
+ " </method>\n" \
" <method name=\"IsStreamOnDevice\">\n" \
" <arg name=\"stream_id\" direction=\"in\" type=\"i\"/>\n" \
" <arg name=\"device_id\" direction=\"in\" type=\"i\"/>\n" \
/*** Defines for method handle ***/
static void handle_get_connected_device_list(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_get_device_by_id(DBusConnection *conn, DBusMessage *msg, void *userdata);
+static void handle_is_device_running_by_id(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_is_stream_on_device(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_get_bt_a2dp_status(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_get_supported_sample_formats(DBusConnection *conn, DBusMessage *msg, void *userdata);
enum method_handler_index {
METHOD_HANDLER_GET_CONNECTED_DEVICE_LIST,
METHOD_HANDLER_GET_DEVICE_BY_ID,
+ METHOD_HANDLER_IS_DEVICE_RUNNING_BY_ID,
METHOD_HANDLER_IS_STREAM_ON_DEVICE,
METHOD_HANDLER_GET_BT_A2DP_STATUS,
METHOD_HANDLER_LOAD_SINK,
[METHOD_HANDLER_GET_DEVICE_BY_ID] = {
.method_name = "GetDeviceById",
.receive_cb = handle_get_device_by_id },
+ [METHOD_HANDLER_IS_DEVICE_RUNNING_BY_ID] = {
+ .method_name = "IsDeviceRunningById",
+ .receive_cb = handle_is_device_running_by_id },
[METHOD_HANDLER_IS_STREAM_ON_DEVICE] = {
.method_name = "IsStreamOnDevice",
.receive_cb = handle_is_stream_on_device },
}
}
+static void handle_is_device_running_by_id(DBusConnection *conn, DBusMessage *msg, void *userdata)
+{
+ pa_device_manager *manager;
+ DBusMessage *reply;
+ pa_tz_device *device;
+ dbus_int32_t device_id;
+ dbus_bool_t is_running;
+
+ pa_assert(conn);
+ pa_assert(msg);
+ pa_assert(userdata);
+
+ manager = (pa_device_manager *)userdata;
+
+ pa_assert_se(dbus_message_get_args(msg, NULL,
+ DBUS_TYPE_INT32, &device_id,
+ DBUS_TYPE_INVALID));
+
+ pa_log_info("Is device running by id(%d)", device_id);
+
+ if ((device = device_list_get_device_by_id(manager, device_id))) {
+ pa_assert_se((reply = dbus_message_new_method_return(msg)));
+
+ is_running = pa_tz_device_is_running(device);
+
+ pa_log_info("device(id:%d) is %s", device_id, is_running ? "Running" : "Not Running");
+
+ pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_BOOLEAN, &is_running,
+ DBUS_TYPE_INVALID));
+
+ pa_assert_se(dbus_connection_send(conn, reply, NULL));
+ dbus_message_unref(reply);
+ } else {
+ pa_dbus_send_error(conn, msg, DBUS_ERROR_FAILED, "%s", "org.tizen.multimedia.audio.Internal");
+ }
+}
+
static void handle_is_stream_on_device(DBusConnection *conn, DBusMessage *msg, void *userdata) {
pa_device_manager *manager;
DBusMessage *reply;