From fbd21359f3b325466087c665035f22ff55b36f68 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Thu, 8 May 2025 13:15:39 +0200 Subject: feat: callback-based ledger connection --- .../src/main/cpp/wallet2_api_c.cpp | 55 +++++++++++----------- .../src/main/cpp/wallet2_api_c.h | 19 ++++---- 2 files changed, 38 insertions(+), 36 deletions(-) (limited to 'monero_libwallet2_api_c/src') diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp index 19192cf..aa08270 100644 --- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp +++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp @@ -2102,62 +2102,63 @@ uint64_t MONERO_Wallet_getBytesSent(void* wallet_ptr) { DEBUG_END() } -bool MONERO_Wallet_getStateIsConnected(void* wallet_ptr) { +bool MONERO_Wallet_getStateIsConnected() { DEBUG_START() - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->getStateIsConnected(); + return Monero::Wallet::getStateIsConnected(); DEBUG_END() } -unsigned char* MONERO_Wallet_getSendToDevice(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->getSendToDevice(); +unsigned char* MONERO_Wallet_getSendToDevice() { + DEBUG_START() + return Monero::Wallet::getSendToDevice(); + DEBUG_END() } -size_t MONERO_Wallet_getSendToDeviceLength(void* wallet_ptr) { +size_t MONERO_Wallet_getSendToDeviceLength() { DEBUG_START() - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->getSendToDeviceLength(); + return Monero::Wallet::getSendToDeviceLength(); DEBUG_END() } -unsigned char* MONERO_Wallet_getReceivedFromDevice(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->getReceivedFromDevice(); +unsigned char* MONERO_Wallet_getReceivedFromDevice() { + DEBUG_START() + return Monero::Wallet::getReceivedFromDevice(); + DEBUG_END() } -size_t MONERO_Wallet_getReceivedFromDeviceLength(void* wallet_ptr) { +size_t MONERO_Wallet_getReceivedFromDeviceLength() { DEBUG_START() - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->getReceivedFromDeviceLength(); + return Monero::Wallet::getReceivedFromDeviceLength(); DEBUG_END() } -bool MONERO_Wallet_getWaitsForDeviceSend(void* wallet_ptr) { +bool MONERO_Wallet_getWaitsForDeviceSend() { DEBUG_START() - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->getWaitsForDeviceSend(); + return Monero::Wallet::getWaitsForDeviceSend(); DEBUG_END() } -bool MONERO_Wallet_getWaitsForDeviceReceive(void* wallet_ptr) { +bool MONERO_Wallet_getWaitsForDeviceReceive() { DEBUG_START() - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->getWaitsForDeviceReceive(); + return Monero::Wallet::getWaitsForDeviceReceive(); DEBUG_END() } -void MONERO_Wallet_setDeviceReceivedData(void* wallet_ptr, unsigned char* data, size_t len) { +void MONERO_Wallet_setDeviceReceivedData(unsigned char* data, size_t len) { DEBUG_START() - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->setDeviceReceivedData(data, len); + Monero::Wallet::setDeviceReceivedData(data, len); DEBUG_END() } -void MONERO_Wallet_setDeviceSendData(void* wallet_ptr, unsigned char* data, size_t len) { +void MONERO_Wallet_setDeviceSendData(unsigned char* data, size_t len) { DEBUG_START() - Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); - return wallet->setDeviceSendData(data, len); + Monero::Wallet::setDeviceSendData(data, len); + DEBUG_END() +} + +void MONERO_Wallet_setLedgerCallback(int (*sendToLedgerDevice)(unsigned char *command, unsigned int cmd_len)) { + DEBUG_START() + Monero::Wallet::setLedgerCallback(sendToLedgerDevice); DEBUG_END() } diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h index 17c647c..f5fc460 100644 --- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h +++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h @@ -832,15 +832,16 @@ extern ADDAPI uint64_t MONERO_Wallet_getBytesReceived(void* wallet_ptr); // virtual uint64_t getBytesSent() = 0; extern ADDAPI uint64_t MONERO_Wallet_getBytesSent(void* wallet_ptr); // HIDAPI_DUMMY -extern ADDAPI bool MONERO_Wallet_getStateIsConnected(void* wallet_ptr); -extern ADDAPI unsigned char* MONERO_Wallet_getSendToDevice(void* wallet_ptr); -extern ADDAPI size_t MONERO_Wallet_getSendToDeviceLength(void* wallet_ptr); -extern ADDAPI unsigned char* MONERO_Wallet_getReceivedFromDevice(void* wallet_ptr); -extern ADDAPI size_t MONERO_Wallet_getReceivedFromDeviceLength(void* wallet_ptr); -extern ADDAPI bool MONERO_Wallet_getWaitsForDeviceSend(void* wallet_ptr); -extern ADDAPI bool MONERO_Wallet_getWaitsForDeviceReceive(void* wallet_ptr); -extern ADDAPI void MONERO_Wallet_setDeviceReceivedData(void* wallet_ptr, unsigned char* data, size_t len); -extern ADDAPI void MONERO_Wallet_setDeviceSendData(void* wallet_ptr, unsigned char* data, size_t len); +extern ADDAPI bool MONERO_Wallet_getStateIsConnected(); +extern ADDAPI unsigned char* MONERO_Wallet_getSendToDevice(); +extern ADDAPI size_t MONERO_Wallet_getSendToDeviceLength(); +extern ADDAPI unsigned char* MONERO_Wallet_getReceivedFromDevice(); +extern ADDAPI size_t MONERO_Wallet_getReceivedFromDeviceLength(); +extern ADDAPI bool MONERO_Wallet_getWaitsForDeviceSend(); +extern ADDAPI bool MONERO_Wallet_getWaitsForDeviceReceive(); +extern ADDAPI void MONERO_Wallet_setDeviceReceivedData(unsigned char* data, size_t len); +extern ADDAPI void MONERO_Wallet_setDeviceSendData(unsigned char* data, size_t len); +extern ADDAPI void MONERO_Wallet_setLedgerCallback(int (*sendToLedgerDevice)(unsigned char *command, unsigned int cmd_len)); // }; // struct WalletManager -- cgit v1.2.3