From f929109f014c5a4d79b6737b19846b2a49e7d605 Mon Sep 17 00:00:00 2001 From: spx Date: Mon, 12 Nov 2012 11:10:40 +0900 Subject: [PATCH] Code cleanup --- Library/MeasureCPU.cpp | 28 +++++++++++++++------------- Library/MeasureCPU.h | 7 +++++-- Library/MeasureNet.cpp | 4 ++-- Library/MeasureNet.h | 4 ++-- Library/MeterString.cpp | 20 +++++++++++++++++++- Library/MeterString.h | 3 +++ Library/Rainmeter.cpp | 16 +++++++--------- 7 files changed, 53 insertions(+), 29 deletions(-) diff --git a/Library/MeasureCPU.cpp b/Library/MeasureCPU.cpp index 7ab78ce1..5ce1487d 100644 --- a/Library/MeasureCPU.cpp +++ b/Library/MeasureCPU.cpp @@ -38,7 +38,7 @@ typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { #define Li2Double(x) ((double)((x).QuadPart)) #define Ft2Double(x) ((double)((x).dwHighDateTime) * 4.294967296E9 + (double)((x).dwLowDateTime)) -PROCNTQSI CMeasureCPU::c_NtQuerySystemInformation = NULL; +FPNTQSI CMeasureCPU::c_NtQuerySystemInformation = NULL; int CMeasureCPU::c_NumOfProcessors = 0; ULONG CMeasureCPU::c_BufferSize = 0; @@ -69,17 +69,6 @@ CMeasureCPU::CMeasureCPU(CMeterWindow* meterWindow, const WCHAR* name) : CMeasur m_OldTime() { m_MaxValue = 100.0; - - if (c_NtQuerySystemInformation == NULL) - { - c_NtQuerySystemInformation = (PROCNTQSI)GetProcAddress(GetModuleHandle(L"ntdll"), "NtQuerySystemInformation"); - } - if (c_NumOfProcessors == 0) - { - SYSTEM_INFO systemInfo; - GetSystemInfo(&systemInfo); - c_NumOfProcessors = (int)systemInfo.dwNumberOfProcessors; - } } /* @@ -189,7 +178,7 @@ void CMeasureCPU::UpdateValue() c_BufferSize = bufSize; } - SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION* systemPerfInfo = (SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION*)buf; + PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION systemPerfInfo = (PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION)buf; int processor = m_Processor - 1; @@ -217,3 +206,16 @@ void CMeasureCPU::CalcUsage(double idleTime, double systemTime) m_OldTime[0] = idleTime; m_OldTime[1] = systemTime; } + +void CMeasureCPU::InitializeStatic() +{ + c_NtQuerySystemInformation = (FPNTQSI)GetProcAddress(GetModuleHandle(L"ntdll"), "NtQuerySystemInformation"); + + SYSTEM_INFO systemInfo; + GetSystemInfo(&systemInfo); + c_NumOfProcessors = (int)systemInfo.dwNumberOfProcessors; +} + +void CMeasureCPU::FinalizeStatic() +{ +} diff --git a/Library/MeasureCPU.h b/Library/MeasureCPU.h index f3a3ffec..6f423a50 100644 --- a/Library/MeasureCPU.h +++ b/Library/MeasureCPU.h @@ -21,7 +21,7 @@ #include "Measure.h" -typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG); +typedef LONG (WINAPI *FPNTQSI)(UINT, PVOID, ULONG, PULONG); class CMeasureCPU : public CMeasure { @@ -31,6 +31,9 @@ public: virtual UINT GetTypeID() { return TypeID(); } + static void InitializeStatic(); + static void FinalizeStatic(); + protected: virtual void ReadOptions(CConfigParser& parser, const WCHAR* section); virtual void UpdateValue(); @@ -42,7 +45,7 @@ private: double m_OldTime[2]; - static PROCNTQSI c_NtQuerySystemInformation; + static FPNTQSI c_NtQuerySystemInformation; static int c_NumOfProcessors; static ULONG c_BufferSize; diff --git a/Library/MeasureNet.cpp b/Library/MeasureNet.cpp index 547103cb..a0d34e21 100644 --- a/Library/MeasureNet.cpp +++ b/Library/MeasureNet.cpp @@ -689,7 +689,7 @@ void CMeasureNet::WriteStats(const WCHAR* iniFile, const std::wstring& statsDate ** Prepares in order to use the new APIs which are available on Vista or newer. ** */ -void CMeasureNet::InitializeNewApi() +void CMeasureNet::InitializeStatic() { if (CSystem::GetOSPlatform() >= OSPLATFORM_VISTA) { @@ -717,7 +717,7 @@ void CMeasureNet::InitializeNewApi() ** Frees the resources. ** */ -void CMeasureNet::FinalizeNewApi() +void CMeasureNet::FinalizeStatic() { if (c_GetIfTable2) { diff --git a/Library/MeasureNet.h b/Library/MeasureNet.h index 9155a525..79e1d36a 100644 --- a/Library/MeasureNet.h +++ b/Library/MeasureNet.h @@ -39,8 +39,8 @@ public: static void ReadStats(const std::wstring& iniFile, std::wstring& statsDate); static void WriteStats(const WCHAR* iniFile, const std::wstring& statsDate); - static void InitializeNewApi(); - static void FinalizeNewApi(); + static void InitializeStatic(); + static void FinalizeStatic(); protected: enum NET diff --git a/Library/MeterString.cpp b/Library/MeterString.cpp index fd2a2f1f..af9d2822 100644 --- a/Library/MeterString.cpp +++ b/Library/MeterString.cpp @@ -30,6 +30,8 @@ std::unordered_map CMeterString::c_Fonts; #define PI (3.14159265f) #define CONVERT_TO_DEGREES(X) ((X) * (180.0f / PI)) +extern CRainmeter* Rainmeter; + void StringToUpper(std::wstring& str) { WCHAR* srcAndDest = &str[0]; @@ -859,4 +861,20 @@ void CMeterString::EnumerateInstalledFontFamilies() { Log(LOG_ERROR, L"Font enumeration: InstalledFontCollection failed"); } -} \ No newline at end of file +} + +void CMeterString::InitializeStatic() +{ + if (Rainmeter->GetDebug()) + { + Log(LOG_DEBUG, L"------------------------------"); + Log(LOG_DEBUG, L"* Font families:"); + EnumerateInstalledFontFamilies(); + Log(LOG_DEBUG, L"------------------------------"); + } +} + +void CMeterString::FinalizeStatic() +{ + FreeFontCache(); +} diff --git a/Library/MeterString.h b/Library/MeterString.h index 338ed6b8..c6f84951 100644 --- a/Library/MeterString.h +++ b/Library/MeterString.h @@ -43,6 +43,9 @@ public: static void FreeFontCache(Gdiplus::PrivateFontCollection* collection = NULL); static void EnumerateInstalledFontFamilies(); + static void InitializeStatic(); + static void FinalizeStatic(); + protected: virtual void ReadOptions(CConfigParser& parser, const WCHAR* section); virtual void BindMeasures(CConfigParser& parser, const WCHAR* section); diff --git a/Library/Rainmeter.cpp b/Library/Rainmeter.cpp index 626f8ef9..e8c0b44e 100644 --- a/Library/Rainmeter.cpp +++ b/Library/Rainmeter.cpp @@ -24,6 +24,7 @@ #include "DialogAbout.h" #include "DialogManage.h" #include "MeasureNet.h" +#include "MeasureCPU.h" #include "MeterString.h" #include "resource.h" #include "UpdateCheck.h" @@ -738,9 +739,9 @@ CRainmeter::~CRainmeter() CMeasureNet::UpdateStats(); WriteStats(true); - CMeasureNet::FinalizeNewApi(); - - CMeterString::FreeFontCache(); + CMeasureNet::FinalizeStatic(); + CMeasureCPU::FinalizeStatic(); + CMeterString::FinalizeStatic(); // Change the work area back if (m_DesktopWorkAreaChanged) @@ -993,13 +994,10 @@ int CRainmeter::Initialize(LPCWSTR iniPath, LPCWSTR layout) TestSettingsFile(bDefaultIniLocation); CSystem::Initialize(m_Instance); - CMeasureNet::InitializeNewApi(); - if (m_Debug) - { - Log(LOG_DEBUG, L"Enumerating font families..."); - CMeterString::EnumerateInstalledFontFamilies(); - } + CMeasureNet::InitializeStatic(); + CMeasureCPU::InitializeStatic(); + CMeterString::InitializeStatic(); // Tray must exist before skins are read m_TrayWindow = new CTrayWindow();