mirror of
https://github.com/switchbrew/libnx.git
synced 2025-08-07 00:29:23 +02:00
btdrv: Added/updated structs/enums for events, etc.
This commit is contained in:
parent
5057a1912e
commit
d813bef54b
@ -66,7 +66,7 @@ typedef struct {
|
|||||||
};
|
};
|
||||||
} BtdrvEventInfo;
|
} BtdrvEventInfo;
|
||||||
|
|
||||||
/// Data for \ref btdrvGetHidReportEventInfo / \ref btdrvGetHidEventInfo. The data stored here depends on the \ref BtdrvHidEventType.
|
/// Data for \ref btdrvGetHidEventInfo. The data stored here depends on the \ref BtdrvHidEventType.
|
||||||
typedef struct {
|
typedef struct {
|
||||||
union {
|
union {
|
||||||
u8 data[0x480]; ///< Raw data.
|
u8 data[0x480]; ///< Raw data.
|
||||||
@ -77,6 +77,58 @@ typedef struct {
|
|||||||
u32 status; ///< Status: 0 = hid connection opened, 2 = hid connection closed, 8 = failed to open hid connection.
|
u32 status; ///< Status: 0 = hid connection opened, 2 = hid connection closed, 8 = failed to open hid connection.
|
||||||
} connection; ///< ::BtdrvHidEventType_Connection
|
} connection; ///< ::BtdrvHidEventType_Connection
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u32 type; ///< \ref BtdrvExtEventType, controls which data is stored below.
|
||||||
|
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
u32 status; ///< 0 for success, non-zero for error.
|
||||||
|
BtdrvAddress addr; ///< Device address.
|
||||||
|
} set_tsi; ///< ::BtdrvExtEventType_SetTsi
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u32 status; ///< 0 for success, non-zero for error.
|
||||||
|
BtdrvAddress addr; ///< Device address.
|
||||||
|
} exit_tsi; ///< ::BtdrvExtEventType_ExitTsi
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u32 status; ///< 0 for success, non-zero for error.
|
||||||
|
BtdrvAddress addr; ///< Device address.
|
||||||
|
} set_burst_mode; ///< ::BtdrvExtEventType_SetBurstMode
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u32 status; ///< 0 for success, non-zero for error.
|
||||||
|
BtdrvAddress addr; ///< Device address.
|
||||||
|
} exit_burst_mode; ///< ::BtdrvExtEventType_ExitBurstMode
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u32 status; ///< 0 for success, non-zero for error.
|
||||||
|
BtdrvAddress addr; ///< Device address.
|
||||||
|
u8 pad[2]; ///< Padding
|
||||||
|
u8 flag; ///< Flag
|
||||||
|
} set_zero_retransmission; ///< ::BtdrvExtEventType_SetZeroRetransmission
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u32 status; ///< 0 for success, non-zero for error.
|
||||||
|
BtdrvAddress addr; ///< Unused
|
||||||
|
u8 pad[2]; ///< Padding
|
||||||
|
u32 count; ///< Count value.
|
||||||
|
} pending_connections; ///< ::BtdrvExtEventType_PendingConnections
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u32 status; ///< 0 for success, non-zero for error.
|
||||||
|
BtdrvAddress addr; ///< Device address.
|
||||||
|
} move_to_secondary_piconet; ///< ::BtdrvExtEventType_MoveToSecondaryPiconet
|
||||||
|
};
|
||||||
|
} ext; ///< ::BtdrvHidEventType_Ext
|
||||||
|
};
|
||||||
|
} BtdrvHidEventInfo;
|
||||||
|
|
||||||
|
/// Data for \ref btdrvGetHidReportEventInfo. The data stored here depends on the \ref BtdrvHidEventType.
|
||||||
|
typedef struct {
|
||||||
|
union {
|
||||||
|
u8 data[0x480]; ///< Raw data.
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
u32 unk_x0; ///< Always 0.
|
u32 unk_x0; ///< Always 0.
|
||||||
u8 unk_x4; ///< Always 0.
|
u8 unk_x4; ///< Always 0.
|
||||||
@ -86,51 +138,6 @@ typedef struct {
|
|||||||
u8 data[]; ///< Data.
|
u8 data[]; ///< Data.
|
||||||
} data_report; ///< ::BtdrvHidEventType_Data
|
} data_report; ///< ::BtdrvHidEventType_Data
|
||||||
|
|
||||||
struct {
|
|
||||||
u32 type;
|
|
||||||
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
u32 status; ///< 0 for success, non-zero for error.
|
|
||||||
BtdrvAddress addr; ///< Device address.
|
|
||||||
} type0;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
u32 status; ///< 0 for success, non-zero for error.
|
|
||||||
BtdrvAddress addr; ///< Device address.
|
|
||||||
} type1;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
u32 status; ///< 0 for success, non-zero for error.
|
|
||||||
BtdrvAddress addr; ///< Device address.
|
|
||||||
} type2;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
u32 status; ///< 0 for success, non-zero for error.
|
|
||||||
BtdrvAddress addr; ///< Device address.
|
|
||||||
} type3;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
u32 status; ///< 0 for success, non-zero for error.
|
|
||||||
BtdrvAddress addr; ///< Device address.
|
|
||||||
u8 pad[2]; ///< Padding
|
|
||||||
u8 flag; ///< Flag
|
|
||||||
} type4;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
u32 status; ///< 0 for success, non-zero for error.
|
|
||||||
BtdrvAddress addr; ///< Unused
|
|
||||||
u8 pad[2]; ///< Padding
|
|
||||||
u32 count; ///< Count value.
|
|
||||||
} pending_connections; ///< type5
|
|
||||||
|
|
||||||
struct {
|
|
||||||
u32 status; ///< 0 for success, non-zero for error.
|
|
||||||
BtdrvAddress addr; ///< Device address.
|
|
||||||
} type6;
|
|
||||||
};
|
|
||||||
} type7; ///< ::BtdrvHidEventType_Unknown7
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
union {
|
union {
|
||||||
u8 data[0xC]; ///< Raw data.
|
u8 data[0xC]; ///< Raw data.
|
||||||
@ -434,30 +441,33 @@ Result btdrvFinalizeHid(void);
|
|||||||
/**
|
/**
|
||||||
* @brief GetHidEventInfo
|
* @brief GetHidEventInfo
|
||||||
* @note This is used by btm-sysmodule.
|
* @note This is used by btm-sysmodule.
|
||||||
* @param[out] buffer Output buffer, see \ref BtdrvHidReportEventInfo.
|
* @param[out] buffer Output buffer, see \ref BtdrvHidEventInfo.
|
||||||
* @param[in] size Output buffer size.
|
* @param[in] size Output buffer size.
|
||||||
* @param[out] type \ref BtdrvHidEventType, always ::BtdrvHidEventType_Connection or ::BtdrvHidEventType_Unknown7.
|
* @param[out] type \ref BtdrvHidEventType, always ::BtdrvHidEventType_Connection or ::BtdrvHidEventType_Ext.
|
||||||
*/
|
*/
|
||||||
Result btdrvGetHidEventInfo(void* buffer, size_t size, BtdrvHidEventType *type);
|
Result btdrvGetHidEventInfo(void* buffer, size_t size, BtdrvHidEventType *type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief SetTsi
|
* @brief SetTsi
|
||||||
|
* @note The response will be available via \ref btdrvGetHidEventInfo.
|
||||||
* @note This is used by btm-sysmodule.
|
* @note This is used by btm-sysmodule.
|
||||||
* @param[in] addr \ref BtdrvAddress
|
* @param[in] addr \ref BtdrvAddress
|
||||||
* @param[in] unk Unknown
|
* @param[in] tsi Tsi: non-value-0xFF to Set, value 0xFF to Exit.
|
||||||
*/
|
*/
|
||||||
Result btdrvSetTsi(BtdrvAddress addr, u8 unk);
|
Result btdrvSetTsi(BtdrvAddress addr, u8 tsi);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief EnableBurstMode
|
* @brief EnableBurstMode
|
||||||
|
* @note The response will be available via \ref btdrvGetHidEventInfo.
|
||||||
* @note This is used by btm-sysmodule.
|
* @note This is used by btm-sysmodule.
|
||||||
* @param[in] addr \ref BtdrvAddress
|
* @param[in] addr \ref BtdrvAddress
|
||||||
* @param[in] flag Flag
|
* @param[in] flag Flag: true = Set, false = Exit.
|
||||||
*/
|
*/
|
||||||
Result btdrvEnableBurstMode(BtdrvAddress addr, bool flag);
|
Result btdrvEnableBurstMode(BtdrvAddress addr, bool flag);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief SetZeroRetransmission
|
* @brief SetZeroRetransmission
|
||||||
|
* @note The response will be available via \ref btdrvGetHidEventInfo.
|
||||||
* @note This is used by btm-sysmodule.
|
* @note This is used by btm-sysmodule.
|
||||||
* @param[in] addr \ref BtdrvAddress
|
* @param[in] addr \ref BtdrvAddress
|
||||||
* @param[in] report_ids Input buffer containing an array of u8s.
|
* @param[in] report_ids Input buffer containing an array of u8s.
|
||||||
@ -1065,6 +1075,7 @@ Result btdrvSetBleScanParameter(u16 unk0, u16 unk1);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief MoveToSecondaryPiconet
|
* @brief MoveToSecondaryPiconet
|
||||||
|
* @note The response will be available via \ref btdrvGetHidEventInfo.
|
||||||
* @note Only available on [10.0.0+].
|
* @note Only available on [10.0.0+].
|
||||||
* @param[in] addr \ref BtdrvAddress
|
* @param[in] addr \ref BtdrvAddress
|
||||||
*/
|
*/
|
||||||
|
@ -34,6 +34,17 @@ typedef enum {
|
|||||||
BtdrvConnectionEventType_Suspended = 2, ///< ACL Link is now Suspended.
|
BtdrvConnectionEventType_Suspended = 2, ///< ACL Link is now Suspended.
|
||||||
} BtdrvConnectionEventType;
|
} BtdrvConnectionEventType;
|
||||||
|
|
||||||
|
/// ExtEventType
|
||||||
|
typedef enum {
|
||||||
|
BtdrvExtEventType_SetTsi = 0, ///< SetTsi (\ref btdrvSetTsi)
|
||||||
|
BtdrvExtEventType_ExitTsi = 1, ///< ExitTsi (\ref btdrvSetTsi)
|
||||||
|
BtdrvExtEventType_SetBurstMode = 2, ///< SetBurstMode (\ref btdrvEnableBurstMode)
|
||||||
|
BtdrvExtEventType_ExitBurstMode = 3, ///< ExitBurstMode (\ref btdrvEnableBurstMode)
|
||||||
|
BtdrvExtEventType_SetZeroRetransmission = 4, ///< \ref btdrvSetZeroRetransmission
|
||||||
|
BtdrvExtEventType_PendingConnections = 5, ///< \ref btdrvGetPendingConnections
|
||||||
|
BtdrvExtEventType_MoveToSecondaryPiconet = 6, ///< \ref btdrvMoveToSecondaryPiconet
|
||||||
|
} BtdrvExtEventType;
|
||||||
|
|
||||||
/// BluetoothHhReportType
|
/// BluetoothHhReportType
|
||||||
/// Bit0-1 directly control the HID bluetooth transaction report-type value.
|
/// Bit0-1 directly control the HID bluetooth transaction report-type value.
|
||||||
/// Bit2-3: these directly control the Parameter Reserved field for SetReport, for GetReport these control the Parameter Reserved and Size bits.
|
/// Bit2-3: these directly control the Parameter Reserved field for SetReport, for GetReport these control the Parameter Reserved and Size bits.
|
||||||
@ -48,7 +59,7 @@ typedef enum {
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
BtdrvHidEventType_Connection = 0, ///< Connection. Only used with \ref btdrvGetHidEventInfo.
|
BtdrvHidEventType_Connection = 0, ///< Connection. Only used with \ref btdrvGetHidEventInfo.
|
||||||
BtdrvHidEventType_Data = 4, ///< DATA report on the Interrupt channel.
|
BtdrvHidEventType_Data = 4, ///< DATA report on the Interrupt channel.
|
||||||
BtdrvHidEventType_Unknown7 = 7, ///< Unknown. Only used with \ref btdrvGetHidEventInfo.
|
BtdrvHidEventType_Ext = 7, ///< Response for extensions. Only used with \ref btdrvGetHidEventInfo.
|
||||||
BtdrvHidEventType_SetReport = 8, ///< Response to SET_REPORT.
|
BtdrvHidEventType_SetReport = 8, ///< Response to SET_REPORT.
|
||||||
BtdrvHidEventType_GetReport = 9, ///< Response to GET_REPORT.
|
BtdrvHidEventType_GetReport = 9, ///< Response to GET_REPORT.
|
||||||
} BtdrvHidEventType;
|
} BtdrvHidEventType;
|
||||||
|
@ -336,8 +336,8 @@ Result btdrvGetHidEventInfo(void* buffer, size_t size, BtdrvHidEventType *type)
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result btdrvSetTsi(BtdrvAddress addr, u8 unk) {
|
Result btdrvSetTsi(BtdrvAddress addr, u8 tsi) {
|
||||||
return _btmCmdInAddrU8NoOut(addr, unk, 28);
|
return _btmCmdInAddrU8NoOut(addr, tsi, 28);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result btdrvEnableBurstMode(BtdrvAddress addr, bool flag) {
|
Result btdrvEnableBurstMode(BtdrvAddress addr, bool flag) {
|
||||||
|
Loading…
Reference in New Issue
Block a user