From: Sangchul Lee Date: Tue, 28 Aug 2018 23:22:57 +0000 (+0900) Subject: device-manager-dbus: Add new DBus method to get device state X-Git-Tag: submit/tizen/20180829.052026^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F187828%2F2;p=platform%2Fcore%2Fmultimedia%2Fpulseaudio-modules-tizen.git device-manager-dbus: Add new DBus method to get device state IsDeviceRunningById : arg#1 (in) int32 for device_id arg#2 (out) boolean for running state [Version] 11.1.25 [Issue type] new API Change-Id: I26c280b9cb4e5da19196af11880e38e840f8f3b8 Signed-off-by: Sangchul Lee --- diff --git a/packaging/pulseaudio-modules-tizen.spec b/packaging/pulseaudio-modules-tizen.spec index 361fb39..c0eb8bd 100644 --- a/packaging/pulseaudio-modules-tizen.spec +++ b/packaging/pulseaudio-modules-tizen.spec @@ -1,6 +1,6 @@ Name: pulseaudio-modules-tizen Summary: Pulseaudio modules for Tizen -Version: 11.1.24 +Version: 11.1.25 Release: 0 Group: Multimedia/Audio License: LGPL-2.1+ diff --git a/src/device-manager-dbus.c b/src/device-manager-dbus.c index 99b7c91..a878ea2 100644 --- a/src/device-manager-dbus.c +++ b/src/device-manager-dbus.c @@ -70,6 +70,10 @@ " \n" \ " \n" \ " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ " \n" \ " \n" \ " \n" \ @@ -191,6 +195,7 @@ do { \ /*** 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); @@ -215,6 +220,7 @@ static int method_call_bt_get_name(DBusConnection *conn, const char *device_path 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, @@ -243,6 +249,9 @@ static pa_dbus_method_handler method_handlers[METHOD_HANDLER_MAX] = { [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 }, @@ -761,6 +770,43 @@ static void handle_get_device_by_id(DBusConnection *conn, DBusMessage *msg, void } } +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;