| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library - "Jules' Utility Class Extensions"
 -    Copyright 2004-11 by Raw Material Software Ltd.
 - 
 -   ------------------------------------------------------------------------------
 - 
 -    JUCE can be redistributed and/or modified under the terms of the GNU General
 -    Public License (Version 2), as published by the Free Software Foundation.
 -    A copy of the license is included in the JUCE distribution, or can be found
 -    online at www.gnu.org/licenses.
 - 
 -    JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
 -    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 -    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 - 
 -   ------------------------------------------------------------------------------
 - 
 -    To release a closed-source product which uses JUCE, commercial licenses are
 -    available: visit www.rawmaterialsoftware.com/juce for more information.
 - 
 -   ==============================================================================
 - */
 - 
 - #ifndef __JUCE_SYSTEMSTATS_JUCEHEADER__
 - #define __JUCE_SYSTEMSTATS_JUCEHEADER__
 - 
 - #include "../text/juce_StringArray.h"
 - 
 - 
 - //==============================================================================
 - /**
 -     Contains methods for finding out about the current hardware and OS configuration.
 - */
 - class JUCE_API  SystemStats
 - {
 - public:
 -     //==============================================================================
 -     /** Returns the current version of JUCE,
 - 
 -         See also the JUCE_VERSION, JUCE_MAJOR_VERSION and JUCE_MINOR_VERSION macros.
 -     */
 -     static String getJUCEVersion();
 - 
 -     //==============================================================================
 -     /** The set of possible results of the getOperatingSystemType() method.
 -     */
 -     enum OperatingSystemType
 -     {
 -         UnknownOS   = 0,
 - 
 -         MacOSX      = 0x1000,
 -         Linux       = 0x2000,
 -         Android     = 0x3000,
 - 
 -         Win95       = 0x4001,
 -         Win98       = 0x4002,
 -         WinNT351    = 0x4103,
 -         WinNT40     = 0x4104,
 -         Win2000     = 0x4105,
 -         WinXP       = 0x4106,
 -         WinVista    = 0x4107,
 -         Windows7    = 0x4108,
 - 
 -         Windows     = 0x4000,   /**< To test whether any version of Windows is running,
 -                                      you can use the expression ((getOperatingSystemType() & Windows) != 0). */
 -         WindowsNT   = 0x0100,   /**< To test whether the platform is Windows NT or later (i.e. not Win95 or 98),
 -                                      you can use the expression ((getOperatingSystemType() & WindowsNT) != 0). */
 -     };
 - 
 -     /** Returns the type of operating system we're running on.
 - 
 -         @returns one of the values from the OperatingSystemType enum.
 -         @see getOperatingSystemName
 -     */
 -     static OperatingSystemType getOperatingSystemType();
 - 
 -     /** Returns the name of the type of operating system we're running on.
 - 
 -         @returns a string describing the OS type.
 -         @see getOperatingSystemType
 -     */
 -     static String getOperatingSystemName();
 - 
 -     /** Returns true if the OS is 64-bit, or false for a 32-bit OS.
 -     */
 -     static bool isOperatingSystem64Bit();
 - 
 -    #if JUCE_MAC || DOXYGEN
 -     /** OSX ONLY - Returns the current OS version number.
 -         E.g. if it's running on 10.4, this will be 4, 10.5 will return 5, etc.
 -     */
 -     static int getOSXMinorVersionNumber();
 -    #endif
 - 
 -     //==============================================================================
 -     /** Returns the current user's name, if available.
 -         @see getFullUserName()
 -     */
 -     static String getLogonName();
 - 
 -     /** Returns the current user's full name, if available.
 -         On some OSes, this may just return the same value as getLogonName().
 -         @see getLogonName()
 -     */
 -     static String getFullUserName();
 - 
 -     /** Returns the host-name of the computer. */
 -     static String getComputerName();
 - 
 -     /** Returns the user's language.
 -         The return value is a 2 or 3 letter language code (ISO 639-1 or ISO 639-2)
 -     */
 -     static String getUserLanguage();
 - 
 -     /** Returns the user's region.
 -         The return value is a 2 letter country code (ISO 3166-1 alpha-2).
 -     */
 -     static String getUserRegion();
 - 
 -     //==============================================================================
 -     // CPU and memory information..
 - 
 -     /** Returns the number of CPUs. */
 -     static int getNumCpus() noexcept            { return getCPUFlags().numCpus; }
 - 
 -     /** Returns the approximate CPU speed.
 - 
 -         @returns    the speed in megahertz, e.g. 1500, 2500, 32000 (depending on
 -                     what year you're reading this...)
 -     */
 -     static int getCpuSpeedInMegaherz();
 - 
 -     /** Returns a string to indicate the CPU vendor.
 - 
 -         Might not be known on some systems.
 -     */
 -     static String getCpuVendor();
 - 
 -     /** Checks whether Intel MMX instructions are available. */
 -     static bool hasMMX() noexcept               { return getCPUFlags().hasMMX; }
 - 
 -     /** Checks whether Intel SSE instructions are available. */
 -     static bool hasSSE() noexcept               { return getCPUFlags().hasSSE; }
 - 
 -     /** Checks whether Intel SSE2 instructions are available. */
 -     static bool hasSSE2() noexcept              { return getCPUFlags().hasSSE2; }
 - 
 -     /** Checks whether AMD 3DNOW instructions are available. */
 -     static bool has3DNow() noexcept             { return getCPUFlags().has3DNow; }
 - 
 -     //==============================================================================
 -     /** Finds out how much RAM is in the machine.
 - 
 -         @returns    the approximate number of megabytes of memory, or zero if
 -                     something goes wrong when finding out.
 -     */
 -     static int getMemorySizeInMegabytes();
 - 
 -     /** Returns the system page-size.
 - 
 -         This is only used by programmers with beards.
 -     */
 -     static int getPageSize();
 - 
 - 
 - private:
 -     //==============================================================================
 -     struct CPUFlags
 -     {
 -         CPUFlags();
 - 
 -         int numCpus;
 -         bool hasMMX : 1;
 -         bool hasSSE : 1;
 -         bool hasSSE2 : 1;
 -         bool has3DNow : 1;
 -     };
 - 
 -     SystemStats();
 -     static const CPUFlags& getCPUFlags();
 - 
 -     JUCE_DECLARE_NON_COPYABLE (SystemStats);
 - };
 - 
 - 
 - #endif   // __JUCE_SYSTEMSTATS_JUCEHEADER__
 
 
  |