diff --git a/aegisub/reporter/Makefile.am b/aegisub/reporter/Makefile.am index a51c2e159..ef5f70c9a 100644 --- a/aegisub/reporter/Makefile.am +++ b/aegisub/reporter/Makefile.am @@ -38,6 +38,10 @@ if BUILD_LINUX reporter_2_2_SOURCES += platform_unix_linux.cpp endif +if BUILD_DARWIN +reporter_2_2_SOURCES += platform_unix_osx.cpp +endif + reporter_2_2_SOURCES += \ *.h \ diff --git a/aegisub/reporter/include/platform.h b/aegisub/reporter/include/platform.h index 05d607173..d4a41a4c7 100644 --- a/aegisub/reporter/include/platform.h +++ b/aegisub/reporter/include/platform.h @@ -253,7 +253,7 @@ public: /// @name OS X //@{ -#ifdef __OSX__ +#ifdef __APPLE__ /// OS patch level /// @return Patch level diff --git a/aegisub/reporter/platform.cpp b/aegisub/reporter/platform.cpp index 5b2515a76..b336e15c7 100644 --- a/aegisub/reporter/platform.cpp +++ b/aegisub/reporter/platform.cpp @@ -28,6 +28,7 @@ #include "platform_unix.h" #include "platform_unix_bsd.h" #include "platform_unix_linux.h" +#include "platform_unix_osx.h" /// @brief Constructor. Platform* Platform::GetPlatform() { @@ -37,6 +38,8 @@ Platform* Platform::GetPlatform() { Platform *p = new PlatformUnixBSD; # elif defined(__LINUX__) Platform *p = new PlatformUnixLinux; +# elif defined(__APPLE__) + Platform *p = new PlatformUnixOSX; # else Platform *p = new PlatformUnix; # endif @@ -114,3 +117,15 @@ wxString Platform::Signature() { wxString Platform::DesktopEnvironment() { return ""; } + +wxString Platform::PatchLevel() { + return ""; +} + +wxString Platform::QuickTimeExt() { + return ""; +} + +wxString Platform::HardwareModel() { + return ""; +} diff --git a/aegisub/reporter/platform_unix_osx.cpp b/aegisub/reporter/platform_unix_osx.cpp new file mode 100644 index 000000000..3b4b1ceb2 --- /dev/null +++ b/aegisub/reporter/platform_unix_osx.cpp @@ -0,0 +1,92 @@ +// Copyright (c) 2009, Amar Takhar +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// $Id$ + +/// @file platform_unix_bsd.cpp +/// @brief BSD Platform extensions. +/// @ingroup unix + +#ifndef R_PRECOMP +#include +#endif + +extern "C" { +#include +#include +} + +#include "include/platform.h" +#include "platform_unix.h" +#include "platform_unix_osx.h" + + +wxString PlatformUnixOSX::CPUId() { + char id[300]; + size_t len = sizeof(id); + sysctlbyname("hw.model", &id, &len, NULL, 0); + return wxString::Format("%s", id); +}; + +wxString PlatformUnixOSX::CPUSpeed() { + return ""; +}; + +wxString PlatformUnixOSX::CPUCores() { + return ""; +}; + +wxString PlatformUnixOSX::CPUCount() { + int proc; + size_t len = sizeof(proc); + sysctlbyname("hw.ncpu", &proc, &len, NULL, 0); + return wxString::Format("%d", proc); +}; + +wxString PlatformUnixOSX::CPUFeatures() { + return ""; +}; + +wxString PlatformUnixOSX::CPUFeatures2() { + return ""; +}; + +wxString PlatformUnixOSX::Memory() { + uint64_t memory; + size_t len = sizeof(memory); + sysctlbyname("hw.physmem", &memory, &len, NULL, 0); + return wxString::Format("%d", memory); + return ""; +}; + +wxString PlatformUnixOSX::Video() { + return ""; +}; + +wxString PlatformUnixOSX::UnixLibraries() { + return ""; +}; + +wxString PlatformUnixOSX::PatchLevel() { + return ""; +} + +wxString PlatformUnixOSX::QuickTimeExt() { + return ""; +} + +wxString PlatformUnixOSX::HardwareModel() { + return ""; +} + diff --git a/aegisub/reporter/platform_unix_osx.h b/aegisub/reporter/platform_unix_osx.h new file mode 100644 index 000000000..761fe619e --- /dev/null +++ b/aegisub/reporter/platform_unix_osx.h @@ -0,0 +1,45 @@ +// Copyright (c) 2009, Amar Takhar +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// $Id$ + +/// @file platform_unix_bsd.h +/// @see platform_unix_bsd.cpp +/// @ingroup unix + +class Platform; + +/// @brief BSD values. +class PlatformUnixOSX : public PlatformUnix { +public: + PlatformUnixOSX() {}; + virtual ~PlatformUnixOSX() {}; + + // Hardware + virtual wxString CPUId(); + virtual wxString CPUSpeed(); + virtual wxString CPUCores(); + virtual wxString CPUCount(); + virtual wxString CPUFeatures(); + virtual wxString CPUFeatures2(); + virtual wxString Memory(); + virtual wxString Video(); + + virtual wxString PatchLevel(); + virtual wxString QuickTimeExt(); + virtual wxString HardwareModel(); + + // Unix Specific + virtual wxString UnixLibraries(); +}; diff --git a/aegisub/reporter/report.cpp b/aegisub/reporter/report.cpp index a38c6808e..21cbab6e9 100644 --- a/aegisub/reporter/report.cpp +++ b/aegisub/reporter/report.cpp @@ -119,9 +119,9 @@ Report::XMLReport Report::ReportCreate() { #ifdef __APPLE__ doc.osx = new wxXmlNode(wxXML_ELEMENT_NODE, "osx"); doc.report->AddChild(doc.osx); - Add(doc.osx, "patch", p->PatchLevel); - Add(doc.osx, "quicktimeext", p->QuickTimeExt); - Add(doc.osx, "model", p->HardwareModel); + Add(doc.osx, "patch", p->PatchLevel()); + Add(doc.osx, "quicktimeext", p->QuickTimeExt()); + Add(doc.osx, "model", p->HardwareModel()); #endif