<allow send_destination_prefix="org.tizen.csd.Call.Instance" send_interface="org.tizen.csd.Call.Instance" send_member="SendDtmf"/>
<allow send_destination_prefix="org.tizen.csd.Call.Instance" send_interface="org.tizen.csd.Call.Instance" send_member="VendorCmd"/>
</policy>
+ <policy group="pulse">
+ <allow send_destination="org.projectx.bt"/>
+ </policy>
<policy context="default">
<deny own="org.projectx.bt"/>
<deny send_destination="org.projectx.bt"/>
#include "bt-service-common.h"
#include "bt-service-audio-common.h"
+#include "bt-service-event.h"
static unsigned int absolute_volume = 0;
static unsigned int bt_volume = 0;
-static int avc_mode = BT_AVC_OFF;
+static unsigned int avc_mode = BT_AVC_OFF;
int _bt_audio_set_absolute_volume(unsigned int volume)
{
return BLUETOOTH_ERROR_NONE;
}
+int _bt_audio_get_avc_mode(unsigned int *mode)
+{
+ /* 1. AVC mode in the vconf value */
+
+ /* 2. Get active A2DP headset path */
+
+ /* 3. Get volume info for activae transport for the path */
+
+ *mode = avc_mode;
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+int _bt_audio_notify_avc_mode_changed(unsigned int avc_mode)
+{
+ GVariant *param = g_variant_new("(u)", avc_mode);
+
+ _bt_send_event(BT_AUDIO_AVC_EVENT,
+ BLUETOOTH_EVENT_AUDIO_AVC_MODE_CHANGED,
+ param);
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
/* 1. When a2dp headset is connected, we should set 'AVC' mode into pulseaudio */
/* 2. If the avc mode is changed, we should inform 'AVC' mode to pulseaudio */
/* 3. If BT is off, we should send 'AVC' off mode event for application */
" <arg type='i' name='output_param1' direction='out' />"
" <arg type='v' name='output_param2' direction='out' />"
" </method>"
+#ifdef TIZEN_FEATURE_BT_AVC_TARGET
+" <method name='get_avc_mode'>"
+ /* Out Parameters */
+" <arg type='u' name='avc_mode' direction='out' />"
+" </method>"
+#endif
" </interface>"
"</node>";
g_variant_unref(param4);
g_variant_unref(param5);
}
+#ifdef TIZEN_FEATURE_BT_AVC_TARGET
+ else if (g_strcmp0(method_name, "get_avc_mode") == 0) {
+ unsigned int mode = 0;
+
+ if (_bt_audio_get_avc_mode(&mode) != BLUETOOTH_ERROR_NONE)
+ BT_ERR("Fail to get the avc mode");
+
+ BT_DBG("Absolute Volume Control mode: %d", mode);
+
+ g_dbus_method_invocation_return_value(invocation,
+ g_variant_new("(u)", mode));
+ }
+#endif
FN_END;
return;
break;
#endif
+#ifdef TIZEN_FEATURE_BT_AVC_TARGET
+ case BT_AUDIO_AVC_EVENT:
+ path = BT_AUDIO_AVC_PATH;
+ break;
+#endif
default:
BT_ERR("Unknown event");
return BLUETOOTH_ERROR_INTERNAL;
case BLUETOOTH_EVENT_OTC_STATE_CHANGED:
signal = BT_OTC_STATE_CHANGED;
break;
+#ifdef TIZEN_FEATURE_BT_AVC_TARGET
+ case BLUETOOTH_EVENT_AUDIO_AVC_MODE_CHANGED:
+ signal = BT_AUDIO_AVC_MODE_CHANGED;
+ break;
+#endif
default:
BT_ERR("Unknown event");
return BLUETOOTH_ERROR_INTERNAL;
int _bt_audio_get_absolute_volume(unsigned int *volume);
int _bt_audio_is_avc_activated(bool *activated);
+
+int _bt_audio_get_avc_mode(unsigned int *avc_mode);
+
+int _bt_audio_notify_avc_mode_changed(unsigned int avc_mode);
#endif
int _bt_hf_connect(bluetooth_device_address_t *device_address);
BLUETOOTH_EVENT_HF_CALLSETUP_DIALING,
BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING,
BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED,
+ BLUETOOTH_EVENT_AUDIO_AVC_MODE_CHANGED,
BLUETOOTH_HID_CONNECTED = BLUETOOTH_EVENT_HID_BASE, /**< Input connectd event*/
BLUETOOTH_HID_DISCONNECTED, /**< Input disconnectd event*/
BT_TDS_EVENT,
BT_OTP_EVENT,
BT_HDP_EVENT,
+#ifdef TIZEN_FEATURE_BT_AVC_TARGET
+ BT_AUDIO_AVC_EVENT,
+#endif
/* Will be added */
} bt_event_type_t;
#define BT_GATT_CLIENT_PATH "/org/projectx/bt/gatt_client"
#endif
+#ifdef TIZEN_FEATURE_BT_AVC_TARGET
+#define BT_AUDIO_AVC_PATH "/org/projectx/bt/avc_mode"
+#endif
+
#define BT_ENABLED "Enabled"
#define BT_DISABLED "Disabled"
#define BT_DISABLED_BATTERY_DATA "AdapterDisabledBatteryData"
#define BT_OTP_INDICATION "OtpIndication"
#define BT_OTC_STATE_CHANGED "OtcStateChanged"
+#ifdef TIZEN_FEATURE_BT_AVC_TARGET
+#define BT_AUDIO_AVC_MODE_CHANGED "AvcModeChanged"
+#endif
+
#define HEADED_PLUGIN_FILEPATH "/usr/lib/bt-plugin-headed.so"
#define HEADED_PLUGIN_FILEPATH64 "/usr/lib64/bt-plugin-headed.so"
#define FILEPATH_ARCH_64 "/usr/lib64"