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.
tde-packaging/redhat/extras/ksensors/ksensors-0.7.3-lm_sensors-3...

246 lines
7.4 KiB

diff -up ksensors-0.7.3/src/lmsensor.cpp.lm_sensors3x ksensors-0.7.3/src/lmsensor.cpp
--- ksensors-0.7.3/src/lmsensor.cpp.lm_sensors3x 2007-11-11 16:34:15.000000000 +0100
+++ ksensors-0.7.3/src/lmsensor.cpp 2007-11-11 16:37:58.000000000 +0100
@@ -30,8 +30,11 @@ LMSensor::LMSensor(SensorsList *parent):
LMSensor::~LMSensor(){
}
-
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
bool LMSensor::init(const sensors_feature_data **data, int *nr1,int *nr2)
+#else
+bool LMSensor::init(const sensors_feature **data, int *nr1, int *nr2)
+#endif
{
double min,max;
const sensors_chip_name *chip_name= getChipName();
@@ -40,6 +43,7 @@ bool LMSensor::init(const sensors_featur
char *label;
QString str;
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
bool min_found=false;
bool max_found=false;
while( (*data= sensors_get_all_features(*chip_name, nr1, nr2)) && (*data)->mapping!=SENSORS_NO_MAPPING) {
@@ -105,7 +109,97 @@ bool LMSensor::init(const sensors_featur
if(max_found)
max = valMax;
-
+
+#else /* libsensors4 code */
+
+ const sensors_subfeature *sub_feature;
+ const sensors_feature *feature_data = *data;
+
+ /* Move to next feature for the loop in LMSensorsChip::createSensors() */
+ *data = sensors_get_features(chip_name, nr1);
+
+ switch(feature_data->type)
+ {
+ case SENSORS_FEATURE_IN:
+ sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_IN_INPUT);
+
+ if (!sub_feature)
+ return false;
+
+ feature = sub_feature->number;
+
+ if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_IN_MIN)) ||
+ sensors_get_value(chip_name, sub_feature->number, &min))
+ min = -16;
+
+ if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_IN_MAX)) ||
+ sensors_get_value(chip_name, sub_feature->number, &max))
+ max = 16;
+
+ setType(lmVoltage);
+ break;
+
+ case SENSORS_FEATURE_FAN:
+ sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_FAN_INPUT);
+
+ if (!sub_feature)
+ return false;
+
+ feature = sub_feature->number;
+
+ if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_FAN_MIN)) ||
+ sensors_get_value(chip_name, sub_feature->number, &min))
+ min = 3000;
+
+ max = 10000;
+
+ setType(lmFan);
+ break;
+
+ case SENSORS_FEATURE_TEMP:
+ sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_TEMP_INPUT);
+
+ if (!sub_feature)
+ return false;
+
+ feature = sub_feature->number;
+
+ if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_TEMP_MIN)) ||
+ sensors_get_value(chip_name, sub_feature->number, &min))
+ min = 0;
+
+ if ((!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_TEMP_MAX)) &&
+ !(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+ SENSORS_SUBFEATURE_TEMP_CRIT))) ||
+ sensors_get_value(chip_name, sub_feature->number, &max))
+ max = 65;
+
+ setType(lmTemp);
+ break;
+
+ default:
+ return false;
+ }
+
+ str.sprintf("%s.%s", chip_name->prefix, main_name);
+ setName( str.latin1() );
+
+ label = sensors_get_label(chip_name, feature_data);
+ if (label)
+ setDescription(QString(label));
+ else
+ setDescription( str.latin1() );
+
+#endif /* libsensors3 / libsensors4 code */
+
if(min>max) {
double pivot= min;
min= max;
@@ -131,7 +225,11 @@ double LMSensor::readSensorValue()
{
double newVal;
const sensors_chip_name *chip_name= getChipName();
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
sensors_get_feature(*chip_name, feature, &newVal);
+#else
+ sensors_get_value(chip_name, feature, &newVal);
+#endif
return newVal;
}
diff -up ksensors-0.7.3/src/lmsensorschip.cpp.lm_sensors3x ksensors-0.7.3/src/lmsensorschip.cpp
--- ksensors-0.7.3/src/lmsensorschip.cpp.lm_sensors3x 2003-12-27 22:52:12.000000000 +0100
+++ ksensors-0.7.3/src/lmsensorschip.cpp 2007-11-11 16:34:15.000000000 +0100
@@ -50,10 +50,15 @@ const sensors_chip_name *LMSensorsChip::
void LMSensorsChip::createSensors()
{
if(!chip_name) return;
- const sensors_feature_data *data;
int nr1= 0;
int nr2= 0;
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
+ const sensors_feature_data *data;
data= sensors_get_all_features(*chip_name, &nr1, &nr2);
+#else
+ const sensors_feature *data;
+ data= sensors_get_features(chip_name, &nr1);
+#endif
while(data) {
LMSensor *sensor= new LMSensor(this);
if( !sensor->init(&data,&nr1,&nr2) )
diff -up ksensors-0.7.3/src/lmsensor.h.lm_sensors3x ksensors-0.7.3/src/lmsensor.h
--- ksensors-0.7.3/src/lmsensor.h.lm_sensors3x 2003-12-27 22:52:12.000000000 +0100
+++ ksensors-0.7.3/src/lmsensor.h 2007-11-11 16:34:15.000000000 +0100
@@ -51,7 +51,11 @@ protected:
double calculateIdealValue();
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
bool init(const sensors_feature_data **data, int *nr1,int *nr2);
+#else
+ bool init(const sensors_feature **data, int *nr1,int *nr2);
+#endif
const sensors_chip_name *getChipName();
private:
diff -up ksensors-0.7.3/src/lmsensors.cpp.lm_sensors3x ksensors-0.7.3/src/lmsensors.cpp
--- ksensors-0.7.3/src/lmsensors.cpp.lm_sensors3x 2007-11-11 16:34:15.000000000 +0100
+++ ksensors-0.7.3/src/lmsensors.cpp 2007-11-11 16:34:15.000000000 +0100
@@ -45,17 +45,23 @@ LMSensors::~LMSensors()
bool LMSensors::initSensors()
{
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
FILE *fp=fopen("/etc/sensors.conf","r");
if(!fp) {
qWarning("KSensors error: /etc/sensors.conf not found !");
return false;
}
+#else
+ FILE *fp=NULL;
+#endif
int err= sensors_init(fp);
if(err) {
qWarning("KSensors error: sensors_init fail, error code %d",err);
return false;
}
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
fclose(fp);
+#endif
return true;
}
@@ -63,6 +69,7 @@ void LMSensors::createLMSensors()
{
const sensors_chip_name *chip_name;
int err= 0;
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
while( (chip_name= sensors_get_detected_chips(&err)) )
{
if( existSensor(chip_name,"temp") ||
@@ -71,6 +78,10 @@ void LMSensors::createLMSensors()
(void)new LMSensorsChip(chip_name,this);
}
}
+#else
+ while( (chip_name= sensors_get_detected_chips(NULL, &err)) )
+ (void)new LMSensorsChip(chip_name,this);
+#endif
}
void LMSensors::createHDSensors()
@@ -86,6 +97,7 @@ void LMSensors::createI8KSensors()
}
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
int LMSensors::existSensor(const sensors_chip_name *chip_name,const char *sensor_name)
{
int nr1,nr2;
@@ -99,6 +111,7 @@ const sensors_feature_data *sensor_data;
}
return 0;
}
+#endif
void LMSensors::setMonitorized(bool enable)
{
diff -up ksensors-0.7.3/src/lmsensors.h.lm_sensors3x ksensors-0.7.3/src/lmsensors.h
--- ksensors-0.7.3/src/lmsensors.h.lm_sensors3x 2003-12-27 22:52:12.000000000 +0100
+++ ksensors-0.7.3/src/lmsensors.h 2007-11-11 16:34:15.000000000 +0100
@@ -65,7 +65,9 @@ private:
void createI8KSensors();
void childEvent ( QChildEvent *e );
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
static int existSensor(const sensors_chip_name *chip_name,const char *sensor_name);
+#endif
};
#endif