/****************************************************************************** * * 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 */