1 /* 2 * Copyright (C) 2021-2022 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_IMPL_H 17 #define AVDTP_IMPL_H 18 19 #include "avdtp_int.h" 20 #include "gap_if.h" 21 22 typedef struct { 23 uint16_t result; 24 GapServiceSecurityInfo security; 25 void *context; 26 } AvdtSecurityCheckTskParam; 27 28 typedef struct { 29 BtAddr addr; 30 uint16_t lcid; 31 int result; 32 void *context; 33 } AvdtSignalConnectReqTskParam; 34 35 typedef struct { 36 BtAddr addr; 37 uint16_t lcid; 38 int result; 39 void *context; 40 } AvdtStreamConnectReqTskParam; 41 42 typedef struct { 43 uint16_t lcid; 44 int result; 45 } AvdtStreamSendDataTskParam; 46 47 /* Signal action functions */ 48 extern uint16_t AvdtActConnReq(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 49 extern uint16_t AvdtActConnRsp(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 50 extern uint16_t AvdtActConnInd(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 51 extern uint16_t AvdtActConnCfm(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 52 extern uint16_t AvdtActDisconnReq(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 53 extern uint16_t AvdtActDisconnRsp(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 54 extern uint16_t AvdtActDisconnInd(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 55 extern uint16_t AvdtActDisconnCfm(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 56 extern uint16_t AvdtActDiscoverReq(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 57 extern uint16_t AvdtActDiscoverRsp(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 58 extern uint16_t AvdtActDiscoverInd(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 59 extern uint16_t AvdtActDiscoverCfm(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 60 extern uint16_t AvdtActGetCapReq(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 61 extern uint16_t AvdtActGetCapRsp(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 62 extern uint16_t AvdtActGetCapInd(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 63 extern uint16_t AvdtActGetCapCfm(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 64 extern uint16_t AvdtActGetAllCapReq(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 65 extern uint16_t AvdtActGetAllCapRsp(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 66 extern uint16_t AvdtActGetAllCapInd(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 67 extern uint16_t AvdtActGetAllCapCfm(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 68 extern uint16_t AvdtActSndMsg(AvdtSigCtrl *sigCtrl, const AvdtEventData *data); 69 /* Stream action functions */ 70 extern uint16_t AvdtActStreamOpenReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 71 extern uint16_t AvdtActStreamOpenRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 72 extern uint16_t AvdtActStreamOpenInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 73 extern uint16_t AvdtActStreamOpenCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 74 extern uint16_t AvdtActStreamCloseReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 75 extern uint16_t AvdtActStreamCloseRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 76 extern uint16_t AvdtActStreamCloseInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 77 extern uint16_t AvdtActStreamCloseCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 78 extern uint16_t AvdtActSetConfigReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 79 extern uint16_t AvdtActSetConfigRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 80 extern uint16_t AvdtActSetConfigInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 81 extern uint16_t AvdtActSetConfigCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 82 extern uint16_t AvdtActGetConfigReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 83 extern uint16_t AvdtActGetConfigRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 84 extern uint16_t AvdtActGetConfigInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 85 extern uint16_t AvdtActGetConfigCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 86 extern uint16_t AvdtActReconfigReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 87 extern uint16_t AvdtActReconfigRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 88 extern uint16_t AvdtActReconfigInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 89 extern uint16_t AvdtActReconfigCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 90 extern uint16_t AvdtActOpenReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 91 extern uint16_t AvdtActOpenRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 92 extern uint16_t AvdtActOpenInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 93 extern uint16_t AvdtActOpenCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 94 extern uint16_t AvdtActStartReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 95 extern uint16_t AvdtActStartRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 96 extern uint16_t AvdtActStartInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 97 extern uint16_t AvdtActStartCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 98 extern uint16_t AvdtActCloseReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 99 extern uint16_t AvdtActCloseRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 100 extern uint16_t AvdtActCloseInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 101 extern uint16_t AvdtActCloseCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 102 extern uint16_t AvdtActSuspendReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 103 extern uint16_t AvdtActSuspendRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 104 extern uint16_t AvdtActSuspendInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 105 extern uint16_t AvdtActSuspendCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 106 extern uint16_t AvdtActDelayRptReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 107 extern uint16_t AvdtActDelayRptRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 108 extern uint16_t AvdtActDelayRptInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 109 extern uint16_t AvdtActDelayRptCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 110 extern uint16_t AvdtActAbortReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 111 extern uint16_t AvdtActAbortRsp(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 112 extern uint16_t AvdtActAbortInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 113 extern uint16_t AvdtActAbortCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 114 extern uint16_t AvdtActWriteReq(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 115 extern uint16_t AvdtActWriteCfm(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 116 extern uint16_t AvdtActReadInd(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 117 extern uint16_t AvdtActBadStateRej(AvdtStreamCtrl *streamCtrl, AvdtEventData *data); 118 119 /** 120 * Inner function declaration 121 */ 122 void AvdtSecurityCheckCallback(uint16_t result, GapServiceSecurityInfo security, void *context); 123 void AvdtSecurityCheckTsk(void *context); 124 void AvdtSecurityCheck(uint16_t result, GapServiceSecurityInfo security, void *context); 125 void AvdtSignalConnectReqCallback(const BtAddr *addr, uint16_t lcid, int result, void *context); 126 void AvdtSignalConnectReqTsk(void *context); 127 void AvdtSignalConnectReq(const BtAddr *addr, uint16_t lcid, int result, void *context); 128 void AvdtStreamConnectReqCallback(const BtAddr *addr, uint16_t lcid, int result, void *context); 129 void AvdtStreamConnectReqTsk(void *context); 130 void AvdtStreamConnectReq(const BtAddr *addr, uint16_t lcid, int result, void *context); 131 void AvdtStreamSendDataCallback(uint16_t lcid, int result); 132 void AvdtStreamSendDataTsk(void *context); 133 void AvdtStreamSendData(uint16_t lcid, int result); 134 AvdtSepConfig AvdtGetSepConfig(AvdtSigCtrl *sigCtrl, uint16_t handle); 135 AvdtSepConfig AvdtGetConfig(AvdtSigCtrl *sigCtrl, uint16_t handle); 136 #endif /* AVDTP_IMPL_H */