mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2025-01-26 22:33:29 +08:00
android: Update Android system headers to 5.0 API
Android headers are used for Linux host build.
This commit is contained in:
parent
cf495fb1f0
commit
4c150a0a5b
@ -367,7 +367,7 @@ LOCAL_SHARED_LIBRARIES := \
|
||||
libcutils \
|
||||
libsbc \
|
||||
|
||||
LOCAL_CFLAGS := $(BLUEZ_COMMON_CFLAGS)
|
||||
LOCAL_CFLAGS := $(BLUEZ_COMMON_CFLAGS) -Wno-declaration-after-statement
|
||||
LOCAL_LDFLAGS := -ldl
|
||||
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
|
||||
@ -394,7 +394,7 @@ LOCAL_SHARED_LIBRARIES := \
|
||||
libcutils \
|
||||
libaudioutils \
|
||||
|
||||
LOCAL_CFLAGS := $(BLUEZ_COMMON_CFLAGS)
|
||||
LOCAL_CFLAGS := $(BLUEZ_COMMON_CFLAGS) -Wno-declaration-after-statement
|
||||
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
|
@ -1,6 +1,6 @@
|
||||
if ANDROID
|
||||
|
||||
AM_CFLAGS += -DANDROID_VERSION=0x040404 -DBLUEZ_EXTENSIONS
|
||||
AM_CFLAGS += -DANDROID_VERSION=0x050000 -DBLUEZ_EXTENSIONS
|
||||
|
||||
android_plugindir = $(abs_top_srcdir)/android/.libs
|
||||
|
||||
|
@ -52,7 +52,10 @@ __BEGIN_DECLS
|
||||
#define AUDIO_DEVICE_API_VERSION_0_0 HARDWARE_DEVICE_API_VERSION(0, 0)
|
||||
#define AUDIO_DEVICE_API_VERSION_1_0 HARDWARE_DEVICE_API_VERSION(1, 0)
|
||||
#define AUDIO_DEVICE_API_VERSION_2_0 HARDWARE_DEVICE_API_VERSION(2, 0)
|
||||
#define AUDIO_DEVICE_API_VERSION_CURRENT AUDIO_DEVICE_API_VERSION_2_0
|
||||
#define AUDIO_DEVICE_API_VERSION_3_0 HARDWARE_DEVICE_API_VERSION(3, 0)
|
||||
#define AUDIO_DEVICE_API_VERSION_CURRENT AUDIO_DEVICE_API_VERSION_3_0
|
||||
/* Minimal audio HAL version supported by the audio framework */
|
||||
#define AUDIO_DEVICE_API_VERSION_MIN AUDIO_DEVICE_API_VERSION_2_0
|
||||
|
||||
/**
|
||||
* List of known audio HAL modules. This is the base name of the audio HAL
|
||||
@ -89,22 +92,37 @@ __BEGIN_DECLS
|
||||
#define AUDIO_PARAMETER_VALUE_TTY_HCO "tty_hco"
|
||||
#define AUDIO_PARAMETER_VALUE_TTY_FULL "tty_full"
|
||||
|
||||
/* Hearing Aid Compatibility - Telecoil (HAC-T) mode on/off
|
||||
Strings must be in sync with CallFeaturesSetting.java */
|
||||
#define AUDIO_PARAMETER_KEY_HAC "HACSetting"
|
||||
#define AUDIO_PARAMETER_VALUE_HAC_ON "ON"
|
||||
#define AUDIO_PARAMETER_VALUE_HAC_OFF "OFF"
|
||||
|
||||
/* A2DP sink address set by framework */
|
||||
#define AUDIO_PARAMETER_A2DP_SINK_ADDRESS "a2dp_sink_address"
|
||||
|
||||
/* A2DP source address set by framework */
|
||||
#define AUDIO_PARAMETER_A2DP_SOURCE_ADDRESS "a2dp_source_address"
|
||||
|
||||
/* Screen state */
|
||||
#define AUDIO_PARAMETER_KEY_SCREEN_STATE "screen_state"
|
||||
|
||||
/* Bluetooth SCO wideband */
|
||||
#define AUDIO_PARAMETER_KEY_BT_SCO_WB "bt_wbs"
|
||||
|
||||
|
||||
/**
|
||||
* audio stream parameters
|
||||
*/
|
||||
|
||||
#define AUDIO_PARAMETER_STREAM_ROUTING "routing" // audio_devices_t
|
||||
#define AUDIO_PARAMETER_STREAM_FORMAT "format" // audio_format_t
|
||||
#define AUDIO_PARAMETER_STREAM_CHANNELS "channels" // audio_channel_mask_t
|
||||
#define AUDIO_PARAMETER_STREAM_FRAME_COUNT "frame_count" // size_t
|
||||
#define AUDIO_PARAMETER_STREAM_INPUT_SOURCE "input_source" // audio_source_t
|
||||
#define AUDIO_PARAMETER_STREAM_SAMPLING_RATE "sampling_rate" // uint32_t
|
||||
#define AUDIO_PARAMETER_STREAM_ROUTING "routing" /* audio_devices_t */
|
||||
#define AUDIO_PARAMETER_STREAM_FORMAT "format" /* audio_format_t */
|
||||
#define AUDIO_PARAMETER_STREAM_CHANNELS "channels" /* audio_channel_mask_t */
|
||||
#define AUDIO_PARAMETER_STREAM_FRAME_COUNT "frame_count" /* size_t */
|
||||
#define AUDIO_PARAMETER_STREAM_INPUT_SOURCE "input_source" /* audio_source_t */
|
||||
#define AUDIO_PARAMETER_STREAM_SAMPLING_RATE "sampling_rate" /* uint32_t */
|
||||
|
||||
#define AUDIO_PARAMETER_DEVICE_DISCONNECT "disconnect" /* audio_devices_t */
|
||||
|
||||
/* Query supported formats. The response is a '|' separated list of strings from
|
||||
* audio_format_t enum e.g: "sup_formats=AUDIO_FORMAT_PCM_16_BIT" */
|
||||
@ -116,6 +134,11 @@ __BEGIN_DECLS
|
||||
* "sup_sampling_rates=44100|48000" */
|
||||
#define AUDIO_PARAMETER_STREAM_SUP_SAMPLING_RATES "sup_sampling_rates"
|
||||
|
||||
/* Get the HW synchronization source used for an output stream.
|
||||
* Return a valid source (positive integer) or AUDIO_HW_SYNC_INVALID if an error occurs
|
||||
* or no HW sync source is used. */
|
||||
#define AUDIO_PARAMETER_STREAM_HW_AV_SYNC "hw_av_sync"
|
||||
|
||||
/**
|
||||
* audio codec parameters
|
||||
*/
|
||||
@ -135,18 +158,6 @@ __BEGIN_DECLS
|
||||
|
||||
/**************************************/
|
||||
|
||||
/* common audio stream configuration parameters
|
||||
* You should memset() the entire structure to zero before use to
|
||||
* ensure forward compatibility
|
||||
*/
|
||||
struct audio_config {
|
||||
uint32_t sample_rate;
|
||||
audio_channel_mask_t channel_mask;
|
||||
audio_format_t format;
|
||||
audio_offload_info_t offload_info;
|
||||
};
|
||||
typedef struct audio_config audio_config_t;
|
||||
|
||||
/* common audio stream parameters and operations */
|
||||
struct audio_stream {
|
||||
|
||||
@ -255,6 +266,11 @@ typedef enum {
|
||||
*/
|
||||
|
||||
struct audio_stream_out {
|
||||
/**
|
||||
* Common methods of the audio stream out. This *must* be the first member of audio_stream_out
|
||||
* as users of this structure will cast a audio_stream to audio_stream_out pointer in contexts
|
||||
* where it's known the audio_stream references an audio_stream_out.
|
||||
*/
|
||||
struct audio_stream common;
|
||||
|
||||
/**
|
||||
@ -378,6 +394,11 @@ struct audio_stream_out {
|
||||
typedef struct audio_stream_out audio_stream_out_t;
|
||||
|
||||
struct audio_stream_in {
|
||||
/**
|
||||
* Common methods of the audio stream in. This *must* be the first member of audio_stream_in
|
||||
* as users of this structure will cast a audio_stream to audio_stream_in pointer in contexts
|
||||
* where it's known the audio_stream references an audio_stream_in.
|
||||
*/
|
||||
struct audio_stream common;
|
||||
|
||||
/** set the input gain for the audio driver. This method is for
|
||||
@ -407,7 +428,10 @@ typedef struct audio_stream_in audio_stream_in_t;
|
||||
|
||||
/**
|
||||
* return the frame size (number of bytes per sample).
|
||||
*
|
||||
* Deprecated: use audio_stream_out_frame_size() or audio_stream_in_frame_size() instead.
|
||||
*/
|
||||
__attribute__((__deprecated__))
|
||||
static inline size_t audio_stream_frame_size(const struct audio_stream *s)
|
||||
{
|
||||
size_t chan_samp_sz;
|
||||
@ -421,6 +445,37 @@ static inline size_t audio_stream_frame_size(const struct audio_stream *s)
|
||||
return sizeof(int8_t);
|
||||
}
|
||||
|
||||
/**
|
||||
* return the frame size (number of bytes per sample) of an output stream.
|
||||
*/
|
||||
static inline size_t audio_stream_out_frame_size(const struct audio_stream_out *s)
|
||||
{
|
||||
size_t chan_samp_sz;
|
||||
audio_format_t format = s->common.get_format(&s->common);
|
||||
|
||||
if (audio_is_linear_pcm(format)) {
|
||||
chan_samp_sz = audio_bytes_per_sample(format);
|
||||
return audio_channel_count_from_out_mask(s->common.get_channels(&s->common)) * chan_samp_sz;
|
||||
}
|
||||
|
||||
return sizeof(int8_t);
|
||||
}
|
||||
|
||||
/**
|
||||
* return the frame size (number of bytes per sample) of an input stream.
|
||||
*/
|
||||
static inline size_t audio_stream_in_frame_size(const struct audio_stream_in *s)
|
||||
{
|
||||
size_t chan_samp_sz;
|
||||
audio_format_t format = s->common.get_format(&s->common);
|
||||
|
||||
if (audio_is_linear_pcm(format)) {
|
||||
chan_samp_sz = audio_bytes_per_sample(format);
|
||||
return audio_channel_count_from_in_mask(s->common.get_channels(&s->common)) * chan_samp_sz;
|
||||
}
|
||||
|
||||
return sizeof(int8_t);
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
@ -434,6 +489,11 @@ struct audio_module {
|
||||
};
|
||||
|
||||
struct audio_hw_device {
|
||||
/**
|
||||
* Common methods of the audio device. This *must* be the first member of audio_hw_device
|
||||
* as users of this structure will cast a hw_device_t to audio_hw_device pointer in contexts
|
||||
* where it's known the hw_device_t references an audio_hw_device.
|
||||
*/
|
||||
struct hw_device_t common;
|
||||
|
||||
/**
|
||||
@ -503,13 +563,21 @@ struct audio_hw_device {
|
||||
size_t (*get_input_buffer_size)(const struct audio_hw_device *dev,
|
||||
const struct audio_config *config);
|
||||
|
||||
/** This method creates and opens the audio hardware output stream */
|
||||
/** This method creates and opens the audio hardware output stream.
|
||||
* The "address" parameter qualifies the "devices" audio device type if needed.
|
||||
* The format format depends on the device type:
|
||||
* - Bluetooth devices use the MAC address of the device in the form "00:11:22:AA:BB:CC"
|
||||
* - USB devices use the ALSA card and device numbers in the form "card=X;device=Y"
|
||||
* - Other devices may use a number or any other string.
|
||||
*/
|
||||
|
||||
int (*open_output_stream)(struct audio_hw_device *dev,
|
||||
audio_io_handle_t handle,
|
||||
audio_devices_t devices,
|
||||
audio_output_flags_t flags,
|
||||
struct audio_config *config,
|
||||
struct audio_stream_out **stream_out);
|
||||
struct audio_stream_out **stream_out,
|
||||
const char *address);
|
||||
|
||||
void (*close_output_stream)(struct audio_hw_device *dev,
|
||||
struct audio_stream_out* stream_out);
|
||||
@ -519,7 +587,10 @@ struct audio_hw_device {
|
||||
audio_io_handle_t handle,
|
||||
audio_devices_t devices,
|
||||
struct audio_config *config,
|
||||
struct audio_stream_in **stream_in);
|
||||
struct audio_stream_in **stream_in,
|
||||
audio_input_flags_t flags,
|
||||
const char *address,
|
||||
audio_source_t source);
|
||||
|
||||
void (*close_input_stream)(struct audio_hw_device *dev,
|
||||
struct audio_stream_in *stream_in);
|
||||
@ -541,6 +612,38 @@ struct audio_hw_device {
|
||||
* method may leave it set to NULL.
|
||||
*/
|
||||
int (*get_master_mute)(struct audio_hw_device *dev, bool *mute);
|
||||
|
||||
/**
|
||||
* Routing control
|
||||
*/
|
||||
|
||||
/* Creates an audio patch between several source and sink ports.
|
||||
* The handle is allocated by the HAL and should be unique for this
|
||||
* audio HAL module. */
|
||||
int (*create_audio_patch)(struct audio_hw_device *dev,
|
||||
unsigned int num_sources,
|
||||
const struct audio_port_config *sources,
|
||||
unsigned int num_sinks,
|
||||
const struct audio_port_config *sinks,
|
||||
audio_patch_handle_t *handle);
|
||||
|
||||
/* Release an audio patch */
|
||||
int (*release_audio_patch)(struct audio_hw_device *dev,
|
||||
audio_patch_handle_t handle);
|
||||
|
||||
/* Fills the list of supported attributes for a given audio port.
|
||||
* As input, "port" contains the information (type, role, address etc...)
|
||||
* needed by the HAL to identify the port.
|
||||
* As output, "port" contains possible attributes (sampling rates, formats,
|
||||
* channel masks, gain controllers...) for this port.
|
||||
*/
|
||||
int (*get_audio_port)(struct audio_hw_device *dev,
|
||||
struct audio_port *port);
|
||||
|
||||
/* Set audio port configuration */
|
||||
int (*set_audio_port_config)(struct audio_hw_device *dev,
|
||||
const struct audio_port_config *config);
|
||||
|
||||
};
|
||||
typedef struct audio_hw_device audio_hw_device_t;
|
||||
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
#include <system/audio.h>
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
@ -812,7 +813,7 @@ typedef struct buffer_config_s {
|
||||
uint32_t samplingRate; // sampling rate
|
||||
uint32_t channels; // channel mask (see audio_channel_mask_t in audio.h)
|
||||
buffer_provider_t bufferProvider; // buffer provider
|
||||
uint8_t format; // Audio format (see see audio_format_t in audio.h)
|
||||
uint8_t format; // Audio format (see audio_format_t in audio.h)
|
||||
uint8_t accessMode; // read/write or accumulate in buffer (effect_buffer_access_e)
|
||||
uint16_t mask; // indicates which of the above fields is valid
|
||||
} buffer_config_t;
|
||||
|
@ -17,6 +17,7 @@
|
||||
#ifndef ANDROID_INCLUDE_BLUETOOTH_H
|
||||
#define ANDROID_INCLUDE_BLUETOOTH_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
@ -39,6 +40,7 @@ __BEGIN_DECLS
|
||||
#define BT_PROFILE_HANDSFREE_ID "handsfree"
|
||||
#define BT_PROFILE_HANDSFREE_CLIENT_ID "handsfree_client"
|
||||
#define BT_PROFILE_ADVANCED_AUDIO_ID "a2dp"
|
||||
#define BT_PROFILE_ADVANCED_AUDIO_SINK_ID "a2dp_sink"
|
||||
#define BT_PROFILE_HEALTH_ID "health"
|
||||
#define BT_PROFILE_SOCKETS_ID "socket"
|
||||
#define BT_PROFILE_HIDHOST_ID "hidhost"
|
||||
@ -47,6 +49,7 @@ __BEGIN_DECLS
|
||||
|
||||
#define BT_PROFILE_GATT_ID "gatt"
|
||||
#define BT_PROFILE_AV_RC_ID "avrcp"
|
||||
#define BT_PROFILE_AV_RC_CTRL_ID "avrcp_ctrl"
|
||||
|
||||
/** Bluetooth Address */
|
||||
typedef struct {
|
||||
@ -85,7 +88,8 @@ typedef enum {
|
||||
BT_STATUS_PARM_INVALID,
|
||||
BT_STATUS_UNHANDLED,
|
||||
BT_STATUS_AUTH_FAILURE,
|
||||
BT_STATUS_RMT_DEV_DOWN
|
||||
BT_STATUS_RMT_DEV_DOWN,
|
||||
BT_STATUS_AUTH_REJECTED
|
||||
|
||||
} bt_status_t;
|
||||
|
||||
@ -94,6 +98,15 @@ typedef struct {
|
||||
uint8_t pin[16];
|
||||
} __attribute__((packed))bt_pin_code_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t status;
|
||||
uint8_t ctrl_state; /* stack reported state */
|
||||
uint64_t tx_time; /* in ms */
|
||||
uint64_t rx_time; /* in ms */
|
||||
uint64_t idle_time; /* in ms */
|
||||
uint64_t energy_used; /* a product of mA, V and ms */
|
||||
} __attribute__((packed))bt_activity_energy_info;
|
||||
|
||||
/** Bluetooth Adapter Discovery state */
|
||||
typedef enum {
|
||||
BT_DISCOVERY_STOPPED,
|
||||
@ -128,6 +141,18 @@ typedef struct
|
||||
int manufacturer;
|
||||
} bt_remote_version_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t local_privacy_enabled;
|
||||
uint8_t max_adv_instance;
|
||||
uint8_t rpa_offload_supported;
|
||||
uint8_t max_irk_list_size;
|
||||
uint8_t max_adv_filter_supported;
|
||||
uint8_t scan_result_storage_size_lobyte;
|
||||
uint8_t scan_result_storage_size_hibyte;
|
||||
uint8_t activity_energy_info_supported;
|
||||
}bt_local_le_features_t;
|
||||
|
||||
/* Bluetooth Adapter and Remote Device property types */
|
||||
typedef enum {
|
||||
/* Properties common to both adapter and remote device */
|
||||
@ -210,6 +235,13 @@ typedef enum {
|
||||
|
||||
BT_PROPERTY_REMOTE_VERSION_INFO,
|
||||
|
||||
/**
|
||||
* Description - Local LE features
|
||||
* Access mode - GET.
|
||||
* Data type - bt_local_le_features_t.
|
||||
*/
|
||||
BT_PROPERTY_LOCAL_LE_FEATURES,
|
||||
|
||||
BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP = 0xFF,
|
||||
} bt_property_type_t;
|
||||
|
||||
@ -221,6 +253,7 @@ typedef struct
|
||||
void *val;
|
||||
} bt_property_t;
|
||||
|
||||
|
||||
/** Bluetooth Device Type */
|
||||
typedef enum {
|
||||
BT_DEVICE_DEVTYPE_BREDR = 0x1,
|
||||
@ -323,6 +356,15 @@ typedef void (*dut_mode_recv_callback)(uint16_t opcode, uint8_t *buf, uint8_t le
|
||||
* This callback shall be invoked whenever the le_tx_test, le_rx_test or le_test_end is invoked
|
||||
* The num_packets is valid only for le_test_end command */
|
||||
typedef void (*le_test_mode_callback)(bt_status_t status, uint16_t num_packets);
|
||||
|
||||
/** Callback invoked when energy details are obtained */
|
||||
/* Ctrl_state-Current controller state-Active-1,scan-2,or idle-3 state as defined by HCI spec.
|
||||
* If the ctrl_state value is 0, it means the API call failed
|
||||
* Time values-In milliseconds as returned by the controller
|
||||
* Energy used-Value as returned by the controller
|
||||
* Status-Provides the status of the read_energy_info API call */
|
||||
typedef void (*energy_info_callback)(bt_activity_energy_info *energy_info);
|
||||
|
||||
/** TODO: Add callbacks for Link Up/Down and other generic
|
||||
* notifications/callbacks */
|
||||
|
||||
@ -342,8 +384,27 @@ typedef struct {
|
||||
callback_thread_event thread_evt_cb;
|
||||
dut_mode_recv_callback dut_mode_recv_cb;
|
||||
le_test_mode_callback le_test_mode_cb;
|
||||
energy_info_callback energy_info_cb;
|
||||
} bt_callbacks_t;
|
||||
|
||||
typedef void (*alarm_cb)(void *data);
|
||||
typedef bool (*set_wake_alarm_callout)(uint64_t delay_millis, bool should_wake, alarm_cb cb, void *data);
|
||||
typedef int (*acquire_wake_lock_callout)(const char *lock_name);
|
||||
typedef int (*release_wake_lock_callout)(const char *lock_name);
|
||||
|
||||
/** The set of functions required by bluedroid to set wake alarms and
|
||||
* grab wake locks. This struct is passed into the stack through the
|
||||
* |set_os_callouts| function on |bt_interface_t|.
|
||||
*/
|
||||
typedef struct {
|
||||
/* set to sizeof(bt_os_callouts_t) */
|
||||
size_t size;
|
||||
|
||||
set_wake_alarm_callout set_wake_alarm;
|
||||
acquire_wake_lock_callout acquire_wake_lock;
|
||||
release_wake_lock_callout release_wake_lock;
|
||||
} bt_os_callouts_t;
|
||||
|
||||
/** NOTE: By default, no profiles are initialized at the time of init/enable.
|
||||
* Whenever the application invokes the 'init' API of a profile, then one of
|
||||
* the following shall occur:
|
||||
@ -419,7 +480,7 @@ typedef struct {
|
||||
int (*cancel_discovery)(void);
|
||||
|
||||
/** Create Bluetooth Bonding */
|
||||
int (*create_bond)(const bt_bdaddr_t *bd_addr);
|
||||
int (*create_bond)(const bt_bdaddr_t *bd_addr, int transport);
|
||||
|
||||
/** Remove Bond */
|
||||
int (*remove_bond)(const bt_bdaddr_t *bd_addr);
|
||||
@ -427,6 +488,13 @@ typedef struct {
|
||||
/** Cancel Bond */
|
||||
int (*cancel_bond)(const bt_bdaddr_t *bd_addr);
|
||||
|
||||
/**
|
||||
* Get the connection status for a given remote device.
|
||||
* return value of 0 means the device is not connected,
|
||||
* non-zero return status indicates an active connection.
|
||||
*/
|
||||
int (*get_connection_state)(const bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** BT Legacy PinKey Reply */
|
||||
/** If accept==FALSE, then pin_len and pin_code shall be 0x0 */
|
||||
int (*pin_reply)(const bt_bdaddr_t *bd_addr, uint8_t accept,
|
||||
@ -455,6 +523,16 @@ typedef struct {
|
||||
|
||||
/* enable or disable bluetooth HCI snoop log */
|
||||
int (*config_hci_snoop_log)(uint8_t enable);
|
||||
|
||||
/** Sets the OS call-out functions that bluedroid needs for alarms and wake locks.
|
||||
* This should be called immediately after a successful |init|.
|
||||
*/
|
||||
int (*set_os_callouts)(bt_os_callouts_t *callouts);
|
||||
|
||||
/** Read Energy info details - return value indicates BT_STATUS_SUCCESS or BT_STATUS_NOT_READY
|
||||
* Success indicates that the VSC command was sent to controller
|
||||
*/
|
||||
int (*read_energy_info)();
|
||||
} bt_interface_t;
|
||||
|
||||
/** TODO: Need to add APIs for Service Discovery, Service authorization and
|
||||
|
@ -47,12 +47,23 @@ typedef void (* btav_connection_state_callback)(btav_connection_state_t state,
|
||||
typedef void (* btav_audio_state_callback)(btav_audio_state_t state,
|
||||
bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for audio configuration change.
|
||||
* Used only for the A2DP sink interface.
|
||||
* state will have one of the values from btav_audio_state_t
|
||||
* sample_rate: sample rate in Hz
|
||||
* channel_count: number of channels (1 for mono, 2 for stereo)
|
||||
*/
|
||||
typedef void (* btav_audio_config_callback)(bt_bdaddr_t *bd_addr,
|
||||
uint32_t sample_rate,
|
||||
uint8_t channel_count);
|
||||
|
||||
/** BT-AV callback structure. */
|
||||
typedef struct {
|
||||
/** set to sizeof(btav_callbacks_t) */
|
||||
size_t size;
|
||||
btav_connection_state_callback connection_state_cb;
|
||||
btav_audio_state_callback audio_state_cb;
|
||||
btav_audio_config_callback audio_config_cb;
|
||||
} btav_callbacks_t;
|
||||
|
||||
/**
|
||||
@ -65,7 +76,9 @@ typedef struct {
|
||||
* android_audio_hw library and the Bluetooth stack.
|
||||
*
|
||||
*/
|
||||
/** Represents the standard BT-AV interface. */
|
||||
/** Represents the standard BT-AV interface.
|
||||
* Used for both the A2DP source and sink interfaces.
|
||||
*/
|
||||
typedef struct {
|
||||
|
||||
/** set to sizeof(btav_interface_t) */
|
||||
|
@ -152,10 +152,59 @@ typedef void (*read_remote_rssi_callback)(int client_if, bt_bdaddr_t* bda,
|
||||
int rssi, int status);
|
||||
|
||||
/**
|
||||
* Callback indicationg the status of a listen() operation
|
||||
* Callback indicating the status of a listen() operation
|
||||
*/
|
||||
typedef void (*listen_callback)(int status, int server_if);
|
||||
|
||||
/** Callback invoked when the MTU for a given connection changes */
|
||||
typedef void (*configure_mtu_callback)(int conn_id, int status, int mtu);
|
||||
|
||||
/** Callback invoked when a scan filter configuration command has completed */
|
||||
typedef void (*scan_filter_cfg_callback)(int action, int client_if, int status, int filt_type,
|
||||
int avbl_space);
|
||||
|
||||
/** Callback invoked when scan param has been added, cleared, or deleted */
|
||||
typedef void (*scan_filter_param_callback)(int action, int client_if, int status,
|
||||
int avbl_space);
|
||||
|
||||
/** Callback invoked when a scan filter configuration command has completed */
|
||||
typedef void (*scan_filter_status_callback)(int enable, int client_if, int status);
|
||||
|
||||
/** Callback invoked when multi-adv enable operation has completed */
|
||||
typedef void (*multi_adv_enable_callback)(int client_if, int status);
|
||||
|
||||
/** Callback invoked when multi-adv param update operation has completed */
|
||||
typedef void (*multi_adv_update_callback)(int client_if, int status);
|
||||
|
||||
/** Callback invoked when multi-adv instance data set operation has completed */
|
||||
typedef void (*multi_adv_data_callback)(int client_if, int status);
|
||||
|
||||
/** Callback invoked when multi-adv disable operation has completed */
|
||||
typedef void (*multi_adv_disable_callback)(int client_if, int status);
|
||||
|
||||
/**
|
||||
* Callback notifying an application that a remote device connection is currently congested
|
||||
* and cannot receive any more data. An application should avoid sending more data until
|
||||
* a further callback is received indicating the congestion status has been cleared.
|
||||
*/
|
||||
typedef void (*congestion_callback)(int conn_id, bool congested);
|
||||
/** Callback invoked when batchscan storage config operation has completed */
|
||||
typedef void (*batchscan_cfg_storage_callback)(int client_if, int status);
|
||||
|
||||
/** Callback invoked when batchscan enable / disable operation has completed */
|
||||
typedef void (*batchscan_enable_disable_callback)(int action, int client_if, int status);
|
||||
|
||||
/** Callback invoked when batchscan reports are obtained */
|
||||
typedef void (*batchscan_reports_callback)(int client_if, int status, int report_format,
|
||||
int num_records, int data_len, uint8_t* rep_data);
|
||||
|
||||
/** Callback invoked when batchscan storage threshold limit is crossed */
|
||||
typedef void (*batchscan_threshold_callback)(int client_if);
|
||||
|
||||
/** Track ADV VSE callback invoked when tracked device is found or lost */
|
||||
typedef void (*track_adv_event_callback)(int client_if, int filt_index, int addr_type,
|
||||
bt_bdaddr_t* bda, int adv_state);
|
||||
|
||||
typedef struct {
|
||||
register_client_callback register_client_cb;
|
||||
scan_result_callback scan_result_cb;
|
||||
@ -175,6 +224,20 @@ typedef struct {
|
||||
execute_write_callback execute_write_cb;
|
||||
read_remote_rssi_callback read_remote_rssi_cb;
|
||||
listen_callback listen_cb;
|
||||
configure_mtu_callback configure_mtu_cb;
|
||||
scan_filter_cfg_callback scan_filter_cfg_cb;
|
||||
scan_filter_param_callback scan_filter_param_cb;
|
||||
scan_filter_status_callback scan_filter_status_cb;
|
||||
multi_adv_enable_callback multi_adv_enable_cb;
|
||||
multi_adv_update_callback multi_adv_update_cb;
|
||||
multi_adv_data_callback multi_adv_data_cb;
|
||||
multi_adv_disable_callback multi_adv_disable_cb;
|
||||
congestion_callback congestion_cb;
|
||||
batchscan_cfg_storage_callback batchscan_cfg_storage_cb;
|
||||
batchscan_enable_disable_callback batchscan_enb_disable_cb;
|
||||
batchscan_reports_callback batchscan_reports_cb;
|
||||
batchscan_threshold_callback batchscan_threshold_cb;
|
||||
track_adv_event_callback track_adv_event_cb;
|
||||
} btgatt_client_callbacks_t;
|
||||
|
||||
/** Represents the standard BT-GATT client interface. */
|
||||
@ -187,11 +250,11 @@ typedef struct {
|
||||
bt_status_t (*unregister_client)(int client_if );
|
||||
|
||||
/** Start or stop LE device scanning */
|
||||
bt_status_t (*scan)( int client_if, bool start );
|
||||
bt_status_t (*scan)( bool start );
|
||||
|
||||
/** Create a connection to a remote LE or dual-mode device */
|
||||
bt_status_t (*connect)( int client_if, const bt_bdaddr_t *bd_addr,
|
||||
bool is_direct );
|
||||
bool is_direct, int transport );
|
||||
|
||||
/** Disconnect a remote device or cancel a pending connection */
|
||||
bt_status_t (*disconnect)( int client_if, const bt_bdaddr_t *bd_addr,
|
||||
@ -272,18 +335,81 @@ typedef struct {
|
||||
/** Request RSSI for a given remote device */
|
||||
bt_status_t (*read_remote_rssi)( int client_if, const bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Setup scan filter params */
|
||||
bt_status_t (*scan_filter_param_setup)(int client_if, int action, int filt_index, int feat_seln,
|
||||
int list_logic_type, int filt_logic_type, int rssi_high_thres,
|
||||
int rssi_low_thres, int dely_mode, int found_timeout,
|
||||
int lost_timeout, int found_timeout_cnt);
|
||||
|
||||
|
||||
/** Configure a scan filter condition */
|
||||
bt_status_t (*scan_filter_add_remove)(int client_if, int action, int filt_type,
|
||||
int filt_index, int company_id,
|
||||
int company_id_mask, const bt_uuid_t *p_uuid,
|
||||
const bt_uuid_t *p_uuid_mask, const bt_bdaddr_t *bd_addr,
|
||||
char addr_type, int data_len, char* p_data, int mask_len,
|
||||
char* p_mask);
|
||||
|
||||
/** Clear all scan filter conditions for specific filter index*/
|
||||
bt_status_t (*scan_filter_clear)(int client_if, int filt_index);
|
||||
|
||||
/** Enable / disable scan filter feature*/
|
||||
bt_status_t (*scan_filter_enable)(int client_if, bool enable);
|
||||
|
||||
/** Determine the type of the remote device (LE, BR/EDR, Dual-mode) */
|
||||
int (*get_device_type)( const bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** Set the advertising data or scan response data */
|
||||
bt_status_t (*set_adv_data)(int server_if, bool set_scan_rsp, bool include_name,
|
||||
bt_status_t (*set_adv_data)(int client_if, bool set_scan_rsp, bool include_name,
|
||||
bool include_txpower, int min_interval, int max_interval, int appearance,
|
||||
uint16_t manufacturer_len, char* manufacturer_data,
|
||||
uint16_t service_data_len, char* service_data,
|
||||
uint16_t service_uuid_len, char* service_uuid);
|
||||
|
||||
/** Configure the MTU for a given connection */
|
||||
bt_status_t (*configure_mtu)(int conn_id, int mtu);
|
||||
|
||||
/** Request a connection parameter update */
|
||||
bt_status_t (*conn_parameter_update)(const bt_bdaddr_t *bd_addr, int min_interval,
|
||||
int max_interval, int latency, int timeout);
|
||||
|
||||
/** Sets the LE scan interval and window in units of N*0.625 msec */
|
||||
bt_status_t (*set_scan_parameters)(int scan_interval, int scan_window);
|
||||
|
||||
/* Setup the parameters as per spec, user manual specified values and enable multi ADV */
|
||||
bt_status_t (*multi_adv_enable)(int client_if, int min_interval,int max_interval,int adv_type,
|
||||
int chnl_map, int tx_power, int timeout_s);
|
||||
|
||||
/* Update the parameters as per spec, user manual specified values and restart multi ADV */
|
||||
bt_status_t (*multi_adv_update)(int client_if, int min_interval,int max_interval,int adv_type,
|
||||
int chnl_map, int tx_power, int timeout_s);
|
||||
|
||||
/* Setup the data for the specified instance */
|
||||
bt_status_t (*multi_adv_set_inst_data)(int client_if, bool set_scan_rsp, bool include_name,
|
||||
bool incl_txpower, int appearance, int manufacturer_len,
|
||||
char* manufacturer_data, int service_data_len,
|
||||
char* service_data, int service_uuid_len, char* service_uuid);
|
||||
|
||||
/* Disable the multi adv instance */
|
||||
bt_status_t (*multi_adv_disable)(int client_if);
|
||||
|
||||
/* Configure the batchscan storage */
|
||||
bt_status_t (*batchscan_cfg_storage)(int client_if, int batch_scan_full_max,
|
||||
int batch_scan_trunc_max, int batch_scan_notify_threshold);
|
||||
|
||||
/* Enable batchscan */
|
||||
bt_status_t (*batchscan_enb_batch_scan)(int client_if, int scan_mode,
|
||||
int scan_interval, int scan_window, int addr_type, int discard_rule);
|
||||
|
||||
/* Disable batchscan */
|
||||
bt_status_t (*batchscan_dis_batch_scan)(int client_if);
|
||||
|
||||
/* Read out batchscan reports */
|
||||
bt_status_t (*batchscan_read_reports)(int client_if, int scan_mode);
|
||||
|
||||
/** Test mode interface */
|
||||
bt_status_t (*test_command)( int command, btgatt_test_params_t* params);
|
||||
|
||||
} btgatt_client_interface_t;
|
||||
|
||||
__END_DECLS
|
||||
|
@ -104,6 +104,19 @@ typedef void (*request_exec_write_callback)(int conn_id, int trans_id,
|
||||
*/
|
||||
typedef void (*response_confirmation_callback)(int status, int handle);
|
||||
|
||||
/**
|
||||
* Callback confirming that a notification or indication has been sent
|
||||
* to a remote device.
|
||||
*/
|
||||
typedef void (*indication_sent_callback)(int conn_id, int status);
|
||||
|
||||
/**
|
||||
* Callback notifying an application that a remote device connection is currently congested
|
||||
* and cannot receive any more data. An application should avoid sending more data until
|
||||
* a further callback is received indicating the congestion status has been cleared.
|
||||
*/
|
||||
typedef void (*congestion_callback)(int conn_id, bool congested);
|
||||
|
||||
typedef struct {
|
||||
register_server_callback register_server_cb;
|
||||
connection_callback connection_cb;
|
||||
@ -118,6 +131,8 @@ typedef struct {
|
||||
request_write_callback request_write_cb;
|
||||
request_exec_write_callback request_exec_write_cb;
|
||||
response_confirmation_callback response_confirmation_cb;
|
||||
indication_sent_callback indication_sent_cb;
|
||||
congestion_callback congestion_cb;
|
||||
} btgatt_server_callbacks_t;
|
||||
|
||||
/** Represents the standard BT-GATT server interface. */
|
||||
@ -129,7 +144,8 @@ typedef struct {
|
||||
bt_status_t (*unregister_server)(int server_if );
|
||||
|
||||
/** Create a connection to a remote peripheral */
|
||||
bt_status_t (*connect)(int server_if, const bt_bdaddr_t *bd_addr, bool is_direct );
|
||||
bt_status_t (*connect)(int server_if, const bt_bdaddr_t *bd_addr,
|
||||
bool is_direct, int transport);
|
||||
|
||||
/** Disconnect an established connection or cancel a pending one */
|
||||
bt_status_t (*disconnect)(int server_if, const bt_bdaddr_t *bd_addr,
|
||||
@ -168,6 +184,7 @@ typedef struct {
|
||||
/** Send a response to a read/write operation */
|
||||
bt_status_t (*send_response)(int conn_id, int trans_id,
|
||||
int status, btgatt_response_t *response);
|
||||
|
||||
} btgatt_server_interface_t;
|
||||
|
||||
__END_DECLS
|
||||
|
@ -43,6 +43,14 @@ typedef struct
|
||||
uint8_t is_primary;
|
||||
} btgatt_srvc_id_t;
|
||||
|
||||
/** Preferred physical Transport for GATT connection */
|
||||
typedef enum
|
||||
{
|
||||
GATT_TRANSPORT_AUTO,
|
||||
GATT_TRANSPORT_BREDR,
|
||||
GATT_TRANSPORT_LE
|
||||
} btgatt_transport_t;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ANDROID_INCLUDE_BT_GATT_TYPES_H */
|
||||
|
@ -57,6 +57,14 @@ typedef enum
|
||||
BTHF_NREC_START
|
||||
} bthf_nrec_t;
|
||||
|
||||
/* WBS codec setting */
|
||||
typedef enum
|
||||
{
|
||||
BTHF_WBS_NONE,
|
||||
BTHF_WBS_NO,
|
||||
BTHF_WBS_YES
|
||||
}bthf_wbs_config_t;
|
||||
|
||||
/* CHLD - Call held handling */
|
||||
typedef enum
|
||||
{
|
||||
@ -79,65 +87,70 @@ typedef void (* bthf_audio_state_callback)(bthf_audio_state_t state, bt_bdaddr_t
|
||||
/** Callback for VR connection state change.
|
||||
* state will have one of the values from BtHfVRState
|
||||
*/
|
||||
typedef void (* bthf_vr_cmd_callback)(bthf_vr_state_t state);
|
||||
typedef void (* bthf_vr_cmd_callback)(bthf_vr_state_t state, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for answer incoming call (ATA)
|
||||
*/
|
||||
typedef void (* bthf_answer_call_cmd_callback)();
|
||||
typedef void (* bthf_answer_call_cmd_callback)(bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for disconnect call (AT+CHUP)
|
||||
*/
|
||||
typedef void (* bthf_hangup_call_cmd_callback)();
|
||||
typedef void (* bthf_hangup_call_cmd_callback)(bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for disconnect call (AT+CHUP)
|
||||
* type will denote Speaker/Mic gain (BtHfVolumeControl).
|
||||
*/
|
||||
typedef void (* bthf_volume_cmd_callback)(bthf_volume_type_t type, int volume);
|
||||
typedef void (* bthf_volume_cmd_callback)(bthf_volume_type_t type, int volume, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for dialing an outgoing call
|
||||
* If number is NULL, redial
|
||||
*/
|
||||
typedef void (* bthf_dial_call_cmd_callback)(char *number);
|
||||
typedef void (* bthf_dial_call_cmd_callback)(char *number, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for sending DTMF tones
|
||||
* tone contains the dtmf character to be sent
|
||||
*/
|
||||
typedef void (* bthf_dtmf_cmd_callback)(char tone);
|
||||
typedef void (* bthf_dtmf_cmd_callback)(char tone, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for enabling/disabling noise reduction/echo cancellation
|
||||
* value will be 1 to enable, 0 to disable
|
||||
*/
|
||||
typedef void (* bthf_nrec_cmd_callback)(bthf_nrec_t nrec);
|
||||
typedef void (* bthf_nrec_cmd_callback)(bthf_nrec_t nrec, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for AT+BCS and event from BAC
|
||||
* WBS enable, WBS disable
|
||||
*/
|
||||
typedef void (* bthf_wbs_callback)(bthf_wbs_config_t wbs, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for call hold handling (AT+CHLD)
|
||||
* value will contain the call hold command (0, 1, 2, 3)
|
||||
*/
|
||||
typedef void (* bthf_chld_cmd_callback)(bthf_chld_type_t chld);
|
||||
typedef void (* bthf_chld_cmd_callback)(bthf_chld_type_t chld, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for CNUM (subscriber number)
|
||||
*/
|
||||
typedef void (* bthf_cnum_cmd_callback)();
|
||||
typedef void (* bthf_cnum_cmd_callback)(bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for indicators (CIND)
|
||||
*/
|
||||
typedef void (* bthf_cind_cmd_callback)();
|
||||
typedef void (* bthf_cind_cmd_callback)(bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for operator selection (COPS)
|
||||
*/
|
||||
typedef void (* bthf_cops_cmd_callback)();
|
||||
typedef void (* bthf_cops_cmd_callback)(bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for call list (AT+CLCC)
|
||||
*/
|
||||
typedef void (* bthf_clcc_cmd_callback) ();
|
||||
typedef void (* bthf_clcc_cmd_callback) (bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for unknown AT command recd from HF
|
||||
* at_string will contain the unparsed AT string
|
||||
*/
|
||||
typedef void (* bthf_unknown_at_cmd_callback)(char *at_string);
|
||||
typedef void (* bthf_unknown_at_cmd_callback)(char *at_string, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for keypressed (HSP) event.
|
||||
*/
|
||||
typedef void (* bthf_key_pressed_cmd_callback)();
|
||||
typedef void (* bthf_key_pressed_cmd_callback)(bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** BT-HF callback structure. */
|
||||
typedef struct {
|
||||
@ -152,6 +165,7 @@ typedef struct {
|
||||
bthf_dial_call_cmd_callback dial_call_cmd_cb;
|
||||
bthf_dtmf_cmd_callback dtmf_cmd_cb;
|
||||
bthf_nrec_cmd_callback nrec_cmd_cb;
|
||||
bthf_wbs_callback wbs_cb;
|
||||
bthf_chld_cmd_callback chld_cmd_cb;
|
||||
bthf_cnum_cmd_callback cnum_cmd_cb;
|
||||
bthf_cind_cmd_callback cind_cmd_cb;
|
||||
@ -213,7 +227,7 @@ typedef struct {
|
||||
/**
|
||||
* Register the BtHf callbacks
|
||||
*/
|
||||
bt_status_t (*init)( bthf_callbacks_t* callbacks );
|
||||
bt_status_t (*init)( bthf_callbacks_t* callbacks, int max_hf_clients);
|
||||
|
||||
/** connect to headset */
|
||||
bt_status_t (*connect)( bt_bdaddr_t *bd_addr );
|
||||
@ -228,33 +242,33 @@ typedef struct {
|
||||
bt_status_t (*disconnect_audio)( bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** start voice recognition */
|
||||
bt_status_t (*start_voice_recognition)();
|
||||
bt_status_t (*start_voice_recognition)( bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** stop voice recognition */
|
||||
bt_status_t (*stop_voice_recognition)();
|
||||
bt_status_t (*stop_voice_recognition)( bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** volume control */
|
||||
bt_status_t (*volume_control) (bthf_volume_type_t type, int volume);
|
||||
bt_status_t (*volume_control) (bthf_volume_type_t type, int volume, bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** Combined device status change notification */
|
||||
bt_status_t (*device_status_notification)(bthf_network_state_t ntk_state, bthf_service_type_t svc_type, int signal,
|
||||
int batt_chg);
|
||||
|
||||
/** Response for COPS command */
|
||||
bt_status_t (*cops_response)(const char *cops);
|
||||
bt_status_t (*cops_response)(const char *cops, bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** Response for CIND command */
|
||||
bt_status_t (*cind_response)(int svc, int num_active, int num_held, bthf_call_state_t call_setup_state,
|
||||
int signal, int roam, int batt_chg);
|
||||
int signal, int roam, int batt_chg, bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** Pre-formatted AT response, typically in response to unknown AT cmd */
|
||||
bt_status_t (*formatted_at_response)(const char *rsp);
|
||||
bt_status_t (*formatted_at_response)(const char *rsp, bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** ok/error response
|
||||
* ERROR (0)
|
||||
* OK (1)
|
||||
*/
|
||||
bt_status_t (*at_response) (bthf_at_response_t response_code, int error_code);
|
||||
bt_status_t (*at_response) (bthf_at_response_t response_code, int error_code, bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** response for CLCC command
|
||||
* Can be iteratively called for each call index
|
||||
@ -263,7 +277,7 @@ typedef struct {
|
||||
bt_status_t (*clcc_response) (int index, bthf_call_direction_t dir,
|
||||
bthf_call_state_t state, bthf_call_mode_t mode,
|
||||
bthf_call_mpty_type_t mpty, const char *number,
|
||||
bthf_call_addrtype_t type);
|
||||
bthf_call_addrtype_t type, bt_bdaddr_t *bd_addr );
|
||||
|
||||
/** notify of a call state change
|
||||
* Each update notifies
|
||||
@ -277,6 +291,9 @@ typedef struct {
|
||||
|
||||
/** Closes the interface. */
|
||||
void (*cleanup)( void );
|
||||
|
||||
/** configureation for the SCO codec */
|
||||
bt_status_t (*configure_wbs)( bt_bdaddr_t *bd_addr ,bthf_wbs_config_t config );
|
||||
} bthf_interface_t;
|
||||
|
||||
__END_DECLS
|
||||
|
@ -1,7 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2013, The Linux Foundation. All rights reserved.
|
||||
* Not a Contribution
|
||||
* Copyright (C) 2012 The Android Open Source Project
|
||||
* Copyright (C) 2012-2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -154,23 +152,31 @@ typedef enum {
|
||||
|
||||
/* Peer call handling features masks */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_REL 0x00000001 /* 0 Release waiting call or held calls */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_REL_ACC 0x00000002 /* 1 Release active calls and accept other (waiting or held) cal */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_REL_ACC 0x00000002 /* 1 Release active calls and accept other
|
||||
(waiting or held) cal */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_REL_X 0x00000004 /* 1x Release specified active call only */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_HOLD_ACC 0x00000008 /* 2 Active calls on hold and accept other (waiting or held) call */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_PRIV_X 0x00000010 /* 2x Request private mode with specified call (put the rest on hold) */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_HOLD_ACC 0x00000008 /* 2 Active calls on hold and accept other
|
||||
(waiting or held) call */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_PRIV_X 0x00000010 /* 2x Request private mode with specified
|
||||
call (put the rest on hold) */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_MERGE 0x00000020 /* 3 Add held call to multiparty */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_MERGE_DETACH 0x00000040 /* 4 Connect two calls and leave (disconnect from) multiparty */
|
||||
#define BTHF_CLIENT_CHLD_FEAT_MERGE_DETACH 0x00000040 /* 4 Connect two calls and leave
|
||||
(disconnect from) multiparty */
|
||||
|
||||
/** Callback for connection state change.
|
||||
* state will have one of the values from BtHfConnectionState
|
||||
* peer/chld_features are valid only for BTHF_CLIENT_CONNECTION_STATE_SLC_CONNECTED state
|
||||
*/
|
||||
typedef void (* bthf_client_connection_state_callback)(bthf_client_connection_state_t state, unsigned int peer_feat, unsigned int chld_feat, bt_bdaddr_t *bd_addr);
|
||||
typedef void (* bthf_client_connection_state_callback)(bthf_client_connection_state_t state,
|
||||
unsigned int peer_feat,
|
||||
unsigned int chld_feat,
|
||||
bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for audio connection state change.
|
||||
* state will have one of the values from BtHfAudioState
|
||||
*/
|
||||
typedef void (* bthf_client_audio_state_callback)(bthf_client_audio_state_t state, bt_bdaddr_t *bd_addr);
|
||||
typedef void (* bthf_client_audio_state_callback)(bthf_client_audio_state_t state,
|
||||
bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** Callback for VR connection state change.
|
||||
* state will have one of the values from BtHfVRState
|
||||
@ -243,7 +249,8 @@ typedef void (*bthf_client_cmd_complete_callback) (bthf_client_cmd_complete_t ty
|
||||
|
||||
/** Callback for subscriber information
|
||||
*/
|
||||
typedef void (* bthf_client_subscriber_info_callback) (const char *name, bthf_client_subscriber_service_type_t type);
|
||||
typedef void (* bthf_client_subscriber_info_callback) (const char *name,
|
||||
bthf_client_subscriber_service_type_t type);
|
||||
|
||||
/** Callback for in-band ring tone settings
|
||||
*/
|
||||
@ -346,6 +353,9 @@ typedef struct {
|
||||
|
||||
/** Closes the interface. */
|
||||
void (*cleanup)(void);
|
||||
|
||||
/** Send AT Command. */
|
||||
bt_status_t (*send_at_cmd) (int cmd, int val1, int val2, const char *arg);
|
||||
} bthf_client_interface_t;
|
||||
|
||||
__END_DECLS
|
||||
|
@ -99,10 +99,10 @@ typedef void (* bthh_virtual_unplug_callback)(bt_bdaddr_t *bd_addr, bthh_status_
|
||||
*/
|
||||
typedef void (* bthh_hid_info_callback)(bt_bdaddr_t *bd_addr, bthh_hid_info_t hid_info);
|
||||
|
||||
/** Callback for get/set protocal api.
|
||||
/** Callback for get protocol api.
|
||||
* the protocol mode is one of the value from bthh_protocol_mode_t
|
||||
*/
|
||||
typedef void (* bthh_protocol_mode_callback)(bt_bdaddr_t *bd_addr, bthh_status_t hh_status,bthh_protocol_mode_t mode);
|
||||
typedef void (* bthh_protocol_mode_callback)(bt_bdaddr_t *bd_addr, bthh_status_t hh_status, bthh_protocol_mode_t mode);
|
||||
|
||||
/** Callback for get/set_idle_time api.
|
||||
*/
|
||||
@ -114,6 +114,11 @@ typedef void (* bthh_idle_time_callback)(bt_bdaddr_t *bd_addr, bthh_status_t hh_
|
||||
*/
|
||||
typedef void (* bthh_get_report_callback)(bt_bdaddr_t *bd_addr, bthh_status_t hh_status, uint8_t* rpt_data, int rpt_size);
|
||||
|
||||
/** Callback for set_report/set_protocol api and if error
|
||||
* occurs for get_report/get_protocol api.
|
||||
*/
|
||||
typedef void (* bthh_handshake_callback)(bt_bdaddr_t *bd_addr, bthh_status_t hh_status);
|
||||
|
||||
|
||||
/** BT-HH callback structure. */
|
||||
typedef struct {
|
||||
@ -125,6 +130,7 @@ typedef struct {
|
||||
bthh_idle_time_callback idle_time_cb;
|
||||
bthh_get_report_callback get_report_cb;
|
||||
bthh_virtual_unplug_callback virtual_unplug_cb;
|
||||
bthh_handshake_callback handshake_cb;
|
||||
|
||||
} bthh_callbacks_t;
|
||||
|
||||
|
@ -1,8 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2013, The Linux Foundation. All rights reserved.
|
||||
* Not a Contribution
|
||||
*
|
||||
* Copyright (C) 2012 The Android Open Source Project
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -40,8 +40,8 @@ typedef enum {
|
||||
*/
|
||||
typedef void (*btpan_connection_state_callback)(btpan_connection_state_t state, bt_status_t error,
|
||||
const bt_bdaddr_t *bd_addr, int local_role, int remote_role);
|
||||
typedef void (*btpan_control_state_callback)(btpan_control_state_t state, bt_status_t error,
|
||||
int local_role, const char* ifname);
|
||||
typedef void (*btpan_control_state_callback)(btpan_control_state_t state, int local_role,
|
||||
bt_status_t error, const char* ifname);
|
||||
|
||||
typedef struct {
|
||||
size_t size;
|
||||
|
@ -171,7 +171,7 @@ typedef void (* btrc_volume_change_callback) (uint8_t volume, uint8_t ctype);
|
||||
/** Callback for passthrough commands */
|
||||
typedef void (* btrc_passthrough_cmd_callback) (int id, int key_state);
|
||||
|
||||
/** BT-RC callback structure. */
|
||||
/** BT-RC Target callback structure. */
|
||||
typedef struct {
|
||||
/** set to sizeof(BtRcCallbacks) */
|
||||
size_t size;
|
||||
@ -189,7 +189,7 @@ typedef struct {
|
||||
btrc_passthrough_cmd_callback passthrough_cmd_cb;
|
||||
} btrc_callbacks_t;
|
||||
|
||||
/** Represents the standard BT-RC interface. */
|
||||
/** Represents the standard BT-RC AVRCP Target interface. */
|
||||
typedef struct {
|
||||
|
||||
/** set to sizeof(BtRcInterface) */
|
||||
@ -261,6 +261,36 @@ typedef struct {
|
||||
void (*cleanup)( void );
|
||||
} btrc_interface_t;
|
||||
|
||||
|
||||
typedef void (* btrc_passthrough_rsp_callback) (int id, int key_state);
|
||||
|
||||
typedef void (* btrc_connection_state_callback) (bool state, bt_bdaddr_t *bd_addr);
|
||||
|
||||
/** BT-RC Controller callback structure. */
|
||||
typedef struct {
|
||||
/** set to sizeof(BtRcCallbacks) */
|
||||
size_t size;
|
||||
btrc_passthrough_rsp_callback passthrough_rsp_cb;
|
||||
btrc_connection_state_callback connection_state_cb;
|
||||
} btrc_ctrl_callbacks_t;
|
||||
|
||||
/** Represents the standard BT-RC AVRCP Controller interface. */
|
||||
typedef struct {
|
||||
|
||||
/** set to sizeof(BtRcInterface) */
|
||||
size_t size;
|
||||
/**
|
||||
* Register the BtRc callbacks
|
||||
*/
|
||||
bt_status_t (*init)( btrc_ctrl_callbacks_t* callbacks );
|
||||
|
||||
/** send pass through command to target */
|
||||
bt_status_t (*send_pass_through_cmd) ( bt_bdaddr_t *bd_addr, uint8_t key_code, uint8_t key_state );
|
||||
|
||||
/** Closes the interface. */
|
||||
void (*cleanup)( void );
|
||||
} btrc_ctrl_interface_t;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ANDROID_INCLUDE_BT_RC_H */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -120,7 +120,7 @@ static void audio_resume_action(void)
|
||||
AUDIO_DEVICE_OUT_ALL_A2DP,
|
||||
AUDIO_OUTPUT_FLAG_NONE,
|
||||
NULL,
|
||||
&data->if_stream);
|
||||
&data->if_stream, NULL);
|
||||
if (err < 0) {
|
||||
step->action_status = BT_STATUS_FAIL;
|
||||
goto done;
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "emulator/bthost.h"
|
||||
#include "tester-main.h"
|
||||
#include "hal-msg.h"
|
||||
#include "src/shared/util.h"
|
||||
|
||||
#define ATT_HANDLE_SIZE 2
|
||||
@ -1227,11 +1228,9 @@ static void gatt_client_unregister_action(void)
|
||||
static void gatt_client_start_scan_action(void)
|
||||
{
|
||||
struct test_data *data = tester_get_data();
|
||||
struct step *current_data_step = queue_peek_head(data->steps);
|
||||
int32_t cl_id = PTR_TO_INT(current_data_step->set_data);
|
||||
struct step *step = g_new0(struct step, 1);
|
||||
|
||||
step->action_status = data->if_gatt->client->scan(cl_id, TRUE);
|
||||
step->action_status = data->if_gatt->client->scan(TRUE);
|
||||
|
||||
schedule_action_verification(step);
|
||||
}
|
||||
@ -1239,11 +1238,9 @@ static void gatt_client_start_scan_action(void)
|
||||
static void gatt_client_stop_scan_action(void)
|
||||
{
|
||||
struct test_data *data = tester_get_data();
|
||||
struct step *current_data_step = queue_peek_head(data->steps);
|
||||
int32_t cl_id = PTR_TO_INT(current_data_step->set_data);
|
||||
struct step *step = g_new0(struct step, 1);
|
||||
|
||||
step->action_status = data->if_gatt->client->scan(cl_id, FALSE);
|
||||
step->action_status = data->if_gatt->client->scan(FALSE);
|
||||
|
||||
schedule_action_verification(step);
|
||||
}
|
||||
@ -1258,7 +1255,8 @@ static void gatt_client_connect_action(void)
|
||||
step->action_status = data->if_gatt->client->connect(
|
||||
conn_data->app_id,
|
||||
&emu_remote_bdaddr_val,
|
||||
0);
|
||||
0,
|
||||
BT_TRANSPORT_UNKNOWN);
|
||||
|
||||
schedule_action_verification(step);
|
||||
}
|
||||
@ -1490,7 +1488,8 @@ static void gatt_server_connect_action(void)
|
||||
step->action_status = data->if_gatt->server->connect(
|
||||
conn_data->app_id,
|
||||
&emu_remote_bdaddr_val,
|
||||
0);
|
||||
0,
|
||||
BT_TRANSPORT_UNKNOWN);
|
||||
|
||||
schedule_action_verification(step);
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "src/shared/util.h"
|
||||
#include "emulator/bthost.h"
|
||||
#include "tester-main.h"
|
||||
#include "hal-msg.h"
|
||||
|
||||
#include "monitor/bt.h"
|
||||
|
||||
@ -1324,7 +1325,8 @@ static bt_callbacks_t bt_callbacks = {
|
||||
.acl_state_changed_cb = acl_state_changed_cb,
|
||||
.thread_evt_cb = NULL,
|
||||
.dut_mode_recv_cb = NULL,
|
||||
.le_test_mode_cb = NULL
|
||||
.le_test_mode_cb = NULL,
|
||||
.energy_info_cb = NULL,
|
||||
};
|
||||
|
||||
static void hidhost_connection_state_cb(bt_bdaddr_t *bd_addr,
|
||||
@ -1852,8 +1854,8 @@ static void gatts_request_write_cb(int conn_id, int trans_id, bt_bdaddr_t *bda,
|
||||
}
|
||||
|
||||
static void pan_control_state_cb(btpan_control_state_t state,
|
||||
bt_status_t error, int local_role,
|
||||
const char *ifname)
|
||||
int local_role, bt_status_t error,
|
||||
const char *ifname)
|
||||
{
|
||||
struct step *step = g_new0(struct step, 1);
|
||||
|
||||
@ -2905,7 +2907,8 @@ void bt_create_bond_action(void)
|
||||
}
|
||||
|
||||
step->action_status =
|
||||
data->if_bluetooth->create_bond(action_data->addr);
|
||||
data->if_bluetooth->create_bond(action_data->addr,
|
||||
BT_TRANSPORT_UNKNOWN);
|
||||
|
||||
schedule_action_verification(step);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user