46
#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
44
49
while( (*data= sensors_get_all_features(*chip_name, nr1, nr2)) && (*data)->mapping!=SENSORS_NO_MAPPING) {
46
if(str.find("_min")>=0 || str.find("_low")>=0) {
47
sensors_get_feature(*chip_name, (*data)->number, &valMin);
50
else if(str.find("_max")>=0 || str.find("_over")>=0 || str.find("_high")>=0) {
51
sensors_get_feature(*chip_name, (*data)->number, &valMax);
50
int len = strlen((*data)->name);
51
const char *postfix = (*data)->name + len - 4;
56
if((!strcmp(postfix, "_min") || !strcmp(postfix, "_low")) &&
57
!sensors_get_feature(*chip_name, (*data)->number, &valMin))
60
if(!strcmp(postfix, "_max") &&
61
!sensors_get_feature(*chip_name, (*data)->number, &valMax)) {
68
if((!strcmp(postfix, "_over") || !strcmp(postfix, "_high")) &&
69
!sensors_get_feature(*chip_name, (*data)->number, &valMax))
87
104
sensors_get_label(*chip_name,feature,&label);
88
105
setDescription(QString(label));
96
setValueMax(max,dgCelsius);
97
setValueMin(min,dgCelsius);
98
setValue((max+min)/2,dgCelsius);
101
setValueMax(70,dgCelsius);
102
setValueMin(0,dgCelsius);
103
setValue(newVal,dgCelsius);
113
#else /* libsensors4 code */
115
const sensors_subfeature *sub_feature;
116
const sensors_feature *feature_data = *data;
118
/* Move to next feature for the loop in LMSensorsChip::createSensors() */
119
*data = sensors_get_features(chip_name, nr1);
121
switch(feature_data->type)
123
case SENSORS_FEATURE_IN:
124
sub_feature = sensors_get_subfeature(chip_name, feature_data,
125
SENSORS_SUBFEATURE_IN_INPUT);
130
feature = sub_feature->number;
132
if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
133
SENSORS_SUBFEATURE_IN_MIN)) ||
134
sensors_get_value(chip_name, sub_feature->number, &min))
137
if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
138
SENSORS_SUBFEATURE_IN_MAX)) ||
139
sensors_get_value(chip_name, sub_feature->number, &max))
145
case SENSORS_FEATURE_FAN:
146
sub_feature = sensors_get_subfeature(chip_name, feature_data,
147
SENSORS_SUBFEATURE_FAN_INPUT);
152
feature = sub_feature->number;
154
if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
155
SENSORS_SUBFEATURE_FAN_MIN)) ||
156
sensors_get_value(chip_name, sub_feature->number, &min))
164
case SENSORS_FEATURE_TEMP:
165
sub_feature = sensors_get_subfeature(chip_name, feature_data,
166
SENSORS_SUBFEATURE_TEMP_INPUT);
171
feature = sub_feature->number;
173
if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
174
SENSORS_SUBFEATURE_TEMP_MIN)) ||
175
sensors_get_value(chip_name, sub_feature->number, &min))
178
if ((!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
179
SENSORS_SUBFEATURE_TEMP_MAX)) &&
180
!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
181
SENSORS_SUBFEATURE_TEMP_CRIT))) ||
182
sensors_get_value(chip_name, sub_feature->number, &max))
192
str.sprintf("%s.%s", chip_name->prefix, main_name);
193
setName( str.latin1() );
195
label = sensors_get_label(chip_name, feature_data);
197
setDescription(QString(label));
199
setDescription( str.latin1() );
201
#endif /* libsensors3 / libsensors4 code */
209
setValueMax(max,dgCelsius);
210
setValueMin(min,dgCelsius);