kodi
CPUInfoWin32.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "utils/CPUInfo.h"
12 #include "utils/Temperature.h"
13 
14 class CCPUInfoWin32 : public CCPUInfo
15 {
16 public:
17  CCPUInfoWin32();
18  ~CCPUInfoWin32();
19 
20  int GetUsedPercentage() override;
21  float GetCPUFrequency() override;
22  bool GetTemperature(CTemperature& temperature) override;
23 
24 private:
25  // avoid inclusion of <windows.h> and others
26  typedef void* HANDLE;
27  typedef HANDLE PDH_HQUERY;
28  typedef HANDLE PDH_HCOUNTER;
29 
30  PDH_HQUERY m_cpuQueryFreq{nullptr};
31  PDH_HQUERY m_cpuQueryLoad{nullptr};
32  PDH_HCOUNTER m_cpuFreqCounter{nullptr};
33  std::vector<PDH_HCOUNTER> m_coreCounters;
34 };
Definition: CPUInfo.h:44
Definition: CPUInfoWin32.h:14
Definition: Temperature.h:15