diff options
Diffstat (limited to '')
-rw-r--r-- | include/kernel/bt.h | 324 |
1 files changed, 324 insertions, 0 deletions
diff --git a/include/kernel/bt.h b/include/kernel/bt.h new file mode 100644 index 0000000..ea79015 --- /dev/null +++ b/include/kernel/bt.h @@ -0,0 +1,324 @@ +#ifndef _PSP2_KERNEL_BT_H_ +#define _PSP2_KERNEL_BT_H_ + +#include <psp2/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define SCE_BT_ERROR_ACL_TX_BUF_OVERFLOW 0x802f0b03 +#define SCE_BT_ERROR_ACL_TX_CB_OVERFLOW 0x802f0b04 +#define SCE_BT_ERROR_ATT_APPLICATION_ERROR_HI 0x802f23ff +#define SCE_BT_ERROR_ATT_APPLICATION_ERROR_LO 0x802f2380 +#define SCE_BT_ERROR_ATT_ATTRIBUTE_NOT_FOUND 0x802f230a +#define SCE_BT_ERROR_ATT_ATTRIBUTE_NOT_LONG 0x802f230b +#define SCE_BT_ERROR_ATT_BASE 0x802f2300 +#define SCE_BT_ERROR_ATT_INSUFFICIENT_AUTHENTICATION 0x802f2305 +#define SCE_BT_ERROR_ATT_INSUFFICIENT_AUTHORIZATION 0x802f2308 +#define SCE_BT_ERROR_ATT_INSUFFICIENT_ENCRYPTION 0x802f230f +#define SCE_BT_ERROR_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE 0x802f230c +#define SCE_BT_ERROR_ATT_INSUFFICIENT_RESOURCES 0x802f2311 +#define SCE_BT_ERROR_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH 0x802f230d +#define SCE_BT_ERROR_ATT_INVALID_HANDLE 0x802f2301 +#define SCE_BT_ERROR_ATT_INVALID_OFFSET 0x802f2307 +#define SCE_BT_ERROR_ATT_INVALID_PDU 0x802f2304 +#define SCE_BT_ERROR_ATT_NOT_YET 0x802f2a07 +#define SCE_BT_ERROR_ATT_PEPARE_QUEUE_FULL 0x802f2309 +#define SCE_BT_ERROR_ATT_READ_INVALID_INTERNAL 0x802f2a03 +#define SCE_BT_ERROR_ATT_READ_INVALID_LENGTH 0x802f2a02 +#define SCE_BT_ERROR_ATT_READ_INVALID_NO 0x802f2a01 +#define SCE_BT_ERROR_ATT_READ_NOT_PERMITTED 0x802f2302 +#define SCE_BT_ERROR_ATT_REQUEST_NOT_SUPPORTED 0x802f2306 +#define SCE_BT_ERROR_ATT_UNLIKELY_ERROR 0x802f230e +#define SCE_BT_ERROR_ATT_UNSUPPORTED_GROUP_TYPE 0x802f2310 +#define SCE_BT_ERROR_ATT_WRITE_INVALID_INTERNAL 0x802f2a06 +#define SCE_BT_ERROR_ATT_WRITE_INVALID_LENGTH 0x802f2a05 +#define SCE_BT_ERROR_ATT_WRITE_INVALID_NO 0x802f2a04 +#define SCE_BT_ERROR_ATT_WRITE_NOT_PERMITTED 0x802f2303 +#define SCE_BT_ERROR_AUDIO_COMBI_NOT_FOUND 0x802f0d16 +#define SCE_BT_ERROR_AUDIO_FREQ_IS_LE 0x802f2209 +#define SCE_BT_ERROR_AUDIO_FREQ_NOT_CONNECTED 0x802f0d0f +#define SCE_BT_ERROR_AUDIO_INTERNAL_1 0x802f0d18 +#define SCE_BT_ERROR_AUDIO_RECV_BAD_TYPE 0x802f0d12 +#define SCE_BT_ERROR_AUDIO_RECV_BUSY 0x802f0d1a +#define SCE_BT_ERROR_AUDIO_RECV_INVALID_LENGTH 0x802f0d0a +#define SCE_BT_ERROR_AUDIO_RECV_IS_LE 0x802f2208 +#define SCE_BT_ERROR_AUDIO_RECV_NO_CAP 0x802f0d1d +#define SCE_BT_ERROR_AUDIO_RECV_NOT_CONNECTED 0x802f0d08 +#define SCE_BT_ERROR_AUDIO_RECV_NOT_STARTED 0x802f0d09 +#define SCE_BT_ERROR_AUDIO_RECV_SERV_FAILED 0x802f0d1e +#define SCE_BT_ERROR_AUDIO_SEND_BAD_TYPE 0x802f0d11 +#define SCE_BT_ERROR_AUDIO_SEND_BUSY 0x802f0d19 +#define SCE_BT_ERROR_AUDIO_SEND_INVALID_LENGTH 0x802f0d07 +#define SCE_BT_ERROR_AUDIO_SEND_IS_LE 0x802f2207 +#define SCE_BT_ERROR_AUDIO_SEND_NO_CAP 0x802f0d1b +#define SCE_BT_ERROR_AUDIO_SEND_NO_CP 0x802f0d10 +#define SCE_BT_ERROR_AUDIO_SEND_NO_L2C 0x802f0d17 +#define SCE_BT_ERROR_AUDIO_SEND_NOT_CONNECTED 0x802f0d05 +#define SCE_BT_ERROR_AUDIO_SEND_NOT_STARTED 0x802f0d06 +#define SCE_BT_ERROR_AUDIO_SEND_SERV_FAILED 0x802f0d1c +#define SCE_BT_ERROR_AUDIO_START_INVALID_SERV 0x802f0d0b +#define SCE_BT_ERROR_AUDIO_START_IS_LE 0x802f2205 +#define SCE_BT_ERROR_AUDIO_START_NO_CAP 0x802f0d02 +#define SCE_BT_ERROR_AUDIO_START_NOT_CONNECTED 0x802f0d01 +#define SCE_BT_ERROR_AUDIO_START_SERV_FAILED 0x802f0d0d +#define SCE_BT_ERROR_AUDIO_STOP_INVALID_SERV 0x802f0d0c +#define SCE_BT_ERROR_AUDIO_STOP_IS_LE 0x802f2206 +#define SCE_BT_ERROR_AUDIO_STOP_NO_CAP 0x802f0d04 +#define SCE_BT_ERROR_AUDIO_STOP_NOT_CONNECTED 0x802f0d03 +#define SCE_BT_ERROR_AUDIO_STOP_SERV_FAILED 0x802f0d0e +#define SCE_BT_ERROR_AVCTP_CLOSE_NO_L2C 0x802f0602 +#define SCE_BT_ERROR_AVCTP_IS_LE 0x802f2203 +#define SCE_BT_ERROR_AVCTP_NOT_CONNECTED 0x802f0604 +#define SCE_BT_ERROR_AVCTP_OPEN_NO_L2C 0x802f0601 +#define SCE_BT_ERROR_AVCTP_READ_NO_VOLUME 0x802f0608 +#define SCE_BT_ERROR_AVCTP_SEND_BUSY 0x802f0605 +#define SCE_BT_ERROR_AVCTP_SEND_NO_L2C 0x802f0603 +#define SCE_BT_ERROR_AVCTP_SEND_NO_PRESS 0x802f0606 +#define SCE_BT_ERROR_AVCTP_SEND_NO_RELEASE 0x802f0607 +#define SCE_BT_ERROR_AVCTP_SEND_NOT_RUBY 0x802f0609 +#define SCE_BT_ERROR_AVDTP_CLOSE_BAD_SERV 0x802f0502 +#define SCE_BT_ERROR_AVDTP_CLOSE_BAD_STATE 0x802f0503 +#define SCE_BT_ERROR_AVDTP_OPEN_NO_L2C 0x802f0501 +#define SCE_BT_ERROR_AVDTP_RECONF_BAD_SERV 0x802f0509 +#define SCE_BT_ERROR_AVDTP_RECONF_BAD_STATE 0x802f050a +#define SCE_BT_ERROR_AVDTP_SEND_BAD_STATE 0x802f0508 +#define SCE_BT_ERROR_AVDTP_START_BAD_SERV 0x802f0504 +#define SCE_BT_ERROR_AVDTP_START_BAD_STATE 0x802f0505 +#define SCE_BT_ERROR_AVDTP_STOP_BAD_SERV 0x802f0506 +#define SCE_BT_ERROR_AVDTP_STOP_BAD_STATE 0x802f0507 +#define SCE_BT_ERROR_AVRCP_INVALID_PLAY_STATUS 0x802f1202 +#define SCE_BT_ERROR_AVRCP_TOO_LONG_TITLE 0x802f1201 +#define SCE_BT_ERROR_CB_NOT_REGISTERED 0x802f0c03 +#define SCE_BT_ERROR_CB_OVERFLOW 0x802f0c04 +#define SCE_BT_ERROR_CB_TOO_MANY 0x802f0c02 +#define SCE_BT_ERROR_CONF_BT_INACTIVE 0x802f1503 +#define SCE_BT_ERROR_CONF_CANT_DISABLE_FUNCTION 0x802f1508 +#define SCE_BT_ERROR_CONF_CANT_ENABLE_FUNCTION 0x802f1507 +#define SCE_BT_ERROR_CONF_CANT_ENTER 0x802f1520 +#define SCE_BT_ERROR_CONF_CARD_NOT_FOUND 0x802f1505 +#define SCE_BT_ERROR_CONF_DISABLE_SUBINTR 0x802f150c +#define SCE_BT_ERROR_CONF_ENABLE_SUBINTR 0x802f150b +#define SCE_BT_ERROR_CONF_FUNCTION_NOT_FOUND 0x802f1506 +#define SCE_BT_ERROR_CONF_INVALID_VALUE 0x802f1502 +#define SCE_BT_ERROR_CONF_NOT_READY 0x802f1501 +#define SCE_BT_ERROR_CONF_OFF_TIMEOUT 0x802f150e +#define SCE_BT_ERROR_CONF_ON_TIMEOUT 0x802f150d +#define SCE_BT_ERROR_CONF_REGISTER_SUBINTR_HANDLER 0x802f1509 +#define SCE_BT_ERROR_CONF_RELEASE_SUBINTR_HANDLER 0x802f150a +#define SCE_BT_ERROR_CONF_SUSPEND_TIMEOUT 0x802f150f +#define SCE_BT_ERROR_CONF_TIMEOUT 0x802f1504 +#define SCE_BT_ERROR_CONNECT_START_BUSY 0x802f0204 +#define SCE_BT_ERROR_CONNECT_START_CONNECTED 0x802f020a +#define SCE_BT_ERROR_CONNECT_START_DELETING 0x802f020e +#define SCE_BT_ERROR_CONNECT_START_IS_LE 0x802f2202 +#define SCE_BT_ERROR_CONNECT_START_NO_REG 0x802f0202 +#define SCE_BT_ERROR_CONNECT_START_NOT_CONNECTABLE 0x802f0203 +#define SCE_BT_ERROR_CONNECT_START_REG_FULL 0x802f0209 +#define SCE_BT_ERROR_CONNECT_START_TOO_MANY 0x802f020d +#define SCE_BT_ERROR_COPYIN_FAILED 0x802f0b09 +#define SCE_BT_ERROR_COPYOUT_FAILED 0x802f0b0a +#define SCE_BT_ERROR_DISCONNECT_START_NOT_CONNECTED 0x802f0205 +#define SCE_BT_ERROR_GATT_BUSY 0x802f2403 +#define SCE_BT_ERROR_GATT_DISCONNECT 0x802f240a +#define SCE_BT_ERROR_GATT_ENTER 0x802f240c +#define SCE_BT_ERROR_GATT_INVALID_FLAGS 0x802f2405 +#define SCE_BT_ERROR_GATT_INVALID_HANDLE 0x802f2404 +#define SCE_BT_ERROR_GATT_INVALID_NO 0x802f2401 +#define SCE_BT_ERROR_GATT_INVALID_SIZE 0x802f2406 +#define SCE_BT_ERROR_GATT_NOT_CONNECTED 0x802f2402 +#define SCE_BT_ERROR_GATT_NOT_LE 0x802f2407 +#define SCE_BT_ERROR_GATT_NOT_YET 0x802f2409 +#define SCE_BT_ERROR_GATT_TOO_BIG_BUFFER 0x802f240d +#define SCE_BT_ERROR_GATT_TOO_BIG_RECORD 0x802f2408 +#define SCE_BT_ERROR_GATT_TSLEEP 0x802f240b +#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_ARGUMENT 0x802f2105 +#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_REQUEST 0x802f2101 +#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_SIZE 0x802f2103 +#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_STATE 0x802f2107 +#define SCE_BT_ERROR_GET_DEBUG_INFO_NOT_CONNECTED 0x802f2109 +#define SCE_BT_ERROR_GET_JACK_STATUS_NOT_CONNECTED 0x802f3301 +#define SCE_BT_ERROR_GET_NAME_NO_DEVICE 0x802f0c01 +#define SCE_BT_ERROR_HCI_TX_OVERFLOW 0x802f0b02 +#define SCE_BT_ERROR_HID_CLOSE_NO_L2C 0x802f0902 +#define SCE_BT_ERROR_HID_INVALID_BUFFER_ADDRESS 0x802f0907 +#define SCE_BT_ERROR_HID_INVALID_IDLE 0x802f0909 +#define SCE_BT_ERROR_HID_INVALID_LENGTH 0x802f090d +#define SCE_BT_ERROR_HID_INVALID_PROTOCOL 0x802f0908 +#define SCE_BT_ERROR_HID_INVALID_REPORT_ID 0x802f090e +#define SCE_BT_ERROR_HID_INVALID_REQUEST_TYPE 0x802f0906 +#define SCE_BT_ERROR_HID_IS_LE 0x802f2204 +#define SCE_BT_ERROR_HID_NO_CAP 0x802f0905 +#define SCE_BT_ERROR_HID_NOT_CONNECTED 0x802f0904 +#define SCE_BT_ERROR_HID_NOT_YET 0x802f090c +#define SCE_BT_ERROR_HID_OPEN_NO_L2C 0x802f0901 +#define SCE_BT_ERROR_HID_OVERWRITE_REQ 0x802f090f +#define SCE_BT_ERROR_HID_RECV_INVALID_LENGTH 0x802f0e02 +#define SCE_BT_ERROR_HID_RECV_NOT_CONNECTED 0x802f0e01 +#define SCE_BT_ERROR_HID_SEND_NO_L2C 0x802f0903 +#define SCE_BT_ERROR_INQUIRY_START_BUSY 0x802f0201 +#define SCE_BT_ERROR_JEDI_SNIFF_NOT_CONNECTED 0x802f3601 +#define SCE_BT_ERROR_JEDI_SNIFF_NOT_JEDI 0x802f3602 +#define SCE_BT_ERROR_JEDI_VOLUME_GAIN_NOT_CONNECTED 0x802f3501 +#define SCE_BT_ERROR_JUMBO_UNLOCK_NOT_OWNER 0x802f0b01 +#define SCE_BT_ERROR_KPROC_CREATE 0x802f2002 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_BUSY 0x802f290d +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_CONNECTED 0x802f290b +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_FULL 0x802f290c +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_INTERVAL_MAX 0x802f2906 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_INTERVAL_MIN 0x802f2905 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_LATENCY 0x802f2907 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_OWN_ADDRESS_TYPE 0x802f2904 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_PEER_ADDRESS 0x802f2903 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_SCAN_INTERVAL 0x802f2901 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_SCAN_WINDOW 0x802f2902 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_TIMEOUT 0x802f2908 +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_REG_ERROR 0x802f290a +#define SCE_BT_ERROR_LE_CREATE_CONNECTION_REG_FULL 0x802f2909 +#define SCE_BT_ERROR_LE_GET_ADVERTISING_NOT_FOUND 0x802f2801 +#define SCE_BT_ERROR_LE_NOT_SUPPORTED 0x802f2b01 +#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS 0x802f2607 +#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS_TYPE 0x802f2606 +#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_INTERVAL_MAX 0x802f2604 +#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_INTERVAL_MIN 0x802f2603 +#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_LENGTH 0x802f2602 +#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_OWN_ADDRESS_TYPE 0x802f2605 +#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_REQ 0x802f2601 +#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_INTERVAL 0x802f2703 +#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_LENGTH 0x802f2702 +#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_OWN_ADDRESS_TYPE 0x802f2705 +#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_REQ 0x802f2701 +#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_WINDOW 0x802f2704 +#define SCE_BT_ERROR_NOT_READY 0x802f3201 +#define SCE_BT_ERROR_NOT_SUPPORTED_DEVICE 0x802f3403 +#define SCE_BT_ERROR_NOTIMP 0x802f2001 +#define SCE_BT_ERROR_PAIRING_OOB_CAN_NOT_DISCONNECT 0x802f3103 +#define SCE_BT_ERROR_PAIRING_OOB_FULL 0x802f3102 +#define SCE_BT_ERROR_PAIRING_OOB_INTERNAL_ERROR 0x802f3104 +#define SCE_BT_ERROR_PAIRING_OOB_TIMEOUT 0x802f3101 +#define SCE_BT_ERROR_PIN_INVALID_LENGTH 0x802f0206 +#define SCE_BT_ERROR_PIN_IS_LE 0x802f2201 +#define SCE_BT_ERROR_REG_CANNOT_LOAD 0x802f010a +#define SCE_BT_ERROR_REG_CANNOT_OPEN 0x802f010b +#define SCE_BT_ERROR_REG_CANNOT_READ 0x802f010c +#define SCE_BT_ERROR_REG_CANNOT_WRITE 0x802f010d +#define SCE_BT_ERROR_REG_DELETE_CONNECTING 0x802f0109 +#define SCE_BT_ERROR_REG_DELETE_NO_ENTRY 0x802f0102 +#define SCE_BT_ERROR_REG_GET_HID_DESC_NO_REG 0x802f0107 +#define SCE_BT_ERROR_REG_GET_HID_DESC_TOO_SHORT 0x802f0108 +#define SCE_BT_ERROR_REG_NOT_READY 0x802f0101 +#define SCE_BT_ERROR_REG_SET_HID_DESC_BAD_ARG 0x802f0105 +#define SCE_BT_ERROR_REG_SET_HID_DESC_NO_REG 0x802f0106 +#define SCE_BT_ERROR_REG_UPDATE_CANNOT_SAVE 0x802f0103 +#define SCE_BT_ERROR_SDIO_DISABLE_FUNCTION 0x802f2009 +#define SCE_BT_ERROR_SDIO_ENABLE_FUNCTION 0x802f2008 +#define SCE_BT_ERROR_SDIO_GET_FUNCTION 0x802f2003 +#define SCE_BT_ERROR_SDIO_LOCK 0x802f2006 +#define SCE_BT_ERROR_SDIO_READ_DIR 0x802f200c +#define SCE_BT_ERROR_SDIO_READ_FIX 0x802f200e +#define SCE_BT_ERROR_SDIO_REGISTER_INTR_HANDLER 0x802f2004 +#define SCE_BT_ERROR_SDIO_SET_BLOCK_LEN 0x802f200a +#define SCE_BT_ERROR_SDIO_SET_BUS_SPEED 0x802f200b +#define SCE_BT_ERROR_SDIO_UNLOCK 0x802f2007 +#define SCE_BT_ERROR_SDIO_UNREGISTER_INTR_HANDLER 0x802f2005 +#define SCE_BT_ERROR_SDIO_WRITE_DIR 0x802f200d +#define SCE_BT_ERROR_SDIO_WRITE_FIX 0x802f200f +#define SCE_BT_ERROR_SDP_OPEN_NO_L2C 0x802f0208 +#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_ARGUMENT 0x802f2106 +#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_REQUEST 0x802f2102 +#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_SIZE 0x802f2104 +#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_STATE 0x802f2108 +#define SCE_BT_ERROR_SET_DEBUG_INFO_NOT_CONNECTED 0x802f210a +#define SCE_BT_ERROR_SM_INVALID_CONFIRM_REPLY 0x802f2505 +#define SCE_BT_ERROR_SM_INVALID_KEY_LENGTH 0x802f2501 +#define SCE_BT_ERROR_SM_NO_REQ 0x802f2503 +#define SCE_BT_ERROR_SM_NOT_DIGIT 0x802f2502 +#define SCE_BT_ERROR_SM_NOT_NEEDED_PIN 0x802f2504 +#define SCE_BT_ERROR_TIMER_CANCEL_BAD_ID 0x802f0b05 +#define SCE_BT_ERROR_TIMER_CANCEL_NOT_INITIALIZED 0x802f0b06 +#define SCE_BT_ERROR_TIMER_SET_NO_SPACE 0x802f0b08 +#define SCE_BT_ERROR_TIMER_SET_NOT_INITIALIZED 0x802f0b07 +#define SCE_BT_ERROR_TOO_MANY_CONNECTION 0x802f3401 +#define SCE_BT_ERROR_TOO_MANY_HID 0x802f3402 +#define SCE_BT_ERROR_TSLEEP 0x802f2010 +#define SCE_BT_ERROR_USER_CONFIRM_NOT_CONNECTED 0x802f0207 + +typedef struct { + unsigned char mac[5]; + unsigned char unk1[32 - 5]; + char name[128]; + unsigned char unk2[128]; +} SceBtRegisteredInfo; /* size = 0x100 */ + +typedef struct { + // mac0 is at *(unsigned int *)&data[0x08]; + // mac1 is at *(unsigned int *)&data[0x0C]; + unsigned char data[0x10]; +} SceBtEvent; + +typedef void (*SceBtCallback)(int r0, int r1, int r2, int r3); + +typedef struct _SceBtHidRequest { + uint32_t unk00; + uint32_t unk04; + uint8_t type; //@0x08, 0 = read?, 1 = write?, 2 = feature?, 3 = ? + uint8_t unk09; + uint8_t unk0A; + uint8_t unk0B; + void *buffer; // 0x0C + uint32_t length; // 0x10 + struct _SceBtHidRequest *next; +} __attribute__((packed)) SceBtHidRequest; /* size = 0x18 */ + +int sceBtAvrcpReadVolume(int r0, int r1, int r2, int r3); +int sceBtAvrcpSendButton(int r0, int r1, int r2, int r3); +int sceBtAvrcpSendVolume(int r0, int r1, int r2, int r3); +int sceBtAvrcpSetPlayStatus(int r0, int r1, int r2, int r3); +int sceBtAvrcpSetTitle(int r0, int r1, int r2, int r3); +int sceBtDeleteRegisteredInfo(int r0, int r1, int r2, int r3); +int sceBtFreqAudio(int r0, int r1, int r2, int r3); +int sceBtGetConfiguration(void); // returns 0x0 BT disabled, 0x9 if enabled +int sceBtGetConnectingInfo(unsigned int mac0, unsigned int mac1); // 1 = disconnected?, 2 = connecting?, 5 = connected? +int sceBtGetDeviceName(unsigned int mac0, unsigned int mac1, char name[0x79]); +int sceBtGetInfoForTest(int r0, int r1, int r2, int r3); +int sceBtGetLastError(void); +int sceBtGetRegisteredInfo(int device, int unk, SceBtRegisteredInfo *info, unsigned int info_size); +int sceBtGetStatusForTest(int r0, int r1, int r2, int r3); +int sceBtGetVidPid(unsigned int mac0, unsigned int mac1, unsigned short vid_pid[2]); +int sceBtHfpGetCurrentPhoneNumber(int r0, int r1, int r2, int r3); +int sceBtHfpRequest(int r0, int r1, int r2, int r3); +int sceBtHidGetReportDescriptor(unsigned int mac0, unsigned int mac1, void *buffer, unsigned int size); +int sceBtHidTransfer(unsigned int mac0, unsigned int mac1, SceBtHidRequest *request); +int sceBtPairingOOB(int r0, int r1, int r2, int r3); +int sceBtPushBip(int r0, int r1, int r2, int r3); +int sceBtPushOpp(int r0, int r1, int r2, int r3); +int sceBtReadEvent(SceBtEvent *events, int num_events); +int sceBtRecvAudio(int r0, int r1, int r2, int r3); +int sceBtRecvBip(int r0, int r1, int r2, int r3); +int sceBtRecvOpp(int r0, int r1, int r2, int r3); +int sceBtRecvSpp(int r0, int r1, int r2, int r3); +int sceBtRegisterCallback(SceUID cb, int unused, int flags1, int flags2); // looks like flags1 is a mask for permitted MACs +int sceBtReplyPinCode(unsigned int mac0, unsigned int mac1, unsigned char *code, unsigned int length); +int sceBtReplyUserConfirmation(unsigned int mac0, unsigned int mac1, int unk); +int sceBtSendAudio(int r0, int r1, int r2, int r3); +int sceBtSendL2capEchoRequestForTest(int r0, int r1, int r2, int r3); +int sceBtSendSpp(int r0, int r1, int r2, int r3); +int sceBtSetConfiguration(int r0); //0 = disable bt, 1 = enabling, 2 = enabled 3 = disabling? +int sceBtSetContentProtection(int r0); +int sceBtSetInquiryResultForTest(unsigned char *); +int sceBtSetInquiryScan(int r0); +int sceBtSetL2capEchoResponseBufferForTest(int r0, int r1, int r2, int r3); +int sceBtSetStatusForTest(int r0, int r1, int r2, int r3); +int sceBtStartAudio(int r0, int r1, int r2, int r3); +int sceBtStartConnect(unsigned int mac0, unsigned int mac1); // mac0 can be used as a device index (already paired devices)? +int sceBtStartDisconnect(unsigned int mac0, unsigned int mac1); +int sceBtStartInquiry(void); +int sceBtStopAudio(int r0, int r1, int r2, int r3); +int sceBtStopInquiry(void); +int sceBtUnregisterCallback(SceUID cb); + +#ifdef __cplusplus +} +#endif +#endif |