summaryrefslogtreecommitdiffstats
path: root/kcontrol/info/info_osx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/info/info_osx.cpp')
-rw-r--r--kcontrol/info/info_osx.cpp176
1 files changed, 176 insertions, 0 deletions
diff --git a/kcontrol/info/info_osx.cpp b/kcontrol/info/info_osx.cpp
new file mode 100644
index 000000000..25f23c2d9
--- /dev/null
+++ b/kcontrol/info/info_osx.cpp
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2003 Benjamin Reed <ranger@befunk.com>
+ *
+ * info_osx.cpp is part of the KDE program kcminfo. Copied wholesale
+ * from info_fbsd.cpp =)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#define INFO_CPU_AVAILABLE
+//#define INFO_IRQ_AVAILABLE
+//#define INFO_DMA_AVAILABLE
+//#define INFO_PCI_AVAILABLE
+//#define INFO_IOPORTS_AVAILABLE
+#define INFO_SOUND_AVAILABLE
+#define INFO_DEVICES_AVAILABLE
+#define INFO_SCSI_AVAILABLE
+#define INFO_PARTITIONS_AVAILABLE
+#define INFO_XSERVER_AVAILABLE
+
+/*
+ * all following functions should return TRUE, when the Information
+ * was filled into the lBox-Widget. Returning FALSE indicates that
+ * information was not available.
+ */
+
+#include <sys/types.h>
+#include <sys/sysctl.h>
+
+#include <fstab.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <iostream.h>
+
+#include <qdict.h>
+#include <qfile.h>
+#include <qfontmetrics.h>
+#include <qptrlist.h>
+#include <qstring.h>
+#include <qtextstream.h>
+
+#include <kdebug.h>
+
+#include <mach/mach.h>
+#include <mach-o/arch.h>
+
+#ifdef HAVE_COREAUDIO
+#include <CoreAudio/CoreAudio.h>
+#endif
+
+#include <machine/limits.h>
+
+bool GetInfo_CPU (QListView *lBox)
+{
+
+ QString cpustring;
+
+ kern_return_t ret;
+ struct host_basic_info basic_info;
+ unsigned int count=HOST_BASIC_INFO_COUNT;
+
+ ret=host_info(mach_host_self(), HOST_BASIC_INFO,
+ (host_info_t)&basic_info, &count);
+ if (ret != KERN_SUCCESS) {
+ kdDebug() << "unable to get host information from mach" << endl;
+ return false;
+ } else {
+ kdDebug() << "got Host Info: (" << basic_info.avail_cpus << ") CPUs available" << endl;
+ const NXArchInfo *archinfo;
+ archinfo=NXGetArchInfoFromCpuType(basic_info.cpu_type, basic_info.cpu_subtype);
+ new QListViewItem(lBox, i18n("Kernel is configured for %1 CPUs").arg(basic_info.max_cpus));
+ for (int i = 1; i <= basic_info.avail_cpus; i++) {
+ cpustring = i18n("CPU %1: %2").arg(i).arg(archinfo->description);
+ new QListViewItem(lBox, cpustring);
+ }
+ return true;
+ }
+ return false;
+}
+
+bool GetInfo_IRQ (QListView *)
+{
+ return false;
+}
+
+bool GetInfo_DMA (QListView *)
+{
+ return false;
+}
+
+bool GetInfo_PCI (QListView *)
+{
+ return false;
+}
+
+bool GetInfo_IO_Ports (QListView *)
+{
+ return false;
+}
+
+bool GetInfo_Sound (QListView *lBox)
+{
+#ifdef HAVE_COREAUDIO
+#define kMaxStringSize 1024
+ OSStatus status;
+ AudioDeviceID gOutputDeviceID;
+ unsigned long propertySize;
+ char deviceName[kMaxStringSize];
+ char manufacturer[kMaxStringSize];
+ propertySize = sizeof(gOutputDeviceID);
+ status = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &propertySize, &gOutputDeviceID);
+ if (status) {
+ kdDebug() << "get default output device failed, status = " << (int)status << endl;
+ return false;
+ }
+
+ if (gOutputDeviceID != kAudioDeviceUnknown) {
+
+ propertySize = kMaxStringSize;
+
+ /* Device Name */
+ status = AudioDeviceGetProperty(gOutputDeviceID, 1, 0, kAudioDevicePropertyDeviceName, &propertySize, deviceName);
+ if (status) {
+ kdDebug() << "get device name failed, status = " << (int)status << endl;
+ return false;
+ }
+ new QListViewItem(lBox, i18n("Device Name: %1").arg(deviceName));
+
+ /* Manufacturer */
+ status = AudioDeviceGetProperty(gOutputDeviceID, 1, 0, kAudioDevicePropertyDeviceManufacturer, &propertySize, manufacturer);
+ if (status) {
+ kdDebug() << "get manufacturer failed, status = " << (int)status << endl;
+ return false;
+ }
+ new QListViewItem(lBox, i18n("Manufacturer: %1").arg(manufacturer));
+ return true;
+ } else {
+ return false;
+ }
+#else
+ return false;
+#endif
+}
+
+bool GetInfo_SCSI (QListView *lbox)
+{
+ return false;
+}
+
+bool GetInfo_Partitions (QListView *lbox)
+{
+ return false;
+}
+
+bool GetInfo_XServer_and_Video (QListView *lBox)
+{
+ return GetInfo_XServer_Generic( lBox );
+}
+
+bool GetInfo_Devices (QListView *lbox)
+{
+ return false;
+}