diff options
author | Matthew Xie <mattx@google.com> | 2013-08-18 19:46:01 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-08-18 19:46:01 +0000 |
commit | aaf337dccb23f04ed4a59f2f371326c93cb5c96f (patch) | |
tree | c01dd780e285b7fbb41568c120869005d30a1e0a | |
parent | fc0ff2a8700eb11aef7a961b279d846c8a1c04c5 (diff) | |
parent | fe9728dfa18eabbf4e5bce9cecb6524b9158fb13 (diff) | |
download | libhardware-aaf337dccb23f04ed4a59f2f371326c93cb5c96f.tar.gz |
Merge "Add support for AbsoluteVolume" into klp-dev
-rwxr-xr-x | include/hardware/bt_rc.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/include/hardware/bt_rc.h b/include/hardware/bt_rc.h index 0898133c..d4555437 100755 --- a/include/hardware/bt_rc.h +++ b/include/hardware/bt_rc.h @@ -30,6 +30,13 @@ __BEGIN_DECLS typedef uint8_t btrc_uid_t[BTRC_UID_SIZE]; typedef enum { + BTRC_FEAT_NONE = 0x00, /* AVRCP 1.0 */ + BTRC_FEAT_METADATA = 0x01, /* AVRCP 1.3 */ + BTRC_FEAT_ABSOLUTE_VOLUME = 0x02, /* Supports TG role and volume sync */ + BTRC_FEAT_BROWSE = 0x04, /* AVRCP 1.4 and up, with Browsing support */ +} btrc_remote_features_t; + +typedef enum { BTRC_PLAYSTATE_STOPPED = 0x00, /* Stopped */ BTRC_PLAYSTATE_PLAYING = 0x01, /* Playing */ BTRC_PLAYSTATE_PAUSED = 0x02, /* Paused */ @@ -114,6 +121,10 @@ typedef struct { uint8_t text[BTRC_MAX_ATTR_STR_LEN]; } btrc_element_attr_val_t; +/** Callback for the controller's supported feautres */ +typedef void (* btrc_remote_features_callback)(bt_bdaddr_t *bd_addr, + btrc_remote_features_t features); + /** Callback for play status request */ typedef void (* btrc_get_play_status_callback)(); @@ -151,6 +162,12 @@ typedef void (* btrc_get_element_attr_callback) (uint8_t num_attr, btrc_media_at */ typedef void (* btrc_register_notification_callback) (btrc_event_id_t event_id, uint32_t param); +/* AVRCP 1.4 Enhancements */ +/** Callback for volume change on CT +** volume: Current volume setting on the CT (0-127) +*/ +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); @@ -158,6 +175,7 @@ typedef void (* btrc_passthrough_cmd_callback) (int id, int key_state); typedef struct { /** set to sizeof(BtRcCallbacks) */ size_t size; + btrc_remote_features_callback remote_features_cb; btrc_get_play_status_callback get_play_status_cb; btrc_list_player_app_attr_callback list_player_app_attr_cb; btrc_list_player_app_values_callback list_player_app_values_cb; @@ -167,6 +185,7 @@ typedef struct { btrc_set_player_app_value_callback set_player_app_value_cb; btrc_get_element_attr_callback get_element_attr_cb; btrc_register_notification_callback register_notification_cb; + btrc_volume_change_callback volume_change_cb; btrc_passthrough_cmd_callback passthrough_cmd_cb; } btrc_callbacks_t; @@ -229,10 +248,19 @@ typedef struct { btrc_notification_type_t type, btrc_register_notification_t *p_param); + /* AVRCP 1.4 enhancements */ + + /**Send current volume setting to remote side. Support limited to SetAbsoluteVolume + ** This can be enhanced to support Relative Volume (AVRCP 1.0). + ** With RelateVolume, we will send VOLUME_UP/VOLUME_DOWN opposed to absolute volume level + ** volume: Should be in the range 0-127. bit7 is reseved and cannot be set + */ + bt_status_t (*set_volume)(uint8_t volume); + /** Closes the interface. */ void (*cleanup)( void ); } btrc_interface_t; __END_DECLS -#endif /* ANDROID_INCLUDE_BT_RC_H */
\ No newline at end of file +#endif /* ANDROID_INCLUDE_BT_RC_H */ |