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_API_H 17 #define AVDTP_API_H 18 19 #include "avdtp_int.h" 20 #include "event.h" 21 22 typedef struct { 23 const AvdtRegisterParam *reg; 24 Event *event; 25 } AvdtRegisterTskParam; 26 27 typedef struct { 28 const BtAddr *bdAddr; 29 uint16_t *handle; 30 uint16_t codecIndex; 31 Event *event; 32 uint16_t ret; 33 } AvdtCreateStreamTskParam; 34 35 typedef struct { 36 AvdtStreamConfig *avdtStreamConfig; 37 uint8_t number; 38 Event *event; 39 uint16_t ret; 40 } AvdtRegisterLocalSEPTskParam; 41 42 typedef struct { 43 const BtAddr *bdAddr; 44 uint8_t maxSeps; 45 uint8_t *transLabel; 46 Event *event; 47 uint16_t ret; 48 } AvdtDiscoverReqTskParam; 49 50 typedef struct { 51 const BtAddr *bdAddr; 52 uint8_t acpSeid; 53 uint8_t *transLabel; 54 Event *event; 55 uint16_t ret; 56 } AvdtGetCapReqTskParam; 57 58 typedef struct { 59 const BtAddr *bdAddr; 60 uint8_t transLabel; 61 uint8_t errCode; 62 AvdtSepConfig *sepCap; 63 Event *event; 64 uint16_t ret; 65 } AvdtGetCapRspTskParam; 66 67 typedef struct { 68 const BtAddr *bdAddr; 69 uint8_t acpSeid; 70 uint8_t *transLabel; 71 Event *event; 72 uint16_t ret; 73 } AvdtGetAllCapReqTskParam; 74 75 typedef struct { 76 const BtAddr *bdAddr; 77 uint8_t transLabel; 78 uint8_t errCode; 79 AvdtSepConfig *sepCap; 80 Event *event; 81 uint16_t ret; 82 } AvdtGetAllCapRspTskParam; 83 84 typedef struct { 85 uint16_t handle; 86 uint8_t *transLabel; 87 uint16_t delayValue; 88 Event *event; 89 uint16_t ret; 90 } AvdtDelayReqTskParam; 91 92 typedef struct { 93 uint16_t handle; 94 uint8_t transLabel; 95 uint8_t errCode; 96 Event *event; 97 uint16_t ret; 98 } AvdtDelayRspTskParam; 99 100 typedef struct { 101 uint16_t handle; 102 uint8_t *transLabel; 103 Event *event; 104 uint16_t ret; 105 } AvdtOpenReqTskParam; 106 107 typedef struct { 108 uint16_t handle; 109 uint8_t seid; 110 AvdtSepConfig *sepConfig; 111 uint8_t *transLabel; 112 Event *event; 113 uint16_t ret; 114 } AvdtSetConfigReqTskParam; 115 116 typedef struct { 117 uint16_t handle; 118 uint8_t transLabel; 119 AvdtCatetory category; 120 Event *event; 121 uint16_t ret; 122 } AvdtSetConfigRspTskParam; 123 124 typedef struct { 125 uint16_t handle; 126 uint8_t *transLabel; 127 Event *event; 128 uint16_t ret; 129 } AvdtGetConfigReqTskParam; 130 131 typedef struct { 132 const uint16_t *handles; 133 uint8_t numHandles; 134 uint8_t *transLabel; 135 Event *event; 136 uint16_t ret; 137 } AvdtStartReqTskParam; 138 139 typedef struct { 140 uint16_t firstHandle; 141 uint8_t transLabel; 142 uint16_t firstFailHandle; 143 uint8_t errCode; 144 Event *event; 145 uint16_t ret; 146 } AvdtStartRspTskParam; 147 148 typedef struct { 149 const uint16_t *handles; 150 uint8_t numHandles; 151 uint8_t *transLabel; 152 Event *event; 153 uint16_t ret; 154 } AvdtSuspendReqTskParam; 155 156 typedef struct { 157 uint16_t firstHandle; 158 uint8_t transLabel; 159 uint16_t firstFailHandle; 160 uint8_t errCode; 161 Event *event; 162 uint16_t ret; 163 } AvdtSuspendRspTskParam; 164 165 typedef struct { 166 uint16_t handle; 167 Event *event; 168 uint16_t ret; 169 } AvdtCloseReqTskParam; 170 171 typedef struct { 172 uint16_t handle; 173 uint8_t transLabel; 174 uint8_t errCode; 175 Event *event; 176 uint16_t ret; 177 } AvdtCloseRspTskParam; 178 179 typedef struct { 180 uint16_t handle; 181 uint8_t *transLabel; 182 Event *event; 183 uint16_t ret; 184 } AvdtAbortReqTskParam; 185 186 typedef struct { 187 uint16_t handle; 188 uint8_t transLabel; 189 uint8_t errCode; 190 Event *event; 191 uint16_t ret; 192 } AvdtAbortRspTskParam; 193 194 typedef struct { 195 uint16_t handle; 196 AvdtSepConfig *cfg; 197 uint8_t *transLabel; 198 Event *event; 199 uint16_t ret; 200 } AvdtReconfigReqTskParam; 201 202 typedef struct { 203 uint16_t handle; 204 uint8_t transLabel; 205 AvdtCatetory category; 206 Event *event; 207 uint16_t ret; 208 } AvdtReconfigRspTskParam; 209 210 typedef struct { 211 uint16_t handle; 212 Packet *pkt; 213 uint32_t timeStamp; 214 uint8_t payloadType; 215 uint16_t marker; 216 Event *event; 217 uint16_t ret; 218 } AvdtWriteReqTskParam; 219 220 typedef struct { 221 const BtAddr *bdAddr; 222 uint8_t role; 223 Event *event; 224 uint16_t ret; 225 } AvdtConnectReqTskParam; 226 227 typedef struct { 228 const BtAddr *bdAddr; 229 Event *event; 230 uint16_t ret; 231 } AvdtDisconnectReqTskParam; 232 233 void AvdtRegisterTsk(void *context); 234 void AvdtCreateStreamTsk(void *context); 235 void AvdtRegisterLocalSEPTsk(void *context); 236 void AvdtDiscoverReqTsk(void *context); 237 void AvdtGetCapReqTsk(void *context); 238 void AvdtGetCapRspTsk(void *context); 239 void AvdtGetAllCapReqTsk(void *context); 240 void AvdtGetAllCapRspTsk(void *context); 241 void AvdtDelayReqTsk(void *context); 242 void AvdtDelayRspTsk(void *context); 243 void AvdtOpenReqTsk(void *context); 244 void AvdtSetConfigReqTsk(void *context); 245 void AvdtSetConfigRspTsk(void *context); 246 void AvdtGetConfigReqTsk(void *context); 247 void AvdtStartReqTsk(void *context); 248 void AvdtStartRspTsk(void *context); 249 void AvdtSuspendReqTsk(void *context); 250 void AvdtSuspendRspTsk(void *context); 251 void AvdtCloseReqTsk(void *context); 252 void AvdtCloseRspTsk(void *context); 253 void AvdtAbortReqTsk(void *context); 254 void AvdtAbortRspTsk(void *context); 255 void AvdtReconfigReqTsk(void *context); 256 void AvdtReconfigRspTsk(void *context); 257 void AvdtWriteReqTsk(void *context); 258 void AvdtConnectReqTsk(void *context); 259 void AvdtDisconnectReqTsk(void *context); 260 261 extern uint16_t AvdtCreateStream(const BtAddr *bdAddr, uint16_t *handle, uint16_t codecIndex); 262 extern uint16_t AvdtDiscoverReq(const BtAddr *bdAddr, uint8_t maxSeps, uint8_t *transLabel); 263 extern uint16_t AvdtGetCapReq(const BtAddr *bdAddr, uint8_t acpSeid, uint8_t *transLabel); 264 extern uint16_t AvdtGetCapRsp(const BtAddr *bdAddr, uint8_t transLabel, uint8_t errCode, AvdtSepConfig *sepCap); 265 extern uint16_t AvdtGetAllCapReq(const BtAddr *bdAddr, uint8_t acpSeid, uint8_t *transLabel); 266 extern uint16_t AvdtGetAllCapRsp(const BtAddr *bdAddr, uint8_t transLabel, uint8_t errCode, AvdtSepConfig *sepCap); 267 extern uint16_t AvdtDelayReq(uint16_t handle, uint8_t *transLabel, uint16_t delayValue); 268 extern uint16_t AvdtDelayRsp(uint16_t handle, uint8_t transLabel, uint8_t errCode); 269 extern uint16_t AvdtOpenReq(uint16_t handle, uint8_t *transLabel); 270 extern uint16_t AvdtSetConfigReq(uint16_t handle, uint8_t seid, AvdtSepConfig *sepConfig, uint8_t *transLabel); 271 extern uint16_t AvdtSetConfigRsp(uint16_t handle, uint8_t transLabel, AvdtCatetory category); 272 extern uint16_t AvdtGetConfigReq(uint16_t handle, uint8_t *transLabel); 273 extern uint16_t AvdtStartReq(const uint16_t *handles, uint8_t numHandles, uint8_t *transLabel); 274 extern uint16_t AvdtStartRsp(uint16_t firstHandle, uint8_t transLabel, uint16_t firstFailHandle, uint8_t errCode); 275 extern uint16_t AvdtSuspendReq(const uint16_t *handles, uint8_t numHandles, uint8_t *transLabel); 276 extern uint16_t AvdtSuspendRsp(uint16_t firstHandle, uint8_t transLabel, uint16_t firstFailHandle, uint8_t errCode); 277 extern uint16_t AvdtCloseReq(uint16_t handle); 278 extern uint16_t AvdtCloseRsp(uint16_t handle, uint8_t transLabel, uint8_t errCode); 279 extern uint16_t AvdtAbortReq(uint16_t handle, uint8_t *transLabel); 280 extern uint16_t AvdtAbortRsp(uint16_t handle, uint8_t transLabel, uint8_t errCode); 281 extern uint16_t AvdtReconfigReq(uint16_t handle, AvdtSepConfig *cfg, uint8_t *transLabel); 282 extern uint16_t AvdtReconfigRsp(uint16_t handle, uint8_t transLabel, AvdtCatetory category); 283 extern uint16_t AvdtWriteReq(uint16_t handle, Packet *pkt, uint32_t timeStamp, uint8_t payloadType, uint16_t marker); 284 extern uint16_t AvdtConnectReq(const BtAddr *bdAddr, uint8_t role); 285 extern uint16_t AvdtDisconnectReq(const BtAddr *bdAddr); 286 287 #endif /* AVDTP_API_H */