| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library.
 -    Copyright (c) 2013 - Raw Material Software Ltd.
 - 
 -    Permission is granted to use this software under the terms of either:
 -    a) the GPL v2 (or any later version)
 -    b) the Affero GPL v3
 - 
 -    Details of these licenses can be found 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.juce.com for more information.
 - 
 -   ==============================================================================
 - */
 - 
 - #include "jucedemo_headers.h"
 - #include "MainDemoWindow.h"
 - 
 - 
 - //==============================================================================
 - class JUCEDemoApplication : public JUCEApplication
 - {
 - public:
 -     //==============================================================================
 -     JUCEDemoApplication()
 -     {
 -     }
 - 
 -     ~JUCEDemoApplication()
 -     {
 -     }
 - 
 -     //==============================================================================
 -     void initialise (const String& /*commandLine*/)
 -     {
 -        #if JUCE_IOS || JUCE_ANDROID
 -         theMainWindow.setVisible (true);
 -         theMainWindow.setFullScreen (true);
 -        #else
 -         theMainWindow.centreWithSize (700, 600);
 -         theMainWindow.setVisible (true);
 -        #endif
 - 
 -         // this little function just demonstrates a few system info calls
 -         Logger::outputDebugString (collectSomeSystemInfo());
 - 
 -         /*  on return from this method, the app will go into its the main event
 -             dispatch loop, and this will run until something calls
 -             JUCEAppliction::quit().
 - 
 -             In this case, JUCEAppliction::quit() will be called by the
 -             demo window when the user clicks on its close button.
 -         */
 -     }
 - 
 -     void shutdown()
 -     {
 -         // This method is where your app should do any cleaning-up that's needed
 -         // before being shut down.
 -     }
 - 
 -     //==============================================================================
 -     const String getApplicationName()
 -     {
 -         // When you use the Jucer to auto-generate a project, it puts the project's name and version in
 -         // this constant, so we can use that here as our return value. Alternatively you can return
 -         // your own string here, of course.
 -         return ProjectInfo::projectName;
 -     }
 - 
 -     const String getApplicationVersion()
 -     {
 -         // When you use the Jucer to auto-generate a project, it puts the project's name and version in
 -         // this constant, so we can use that here as our return value. Alternatively you can return
 -         // your own string here, of course.
 -         return ProjectInfo::versionString;
 -     }
 - 
 -     bool moreThanOneInstanceAllowed()
 -     {
 -         return true;
 -     }
 - 
 -     void anotherInstanceStarted (const String& /*commandLine*/)
 -     {
 -         // This will get called if the user launches another copy of the app, but
 -         // there's nothing that the demo app needs to do here.
 -     }
 - 
 - private:
 -     // This is the main demo window component.
 -     MainDemoWindow theMainWindow;
 - 
 -     //==============================================================================
 -     // this little function just demonstrates a few system info calls
 -     static String collectSomeSystemInfo()
 -     {
 -         String systemInfo;
 - 
 -         systemInfo
 -           << "Time and date: " << Time::getCurrentTime().toString (true, true) << newLine
 - 
 -           << "User logon name: "  << SystemStats::getLogonName() << newLine
 -           << "Full user name: "   << SystemStats::getFullUserName() << newLine
 -           << "Host name: "        << SystemStats::getComputerName() << newLine
 -           << "Operating system: " << SystemStats::getOperatingSystemName() << newLine
 -           << "Locale: "           << SystemStats::getUserLanguage() << "-" << SystemStats::getUserRegion() << newLine
 - 
 -           << "Memory size: "    << SystemStats::getMemorySizeInMegabytes() << "MB" << newLine
 -           << "Number of CPUs: " << SystemStats::getNumCpus() << newLine
 -           << "CPU vendor: "     << SystemStats::getCpuVendor() << newLine
 -           << "CPU speed: "      << SystemStats::getCpuSpeedInMegaherz() << "MHz" << newLine
 -           << "CPU has MMX: "    << (SystemStats::hasMMX()   ? "yes" : "no") << newLine
 -           << "CPU has SSE: "    << (SystemStats::hasSSE()   ? "yes" : "no") << newLine
 -           << "CPU has SSE2: "   << (SystemStats::hasSSE2()  ? "yes" : "no") << newLine
 -           << "CPU has SSE3: "   << (SystemStats::hasSSE3()  ? "yes" : "no") << newLine
 -           << "CPU has 3DNOW: "  << (SystemStats::has3DNow() ? "yes" : "no") << newLine
 - 
 -           << "Found network card MAC addresses: " << getMacAddressList() << newLine
 -           << "Found IP addresses: " << getIPAddressList() << newLine
 - 
 -           << "Current working directory: "         << File::getCurrentWorkingDirectory().getFullPathName() << newLine
 -           << "Current executable file: "           << File::getSpecialLocation (File::currentExecutableFile).getFullPathName() << newLine
 -           << "Current application file: "          << File::getSpecialLocation (File::currentApplicationFile).getFullPathName() << newLine
 -           << "User home directory: "               << File::getSpecialLocation (File::userHomeDirectory).getFullPathName() << newLine
 -           << "User documents directory: "          << File::getSpecialLocation (File::userDocumentsDirectory).getFullPathName() << newLine
 -           << "User application data directory: "   << File::getSpecialLocation (File::userApplicationDataDirectory).getFullPathName() << newLine
 -           << "Common application data directory: " << File::getSpecialLocation (File::commonApplicationDataDirectory).getFullPathName() << newLine
 -           << "Temp directory: "                    << File::getSpecialLocation (File::tempDirectory).getFullPathName() << newLine
 -           << newLine;
 - 
 -         return systemInfo;
 -     }
 - 
 -     static String getMacAddressList()
 -     {
 -         Array <MACAddress> macAddresses;
 -         MACAddress::findAllAddresses (macAddresses);
 - 
 -         StringArray addressStrings;
 -         for (int i = 0; i < macAddresses.size(); ++i)
 -             addressStrings.add (macAddresses[i].toString());
 - 
 -         return addressStrings.joinIntoString (", ");
 -     }
 - 
 -     static String getIPAddressList()
 -     {
 -         Array <IPAddress> addresses;
 -         IPAddress::findAllAddresses (addresses);
 - 
 -         StringArray addressStrings;
 -         for (int i = 0; i < addresses.size(); ++i)
 -             addressStrings.add (addresses[i].toString());
 - 
 -         return addressStrings.joinIntoString (", ");
 -     }
 - };
 - 
 - 
 - //==============================================================================
 - /*
 -     This macro creates the application's main() function..
 - */
 - START_JUCE_APPLICATION (JUCEDemoApplication)
 
 
  |