OpenShot Audio Library | OpenShotAudio 0.4.0
Loading...
Searching...
No Matches
juce_SystemStats.h
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
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
23namespace juce
24{
25
26//==============================================================================
32class JUCE_API SystemStats final
33{
34public:
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 WASM = 0x2000,
55
56 MacOSX_10_7 = MacOSX | 7,
57 MacOSX_10_8 = MacOSX | 8,
58 MacOSX_10_9 = MacOSX | 9,
59 MacOSX_10_10 = MacOSX | 10,
60 MacOSX_10_11 = MacOSX | 11,
61 MacOSX_10_12 = MacOSX | 12,
62 MacOSX_10_13 = MacOSX | 13,
63 MacOSX_10_14 = MacOSX | 14,
64 MacOSX_10_15 = MacOSX | 15,
65 MacOS_11 = MacOSX | 16,
66 MacOS_12 = MacOSX | 17,
67 MacOS_13 = MacOSX | 18,
68 MacOS_14 = MacOSX | 19,
69
70 Win2000 = Windows | 1,
71 WinXP = Windows | 2,
72 WinVista = Windows | 3,
73 Windows7 = Windows | 4,
74 Windows8_0 = Windows | 5,
75 Windows8_1 = Windows | 6,
76 Windows10 = Windows | 7,
77 Windows11 = Windows | 8
78 };
79
86
93
96
100 static String getEnvironmentVariable (const String& name, const String& defaultValue);
101
102 //==============================================================================
107
113
116
121
126
133
139
144
150 [[deprecated ("The identifiers produced by this function are not reliable. Use getUniqueDeviceID() instead.")]]
152
166
168 enum class MachineIdFlags
169 {
170 macAddresses = 1 << 0,
171 fileSystemId = 1 << 1,
172 legacyUniqueId = 1 << 2,
173 uniqueId = 1 << 3,
174 };
175
190 static StringArray getMachineIdentifiers (MachineIdFlags flags);
191
192 //==============================================================================
193 // CPU and memory information..
194
196 static int getNumCpus() noexcept;
197
199 static int getNumPhysicalCpus() noexcept;
200
206
211
216
217 static bool hasMMX() noexcept;
218 static bool has3DNow() noexcept;
219 static bool hasFMA3() noexcept;
220 static bool hasFMA4() noexcept;
221 static bool hasSSE() noexcept;
222 static bool hasSSE2() noexcept;
223 static bool hasSSE3() noexcept;
224 static bool hasSSSE3() noexcept;
225 static bool hasSSE41() noexcept;
226 static bool hasSSE42() noexcept;
227 static bool hasAVX() noexcept;
228 static bool hasAVX2() noexcept;
229 static bool hasAVX512F() noexcept;
230 static bool hasAVX512BW() noexcept;
231 static bool hasAVX512CD() noexcept;
232 static bool hasAVX512DQ() noexcept;
233 static bool hasAVX512ER() noexcept;
234 static bool hasAVX512IFMA() noexcept;
235 static bool hasAVX512PF() noexcept;
236 static bool hasAVX512VBMI() noexcept;
237 static bool hasAVX512VL() noexcept;
238 static bool hasAVX512VPOPCNTDQ() noexcept;
239 static bool hasNeon() noexcept;
240
241 //==============================================================================
247
251 static int getPageSize();
252
253 //==============================================================================
258 static String getStackBacktrace();
259
263 using CrashHandlerFunction = void (*) (void*);
264
272
276 static bool isRunningInAppExtensionSandbox() noexcept;
277
278 #if JUCE_MAC
279 static bool isAppSandboxEnabled();
280 #endif
281
282 //==============================================================================
283 #ifndef DOXYGEN
284 [[deprecated ("This method was spelt wrong! Please change your code to use getCpuSpeedInMegahertz instead.")]]
285 static int getCpuSpeedInMegaherz() { return getCpuSpeedInMegahertz(); }
286 #endif
287
288private:
289 SystemStats() = delete; // uses only static methods
290 JUCE_DECLARE_NON_COPYABLE (SystemStats)
291};
292
293JUCE_DECLARE_SCOPED_ENUM_BITWISE_OPERATORS (SystemStats::MachineIdFlags)
294
295} // namespace juce
static bool hasAVX512CD() noexcept
static String getStackBacktrace()
static bool hasMMX() noexcept
static void setApplicationCrashHandler(CrashHandlerFunction)
static String getOperatingSystemName()
static String getCpuModel()
static String getUserRegion()
static String getFullUserName()
static bool hasAVX512ER() noexcept
static bool has3DNow() noexcept
static bool hasAVX2() noexcept
static bool hasAVX512VPOPCNTDQ() noexcept
static bool hasSSE() noexcept
static String getLogonName()
static bool hasAVX512DQ() noexcept
static bool isRunningInAppExtensionSandbox() noexcept
static OperatingSystemType getOperatingSystemType()
static String getDeviceManufacturer()
static bool hasNeon() noexcept
static bool hasAVX512F() noexcept
static bool isOperatingSystem64Bit()
static bool hasSSE3() noexcept
static bool hasSSE2() noexcept
static String getDisplayLanguage()
static bool hasAVX() noexcept
void(*)(void *) CrashHandlerFunction
static int getCpuSpeedInMegahertz()
static bool hasAVX512VBMI() noexcept
static String getUniqueDeviceID()
@ legacyUniqueId
Only implemented on Windows. A hash of the full smbios table, may be unstable on certain machines.
@ uniqueId
The most stable kind of machine identifier. A good default to use.
@ fileSystemId
The filesystem id of the user's home directory (or system directory on Windows).
@ macAddresses
All Mac addresses of the machine.
static String getEnvironmentVariable(const String &name, const String &defaultValue)
static bool hasSSSE3() noexcept
static bool hasAVX512VL() noexcept
static bool hasAVX512PF() noexcept
static String getComputerName()
static bool hasSSE41() noexcept
static int getPageSize()
static StringArray getDeviceIdentifiers()
static bool hasFMA4() noexcept
static String getDeviceDescription()
static String getJUCEVersion()
static String getUserLanguage()
static bool hasSSE42() noexcept
static String getCpuVendor()
static int getMemorySizeInMegabytes()
static bool hasFMA3() noexcept
static bool hasAVX512IFMA() noexcept
static bool hasAVX512BW() noexcept