diff options
Diffstat (limited to 'btif/src/btif_mcap.c')
-rw-r--r-- | btif/src/btif_mcap.c | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/btif/src/btif_mcap.c b/btif/src/btif_mcap.c new file mode 100644 index 000000000..343439f2f --- /dev/null +++ b/btif/src/btif_mcap.c @@ -0,0 +1,221 @@ +/* + *Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the followin conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the followin disclaimer. + * * Redistributions in binary form must reproduce the above copyriht + * notice, this list of conditions and the followin disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of The Linux Foundation nor + * the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +#include <hardware/bluetooth.h> + + +#define LOG_NDDEBUG 0 +#define LOG_TAG "bluedroid" + +#include "gki.h" +#include "btif_api.h" +#include "bt_utils.h" +#include "bt_testapp.h" +#include "btm_api.h" +#include "btu.h" +#include "btm_api.h" +#include "mca_api.h" + +#ifdef TEST_APP_INTERFACE + +static void McaInit(void) +{ + MCA_Init(); +} + +static tMCA_HANDLE McaRegister(tMCA_REG *p_reg, tMCA_CTRL_CBACK *p_cback) +{ + tMCA_HANDLE Ret = 0; + BTM_SetConnectability (1, 0, 0); + Ret = MCA_Register(p_reg, p_cback); + ALOGI("McaRegister"); + return Ret; +} + +static void Mca_Deregister(tMCA_HANDLE handle) +{ + MCA_Deregister(handle); + ALOGI("McaRegister"); +} + +static tMCA_RESULT Mca_CreateDep(tMCA_HANDLE handle, tMCA_DEP *p_dep, tMCA_CS *p_cs) +{ + tMCA_RESULT Ret = 0; + ALOGI("Mca_CreateDep Enter"); + Ret = MCA_CreateDep(handle, p_dep, p_cs); + ALOGI("Mca_CreateDep Exit"); + return Ret; +} + +static tMCA_RESULT Mca_DeleteDep(tMCA_HANDLE handle, tMCA_DEP dep) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_DeleteDep(handle, dep); + ALOGI("MCA_DeleteDep Exit"); + return Ret; +} + + +static tMCA_RESULT Mca_ConnectReq(tMCA_HANDLE handle, BD_ADDR bd_addr, UINT16 ctrl_psm, UINT16 sec_mask) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_ConnectReq(handle, bd_addr, ctrl_psm, sec_mask); + ALOGI("MCA_ConnectReq"); + return Ret; +} + +static tMCA_RESULT Mca_DisconnectReq(tMCA_CL mcl) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_DisconnectReq(mcl); + ALOGI("Mca_DisconnectReq"); + return Ret; +} + + +static tMCA_RESULT Mca_CreateMdl(tMCA_CL mcl, tMCA_DEP dep, UINT16 data_psm, + UINT16 mdl_id, UINT8 peer_dep_id, + UINT8 cfg, const tMCA_CHNL_CFG *p_chnl_cfg) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_CreateMdl(mcl, dep, data_psm, mdl_id, peer_dep_id, cfg, p_chnl_cfg); + ALOGI("MCA_CreateMdl"); + return Ret; +} + + +static tMCA_RESULT Mca_CreateMdlRsp(tMCA_CL mcl, tMCA_DEP dep, UINT16 mdl_id, UINT8 cfg, UINT8 rsp_code, const tMCA_CHNL_CFG *p_chnl_cfg) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_CreateMdlRsp(mcl, dep, mdl_id, cfg, rsp_code, p_chnl_cfg); + ALOGI("Mca_CreateMdlRsp"); + return Ret; +} + + +static tMCA_RESULT Mca_CloseReq(tMCA_DL mdl) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_CloseReq(mdl); + ALOGI("Mca_CloseReq"); + return Ret; +} + +static tMCA_RESULT Mca_ReconnectMdl(tMCA_CL mcl, tMCA_DEP dep, UINT16 data_psm, UINT16 mdl_id, const tMCA_CHNL_CFG *p_chnl_cfg) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_ReconnectMdl(mcl, dep, data_psm, mdl_id, p_chnl_cfg); + ALOGI("Mca_ReconnectMdl"); + return Ret; +} + +static tMCA_RESULT Mca_ReconnectMdlRsp(tMCA_CL mcl, tMCA_DEP dep, UINT16 mdl_id, UINT8 rsp_code, const tMCA_CHNL_CFG *p_chnl_cfg) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_ReconnectMdlRsp(mcl, dep, mdl_id, rsp_code, p_chnl_cfg); + ALOGI("Mca_ReconnectMdl"); + return Ret; +} + +static tMCA_RESULT Mca_DataChnlCfg(tMCA_CL mcl, const tMCA_CHNL_CFG *p_chnl_cfg) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_DataChnlCfg(mcl, p_chnl_cfg); + ALOGI("Mca_DataChnlCfg"); + return Ret; +} + +static tMCA_RESULT Mca_Abort(tMCA_CL mcl) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_Abort(mcl); + ALOGI("MCA_Abort"); + return Ret; +} + + +static tMCA_RESULT Mca_Delete(tMCA_CL mcl, UINT16 mdl_id) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_Delete(mcl, mdl_id); + ALOGI("Mca_Delete"); + return Ret; +} + +static tMCA_RESULT Mca_WriteReq(tMCA_DL mdl, BT_HDR *p_pkt) +{ + tMCA_RESULT Ret = 0; + Ret = MCA_WriteReq(mdl, p_pkt); + ALOGI("Mca_Delete"); + return Ret; +} + +static UINT16 Mca_GetL2CapChannel (tMCA_DL mdl) +{ + UINT16 Ret = 0; + Ret = MCA_GetL2CapChannel(mdl); + ALOGI("Mca_GetL2CapChannel"); + return Ret; +} + +static const btmcap_interface_t btmcaInterface = { + sizeof(btmcap_interface_t), + McaInit, + McaRegister, + Mca_Deregister, + Mca_CreateDep, + Mca_DeleteDep, + Mca_ConnectReq, + Mca_DisconnectReq, + Mca_CreateMdl, + Mca_CreateMdlRsp, + Mca_CloseReq, + Mca_ReconnectMdl, + Mca_ReconnectMdlRsp, + Mca_DataChnlCfg, + Mca_Abort, + Mca_Delete, + Mca_WriteReq, + Mca_GetL2CapChannel +}; + + +const btmcap_interface_t *btif_mcap_get_interface(void) +{ + //BTIF_TRACE_EVENT1("%s", __FUNCTION__); + //printf("\n%s\n", __FUNCTION__); + return &btmcaInterface; +} + + +#endif |