OpenShot Audio Library | OpenShotAudio  0.3.3
juce_SystemStats.h
1 /*
2  ==============================================================================
3 
4  This file is part of the JUCE library.
5  Copyright (c) 2017 - ROLI Ltd.
6 
7  JUCE is an open source library subject to commercial or open-source
8  licensing.
9 
10  The code included in this file is provided under the terms of the ISC license
11  http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12  To use, copy, modify, and/or distribute this software for any purpose with or
13  without fee is hereby granted provided that the above copyright notice and
14  this permission notice appear in all copies.
15 
16  JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17  EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18  DISCLAIMED.
19 
20  ==============================================================================
21 */
22 
23 namespace juce
24 {
25 
26 //==============================================================================
32 class JUCE_API SystemStats final
33 {
34 public:
35  //==============================================================================
39  static String getJUCEVersion();
40 
41  //==============================================================================
44  {
45  UnknownOS = 0,
46 
47  MacOSX = 0x0100,
49  Windows = 0x0200,
51  Linux = 0x0400,
52  Android = 0x0800,
53  iOS = 0x1000,
54 
55  MacOSX_10_4 = MacOSX | 4,
56  MacOSX_10_5 = MacOSX | 5,
57  MacOSX_10_6 = MacOSX | 6,
58  MacOSX_10_7 = MacOSX | 7,
59  MacOSX_10_8 = MacOSX | 8,
60  MacOSX_10_9 = MacOSX | 9,
61  MacOSX_10_10 = MacOSX | 10,
62  MacOSX_10_11 = MacOSX | 11,
63  MacOSX_10_12 = MacOSX | 12,
64  MacOSX_10_13 = MacOSX | 13,
65  MacOSX_10_14 = MacOSX | 14,
66 
67  Win2000 = Windows | 1,
68  WinXP = Windows | 2,
69  WinVista = Windows | 3,
70  Windows7 = Windows | 4,
71  Windows8_0 = Windows | 5,
72  Windows8_1 = Windows | 6,
73  Windows10 = Windows | 7
74  };
75 
82 
89 
91  static bool isOperatingSystem64Bit();
92 
96  static String getEnvironmentVariable (const String& name, const String& defaultValue);
97 
98  //==============================================================================
103 
109 
112 
117 
122 
129 
135 
140 
146  static StringArray getDeviceIdentifiers();
147 
148  //==============================================================================
149  // CPU and memory information..
150 
152  static int getNumCpus() noexcept;
153 
155  static int getNumPhysicalCpus() noexcept;
156 
161  static int getCpuSpeedInMegahertz();
162 
166  static String getCpuVendor();
167 
171  static String getCpuModel();
172 
173  static bool hasMMX() noexcept;
174  static bool has3DNow() noexcept;
175  static bool hasFMA3() noexcept;
176  static bool hasFMA4() noexcept;
177  static bool hasSSE() noexcept;
178  static bool hasSSE2() noexcept;
179  static bool hasSSE3() noexcept;
180  static bool hasSSSE3() noexcept;
181  static bool hasSSE41() noexcept;
182  static bool hasSSE42() noexcept;
183  static bool hasAVX() noexcept;
184  static bool hasAVX2() noexcept;
185  static bool hasAVX512F() noexcept;
186  static bool hasAVX512BW() noexcept;
187  static bool hasAVX512CD() noexcept;
188  static bool hasAVX512DQ() noexcept;
189  static bool hasAVX512ER() noexcept;
190  static bool hasAVX512IFMA() noexcept;
191  static bool hasAVX512PF() noexcept;
192  static bool hasAVX512VBMI() noexcept;
193  static bool hasAVX512VL() noexcept;
194  static bool hasAVX512VPOPCNTDQ() noexcept;
195  static bool hasNeon() noexcept;
197  //==============================================================================
202  static int getMemorySizeInMegabytes();
203 
207  static int getPageSize();
208 
209  //==============================================================================
214  static String getStackBacktrace();
215 
219  using CrashHandlerFunction = void(*)(void*);
220 
227  static void setApplicationCrashHandler (CrashHandlerFunction);
228 
232  static bool isRunningInAppExtensionSandbox() noexcept;
233 
234 
235  //==============================================================================
236  // This method was spelt wrong! Please change your code to use getCpuSpeedInMegahertz() instead
237  JUCE_DEPRECATED_WITH_BODY (static int getCpuSpeedInMegaherz(), { return getCpuSpeedInMegahertz(); })
238 
239 private:
240  SystemStats() = delete; // uses only static methods
241  JUCE_DECLARE_NON_COPYABLE (SystemStats)
242 };
243 
244 } // namespace juce
static String getOperatingSystemName()
void(*)(void *) CrashHandlerFunction
static String getUserRegion()
static String getFullUserName()
static String getLogonName()
static OperatingSystemType getOperatingSystemType()
static String getDeviceManufacturer()
static bool isOperatingSystem64Bit()
static String getDisplayLanguage()
static String getEnvironmentVariable(const String &name, const String &defaultValue)
static String getComputerName()
static String getDeviceDescription()
static String getUserLanguage()