15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2004-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * This is the stream state machine for the BTA advanced audio/video. 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if defined(BTA_AV_INCLUDED) && (BTA_AV_INCLUDED == TRUE) 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <string.h> 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_av_co.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_av_int.h" 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants and types 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state machine states */ 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_INIT_SST, 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_INCOMING_SST, 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_OPENING_SST, 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_OPEN_SST, 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RCFG_SST, 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CLOSING_SST 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state machine action enumeration list */ 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DO_DISC, 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CLEANUP, 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_FREE_SDB, 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CONFIG_IND, 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DISCONNECT_REQ, 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SECURITY_REQ, 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SECURITY_RSP, 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SETCONFIG_RSP, 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_ST_RC_TIMER, 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_STR_OPENED, 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SECURITY_IND, 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SECURITY_CFM, 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DO_CLOSE, 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CONNECT_REQ, 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SDP_FAILED, 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DISC_RESULTS, 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DISC_RES_AS_ACP, 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_OPEN_FAILED, 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_GETCAP_RESULTS, 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SETCONFIG_REJ, 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DISCOVER_REQ, 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CONN_FAILED, 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DO_START, 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_STR_STOPPED, 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RECONFIG, 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DATA_PATH, 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_START_OK, 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_START_FAILED, 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_STR_CLOSED, 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CLR_CONG, 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SUSPEND_CFM, 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RCFG_STR_OK, 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RCFG_FAILED, 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RCFG_CONNECT, 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RCFG_DISCNTD, 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SUSPEND_CONT, 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RCFG_CFM, 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_RCFG_OPEN, 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SECURITY_REJ, 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_OPEN_RC, 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CHK_2ND_START, 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SAVE_CAPS, 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SET_USE_RC, 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CCO_CLOSE, 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_SWITCH_ROLE, 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_ROLE_RES, 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_DELAY_CO, 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_OPEN_AT_INC, 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_NUM_SACTIONS 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_SIGNORE BTA_AV_NUM_SACTIONS 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table information */ 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define BTA_AV_SACTION_COL 0 position of actions */ 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_SACTIONS 2 /* number of actions */ 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_SNEXT_STATE 2 /* position of next state */ 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_NUM_COLS 3 /* number of columns in state tables */ 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table for init state */ 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const UINT8 bta_av_sst_init[][BTA_AV_NUM_COLS] = 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event Action 1 Action 2 Next state */ 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_OPEN_EVT */ {BTA_AV_DO_DISC, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_CLOSE_EVT */ {BTA_AV_CLEANUP, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_START_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_STOP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RECONFIG_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_REQ_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_RSP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RC_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SRC_DATA_READY_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_OK_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_FAIL_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CLOSE_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CONFIG_IND_EVT */ {BTA_AV_SETCONFIG_REJ, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_IND_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_WRITE_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SUSPEND_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_RECONFIG_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVRC_TIMER_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DISCONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ROLE_CHANGE_EVT*/ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DELAY_RPT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACP_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST } 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table for incoming state */ 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const UINT8 bta_av_sst_incoming[][BTA_AV_NUM_COLS] = 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event Action 1 Action 2 Next state */ 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_OPEN_EVT */ {BTA_AV_OPEN_AT_INC, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_CLOSE_EVT */ {BTA_AV_CCO_CLOSE, BTA_AV_DISCONNECT_REQ, BTA_AV_CLOSING_SST }, 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_START_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_STOP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RECONFIG_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_REQ_EVT */ {BTA_AV_SECURITY_REQ, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_RSP_EVT */ {BTA_AV_SECURITY_RSP, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RC_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SRC_DATA_READY_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_OK_EVT */ {BTA_AV_SETCONFIG_RSP, BTA_AV_ST_RC_TIMER, BTA_AV_INCOMING_SST }, 165cc35559160745c60b42ae182002a59337d844d09Hemant Gupta/* CI_SETCONFIG_FAIL_EVT */ {BTA_AV_SETCONFIG_REJ, BTA_AV_CLEANUP, BTA_AV_INIT_SST }, 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_OK_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_FAIL_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_OK_EVT */ {BTA_AV_DISC_RES_AS_ACP,BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_OK_EVT */ {BTA_AV_SAVE_CAPS, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_OK_EVT */ {BTA_AV_STR_OPENED, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CLOSE_EVT */ {BTA_AV_CCO_CLOSE, BTA_AV_CLEANUP, BTA_AV_INIT_SST }, 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CONFIG_IND_EVT */ {BTA_AV_CONFIG_IND, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_IND_EVT */ {BTA_AV_SECURITY_IND, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_CFM_EVT */ {BTA_AV_SECURITY_CFM, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_WRITE_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SUSPEND_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_RECONFIG_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVRC_TIMER_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DISCONNECT_EVT */ {BTA_AV_CCO_CLOSE, BTA_AV_CLEANUP, BTA_AV_INIT_SST }, 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ROLE_CHANGE_EVT*/ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DELAY_RPT_EVT */ {BTA_AV_DELAY_CO, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACP_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST } 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table for opening state */ 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const UINT8 bta_av_sst_opening[][BTA_AV_NUM_COLS] = 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event Action 1 Action 2 Next state */ 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_CLOSE_EVT */ {BTA_AV_DO_CLOSE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_START_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_STOP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RECONFIG_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_REQ_EVT */ {BTA_AV_SECURITY_REQ, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_RSP_EVT */ {BTA_AV_SECURITY_RSP, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RC_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SRC_DATA_READY_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_OK_EVT */ {BTA_AV_CONNECT_REQ, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_FAIL_EVT */ {BTA_AV_CONNECT_REQ, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_OK_EVT */ {BTA_AV_DISC_RESULTS, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_FAIL_EVT */ {BTA_AV_OPEN_FAILED, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_OK_EVT */ {BTA_AV_GETCAP_RESULTS, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_FAIL_EVT */ {BTA_AV_OPEN_FAILED, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_OK_EVT */ {BTA_AV_ST_RC_TIMER, BTA_AV_STR_OPENED, BTA_AV_OPEN_SST }, 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_FAIL_EVT */ {BTA_AV_OPEN_FAILED, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CLOSE_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CONFIG_IND_EVT */ {BTA_AV_CONFIG_IND, BTA_AV_SIGNORE, BTA_AV_INCOMING_SST }, 2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_IND_EVT */ {BTA_AV_SECURITY_IND, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_CFM_EVT */ {BTA_AV_SECURITY_CFM, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_WRITE_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SUSPEND_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_RECONFIG_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVRC_TIMER_EVT */ {BTA_AV_SWITCH_ROLE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_CONNECT_EVT */ {BTA_AV_DISCOVER_REQ, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DISCONNECT_EVT */ {BTA_AV_CONN_FAILED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ROLE_CHANGE_EVT*/ {BTA_AV_ROLE_RES, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DELAY_RPT_EVT */ {BTA_AV_DELAY_CO, BTA_AV_SIGNORE, BTA_AV_OPENING_SST }, 2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACP_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPENING_SST } 2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table for open state */ 2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const UINT8 bta_av_sst_open[][BTA_AV_NUM_COLS] = 2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event Action 1 Action 2 Next state */ 2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_CLOSE_EVT */ {BTA_AV_DO_CLOSE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_START_EVT */ {BTA_AV_DO_START, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_STOP_EVT */ {BTA_AV_STR_STOPPED, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RECONFIG_EVT */ {BTA_AV_RECONFIG, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_REQ_EVT */ {BTA_AV_SECURITY_REQ, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_RSP_EVT */ {BTA_AV_SECURITY_RSP, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RC_OPEN_EVT */ {BTA_AV_SET_USE_RC, BTA_AV_OPEN_RC, BTA_AV_OPEN_SST }, 2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SRC_DATA_READY_EVT */ {BTA_AV_DATA_PATH, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_OK_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_FAIL_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_OK_EVT */ {BTA_AV_SAVE_CAPS, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_OK_EVT */ {BTA_AV_START_OK, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_FAIL_EVT */ {BTA_AV_START_FAILED, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CLOSE_EVT */ {BTA_AV_STR_CLOSED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CONFIG_IND_EVT */ {BTA_AV_SETCONFIG_REJ, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_IND_EVT */ {BTA_AV_SECURITY_IND, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_CFM_EVT */ {BTA_AV_SECURITY_CFM, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_WRITE_CFM_EVT */ {BTA_AV_CLR_CONG, BTA_AV_DATA_PATH, BTA_AV_OPEN_SST }, 2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SUSPEND_CFM_EVT */ {BTA_AV_SUSPEND_CFM, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_RECONFIG_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVRC_TIMER_EVT */ {BTA_AV_OPEN_RC, BTA_AV_CHK_2ND_START, BTA_AV_OPEN_SST }, 2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DISCONNECT_EVT */ {BTA_AV_STR_CLOSED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ROLE_CHANGE_EVT*/ {BTA_AV_ROLE_RES, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DELAY_RPT_EVT */ {BTA_AV_DELAY_CO, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACP_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_OPEN_SST } 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table for reconfig state */ 2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const UINT8 bta_av_sst_rcfg[][BTA_AV_NUM_COLS] = 2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event Action 1 Action 2 Next state */ 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_CLOSE_EVT */ {BTA_AV_DISCONNECT_REQ, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_START_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_STOP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RECONFIG_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_REQ_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_RSP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RC_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SRC_DATA_READY_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_OK_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_FAIL_EVT */ {BTA_AV_FREE_SDB, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_OK_EVT */ {BTA_AV_DISC_RESULTS, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_FAIL_EVT */ {BTA_AV_STR_CLOSED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_OK_EVT */ {BTA_AV_GETCAP_RESULTS, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_FAIL_EVT */ {BTA_AV_STR_CLOSED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_OK_EVT */ {BTA_AV_RCFG_STR_OK, BTA_AV_SIGNORE, BTA_AV_OPEN_SST }, 2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_FAIL_EVT */ {BTA_AV_RCFG_FAILED, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CLOSE_EVT */ {BTA_AV_RCFG_CONNECT, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CONFIG_IND_EVT */ {BTA_AV_SETCONFIG_REJ, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_IND_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_WRITE_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SUSPEND_CFM_EVT */ {BTA_AV_SUSPEND_CONT, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_RECONFIG_CFM_EVT */ {BTA_AV_RCFG_CFM, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVRC_TIMER_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_CONNECT_EVT */ {BTA_AV_RCFG_OPEN, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DISCONNECT_EVT */ {BTA_AV_RCFG_DISCNTD, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ROLE_CHANGE_EVT*/ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DELAY_RPT_EVT */ {BTA_AV_DELAY_CO, BTA_AV_SIGNORE, BTA_AV_RCFG_SST }, 3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACP_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_RCFG_SST } 3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table for closing state */ 3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const UINT8 bta_av_sst_closing[][BTA_AV_NUM_COLS] = 3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event Action 1 Action 2 Next state */ 3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_CLOSE_EVT */ {BTA_AV_DISCONNECT_REQ, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_START_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AP_STOP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RECONFIG_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_REQ_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_PROTECT_RSP_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API_RC_OPEN_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SRC_DATA_READY_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* CI_SETCONFIG_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_OK_EVT */ {BTA_AV_SDP_FAILED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP_DISC_FAIL_EVT */ {BTA_AV_SDP_FAILED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_DISC_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_GETCAP_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_OK_EVT */ {BTA_AV_DO_CLOSE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_OPEN_FAIL_EVT */ {BTA_AV_DISCONNECT_REQ, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_OK_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_START_FAIL_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CLOSE_EVT */ {BTA_AV_DISCONNECT_REQ, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_CONFIG_IND_EVT */ {BTA_AV_SETCONFIG_REJ, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_IND_EVT */ {BTA_AV_SECURITY_REJ, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SECURITY_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_WRITE_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_SUSPEND_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* STR_RECONFIG_CFM_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVRC_TIMER_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DISCONNECT_EVT */ {BTA_AV_STR_CLOSED, BTA_AV_SIGNORE, BTA_AV_INIT_SST }, 3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ROLE_CHANGE_EVT*/ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AVDT_DELAY_RPT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST }, 3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ACP_CONNECT_EVT */ {BTA_AV_SIGNORE, BTA_AV_SIGNORE, BTA_AV_CLOSING_SST } 3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* type for state table */ 3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef const UINT8 (*tBTA_AV_SST_TBL)[BTA_AV_NUM_COLS]; 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state table */ 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const tBTA_AV_SST_TBL bta_av_sst_tbl[] = 3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_sst_init, 3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_sst_incoming, 3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_sst_opening, 3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_sst_open, 3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_sst_rcfg, 3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_sst_closing 3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (defined(BTA_AV_DEBUG) && BTA_AV_DEBUG == TRUE) 3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic char *bta_av_sst_code(UINT8 state); 3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_is_rcfg_sst 3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Check if stream state machine is in reconfig state. 3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if stream state machine is in reconfig state. 3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBOOLEAN bta_av_is_rcfg_sst (tBTA_AV_SCB *p_scb) 3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_rcfg_sst = FALSE; 3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb != NULL) 3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb->state == BTA_AV_RCFG_SST) 3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project is_rcfg_sst = TRUE; 3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project return is_rcfg_sst; 3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_ssm_execute 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Stream state machine event handling function for AV 3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_av_ssm_execute(tBTA_AV_SCB *p_scb, UINT16 event, tBTA_AV_DATA *p_data) 4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_AV_SST_TBL state_table; 4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 action; 4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int i, xx; 4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if(p_scb == NULL) 4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* this stream is not registered */ 413e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati APPL_TRACE_EVENT("AV channel not registered"); 4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project return; 4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* In case incoming connection is for VDP, we need to swap scb. */ 4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* When ACP_CONNECT_EVT was received, we put first available scb to */ 4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* to Incoming state. Later, when STR_CONFIG_IND_EVT is coming, we */ 4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* know if it is A2DP or VDP. */ 4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if ((p_scb->state == BTA_AV_INIT_SST) && (event == BTA_AV_STR_CONFIG_IND_EVT)) 4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project for (xx = 0; xx < BTA_AV_NUM_STRS; xx++) 4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (bta_av_cb.p_scb[xx]) 4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (bta_av_cb.p_scb[xx]->state == BTA_AV_INCOMING_SST) 4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_cb.p_scb[xx]->state = BTA_AV_INIT_SST; 4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_av_cb.p_scb[xx]->coll_mask = 0; 4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_scb->state = BTA_AV_INCOMING_SST; 4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project break; 4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (defined(BTA_AV_DEBUG) && BTA_AV_DEBUG == TRUE) 439e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati APPL_TRACE_VERBOSE("AV Sevent(0x%x)=0x%x(%s) state=%d(%s)", 4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_scb->hndl, event, bta_av_evt_code(event), p_scb->state, bta_av_sst_code(p_scb->state)); 4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 442e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati APPL_TRACE_VERBOSE("AV Sevent=0x%x state=%d", event, p_scb->state); 4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* look up the state table for the current state */ 4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project state_table = bta_av_sst_tbl[p_scb->state]; 4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project event -= BTA_AV_FIRST_SSM_EVT; 4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* set next state */ 4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_scb->state = state_table[event][BTA_AV_SNEXT_STATE]; 4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* execute action functions */ 4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project for(i=0; i< BTA_AV_SACTIONS; i++) 4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if ((action = state_table[event][i]) != BTA_AV_SIGNORE) 4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project (*p_scb->p_act_tbl[action])(p_scb, p_data); 4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project else 4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project break; 4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_is_scb_opening 4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Returns TRUE is scb is in opening state. 4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if scb is in opening state. 4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBOOLEAN bta_av_is_scb_opening (tBTA_AV_SCB *p_scb) 4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_opening = FALSE; 4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb) 4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb->state == BTA_AV_OPENING_SST) 4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project is_opening = TRUE; 4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project return is_opening; 4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_is_scb_incoming 4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Returns TRUE is scb is in incoming state. 4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if scb is in incoming state. 4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBOOLEAN bta_av_is_scb_incoming (tBTA_AV_SCB *p_scb) 5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_incoming = FALSE; 5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb) 5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb->state == BTA_AV_INCOMING_SST) 5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project is_incoming = TRUE; 5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project return is_incoming; 5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_set_scb_sst_init 5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Set SST state to INIT. 5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Use this function to change SST outside of state machine. 5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None 5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_av_set_scb_sst_init (tBTA_AV_SCB *p_scb) 5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb) 5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_scb->state = BTA_AV_INIT_SST; 5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_is_scb_init 5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Returns TRUE is scb is in init state. 5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if scb is in incoming state. 5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBOOLEAN bta_av_is_scb_init (tBTA_AV_SCB *p_scb) 5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_init = FALSE; 5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb) 5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb->state == BTA_AV_INIT_SST) 5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project is_init = TRUE; 5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project return is_init; 5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_set_scb_sst_incoming 5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Set SST state to incoming. 5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Use this function to change SST outside of state machine. 5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None 5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_av_set_scb_sst_incoming (tBTA_AV_SCB *p_scb) 5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if (p_scb) 5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_scb->state = BTA_AV_INCOMING_SST; 5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Debug Functions 5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (defined(BTA_AV_DEBUG) && BTA_AV_DEBUG == TRUE) 5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_sst_code 5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description 5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns char * 5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic char *bta_av_sst_code(UINT8 state) 5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project switch(state) 5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project case BTA_AV_INIT_SST: return "INIT"; 5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project case BTA_AV_INCOMING_SST: return "INCOMING"; 5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project case BTA_AV_OPENING_SST: return "OPENING"; 5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project case BTA_AV_OPEN_SST: return "OPEN"; 5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project case BTA_AV_RCFG_SST: return "RCFG"; 5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project case BTA_AV_CLOSING_SST: return "CLOSING"; 5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project default: return "unknown"; 5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_AV_INCLUDED */ 600