#include "C_LinkCableMultiboot.h" #include "../LinkCableMultiboot.hpp" extern "C" { C_LinkCableMultibootHandle C_LinkCableMultiboot_create() { return new LinkCableMultiboot(); } void C_LinkCableMultiboot_destroy(C_LinkCableMultibootHandle handle) { delete static_cast(handle); } C_LinkCableMultiboot_Result C_LinkCableMultiboot_sendRom( C_LinkCableMultibootHandle handle, const u8* rom, u32 romSize, bool (*cancel)(void), C_LinkCableMultiboot_TransferMode mode) { return static_cast( static_cast(handle)->sendRom( rom, romSize, cancel, static_cast(mode))); } C_LinkCableMultiboot_AsyncHandle C_LinkCableMultiboot_Async_createDefault() { return new LinkCableMultiboot::Async(); } C_LinkCableMultiboot_AsyncHandle C_LinkCableMultiboot_Async_create( bool waitForReadySignal, C_LinkCableMultiboot_TransferMode mode) { return new LinkCableMultiboot::Async( waitForReadySignal, static_cast(mode)); } void C_LinkCableMultiboot_Async_destroy( C_LinkCableMultiboot_AsyncHandle handle) { delete static_cast(handle); } bool C_LinkCableMultiboot_Async_sendRom(C_LinkCableMultiboot_AsyncHandle handle, const u8* rom, u32 romSize) { return static_cast(handle)->sendRom(rom, romSize); } bool C_LinkCableMultiboot_Async_reset(C_LinkCableMultiboot_AsyncHandle handle) { return static_cast(handle)->reset(); } bool C_LinkCableMultiboot_Async_isSending( C_LinkCableMultiboot_AsyncHandle handle) { return static_cast(handle)->isSending(); } C_LinkCableMultiboot_Async_State C_LinkCableMultiboot_Async_getState( C_LinkCableMultiboot_AsyncHandle handle) { return static_cast( static_cast(handle)->getState()); } C_LinkCableMultiboot_Async_GeneralResult C_LinkCableMultiboot_Async_getResult( C_LinkCableMultiboot_AsyncHandle handle, bool clear) { return static_cast( static_cast(handle)->getResult(clear)); } C_LinkCableMultiboot_Async_Result C_LinkCableMultiboot_Async_getDetailedResult( C_LinkCableMultiboot_AsyncHandle handle, bool clear) { return static_cast( static_cast(handle)->getDetailedResult( clear)); } u8 C_LinkCableMultiboot_Async_playerCount( C_LinkCableMultiboot_AsyncHandle handle) { return static_cast(handle)->playerCount(); } u8 C_LinkCableMultiboot_Async_getPercentage( C_LinkCableMultiboot_AsyncHandle handle) { return static_cast(handle)->getPercentage(); } bool C_LinkCableMultiboot_Async_isReady( C_LinkCableMultiboot_AsyncHandle handle) { return static_cast(handle)->isReady(); } void C_LinkCableMultiboot_Async_markReady( C_LinkCableMultiboot_AsyncHandle handle) { static_cast(handle)->markReady(); } C_LinkCableMultiboot_Async_Config C_LinkCableMultiboot_Async_getConfig( C_LinkCableMultiboot_AsyncHandle handle) { C_LinkCableMultiboot_Async_Config config; auto instance = static_cast(handle); config.waitForReadySignal = instance->config.waitForReadySignal; config.mode = static_cast(instance->config.mode); return config; } void C_LinkCableMultiboot_Async_setConfig( C_LinkCableMultiboot_AsyncHandle handle, C_LinkCableMultiboot_Async_Config config) { auto instance = static_cast(handle); instance->config.waitForReadySignal = config.waitForReadySignal; instance->config.mode = static_cast(config.mode); } void C_LinkCableMultiboot_Async_onVBlank( C_LinkCableMultiboot_AsyncHandle handle) { static_cast(handle)->_onVBlank(); } void C_LinkCableMultiboot_Async_onSerial( C_LinkCableMultiboot_AsyncHandle handle) { static_cast(handle)->_onSerial(); } }