From: <man...@us...> - 2015-06-08 18:10:45
|
Revision: 5277 http://sourceforge.net/p/modplug/code/5277 Author: manxorist Date: 2015-06-08 18:10:35 +0000 (Mon, 08 Jun 2015) Log Message: ----------- [Ref] Make update check settings members of class TrackerSettings. Modified Paths: -------------- trunk/OpenMPT/common/mptTime.cpp trunk/OpenMPT/common/mptTime.h trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/soundlib/Sndfile.cpp Modified: trunk/OpenMPT/common/mptTime.cpp =================================================================== --- trunk/OpenMPT/common/mptTime.cpp 2015-06-08 17:56:09 UTC (rev 5276) +++ trunk/OpenMPT/common/mptTime.cpp 2015-06-08 18:10:35 UTC (rev 5277) @@ -81,14 +81,31 @@ #endif // MODPLUG_TRACKER -namespace Unix +Unix::Unix() +//---------- + : Value(0) { + return; +} -time_t FromUTC(tm *timeUtc) +Unix::Unix(time_t unixtime) //------------------------- + : Value(unixtime) { + return; +} + +Unix::operator time_t () const +//---------------------------- +{ + return Value; +} + +mpt::Date::Unix Unix::FromUTC(tm timeUtc) +//--------------------------------------- +{ #if MPT_COMPILER_MSVC - return _mkgmtime(timeUtc); + return mpt::Date::Unix(_mkgmtime(&timeUtc)); #else // !MPT_COMPILER_MSVC // There is no portable way in C/C++ to convert between time_t and struct tm in UTC. // Approximate it as good as possible without implementing full date handling logic. @@ -96,31 +113,29 @@ // This can be wrong for dates during DST switch. if(!timeUtc) { - return time_t(); + return mpt::Date::Unix(time_t()); } tm t = *timeUtc; time_t localSinceEpoch = mktime(&t); const tm * tmpLocal = localtime(&localSinceEpoch); if(!tmpLocal) { - return localSinceEpoch; + return mpt::Date::Unix(localSinceEpoch); } tm localTM = *tmpLocal; const tm * tmpUTC = gmtime(&localSinceEpoch); if(!tmpUTC) { - return localSinceEpoch; + return mpt::Date::Unix(localSinceEpoch); } tm utcTM = *tmpUTC; double offset = difftime(mktime(&localTM), mktime(&utcTM)); double timeScaleFactor = difftime(2, 1); time_t utcSinceEpoch = localSinceEpoch + Util::Round<time_t>(offset / timeScaleFactor); - return utcSinceEpoch; + return mpt::Date::Unix(utcSinceEpoch); #endif // MPT_COMPILER_MSVC } -} // namespace Unix - mpt::ustring ToShortenedISO8601(tm date) //-------------------------------------- { Modified: trunk/OpenMPT/common/mptTime.h =================================================================== --- trunk/OpenMPT/common/mptTime.h 2015-06-08 17:56:09 UTC (rev 5276) +++ trunk/OpenMPT/common/mptTime.h 2015-06-08 18:10:35 UTC (rev 5277) @@ -42,14 +42,19 @@ #endif // MODPLUG_TRACKER -namespace Unix +class Unix { // time_t counts 1s since 1970-01-01T00:00Z +private: + time_t Value; +public: + Unix(); + explicit Unix(time_t unixtime); + operator time_t () const; +public: + static mpt::Date::Unix FromUTC(tm timeUtc); +}; -time_t FromUTC(tm *timeUtc); - -} // namespace Unix - mpt::ustring ToShortenedISO8601(tm date); // i.e. 2015-01-15T18:32:01Z } // namespace Date Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-08 17:56:09 UTC (rev 5276) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-08 18:10:35 UTC (rev 5277) @@ -254,6 +254,13 @@ // Plugins , bridgeAllPlugins(conf, "VST Plugins", "BridgeAllPlugins", false) , enableAutoSuspend(conf, "VST Plugins", "EnableAutoSuspend", false) + // Update + , UpdateLastUpdateCheck(conf, "Update", "LastUpdateCheck", mpt::Date::Unix(time_t())) + , UpdateUpdateCheckPeriod(conf, "Update", "UpdateCheckPeriod", CUpdateCheck::GetUpdateCheckPeriod()) + , UpdateUpdateURL(conf, "Update", "UpdateURL", CUpdateCheck::GetUpdateURL()) + , UpdateSendGUID(conf, "Update", "SendGUID", CUpdateCheck::GetSendGUID()) + , UpdateShowUpdateHint(conf, "Update", "ShowUpdateHint", CUpdateCheck::GetShowUpdateHint()) + // Debug , DebugTraceEnable(conf, "Debug", "TraceEnable", false) , DebugTraceSize(conf, "Debug", "TraceSize", 1000000) , DebugTraceAlwaysDump(conf, "Debug", "TraceAlwaysDump", false) @@ -337,26 +344,7 @@ PatternClipboard::SetClipboardSize(conf.Read<int32>("Pattern Editor", "NumClipboards", mpt::saturate_cast<int32>(PatternClipboard::GetClipboardSize()))); // Update - { - tm lastUpdate; - MemsetZero(lastUpdate); - std::string s = conf.Read<std::string>("Update", "LastUpdateCheck", "1970-01-01 00:00"); - if(sscanf(s.c_str(), "%04d-%02d-%02d %02d:%02d", &lastUpdate.tm_year, &lastUpdate.tm_mon, &lastUpdate.tm_mday, &lastUpdate.tm_hour, &lastUpdate.tm_min) == 5) - { - lastUpdate.tm_year -= 1900; - lastUpdate.tm_mon--; - } - time_t outTime = mpt::Date::Unix::FromUTC(&lastUpdate); - if(outTime < 0) outTime = 0; - CUpdateCheck::SetUpdateSettings - ( - outTime, - conf.Read<int32>("Update", "UpdateCheckPeriod", CUpdateCheck::GetUpdateCheckPeriod()), - conf.Read<CString>("Update", "UpdateURL", CUpdateCheck::GetUpdateURL()), - conf.Read<int32>("Update", "SendGUID", CUpdateCheck::GetSendGUID() ? 1 : 0) != 0, - conf.Read<int32>("Update", "ShowUpdateHint", CUpdateCheck::GetShowUpdateHint() ? 1 : 0) != 0 - ); - } + CUpdateCheck::SetUpdateSettings(UpdateLastUpdateCheck.Get(), UpdateUpdateCheckPeriod, UpdateUpdateURL, UpdateSendGUID, UpdateShowUpdateHint); // Chords LoadChords(Chords); @@ -847,20 +835,13 @@ conf.Write<int32>("Pattern Editor", "NumClipboards", mpt::saturate_cast<int32>(PatternClipboard::GetClipboardSize())); - // Internet Update + // Update { - CString outDate; - const time_t t = CUpdateCheck::GetLastUpdateCheck(); - const tm* const lastUpdate = gmtime(&t); - if(lastUpdate != nullptr) - { - outDate.Format(_T("%04d-%02d-%02d %02d:%02d"), lastUpdate->tm_year + 1900, lastUpdate->tm_mon + 1, lastUpdate->tm_mday, lastUpdate->tm_hour, lastUpdate->tm_min); - } - conf.Write<CString>("Update", "LastUpdateCheck", outDate); - conf.Write<int32>("Update", "UpdateCheckPeriod", CUpdateCheck::GetUpdateCheckPeriod()); - conf.Write<CString>("Update", "UpdateURL", CUpdateCheck::GetUpdateURL()); - conf.Write<int32>("Update", "SendGUID", CUpdateCheck::GetSendGUID() ? 1 : 0); - conf.Write<int32>("Update", "ShowUpdateHint", CUpdateCheck::GetShowUpdateHint() ? 1 : 0); + UpdateLastUpdateCheck = mpt::Date::Unix(CUpdateCheck::GetLastUpdateCheck()); + UpdateUpdateCheckPeriod = CUpdateCheck::GetUpdateCheckPeriod(); + UpdateUpdateURL = CUpdateCheck::GetUpdateURL(); + UpdateSendGUID = CUpdateCheck::GetSendGUID(); + UpdateShowUpdateHint = CUpdateCheck::GetShowUpdateHint(); } // Effects Modified: trunk/OpenMPT/mptrack/TrackerSettings.h =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-08 17:56:09 UTC (rev 5276) +++ trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-08 18:10:35 UTC (rev 5277) @@ -320,6 +320,36 @@ return static_cast<SoundDeviceStopMode>(static_cast<int32>(val)); } +template<> inline SettingValue ToSettingValue(const mpt::Date::Unix &val) +{ + time_t t = val; + const tm* lastUpdate = gmtime(&t); + CString outDate; + if(lastUpdate) + { + outDate.Format(_T("%04d-%02d-%02d %02d:%02d"), lastUpdate->tm_year + 1900, lastUpdate->tm_mon + 1, lastUpdate->tm_mday, lastUpdate->tm_hour, lastUpdate->tm_min); + } + return SettingValue(outDate, "UTC"); +} +template<> inline mpt::Date::Unix FromSettingValue(const SettingValue &val) +{ + MPT_ASSERT(val.GetTypeTag() == "UTC"); + std::string s = val.as<std::string>(); + tm lastUpdate; + MemsetZero(lastUpdate); + if(sscanf(s.c_str(), "%04d-%02d-%02d %02d:%02d", &lastUpdate.tm_year, &lastUpdate.tm_mon, &lastUpdate.tm_mday, &lastUpdate.tm_hour, &lastUpdate.tm_min) == 5) + { + lastUpdate.tm_year -= 1900; + lastUpdate.tm_mon--; + } + time_t outTime = mpt::Date::Unix::FromUTC(lastUpdate); + if(outTime < 0) + { + outTime = 0; + } + return mpt::Date::Unix(outTime); +} + struct FontSetting { enum FontFlags @@ -447,7 +477,6 @@ Setting<FontSetting> commentsFont; - // Misc Setting<bool> ShowSettingsOnNewVersion; @@ -605,6 +634,14 @@ Setting<bool> bridgeAllPlugins; Setting<bool> enableAutoSuspend; + // Update + + Setting<mpt::Date::Unix> UpdateLastUpdateCheck; + Setting<int32> UpdateUpdateCheckPeriod; + Setting<CString> UpdateUpdateURL; + Setting<bool> UpdateSendGUID; + Setting<bool> UpdateShowUpdateHint; + // Debug Setting<bool> DebugTraceEnable; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2015-06-08 17:56:09 UTC (rev 5276) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2015-06-08 18:10:35 UTC (rev 5277) @@ -48,7 +48,7 @@ // Calculate the date when editing finished. double openSeconds = (double)openTime / (double)HISTORY_TIMER_PRECISION; tm tmpLoadDate = loadDate; - time_t loadDateSinceEpoch = mpt::Date::Unix::FromUTC(&tmpLoadDate); + time_t loadDateSinceEpoch = mpt::Date::Unix::FromUTC(tmpLoadDate); double timeScaleFactor = difftime(2, 1); time_t saveDateSinceEpoch = loadDateSinceEpoch + Util::Round<time_t>(openSeconds / timeScaleFactor); const tm * tmpSaveDate = gmtime(&saveDateSinceEpoch); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |