diff --git a/aimeio/src/aimeio.h b/aimeio/src/aimeio.h index 50a9bc2..ae74e24 100644 --- a/aimeio/src/aimeio.h +++ b/aimeio/src/aimeio.h @@ -53,10 +53,7 @@ HRESULT aime_io_nfc_poll(uint8_t unit_no); Minimum API version: 0x0100 */ -HRESULT aime_io_nfc_get_aime_id( - uint8_t unit_no, - uint8_t *luid, - size_t luid_size); +HRESULT aime_io_nfc_get_aime_id(uint8_t unit_no, uint8_t *luid, size_t luid_size); /* Attempt to read out a FeliCa card ID ("IDm"). The following are examples diff --git a/chuniio/CMakeLists.txt b/chuniio/CMakeLists.txt index 1fe130f..00dadc3 100644 --- a/chuniio/CMakeLists.txt +++ b/chuniio/CMakeLists.txt @@ -10,8 +10,8 @@ add_library(chuniio_brokenithm SHARED src/chuniio.c src/chuniio.h src/config.c src/config.h - src/socket.h - src/struct.h + src/servers/socket.h + src/ipc_memory_info.h src/servers/android.c src/servers/android.h src/servers/common.h diff --git a/chuniio/src/chuniio.c b/chuniio/src/chuniio.c index 4d35edf..96a9908 100644 --- a/chuniio/src/chuniio.c +++ b/chuniio/src/chuniio.c @@ -8,7 +8,7 @@ #include "arch.h" #include "config.h" -#include "struct.h" +#include "ipc_memory_info.h" #define MEM_FILE_NAME "Local\\BROKENITHM_SHARED_BUFFER" diff --git a/chuniio/src/chuniio.h b/chuniio/src/chuniio.h index 62b93fc..38216d9 100644 --- a/chuniio/src/chuniio.h +++ b/chuniio/src/chuniio.h @@ -70,7 +70,6 @@ void __declspec(dllexport) chuni_io_jvs_poll(uint8_t *opbtn, uint8_t *beams); void __declspec(dllexport) chuni_io_jvs_read_coin_counter(uint16_t *total); - /* Initialize touch slider emulation. This function will be called before any other chuni_io_slider_*() function calls. @@ -155,11 +154,13 @@ HRESULT __declspec(dllexport) chuni_io_led_init(void); /* Update the RGB LEDs. rgb is a pointer to an array of up to 63 * 3 = 189 bytes. - Chunithm uses two chains/boards with WS2811 protocol (each logical led corresponds to 3 physical leds). - board 0 is on the left side and board 1 on the right side of the cab + Chunithm uses two chains/boards with WS2811 protocol (each logical led corresponds to + 3 physical leds). board 0 is on the left side and board 1 on the right side of the + cab - left side has 5*10 rgb values for the billboard, followed by 3 rgb values for the air tower - right side has 6*10 rgb values for the billboard, followed by 3 rgb values for the air tower + left side has 5*10 rgb values for the billboard, followed by 3 rgb values for the air + tower right side has 6*10 rgb values for the billboard, followed by 3 rgb values for + the air tower Each rgb value is comprised of 3 bytes in R,G,B order @@ -169,4 +170,4 @@ HRESULT __declspec(dllexport) chuni_io_led_init(void); void __declspec(dllexport) chuni_io_led_set_colors(uint8_t board, uint8_t *rgb); -#endif //CHUNIIO_BROKENITHM_CHUNIIO_H +#endif // CHUNIIO_BROKENITHM_CHUNIIO_H diff --git a/chuniio/src/config.c b/chuniio/src/config.c index 4dc8e0b..dd63824 100644 --- a/chuniio/src/config.c +++ b/chuniio/src/config.c @@ -8,24 +8,13 @@ #include "config.h" static const int chuni_io_default_cells[] = { - 'L', 'L', 'L', 'L', - 'K', 'K', 'K', 'K', - 'J', 'J', 'J', 'J', - 'H', 'H', 'H', 'H', - 'G', 'G', 'G', 'G', - 'F', 'F', 'F', 'F', - 'D', 'D', 'D', 'D', - 'S', 'S', 'S', 'S', + 'L', 'L', 'L', 'L', 'K', 'K', 'K', 'K', 'J', 'J', 'J', 'J', 'H', 'H', 'H', 'H', + 'G', 'G', 'G', 'G', 'F', 'F', 'F', 'F', 'D', 'D', 'D', 'D', 'S', 'S', 'S', 'S', }; -static const int chuni_io_default_ir[] = { - '4', '5', '6', '7', '8', '9' -}; +static const int chuni_io_default_ir[] = {'4', '5', '6', '7', '8', '9'}; -void chuni_io_config_load( - struct chuni_io_config *cfg, - const wchar_t *filename) -{ +void chuni_io_config_load(struct chuni_io_config *cfg, const wchar_t *filename) { wchar_t key[16]; int i; wchar_t port_input[6]; @@ -39,39 +28,32 @@ void chuni_io_config_load( cfg->vk_coin = GetPrivateProfileIntW(L"io3", L"coin", '3', filename); cfg->vk_ir_emu = GetPrivateProfileIntW(L"io3", L"ir", VK_SPACE, filename); - for (i = 0 ; i < 6 ; i++) { + for (i = 0; i < 6; i++) { swprintf_s(key, _countof(key), L"ir%i", i + 1); - cfg->vk_ir[i] = GetPrivateProfileIntW( - L"ir", - key, - chuni_io_default_ir[i], - filename); + cfg->vk_ir[i] = + GetPrivateProfileIntW(L"ir", key, chuni_io_default_ir[i], filename); } - for (i = 0 ; i < 32 ; i++) { + for (i = 0; i < 32; i++) { swprintf_s(key, _countof(key), L"cell%i", i + 1); - cfg->vk_cell[i] = GetPrivateProfileIntW( - L"slider", - key, - chuni_io_default_cells[i], - filename); + cfg->vk_cell[i] = + GetPrivateProfileIntW(L"slider", key, chuni_io_default_cells[i], filename); } - cfg->led_output_pipe = GetPrivateProfileIntW(L"led", L"cabLedOutputPipe", 1, filename); - cfg->led_output_serial = GetPrivateProfileIntW(L"led", L"cabLedOutputSerial", 0, filename); - - cfg->slider_led_output_pipe = GetPrivateProfileIntW(L"led", L"controllerLedOutputPipe", 1, filename); - cfg->slider_led_output_serial = GetPrivateProfileIntW(L"led", L"controllerLedOutputSerial", 0, filename); + cfg->led_output_pipe = + GetPrivateProfileIntW(L"led", L"cabLedOutputPipe", 1, filename); + cfg->led_output_serial = + GetPrivateProfileIntW(L"led", L"cabLedOutputSerial", 0, filename); - cfg->led_serial_baud = GetPrivateProfileIntW(L"led", L"serialBaud", 921600, filename); + cfg->slider_led_output_pipe = + GetPrivateProfileIntW(L"led", L"controllerLedOutputPipe", 1, filename); + cfg->slider_led_output_serial = + GetPrivateProfileIntW(L"led", L"controllerLedOutputSerial", 0, filename); - GetPrivateProfileStringW( - L"led", - L"serialPort", - L"COM5", - port_input, - 6, - filename); + cfg->led_serial_baud = + GetPrivateProfileIntW(L"led", L"serialBaud", 921600, filename); + + GetPrivateProfileStringW(L"led", L"serialPort", L"COM5", port_input, 6, filename); // Sanitize the output path. If it's a serial COM port, it needs to be prefixed // with `\\.\`. diff --git a/chuniio/src/config.h b/chuniio/src/config.h index 5d41eb0..5223a3e 100644 --- a/chuniio/src/config.h +++ b/chuniio/src/config.h @@ -4,9 +4,9 @@ extern "C" { #endif +#include #include #include -#include struct chuni_io_config { uint8_t vk_test; @@ -26,12 +26,9 @@ struct chuni_io_config { // The name of a COM port to output LED data on, in serial mode wchar_t led_serial_port[12]; int32_t led_serial_baud; - }; -void chuni_io_config_load( - struct chuni_io_config *cfg, - const wchar_t *filename); +void chuni_io_config_load(struct chuni_io_config *cfg, const wchar_t *filename); #ifdef __cplusplus } diff --git a/chuniio/src/ipc_memory_info.h b/chuniio/src/ipc_memory_info.h new file mode 100644 index 0000000..27f01f0 --- /dev/null +++ b/chuniio/src/ipc_memory_info.h @@ -0,0 +1,27 @@ +// +// Created by beerpsi on 12/29/2023. +// + +#ifndef CHUNIIO_BROKENITHM_STRUCT_H +#define CHUNIIO_BROKENITHM_STRUCT_H + +#include + +; +#pragma pack(push) +#pragma pack(1) +struct IPCMemoryInfo { + uint8_t airIoStatus[6]; + uint8_t sliderIoStatus[32]; + uint8_t ledRgbData[32 * 3]; + uint8_t testBtn; + uint8_t serviceBtn; + uint8_t coinInsertion; + uint8_t cardRead; + uint8_t remoteCardRead; + uint8_t remoteCardType; + uint8_t remoteCardId[10]; +}; +#pragma pack(pop) + +#endif // CHUNIIO_BROKENITHM_STRUCT_H diff --git a/chuniio/src/servers/android.c b/chuniio/src/servers/android.c index 42b7f61..bc569d9 100644 --- a/chuniio/src/servers/android.c +++ b/chuniio/src/servers/android.c @@ -13,7 +13,7 @@ #include #include "servers/common.h" -#include "socket.h" +#include "servers/socket.h" bool tcp_mode = true; uint16_t server_port = 52468; @@ -27,17 +27,17 @@ typedef struct { SOCKET sock; char remote_address[40]; uint16_t remote_port; - + atomic_bool exit_flag; atomic_bool connected; - + uint32_t last_input_packet_id; uint8_t last_card_id[10]; - + bool has_previous_led_status; uint8_t previous_led_status[3 * 32]; uint8_t led_skip_count; - + struct IPCMemoryInfo *memory; } android_thread_ctx; @@ -119,7 +119,7 @@ unsigned int __stdcall led_broadcast_thread_proc(void *v) { android_thread_ctx *ctx = v; const SOCKET sock = ctx->sock; - const struct IPCMemoryInfo* memory = ctx->memory; + const struct IPCMemoryInfo *memory = ctx->memory; struct sockaddr_in addr = {}; make_ipv4_address(&addr, ctx->remote_address, ctx->remote_port); @@ -155,7 +155,8 @@ unsigned int __stdcall led_broadcast_thread_proc(void *v) { memcpy(send_buffer + 4, current_led_status, 3 * 32); if (socket_send_to(sock, &addr, send_buffer, 100) < 0) { - print_err("[Android:ERROR] Cannot send packet: error %lu\n", WSAGetLastError()); + print_err("[Android:ERROR] Cannot send packet: error %lu\n", + WSAGetLastError()); if (tcp_mode) { if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) { @@ -229,7 +230,8 @@ unsigned int __stdcall input_recv_thread_proc(void *v) { continue; } - print_err("[Android: INFO] Device disconnected (could not read data, errno " + print_err("[Android: INFO] Device disconnected (could not read " + "data, errno " "%d, os error %ld)\n", errno, error); atomic_store(&ctx->connected, false); @@ -241,7 +243,7 @@ unsigned int __stdcall input_recv_thread_proc(void *v) { } real_len = buffer[0]; - packet_len = real_len + 1; // 1 for the packet length + packet_len = real_len + 1; // 1 for the packet length while (recv_len < packet_len) { const int read = @@ -255,7 +257,8 @@ unsigned int __stdcall input_recv_thread_proc(void *v) { continue; } - print_err("[Android: INFO] Device disconnected (could not read data, errno " + print_err("[Android: INFO] Device disconnected (could not read " + "data, errno " "%d, os error %ld)\n", errno, error); atomic_store(&ctx->connected, false); @@ -322,8 +325,8 @@ unsigned int __stdcall input_recv_thread_proc(void *v) { } if (strlen(ctx->remote_address)) { - print_err("[Android: INFO] Device %s:%d disconnected.\n", ctx->remote_address, - ctx->remote_port); + print_err("[Android: INFO] Device %s:%d disconnected.\n", + ctx->remote_address, ctx->remote_port); memset(ctx->remote_address, 0, 40); } diff --git a/chuniio/src/servers/android.h b/chuniio/src/servers/android.h index 8ddef6c..6c6fd23 100644 --- a/chuniio/src/servers/android.h +++ b/chuniio/src/servers/android.h @@ -8,8 +8,59 @@ #define WIN32_LEAN_AND_MEAN #include -#include "struct.h" +#include "ipc_memory_info.h" -HRESULT android_init_server(struct IPCMemoryInfo* memory); +; +#pragma pack(push) +#pragma pack(1) +struct PacketInput { + uint8_t packetSize; + uint8_t packetName[3]; + uint32_t packetId; + uint8_t airIoStatus[6]; + uint8_t sliderIoStatus[32]; + uint8_t testBtn; + uint8_t serviceBtn; +}; + +struct PacketInputNoAir { + uint8_t packetSize; + uint8_t packetName[3]; + uint32_t packetId; + uint8_t sliderIoStatus[32]; + uint8_t testBtn; + uint8_t serviceBtn; +}; + +struct PacketConnect { + uint8_t packetSize; + uint8_t packetName[3]; + uint8_t addrType; + uint16_t port; + union { + struct { + uint8_t addr[4]; + uint8_t padding[12]; + } addr4; + uint8_t addr6[16]; + } addr; +}; + +struct PacketCard { + uint8_t packetSize; + uint8_t packetName[3]; + uint8_t remoteCardRead; + uint8_t remoteCardType; + uint8_t remoteCardId[10]; +}; + +struct PacketPing { + uint8_t packetSize; + uint8_t packetName[3]; + uint64_t remotePingTime; +}; +#pragma pack(pop) + +HRESULT android_init_server(struct IPCMemoryInfo *memory); #endif // CHUNIIO_BROKENITHM_ANDROID_H diff --git a/chuniio/src/servers/common.c b/chuniio/src/servers/common.c index 2334671..b0b1770 100644 --- a/chuniio/src/servers/common.c +++ b/chuniio/src/servers/common.c @@ -8,7 +8,7 @@ #include "util/dprintf.h" -void print_err(const char* fmt, ...) { +void print_err(const char *fmt, ...) { const time_t lt = time(NULL); const struct tm *local = localtime(<); char tmpbuf[32]; @@ -31,20 +31,20 @@ void dump_bytes(const void *ptr, const size_t nbytes, const bool hex_string) { dprintf("\t--- Empty ---\n"); } - const uint8_t* bytes = ptr; + const uint8_t *bytes = ptr; if (hex_string) { - for (i = 0 ; i < nbytes ; i++) { + for (i = 0; i < nbytes; i++) { dprintf("%02x", bytes[i]); } dprintf("\n"); return; } - for (i = 0 ; i < nbytes ; i += 16) { - dprintf(" %08x:", (int) i); + for (i = 0; i < nbytes; i += 16) { + dprintf(" %08x:", (int)i); - for (j = 0 ; i + j < nbytes && j < 16 ; j++) { + for (j = 0; i + j < nbytes && j < 16; j++) { dprintf(" %02x", bytes[i + j]); } @@ -55,7 +55,7 @@ void dump_bytes(const void *ptr, const size_t nbytes, const bool hex_string) { dprintf(" "); - for (j = 0 ; i + j < nbytes && j < 16 ; j++) { + for (j = 0; i + j < nbytes && j < 16; j++) { uint8_t c = bytes[i + j]; if (c < 0x20 || c >= 0x7F) { diff --git a/chuniio/src/servers/common.h b/chuniio/src/servers/common.h index 66e7e65..5d056ce 100644 --- a/chuniio/src/servers/common.h +++ b/chuniio/src/servers/common.h @@ -9,13 +9,22 @@ #include enum FunctionButton { - INVALID, + INVALID __attribute__((unused)), FUNCTION_COIN, FUNCTION_CARD, }; -void print_err(const char* fmt, ...); +#pragma pack(push) +#pragma pack(1) +struct PacketFunction { + uint8_t packetSize; + uint8_t packetName[3]; + uint8_t funcBtn; +}; +#pragma pack(pop) -void dump_bytes(const void *ptr, const size_t nbytes, const bool hex_string); +void print_err(const char *fmt, ...); + +void dump_bytes(const void *ptr, size_t nbytes, bool hex_string); #endif // CHUNIIO_BROKENITHM_COMMON_H diff --git a/chuniio/src/servers/ios.c b/chuniio/src/servers/ios.c index e774aa4..6b0e173 100644 --- a/chuniio/src/servers/ios.c +++ b/chuniio/src/servers/ios.c @@ -6,9 +6,9 @@ #include "arch.h" #ifdef ENV32BIT +#include #include #include -#include #include "servers/common.h" @@ -23,11 +23,11 @@ typedef struct { uint8_t previous_led_status[3 * 32]; uint8_t led_skip_count; - struct IPCMemoryInfo* memory; + struct IPCMemoryInfo *memory; } ios_thread_ctx; unsigned int __stdcall ios_led_broadcast_thread_proc(void *v) { - ios_thread_ctx* ctx = v; + ios_thread_ctx *ctx = v; char send_buffer[4 + 3 * 32]; send_buffer[0] = 99; @@ -56,7 +56,8 @@ unsigned int __stdcall ios_led_broadcast_thread_proc(void *v) { int status; uint32_t sent; - if ((status = idevice_connection_send(ctx->connection, send_buffer, 100, &sent))) { + if ((status = idevice_connection_send(ctx->connection, send_buffer, 100, + &sent))) { print_err("[iOS:ERROR] Cannot send LED packet: error %d\n", status); } @@ -70,7 +71,7 @@ unsigned int __stdcall ios_led_broadcast_thread_proc(void *v) { } unsigned int __stdcall ios_input_recv_thread_proc(void *v) { - ios_thread_ctx* ctx = v; + ios_thread_ctx *ctx = v; bool air_enabled = true; @@ -79,7 +80,8 @@ unsigned int __stdcall ios_input_recv_thread_proc(void *v) { int status; uint32_t read; - if ((status = idevice_connection_receive_timeout(ctx->connection, buffer, 4, &read, 5))) { + if ((status = idevice_connection_receive_timeout(ctx->connection, buffer, 4, + &read, 5))) { if (status == IDEVICE_E_TIMEOUT) { continue; } @@ -92,29 +94,35 @@ unsigned int __stdcall ios_input_recv_thread_proc(void *v) { int len = (unsigned char)buffer[0]; - if ((status = idevice_connection_receive_timeout(ctx->connection, buffer + 4, len - 3, &read, 5))) { + if ((status = idevice_connection_receive_timeout(ctx->connection, buffer + 4, + len - 3, &read, 5))) { print_err("[iOS:ERROR] Could not read data from device: %d\n", status); atomic_store(&ctx->exit_flag, true); break; } - if (len >= sizeof(struct iOSPacketInput) && memcmp(buffer + 1, "INP", 3) == 0) { - struct iOSPacketInput* pkt = (struct iOSPacketInput*)buffer; + if (len >= sizeof(struct PacketInput) && memcmp(buffer + 1, "INP", 3) == 0) { + struct PacketInput *pkt = (struct PacketInput *)buffer; if (air_enabled) { - memcpy(ctx->memory->airIoStatus, pkt->airIoStatus, sizeof(pkt->airIoStatus)); + memcpy(ctx->memory->airIoStatus, pkt->airIoStatus, + sizeof(pkt->airIoStatus)); } - memcpy(ctx->memory->sliderIoStatus, pkt->sliderIoStatus, sizeof(pkt->sliderIoStatus)); + memcpy(ctx->memory->sliderIoStatus, pkt->sliderIoStatus, + sizeof(pkt->sliderIoStatus)); ctx->memory->testBtn = pkt->testBtn; ctx->memory->serviceBtn = pkt->serviceBtn; - } else if (len >= 4 && memcmp(buffer + 1, "AIR", 3) == 0) { - air_enabled = buffer[3] != 0; + } else if (len >= sizeof(struct PacketAirStatus) && memcmp(buffer + 1, "AIR", 3) == 0) { + struct PacketAirStatus *pkt = (struct PacketAirStatus *)buffer; - print_err("[iOS: INFO] Air input %s", air_enabled ? "enabled" : "disabled"); - } else if (len >= sizeof(struct PacketFunction) && memcmp(buffer + 1, "FNC", 3) == 0) { - const struct PacketFunction *pkt = (struct PacketFunction *) buffer; + air_enabled = pkt->airEnabled != 0; + + print_err("[iOS: INFO] Air input %s\n", air_enabled ? "enabled" : "disabled"); + } else if (len >= sizeof(struct PacketFunction) && + memcmp(buffer + 1, "FNC", 3) == 0) { + const struct PacketFunction *pkt = (struct PacketFunction *)buffer; switch (pkt->funcBtn) { case FUNCTION_COIN: @@ -129,7 +137,7 @@ unsigned int __stdcall ios_input_recv_thread_proc(void *v) { } } - print_err("[iOS: INFO] Device disconnected."); + print_err("[iOS: INFO] Device disconnected.\n"); idevice_disconnect(ctx->connection); ctx->connection = NULL; @@ -140,8 +148,8 @@ unsigned int __stdcall ios_input_recv_thread_proc(void *v) { return 0; } -unsigned int __stdcall connect_device(void* v) { - ios_thread_ctx* ctx = v; +unsigned int __stdcall connect_device(void *v) { + ios_thread_ctx *ctx = v; int status; if ((status = idevice_new(&ctx->device, ctx->remote_udid))) { @@ -196,14 +204,14 @@ unsigned int __stdcall connect_device(void* v) { return 0; } -void device_event_callback(const idevice_event_t* event, void* user_data) { - struct IPCMemoryInfo* memory = user_data; +void device_event_callback(const idevice_event_t *event, void *user_data) { + struct IPCMemoryInfo *memory = user_data; switch (event->event) { case IDEVICE_DEVICE_ADD: print_err("[iOS: INFO] iDevice added, udid: %s\n", event->udid); - ios_thread_ctx* args = malloc(sizeof(ios_thread_ctx)); + ios_thread_ctx *args = malloc(sizeof(ios_thread_ctx)); memcpy(args->remote_udid, event->udid, strlen(event->udid)); args->device = NULL; args->connection = NULL; diff --git a/chuniio/src/servers/ios.h b/chuniio/src/servers/ios.h index 5db3098..dffb445 100644 --- a/chuniio/src/servers/ios.h +++ b/chuniio/src/servers/ios.h @@ -8,8 +8,27 @@ #define WIN32_LEAN_AND_MEAN #include -#include "struct.h" +#include "ipc_memory_info.h" -HRESULT ios_init_server(struct IPCMemoryInfo* memory); +; +#pragma pack(push) +#pragma pack(1) +struct PacketInput { + uint8_t packetSize; + uint8_t packetName[3]; + uint8_t airIoStatus[6]; + uint8_t sliderIoStatus[32]; + uint8_t testBtn; + uint8_t serviceBtn; +}; + +struct PacketAirStatus { + uint8_t packetSize; + uint8_t packetName[3]; + uint8_t airEnabled; +}; +#pragma pack(pop) + +HRESULT ios_init_server(struct IPCMemoryInfo *memory); #endif // CHUNIIO_BROKENITHM_IOS_H diff --git a/chuniio/src/socket.h b/chuniio/src/servers/socket.h similarity index 62% rename from chuniio/src/socket.h rename to chuniio/src/servers/socket.h index 759a594..ba20fc2 100644 --- a/chuniio/src/socket.h +++ b/chuniio/src/servers/socket.h @@ -9,36 +9,36 @@ #ifndef WINVER #define WINVER 0x0501 #endif // WINVER -#include #include +#include #else -//translate windows functions to linux functions -#include +// translate windows functions to linux functions #include -#define SOCKET int -#define INVALID_SOCKET (SOCKET)(~0) -#define SOCKET_ERROR (-1) -#define closesocket close -#define SOCKADDR_IN sockaddr_in -#define ZeroMemory(d,l) memset((d), 0, (l)) -#define ioctlsocket ioctl +#include +#define SOCKET int +#define INVALID_SOCKET (SOCKET)(~0) +#define SOCKET_ERROR (-1) +#define closesocket close +#define SOCKADDR_IN sockaddr_in +#define ZeroMemory(d, l) memset((d), 0, (l)) +#define ioctlsocket ioctl #ifndef SA_INTERRUPT -#define SA_INTERRUPT 0 //ignore this setting +#define SA_INTERRUPT 0 // ignore this setting #endif #define SD_BOTH SHUT_RDWR #ifndef __hpux #include #endif /* __hpux */ +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include -#include -#include -#include #include typedef sockaddr *LPSOCKADDR; #endif // _WIN32 -#endif //CHUNIIO_BROKENITHM_SOCKET_H +#endif // CHUNIIO_BROKENITHM_SOCKET_H diff --git a/chuniio/src/struct.h b/chuniio/src/struct.h deleted file mode 100644 index 56ae49d..0000000 --- a/chuniio/src/struct.h +++ /dev/null @@ -1,100 +0,0 @@ -// -// Created by beerpsi on 12/29/2023. -// - -#ifndef CHUNIIO_BROKENITHM_STRUCT_H -#define CHUNIIO_BROKENITHM_STRUCT_H - -#include - -; -#pragma pack(push) -#pragma pack(1) - -struct IPCMemoryInfo -{ - uint8_t airIoStatus[6]; - uint8_t sliderIoStatus[32]; - uint8_t ledRgbData[32 * 3]; - uint8_t testBtn; - uint8_t serviceBtn; - uint8_t coinInsertion; - uint8_t cardRead; - uint8_t remoteCardRead; - uint8_t remoteCardType; - uint8_t remoteCardId[10]; -}; - -struct iOSPacketInput { - uint8_t packetSize; - uint8_t packetName[3]; - uint8_t airIoStatus[6]; - uint8_t sliderIoStatus[32]; - uint8_t testBtn; - uint8_t serviceBtn; -}; - -struct PacketInput -{ - uint8_t packetSize; - uint8_t packetName[3]; - uint32_t packetId; - uint8_t airIoStatus[6]; - uint8_t sliderIoStatus[32]; - uint8_t testBtn; - uint8_t serviceBtn; -}; - -struct PacketInputNoAir -{ - uint8_t packetSize; - uint8_t packetName[3]; - uint32_t packetId; - uint8_t sliderIoStatus[32]; - uint8_t testBtn; - uint8_t serviceBtn; -}; - -struct PacketFunction -{ - uint8_t packetSize; - uint8_t packetName[3]; - uint8_t funcBtn; -}; - -struct PacketConnect -{ - uint8_t packetSize; - uint8_t packetName[3]; - uint8_t addrType; - uint16_t port; - union - { - struct - { - uint8_t addr[4]; - uint8_t padding[12]; - } addr4; - uint8_t addr6[16]; - } addr; -}; - -struct PacketCard -{ - uint8_t packetSize; - uint8_t packetName[3]; - uint8_t remoteCardRead; - uint8_t remoteCardType; - uint8_t remoteCardId[10]; -}; - -struct PacketPing -{ - uint8_t packetSize; - uint8_t packetName[3]; - uint64_t remotePingTime; -}; - -#pragma pack(pop) - -#endif //CHUNIIO_BROKENITHM_STRUCT_H diff --git a/util/dprintf.c b/util/dprintf.c index 9f1e4aa..a7d545c 100644 --- a/util/dprintf.c +++ b/util/dprintf.c @@ -14,8 +14,7 @@ static CRITICAL_SECTION dbg_buf_lock; static char dbg_buf[16384]; static size_t dbg_buf_pos; -void dprintf(const char *fmt, ...) -{ +void dprintf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -23,8 +22,7 @@ void dprintf(const char *fmt, ...) va_end(ap); } -void dprintfv(const char *fmt, va_list ap) -{ +void dprintfv(const char *fmt, va_list ap) { long init; /* Static constructors in C are difficult to do in a way that works under @@ -45,12 +43,8 @@ void dprintfv(const char *fmt, va_list ap) EnterCriticalSection(&dbg_buf_lock); - dbg_buf_pos += vsnprintf_s( - dbg_buf + dbg_buf_pos, - sizeof(dbg_buf) - dbg_buf_pos, - sizeof(dbg_buf) - dbg_buf_pos - 1, - fmt, - ap); + dbg_buf_pos += vsnprintf_s(dbg_buf + dbg_buf_pos, sizeof(dbg_buf) - dbg_buf_pos, + sizeof(dbg_buf) - dbg_buf_pos - 1, fmt, ap); if (dbg_buf_pos + 1 > sizeof(dbg_buf)) { abort(); @@ -65,8 +59,7 @@ void dprintfv(const char *fmt, va_list ap) LeaveCriticalSection(&dbg_buf_lock); } -void dwprintf(const wchar_t *fmt, ...) -{ +void dwprintf(const wchar_t *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -74,8 +67,7 @@ void dwprintf(const wchar_t *fmt, ...) va_end(ap); } -void dwprintfv(const wchar_t *fmt, va_list ap) -{ +void dwprintfv(const wchar_t *fmt, va_list ap) { wchar_t msg[512]; _vsnwprintf_s(msg, _countof(msg), _countof(msg) - 1, fmt, ap); diff --git a/util/dprintf.h b/util/dprintf.h index 821e4cb..a6e0661 100644 --- a/util/dprintf.h +++ b/util/dprintf.h @@ -8,7 +8,7 @@ extern "C" { #include #ifdef __GNUC__ -#define DPRINTF_CHK __attribute__(( format(printf, 1, 2) )) +#define DPRINTF_CHK __attribute__((format(printf, 1, 2))) #else #define DPRINTF_CHK #endif