return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
#endif
+#ifdef TIZEN_BT_AVC_TARGET
+ } else if (dbus_message_is_signal(m, "org.projectx.bt_event", "AvcModeChanged")) {
+ pa_bluetooth_transport *t;
+ dbus_uint32_t mode = PA_BLUETOOTH_AVC_OFF;
+
+ if (!dbus_message_get_args(m, &err,
+ DBUS_TYPE_UINT32, &mode,
+ DBUS_TYPE_INVALID)) {
+ pa_log_error("Failed to parse org.projectx.bt_event.AvcModeChanged: %s", err.message);
+ goto fail;
+ }
+
+ if (!(t = pa_hashmap_first(y->transports)))
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ pa_log_debug("Previous mode [%d], New mode [%d]", t->avc_mode, mode);
+
+ t->avc_mode = mode;
+
+ pa_hook_fire(&t->device->discovery->hooks[PA_BLUETOOTH_HOOK_AVC_MODE_CHANGED], t);
+
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+#endif
}
fail:
pa_assert_se(r = dbus_message_new_error(m, "org.bluez.Error.InvalidArguments", "Unable to clear configuration"));
return r;
}
+
+#ifdef TIZEN_BT_AVC_TARGET
+int pa_bluetooth_transport_get_avc_mode(pa_bluetooth_transport *t, unsigned int *avc_mode)
+{
+ DBusMessage *m, *r;
+ DBusError err;
+ int ret = 0;
+ uint32_t mode = 0;
+
+ pa_assert(t);
+ pa_assert(t->device);
+ pa_assert(t->device->discovery);
+
+ pa_assert_se(m = dbus_message_new_method_call("org.projectx.bt", "/org/projectx/bt_service", "org.projectx.bt", "get_avc_mode"));
+
+ dbus_error_init(&err);
+
+ r = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(t->device->discovery->connection), m, -1, &err);
+ dbus_message_unref(m);
+
+ m = NULL;
+ if (!r) {
+ dbus_error_free(&err);
+ return -1;
+ }
+
+ if (!dbus_message_get_args(r, &err, DBUS_TYPE_UINT32, &mode, DBUS_TYPE_INVALID)) {
+ pa_log_error("Failed to parse reply: %s", err.message);
+ dbus_error_free(&err);
+ ret = -1;
+ goto finish;
+ }
+
+ *avc_mode = mode;
+
+finish:
+ dbus_message_unref(r);
+ return ret;
+}
+#endif
#endif
static DBusHandlerResult endpoint_handler(DBusConnection *c, DBusMessage *m, void *userdata) {
",arg0='" BLUEZ_MEDIA_TRANSPORT_INTERFACE "'",
#ifdef __TIZEN_BT__
"type='signal',interface='org.bluez.ag_agent',member='SuspendMedia'",
+#ifdef TIZEN_BT_AVC_TARGET
+ "type='signal',interface='org.projectx.bt_event',member='AvcModeChanged',path='/org/projectx/bt/avc_mode'",
+#endif
#endif
NULL) < 0) {
pa_log_error("Failed to add D-Bus matches: %s", err.message);
"member='PropertiesChanged',arg0='" BLUEZ_MEDIA_TRANSPORT_INTERFACE "'",
#ifdef __TIZEN_BT__
"type='signal',interface='org.bluez.ag_agent',member='SuspendMedia'",
+#ifdef TIZEN_BT_AVC_TARGET
+ "type='signal',interface='org.projectx.bt_event',member='AvcModeChanged',path='/org/projectx/bt/avc_mode'",
+#endif
#endif
NULL);