diff options
Diffstat (limited to 'kcontrol/info/info_svr4.cpp')
-rw-r--r-- | kcontrol/info/info_svr4.cpp | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/kcontrol/info/info_svr4.cpp b/kcontrol/info/info_svr4.cpp new file mode 100644 index 000000000..ba491a50e --- /dev/null +++ b/kcontrol/info/info_svr4.cpp @@ -0,0 +1,132 @@ +/* + info_svr4.cpp + + UNIX System V Release 4 specific Information about the Hardware. + Appropriate for SCO OpenServer and UnixWare. + Written 20-Feb-99 by Ronald Joe Record (rr@sco.com) + Initially based on info_sgi.cpp +*/ + +#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 + +#define INFO_DEV_SNDSTAT "/dev/sndstat" + +#include <sys/systeminfo.h> + +/* all following functions should return true, when the Information + was filled into the lBox-Widget. + returning false indicates, that information was not available. +*/ + +bool GetInfo_ReadfromFile( TQListView *lBox, char *Name, char splitchar ) +{ + TQString str; + char buf[512]; + + TQFile *file = new TQFile(Name); + TQListViewItem* olditem = 0; + + if(!file->open(IO_ReadOnly)) { + delete file; + return false; + } + + while (file->readLine(buf,sizeof(buf)-1) > 0) { + if (strlen(buf)) { + char *p=buf; + if (splitchar!=0) /* remove leading spaces between ':' and the following text */ + while (*p) { + if (*p==splitchar) { + *p++ = ' '; + while (*p==' ') ++p; + *(--p) = splitchar; + ++p; + } + else ++p; + } + + TQString s1 = TQString::fromLocal8Bit(buf); + TQString s2 = s1.mid(s1.find(splitchar)+1); + + s1.truncate(s1.find(splitchar)); + if(!(s1.isEmpty() || s2.isEmpty())) + olditem = new TQListViewItem(lBox, olditem, s1, s2); + } + } + file->close(); + + delete file; + return true; +} + +bool GetInfo_CPU( TQListView *lBox ) +{ + char buf[256]; + + sysinfo(SI_ARCHITECTURE, buf, sizeof(buf)); + new TQListViewItem(lBox, TQString::fromLocal8Bit(buf)); + return true; +} + + +bool GetInfo_IRQ( TQListView * ) +{ + return false; +} + +bool GetInfo_DMA( TQListView * ) +{ + return false; +} + +bool GetInfo_PCI( TQListView *lBox ) +{ + char buf[256]; + + sysinfo(SI_BUSTYPES, buf, sizeof(buf)); + new TQListViewItem(lBox, TQString::fromLocal8Bit(buf)); + return true; +} + +bool GetInfo_IO_Ports( TQListView * ) +{ + return false; +} + +bool GetInfo_Sound( TQListView *lBox ) +{ + if ( GetInfo_ReadfromFile( lBox, INFO_DEV_SNDSTAT, 0 )) + return true; + else + return false; +} + +bool GetInfo_Devices( TQListView * ) +{ + return false; +} + +bool GetInfo_SCSI( TQListView * ) +{ + return false; +} + +bool GetInfo_Partitions( TQListView * ) +{ + return false; +} + +bool GetInfo_XServer_and_Video( TQListView *lBox ) +{ + return GetInfo_XServer_Generic( lBox ); +} + |