1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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 ([email protected])
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( QListView *lBox, char *Name, char splitchar )
{
QString str;
char buf[512];
QFile *file = new QFile(Name);
QListViewItem* 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;
}
QString s1 = QString::fromLocal8Bit(buf);
QString s2 = s1.mid(s1.find(splitchar)+1);
s1.truncate(s1.find(splitchar));
if(!(s1.isEmpty() || s2.isEmpty()))
olditem = new QListViewItem(lBox, olditem, s1, s2);
}
}
file->close();
delete file;
return true;
}
bool GetInfo_CPU( QListView *lBox )
{
char buf[256];
sysinfo(SI_ARCHITECTURE, buf, sizeof(buf));
new QListViewItem(lBox, QString::fromLocal8Bit(buf));
return true;
}
bool GetInfo_IRQ( QListView * )
{
return false;
}
bool GetInfo_DMA( QListView * )
{
return false;
}
bool GetInfo_PCI( QListView *lBox )
{
char buf[256];
sysinfo(SI_BUSTYPES, buf, sizeof(buf));
new QListViewItem(lBox, QString::fromLocal8Bit(buf));
return true;
}
bool GetInfo_IO_Ports( QListView * )
{
return false;
}
bool GetInfo_Sound( QListView *lBox )
{
if ( GetInfo_ReadfromFile( lBox, INFO_DEV_SNDSTAT, 0 ))
return true;
else
return false;
}
bool GetInfo_Devices( QListView * )
{
return false;
}
bool GetInfo_SCSI( QListView * )
{
return false;
}
bool GetInfo_Partitions( QListView * )
{
return false;
}
bool GetInfo_XServer_and_Video( QListView *lBox )
{
return GetInfo_XServer_Generic( lBox );
}
|