| /****************************************************************************** |
| * |
| * Copyright (C) 2009-2012 Broadcom Corporation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| ******************************************************************************/ |
| |
| /******************************************************************************* |
| * |
| * Filename: btif_av.h |
| * |
| * Description: Main API header file for all BTIF AV functions accessed |
| * from internal stack. |
| * |
| ******************************************************************************/ |
| |
| #ifndef BTIF_AV_H |
| #define BTIF_AV_H |
| |
| #include "bta_av_api.h" |
| #include "btif_common.h" |
| #include "btif_sm.h" |
| |
| /******************************************************************************* |
| * Type definitions for callback functions |
| ******************************************************************************/ |
| |
| typedef enum { |
| /* Reuse BTA_AV_XXX_EVT - No need to redefine them here */ |
| BTIF_AV_CONNECT_REQ_EVT = BTA_AV_MAX_EVT, |
| BTIF_AV_DISCONNECT_REQ_EVT, |
| BTIF_AV_START_STREAM_REQ_EVT, |
| BTIF_AV_STOP_STREAM_REQ_EVT, |
| BTIF_AV_SUSPEND_STREAM_REQ_EVT, |
| BTIF_AV_SOURCE_CONFIG_REQ_EVT, |
| BTIF_AV_SOURCE_CONFIG_UPDATED_EVT, |
| BTIF_AV_SINK_CONFIG_REQ_EVT, |
| BTIF_AV_OFFLOAD_START_REQ_EVT, |
| BTIF_AV_CLEANUP_REQ_EVT, |
| } btif_av_sm_event_t; |
| |
| /******************************************************************************* |
| * BTIF AV API |
| ******************************************************************************/ |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_get_addr |
| * |
| * Description Fetches current AV BD address |
| * |
| * Returns BD address |
| * |
| ******************************************************************************/ |
| |
| bt_bdaddr_t btif_av_get_addr(void); |
| |
| /******************************************************************************* |
| * Function btif_av_is_sink_enabled |
| * |
| * Description Checks if A2DP Sink is enabled or not |
| * |
| * Returns true if A2DP Sink is enabled, false otherwise |
| * |
| ******************************************************************************/ |
| |
| bool btif_av_is_sink_enabled(void); |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_stream_ready |
| * |
| * Description Checks whether AV is ready for starting a stream |
| * |
| * Returns None |
| * |
| ******************************************************************************/ |
| |
| bool btif_av_stream_ready(void); |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_stream_started_ready |
| * |
| * Description Checks whether AV ready for media start in streaming state |
| * |
| * Returns None |
| * |
| ******************************************************************************/ |
| |
| bool btif_av_stream_started_ready(void); |
| |
| /******************************************************************************* |
| * |
| * Function btif_dispatch_sm_event |
| * |
| * Description Send event to AV statemachine |
| * |
| * Returns None |
| * |
| ******************************************************************************/ |
| |
| /* used to pass events to AV statemachine from other tasks */ |
| void btif_dispatch_sm_event(btif_av_sm_event_t event, void* p_data, int len); |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_init |
| * |
| * Description Initializes btif AV if not already done |
| * |
| * Returns bt_status_t |
| * |
| ******************************************************************************/ |
| |
| bt_status_t btif_av_init(int service_id); |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_is_connected |
| * |
| * Description Checks if av has a connected sink |
| * |
| * Returns bool |
| * |
| ******************************************************************************/ |
| |
| bool btif_av_is_connected(void); |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_get_peer_sep |
| * |
| * Description Get the stream endpoint type. |
| * |
| * Returns The stream endpoint type: either AVDT_TSEP_SRC or |
| * AVDT_TSEP_SNK. |
| * |
| ******************************************************************************/ |
| |
| uint8_t btif_av_get_peer_sep(void); |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_is_peer_edr |
| * |
| * Description Check if the connected a2dp device supports |
| * EDR or not. Only when connected this function |
| * will accurately provide a true capability of |
| * remote peer. If not connected it will always be false. |
| * |
| * Returns true if remote device is capable of EDR |
| * |
| ******************************************************************************/ |
| |
| bool btif_av_is_peer_edr(void); |
| |
| /****************************************************************************** |
| * |
| * Function btif_av_clear_remote_suspend_flag |
| * |
| * Description Clears remote suspended flag |
| * |
| * Returns Void |
| ******************************************************************************/ |
| void btif_av_clear_remote_suspend_flag(void); |
| |
| /******************************************************************************* |
| * |
| * Function btif_av_peer_supports_3mbps |
| * |
| * Description Check if the connected A2DP device supports |
| * 3 Mbps EDR. This function will only work while connected. |
| * If not connected it will always return false. |
| * |
| * Returns true if remote device is EDR and supports 3 Mbps |
| * |
| ******************************************************************************/ |
| bool btif_av_peer_supports_3mbps(void); |
| |
| #endif /* BTIF_AV_H */ |