1 /* 2 * Copyright (C) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef AVDTP_CTRL_H 17 #define AVDTP_CTRL_H 18 19 #include "avdtp_int.h" 20 21 /* Stream Manager function declarations */ 22 extern void AvdtControlBlockInit(void); 23 extern void AvdtTransChDealloc(uint16_t lcid); 24 extern void AvdtTransChDeallocAll(void); 25 extern void AvdtSigDealloc(void); 26 extern void AvdtFreeSigHandle(uint16_t handle); 27 extern void AvdtFreeStreamHandle(uint16_t handle); 28 extern void AvdtFreeSigCtrlByHandle(uint16_t handle); 29 extern void AvdtStreamProcEvent(AvdtStreamCtrl *streamCtrl, uint8_t event, AvdtEventData *data); 30 extern void AvdtSigProcEvent(AvdtSigCtrl *sigCtrl, uint8_t event, AvdtEventData *data); 31 extern uint8_t AvdtCreateTransLabel(AvdtSigCtrl *sigCtrl); 32 extern uint16_t AvdtAssignSigHandle(void); 33 extern uint16_t AvdtAssignStreamHandle(void); 34 extern uint16_t AvdtCreateSequenceNo(AvdtStreamCtrl *avdtStreamCtrl); 35 extern AvdtStreamCtrl *AvdtGetStreamCtrlByHandle(uint16_t handle); 36 extern AvdtStreamCtrl *AvdtStreamCtrlAllocate(AvdtSigCtrl *sigCtrl, uint16_t codecIndex); 37 extern void AvdtStreamCtrlDeallocByHandle(AvdtSigCtrl *sigCtrl, uint16_t handle); 38 extern void AvdtStreamCtrlDeallocAll(AvdtSigCtrl *sigCtrl); 39 extern AvdtSigCtrl *AvdtGetSigCtrlByAddr(const BtAddr *bdAddr); 40 extern AvdtSigCtrl *AvdtGetSigCtrlByHandle(uint16_t handle); 41 extern AvdtSigCtrl *AvdtSigCtrlAllocate(const BtAddr *bdAddr, uint8_t role); 42 extern AvdtTransChannel *AvdtTransChTabAllocate(uint8_t type, AvdtSigCtrl *sigCtrl, AvdtStreamCtrl *streamCtrl); 43 extern AvdtTransChannel *AvdtGetTransChTabByLcid(uint16_t lcid); 44 extern AvdtTransChannel *AvdtGetTransChTabByAddr(const BtAddr *bdAddr, uint8_t type); 45 extern AvdtTransChannel *AvdtGetTransChTabByHandle(uint8_t type, uint16_t handle); 46 extern void AvdtCtrlEvtCallback( 47 AvdtSigCtrl *sigCtrl, uint16_t handle, const BtAddr *bdAddr, uint8_t event, const AvdtCtrlData *data, uint8_t role); 48 extern uint16_t AvdtCreateSEP(const BtAddr *bdAddr); 49 extern uint16_t AvdtCheckSepExited(uint16_t codecIndex); 50 extern uint16_t AvdtSepAlloc(AvdtStreamConfig *avdtStreamConfig); 51 extern AvdtStreamConfig *AvdtGetSepConfigByCodecIndex(uint16_t codecIndex); 52 extern uint16_t AvdtCheckSepIsUsed(AvdtSigCtrl *sigCtrl, uint16_t codecIndex); 53 extern uint8_t AvdtAsyncProcess(void (*callback)(void *context), void *context); 54 extern uint16_t AvdtGetMtu(void); 55 extern void AvdtRegister(const AvdtRegisterParam *reg); 56 extern uint16_t AvdtRegisterLocalSEP(AvdtStreamConfig *avdtStreamConfig, uint8_t number); 57 extern void AvdtIsEdr2MbMode(const BtAddr *bdAddr); 58 extern void AvdtIsEdr3MbMode(const BtAddr *bdAddr); 59 #endif /* AVDTP_CTRL_H */