You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebase/kcontrol/info/info_osx.cpp

177 lines
4.5 KiB

/*
* 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 <tqdict.h>
#include <tqfile.h>
#include <tqfontmetrics.h>
#include <tqptrlist.h>
#include <tqstring.h>
#include <tqtextstream.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 (TQListView *lBox)
{
TQString 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 TQListViewItem(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 TQListViewItem(lBox, cpustring);
}
return true;
}
return false;
}
bool GetInfo_IRQ (TQListView *)
{
return false;
}
bool GetInfo_DMA (TQListView *)
{
return false;
}
bool GetInfo_PCI (TQListView *)
{
return false;
}
bool GetInfo_IO_Ports (TQListView *)
{
return false;
}
bool GetInfo_Sound (TQListView *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 TQListViewItem(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 TQListViewItem(lBox, i18n("Manufacturer: %1").arg(manufacturer));
return true;
} else {
return false;
}
#else
return false;
#endif
}
bool GetInfo_SCSI (TQListView *lbox)
{
return false;
}
bool GetInfo_Partitions (TQListView *lbox)
{
return false;
}
bool GetInfo_XServer_and_Video (TQListView *lBox)
{
return GetInfo_XServer_Generic( lBox );
}
bool GetInfo_Devices (TQListView *lbox)
{
return false;
}