From 85ef909842e5d230549cf579e9b0625de84cc358 Mon Sep 17 00:00:00 2001 From: N2614 Date: Mon, 28 Feb 2011 02:37:31 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=8C=E3=81=AA=E3=81=84=E5=A0=B4=E5=90=88SD?= =?UTF-8?q?=E3=81=AB=E5=87=BA=E5=8A=9B=E3=81=97=E3=81=AA=E3=81=84=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@93 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../ConsoleDataMigration/common/SdLogger.cpp | 49 ++++++++++++++++++- trunk/ConsoleDataMigration/common/SdLogger.h | 6 +++ 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/trunk/ConsoleDataMigration/common/SdLogger.cpp b/trunk/ConsoleDataMigration/common/SdLogger.cpp index 8dcb7c7..5fb7068 100644 --- a/trunk/ConsoleDataMigration/common/SdLogger.cpp +++ b/trunk/ConsoleDataMigration/common/SdLogger.cpp @@ -65,6 +65,7 @@ void SdmcEjectedEventThreadFunc() } SdMountManager::ForceUnmount(); s_SdEjectedEvent.ClearSignal(); + s_SdLogger.Inactivate(); } } @@ -109,7 +110,7 @@ void SetInsertHandler(void (*func)()) s_SdInsertedEventFunc = func; } -SdLogger::SdLogger() +SdLogger::SdLogger() : m_TryActivate(false), m_Permitted(false) { } @@ -121,8 +122,14 @@ SdLogger* GetSdInstance() void SdLogger::Print(const char* fmt, ::std::va_list arg) { - nn::Result result; + Activate(); + if(!m_Permitted) + { + NN_LOG("SD Write Not Permitted\n"); + return; + } + nn::Result result; result = SdMountManager::Mount(); if (result.IsFailure()) { @@ -201,6 +208,12 @@ void SdLogger::Print(const char* fmt, ::std::va_list arg) void SdLogger::Clear() { + Activate(); + if(!m_Permitted) + { + return; + } + nn::Result result; SdMountManager::Mount(); @@ -216,6 +229,38 @@ void SdLogger::Clear() SdMountManager::Unmount(); } +void SdLogger::Inactivate() +{ + m_TryActivate = false; + m_Permitted = false; +} + +void SdLogger::Activate() +{ + if(m_TryActivate) + { + return; + } + + nn::Result result; + result = common::SdMountManager::Mount(); + + if (result.IsSuccess()) + { + nn::fs::FileInputStream fis; + + result = fis.TryInitialize(common::AP_SETTING_PATHNAME); + if(result.IsSuccess()) + { + m_Permitted = true; + } + fis.Finalize(); + } + + common::SdMountManager::Unmount(); + m_TryActivate = true; +} + } // namespace Logger } // namespace ConsoleBackup diff --git a/trunk/ConsoleDataMigration/common/SdLogger.h b/trunk/ConsoleDataMigration/common/SdLogger.h index 8ad6d5a..2dc736f 100644 --- a/trunk/ConsoleDataMigration/common/SdLogger.h +++ b/trunk/ConsoleDataMigration/common/SdLogger.h @@ -32,9 +32,15 @@ public: void Print(const char* fmt, ::std::va_list arg); void Clear(); + void Inactivate(); private: + void Activate(); + nn::fs::FileOutputStream sd; + bool m_TryActivate; + bool m_Permitted; + NN_PADDING2; };