diff --git a/trunk/ConsoleDataMigration/sources/common/Util.cpp b/trunk/ConsoleDataMigration/sources/common/Util.cpp index 177d7d4..45082ec 100644 --- a/trunk/ConsoleDataMigration/sources/common/Util.cpp +++ b/trunk/ConsoleDataMigration/sources/common/Util.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include "Util.h" #include "FileName.h" @@ -207,7 +208,23 @@ void Util::GetSaveDataDirectoryRoot(::std::string& sysSaveRoot, void* ivs, size_ bool Util::IsAdapterConnected() { - return nn::ptm::CTR::GetAdapterState() == nn::ptm::CTR::ADAPTERSTATE_CONNECTED; + static nn::os::Tick last(0); + static bool lastResult = false; + const u8 UPDATE_INTERVAL = 100; + + nn::os::Tick now = nn::os::Tick::GetSystemCurrent(); + if(last == 0 || (now - last).ToTimeSpan().GetMilliSeconds() > UPDATE_INTERVAL) + { + u8 buf; + nn::Result result = mp_Mcu->ReadByReceive(nn::drivers::mcu::CTR::MCU_PERIPHERAL_STATUS_ADDR, &buf, sizeof(buf)); + if(result.IsSuccess()) + { + last = now; + lastResult = buf & nn::drivers::mcu::CTR::MCU_STATUS_ADAPTER_MASK; + } + } + return lastResult; + } bool Util::IsBatteryLower()