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_L2CAP_H 17 #define AVDTP_L2CAP_H 18 19 #include "avdtp_int.h" 20 #include "gap_if.h" 21 #include "l2cap_if.h" 22 23 typedef struct { 24 uint16_t lcid; 25 uint8_t id; 26 L2capConnectionInfo info; 27 uint16_t psm; 28 void *ctx; 29 } AvdtL2capConnectIndCallbackTskParam; 30 31 typedef struct { 32 uint16_t lcid; 33 L2capConnectionInfo info; 34 uint16_t result; 35 uint16_t status; 36 void *ctx; 37 } AvdtL2capConnectCfmCallbackTskParam; 38 39 typedef struct { 40 uint16_t lcid; 41 uint8_t id; 42 L2capConfigInfo cfg; 43 void *ctx; 44 } AvdtL2capConfigIndCallbackTskParam; 45 46 typedef struct { 47 uint16_t lcid; 48 L2capConfigInfo cfg; 49 uint16_t result; 50 void *ctx; 51 } AvdtL2capConfigCfmCallbackTskParam; 52 53 typedef struct { 54 uint16_t lcid; 55 uint8_t id; 56 void *ctx; 57 } AvdtL2capDisconnectIndCallbackTskParam; 58 59 typedef struct { 60 uint16_t lcid; 61 void *ctx; 62 } AvdtL2capDisconnectCfmCallbackTskParam; 63 64 typedef struct { 65 uint16_t lcid; 66 Packet *packet; 67 void *ctx; 68 } AvdtL2capReadDataIndCallbackTskParam; 69 70 typedef struct { 71 uint16_t lcid; 72 uint8_t reason; 73 void *ctx; 74 } AvdtL2capDisconnectAbnormalCallbackTskParam; 75 76 typedef struct { 77 uint16_t result; 78 GapServiceSecurityInfo security; 79 void *context; 80 } AvdtRevSecurityCheckTskParam; 81 /** 82 * Callback function declaration 83 */ 84 void AVDT_L2capConnectIndCallback(uint16_t lcid, uint8_t id, const L2capConnectionInfo *info, uint16_t psm, void *ctx); 85 void AvdtL2capConnectIndCallbackTsk(void *context); 86 void AvdtL2capConnectIndCallback(uint16_t lcid, uint8_t id, const L2capConnectionInfo *info, uint16_t psm, void *ctx); 87 void AVDT_L2capConnectCfmCallback( 88 uint16_t lcid, const L2capConnectionInfo *info, uint16_t result, uint16_t status, void *ctx); 89 void AvdtL2capConnectCfmCallbackTsk(void *context); 90 void AvdtL2capConnectCfmCallback( 91 uint16_t lcid, const L2capConnectionInfo *info, uint16_t result, uint16_t status, void *ctx); 92 void AVDT_L2capConfigIndCallback(uint16_t lcid, uint8_t id, const L2capConfigInfo *cfg, void *ctx); 93 void AvdtL2capConfigIndCallbackTsk(void *context); 94 void AvdtL2capConfigIndCallback(uint16_t lcid, uint8_t id, const L2capConfigInfo *cfg, void *ctx); 95 void AVDT_L2capConfigCfmCallback(uint16_t lcid, const L2capConfigInfo *cfg, uint16_t result, void *ctx); 96 void AvdtL2capConfigCfmCallbackTsk(void *context); 97 void AvdtL2capConfigCfmCallback(uint16_t lcid, const L2capConfigInfo *cfg, uint16_t result, void *ctx); 98 void AVDT_L2capDisconnectIndCallback(uint16_t lcid, uint8_t id, void *ctx); 99 void AvdtL2capDisconnectIndCallbackTsk(void *context); 100 void AvdtL2capDisconnectIndCallback(uint16_t lcid, uint8_t id, void *ctx); 101 void AVDT_L2capDisconnectCfmCallback(uint16_t lcid, void *ctx); 102 void AvdtL2capDisconnectCfmCallbackTsk(void *context); 103 void AvdtL2capDisconnectCfmCallback(uint16_t lcid, void *ctx); 104 void AVDT_L2capDisconnectAbnormalCallback(uint16_t lcid, uint8_t reason, void *ctx); 105 void AvdtL2capDisconnectAbnormalCallbackTsk(void *context); 106 void AvdtL2capDisconnectAbnormalCallback(uint16_t lcid, uint8_t reason, void *ctx); 107 void AVDT_L2capReadDataIndCallback(uint16_t lcid, Packet *packet, void *ctx); 108 void AvdtL2capReadDataIndCallbackTsk(void *context); 109 void AvdtL2capReadDataIndCallback(uint16_t lcid, Packet *packet, void *ctx); 110 void AVDT_L2capRemoteBusyCallback(uint16_t lcid, uint8_t isBusy, void *ctx); 111 void AvdtRevSecurityCheckCallback(uint16_t result, GapServiceSecurityInfo security, void *context); 112 void AvdtRevSecurityCheckTsk(void *context); 113 114 /** 115 * Inner function declaration 116 */ 117 void AvdtRevSecurityCheck(uint16_t result, GapServiceSecurityInfo security, void *context); 118 void AvdtConfigureConfirm(AvdtTransChannel *transTable); 119 void AvdtConfigureIndication(uint16_t lcid, uint8_t id, const L2capConfigInfo *cfg, AvdtTransChannel *transTable); 120 void AvdtConnectConfirmError(const AvdtTransChannel *transTable); 121 void AvdtConnectSignalingIndication(uint16_t lcid, uint8_t id, const L2capConnectionInfo *info); 122 void AvdtConnectStreamIndication(uint16_t lcid, uint8_t id, const L2capConnectionInfo *info, AvdtSigCtrl *sigCtrl); 123 void AvdtStreamDataProc(AvdtStreamCtrl *streamCtrl, Packet *packet); 124 void AvdtConfigComplete(AvdtTransChannel *transTable); 125 void AvdtL2capDisconnectAbnormalSignle(const AvdtTransChannel *transTable, uint8_t reason); 126 void AvdtL2capDisconnectAbnormalStream(const AvdtTransChannel *transTable, uint8_t reason); 127 128 extern const L2capService G_AVDT_L2C_APPL; 129 130 #endif /* AVDTP_L2CAP_H */