From 354e7d84fdaeaf7bc5b25e85adde8cdd68344a3e Mon Sep 17 00:00:00 2001 From: yellows8 Date: Mon, 27 Jul 2020 02:02:34 -0400 Subject: [PATCH] btdrv: Added btdrvTriggerConnection. --- nx/include/switch/services/btdrv.h | 10 +++++++++- nx/source/services/btdrv.c | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/nx/include/switch/services/btdrv.h b/nx/include/switch/services/btdrv.h index 23f8be92..107d50bf 100644 --- a/nx/include/switch/services/btdrv.h +++ b/nx/include/switch/services/btdrv.h @@ -313,12 +313,20 @@ Result btdrvSetHidReport(BtdrvAddress addr, u32 type, BtdrvHidReport *buffer); */ Result btdrvGetHidReport(BtdrvAddress addr, u8 unk, u32 type); +/** + * @brief TriggerConnection + * @note This is used by btm-sysmodule. + * @param[in] addr \ref BtdrvAddress + * @param[in] unk [9.0.0+] Unknown + */ +Result btdrvTriggerConnection(BtdrvAddress addr, u16 unk); + /** * @brief GetHidEventInfo * @note This is used by btm-sysmodule. * @param[out] buffer Output buffer. 0x480-bytes from state is written here. * @param[in] size Output buffer size. - * @oaram[out] type \ref BtdrvHidEventType, always ::BtdrvHidEventType_Unknown0 or ::BtdrvHidEventType_Unknown7. + * @param[out] type \ref BtdrvHidEventType, always ::BtdrvHidEventType_Unknown0 or ::BtdrvHidEventType_Unknown7. */ Result btdrvGetHidEventInfo(void* buffer, size_t size, BtdrvHidEventType *type); diff --git a/nx/source/services/btdrv.c b/nx/source/services/btdrv.c index d1039f2f..ada603b6 100644 --- a/nx/source/services/btdrv.c +++ b/nx/source/services/btdrv.c @@ -174,6 +174,17 @@ Result btdrvGetHidReport(BtdrvAddress addr, u8 unk, u32 type) { return serviceDispatchIn(&g_btdrvSrv, 22, in); } +Result btdrvTriggerConnection(BtdrvAddress addr, u16 unk) { + if (hosversionBefore(9,0,0)) return _btdrvCmdInAddrNoOut(addr, 23); + + const struct { + BtdrvAddress addr; + u16 unk; + } in = { addr, unk }; + + return serviceDispatchIn(&g_btdrvSrv, 23, in); +} + Result btdrvGetHidEventInfo(void* buffer, size_t size, BtdrvHidEventType *type) { u32 tmp=0; Result rc = _btdrvCmdOutU32OutBuf(buffer, size, &tmp, 27);