diff options
| -rw-r--r-- | plugins/pmu-sys/pmu-sys-plugin.c | 225 | ||||
| -rw-r--r-- | plugins/smu-sys/smu-sys-plugin.c | 224 | ||||
| -rw-r--r-- | plugins/sonypi/sonypi-plugin.c | 96 | ||||
| -rw-r--r-- | plugins/udisks/udisks-plugin.c | 528 | ||||
| -rw-r--r-- | plugins/udisks2/udisks2-plugin.c | 573 | 
5 files changed, 802 insertions, 844 deletions
| diff --git a/plugins/pmu-sys/pmu-sys-plugin.c b/plugins/pmu-sys/pmu-sys-plugin.c index c269360..8a3821b 100644 --- a/plugins/pmu-sys/pmu-sys-plugin.c +++ b/plugins/pmu-sys/pmu-sys-plugin.c @@ -42,148 +42,151 @@ const gchar *plugin_name = "pmu-sys";  #define FAN_SPEED "_fan_speed" -  enum { -	PMU_SYS_DEVICE_FILE_OPEN_ERROR, -	PMU_SYS_DEVICE_FILE_READ_ERROR +    PMU_SYS_DEVICE_FILE_OPEN_ERROR, +    PMU_SYS_DEVICE_FILE_READ_ERROR  };  static void pmu_sys_plugin_add_sensor(GList **sensors, const gchar *path) { -	gchar *filename; -	gchar *label = NULL; -	gboolean enable; -	SensorType sensor_type; -	IconType icon_type = GENERIC_ICON; - -	filename = g_path_get_basename(path); - -	if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0) { -		label = g_strdup(_("CPU")); -		sensor_type = TEMP_SENSOR; -		enable = TRUE; -		icon_type = CPU_ICON; -	} else if (g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0) { -		label = g_strdup(_("GPU")); -		sensor_type = TEMP_SENSOR; -		enable = TRUE; -		icon_type = GPU_ICON; -	} else if (g_ascii_strcasecmp(filename, CASE TEMPERATURE) == 0) { -		label = g_strdup(_("CASE")); -		sensor_type = TEMP_SENSOR; -		enable = TRUE; -		icon_type = CASE_ICON; -	} else if (g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0|| g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) {  -		label = g_strdup(_("FAN")); -		sensor_type = FAN_SENSOR; -		enable = TRUE; -		icon_type = FAN_ICON; -	} else { -		/* disable all other sensors */ -		enable = FALSE; -	} - -	/* only add these 3 sensors */ -	if (enable) { -		sensors_applet_plugin_add_sensor(sensors, -                                                 path, -                                                 filename, -                                                 label, -                                                 sensor_type, -                                                 enable, -                                                 icon_type, -                                                 DEFAULT_GRAPH_COLOR); - -	} -	g_free(filename); -	if (label != NULL) { -		g_free(label); -	} -}	 +    gchar *filename; +    gchar *label = NULL; +    gboolean enable; +    SensorType sensor_type; +    IconType icon_type = GENERIC_ICON; + +    filename = g_path_get_basename(path); + +    if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0) { +        label = g_strdup(_("CPU")); +        sensor_type = TEMP_SENSOR; +        enable = TRUE; +        icon_type = CPU_ICON; +    } else if (g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0) { +        label = g_strdup(_("GPU")); +        sensor_type = TEMP_SENSOR; +        enable = TRUE; +        icon_type = GPU_ICON; +    } else if (g_ascii_strcasecmp(filename, CASE TEMPERATURE) == 0) { +        label = g_strdup(_("CASE")); +        sensor_type = TEMP_SENSOR; +        enable = TRUE; +        icon_type = CASE_ICON; +    } else if (g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0|| g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) { +        label = g_strdup(_("FAN")); +        sensor_type = FAN_SENSOR; +        enable = TRUE; +        icon_type = FAN_ICON; +    } else { +        /* disable all other sensors */ +        enable = FALSE; +    } + +    /* only add these 3 sensors */ +    if (enable) { +        sensors_applet_plugin_add_sensor(sensors, +                                         path, +                                         filename, +                                         label, +                                         sensor_type, +                                         enable, +                                         icon_type, +                                         DEFAULT_GRAPH_COLOR); + +    } + +    g_free(filename); +    if (label != NULL) { +        g_free(label); +    } +}  static void pmu_sys_plugin_test_sensor(GList **sensors, const gchar *path) { -	gchar *filename; -        filename = g_path_get_basename(path); -        if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0 || -            g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, CASE TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) { -                pmu_sys_plugin_add_sensor(sensors, path); -        } -        g_free(filename); -		 +    gchar *filename; +    filename = g_path_get_basename(path); +    if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0 || +        g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, CASE TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) { + +        pmu_sys_plugin_add_sensor(sensors, path); +    } + +    g_free(filename);  } +  /* to be called to setup for sys sensors */  GList *pmu_sys_plugin_init(void) { -        GList *sensors = NULL; -	/* call function to recursively look for sensors -	   starting at the defined base directory */ -	sensors_applet_plugin_find_sensors(&sensors, PMU_SYS_BASE_DIR, pmu_sys_plugin_test_sensor); -	sensors_applet_plugin_find_sensors(&sensors, PMU_WT_SYS_BASE_DIR, pmu_sys_plugin_test_sensor); -	return sensors; +    GList *sensors = NULL; +    /* call function to recursively look for sensors +       starting at the defined base directory */ +    sensors_applet_plugin_find_sensors(&sensors, PMU_SYS_BASE_DIR, pmu_sys_plugin_test_sensor); +    sensors_applet_plugin_find_sensors(&sensors, PMU_WT_SYS_BASE_DIR, pmu_sys_plugin_test_sensor); +    return sensors;  }  /* returns the value of the sensor_list at the given iter, or if an     error occurs, instatiates error with an error message */ -gdouble pmu_sys_plugin_get_sensor_value(const gchar *path,  -                                        const gchar *id,  +gdouble pmu_sys_plugin_get_sensor_value(const gchar *path, +                                        const gchar *id,                                          SensorType type,                                          GError **error) { -	/* to open and access the value of each sensor */ -	FILE *fp; -	gfloat sensor_value, dummy; - -	if (NULL == (fp = fopen(path, "r"))) { -		g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, PMU_SYS_DEVICE_FILE_OPEN_ERROR, "Error opening sensor device file %s", path); +    /* to open and access the value of each sensor */ +    FILE *fp; +    gfloat sensor_value, dummy; + +    if (NULL == (fp = fopen(path, "r"))) { +        g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, PMU_SYS_DEVICE_FILE_OPEN_ERROR, "Error opening sensor device file %s", path); +        return -1.0; +    } +    switch(type) { +        case FAN_SENSOR: +            if (fscanf(fp, "%f (%f rpm)", &dummy, &sensor_value) != 2) { +                g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, PMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); +                fclose(fp);                  return -1.0; -	} -	switch(type) { -	case FAN_SENSOR: -		if (fscanf(fp, "%f (%f rpm)", &dummy, &sensor_value) != 2) { -			g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, PMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); -			fclose(fp); -			return -1.0; -		} -		break; - -	case TEMP_SENSOR: -		if (fscanf(fp, "%f", &sensor_value) != 1) { -			g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, PMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); -			fclose(fp); -			return -1.0; -		} -		break; - -	default: -		/* should only have added temp or fan sensors */ -                g_error("Unknown sensor type passed as parameter to pmu-sys sensor interface, cannot get value for this sensor"); +            } +            break; + +        case TEMP_SENSOR: +            if (fscanf(fp, "%f", &sensor_value) != 1) {                  g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, PMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path);                  fclose(fp);                  return -1.0; +            } +            break; -	} -	fclose(fp); +        default: +            /* should only have added temp or fan sensors */ +            g_error("Unknown sensor type passed as parameter to pmu-sys sensor interface, cannot get value for this sensor"); +            g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, PMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); +            fclose(fp); +            return -1.0; -	return (gdouble)sensor_value; +    } +    fclose(fp); + +    return (gdouble)sensor_value;  } -const gchar *sensors_applet_plugin_name(void)  +const gchar *sensors_applet_plugin_name(void)  { -        return plugin_name; +    return plugin_name;  } -GList *sensors_applet_plugin_init(void)  +GList *sensors_applet_plugin_init(void)  { -        return pmu_sys_plugin_init(); +    return pmu_sys_plugin_init();  } -gdouble sensors_applet_plugin_get_sensor_value(const gchar *path,  -                                                const gchar *id,  +gdouble sensors_applet_plugin_get_sensor_value(const gchar *path, +                                                const gchar *id,                                                  SensorType type,                                                  GError **error) { -        return pmu_sys_plugin_get_sensor_value(path, id, type, error); + +    return pmu_sys_plugin_get_sensor_value(path, id, type, error);  } diff --git a/plugins/smu-sys/smu-sys-plugin.c b/plugins/smu-sys/smu-sys-plugin.c index f306be4..75f2b6a 100644 --- a/plugins/smu-sys/smu-sys-plugin.c +++ b/plugins/smu-sys/smu-sys-plugin.c @@ -41,140 +41,142 @@ const gchar *plugin_name = "smu-sys";  enum { -	SMU_SYS_DEVICE_FILE_OPEN_ERROR, -	SMU_SYS_DEVICE_FILE_READ_ERROR +    SMU_SYS_DEVICE_FILE_OPEN_ERROR, +    SMU_SYS_DEVICE_FILE_READ_ERROR  };  static void smu_sys_plugin_add_sensor(GList **sensors, const gchar *path) { -	gchar *filename; -	gchar *label = NULL; -	gboolean enable; -	SensorType sensor_type; -	IconType icon_type = GENERIC_ICON; - -	filename = g_path_get_basename(path); - -	if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0) { -		label = g_strdup(_("CPU")); -		sensor_type = TEMP_SENSOR; -		enable = TRUE; -		icon_type = CPU_ICON; -	} else if (g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0) { -		label = g_strdup(_("GPU")); -		sensor_type = TEMP_SENSOR; -		enable = TRUE; -		icon_type = GPU_ICON; -	} else if (g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0|| g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) {  -		label = g_strdup(_("FAN")); -		sensor_type = FAN_SENSOR; -		enable = TRUE; -		icon_type = FAN_ICON; -	} else { -		/* disable all other sensors */ -		enable = FALSE; -	} - -	/* only add these 3 sensors */ -	if (enable) { -		sensors_applet_plugin_add_sensor(sensors, -                                                 path, -                                                 filename, -                                                 label, -                                                 sensor_type, -                                                 enable, -                                                 icon_type, -                                                 DEFAULT_GRAPH_COLOR); -                 -	} -	g_free(filename); -	if (label != NULL) { -		g_free(label); -	} -}	 +    gchar *filename; +    gchar *label = NULL; +    gboolean enable; +    SensorType sensor_type; +    IconType icon_type = GENERIC_ICON; + +    filename = g_path_get_basename(path); + +    if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0) { +        label = g_strdup(_("CPU")); +        sensor_type = TEMP_SENSOR; +        enable = TRUE; +        icon_type = CPU_ICON; +    } else if (g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0) { +        label = g_strdup(_("GPU")); +        sensor_type = TEMP_SENSOR; +        enable = TRUE; +        icon_type = GPU_ICON; +    } else if (g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0|| g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) { +        label = g_strdup(_("FAN")); +        sensor_type = FAN_SENSOR; +        enable = TRUE; +        icon_type = FAN_ICON; +    } else { +        /* disable all other sensors */ +        enable = FALSE; +    } + +    /* only add these 3 sensors */ +    if (enable) { +        sensors_applet_plugin_add_sensor(sensors, +                                         path, +                                         filename, +                                         label, +                                         sensor_type, +                                         enable, +                                         icon_type, +                                         DEFAULT_GRAPH_COLOR); + +    } + +    g_free(filename); +    if (label != NULL) { +        g_free(label); +    } +}  static void smu_sys_plugin_test_sensor(GList **sensors, const gchar *path) { -	gchar *filename; - -        filename = g_path_get_basename(path); -        if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0 || -            g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0 || -            g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) { -                smu_sys_plugin_add_sensor(sensors, path); -        } -        g_free(filename); +    gchar *filename; + +    filename = g_path_get_basename(path); +    if (g_ascii_strcasecmp(filename, SENSOR1 TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, SENSOR2 TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, SENSOR1 FAN_SPEED) == 0 || +        g_ascii_strcasecmp(filename, CPU TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, GPU TEMPERATURE) == 0 || +        g_ascii_strcasecmp(filename, CPU FAN_SPEED) == 0) { + +        smu_sys_plugin_add_sensor(sensors, path); +    } +    g_free(filename);  } +  /* to be called to setup for sys sensors */  GList *smu_sys_plugin_init(void) { -        GList *sensors = NULL; -         -	/* call function to recursively look for sensors -	   starting at the defined base directory */ -	sensors_applet_plugin_find_sensors(&sensors,  -                                           SMU_SYS_BASE_DIR,  -                                           smu_sys_plugin_test_sensor); - -        return sensors; +    GList *sensors = NULL; + +    /* call function to recursively look for sensors +       starting at the defined base directory */ +    sensors_applet_plugin_find_sensors(&sensors, SMU_SYS_BASE_DIR, smu_sys_plugin_test_sensor); + +    return sensors;  }  /* returns the value of the sensor_list at the given iter, or if an     error occurs, instatiates error with an error message */ -gdouble smu_sys_plugin_get_sensor_value(const gchar *path,  -						  const gchar *id,  -						  SensorType type, -						  GError **error) { - -	/* to open and access the value of each sensor */ -	FILE *fp; -	gfloat sensor_value = -1.0; - -	if (NULL == (fp = fopen(path, "r"))) { -		g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SMU_SYS_DEVICE_FILE_OPEN_ERROR, "Error opening sensor device file %s", path); -		return -1.0; -	} -	switch(type) { -	case FAN_SENSOR: -		if (fscanf(fp, "%f", &sensor_value) != 1) { -			g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); -			fclose(fp); -			return -1.0; -		} -		break; - -	case TEMP_SENSOR: -		if (fscanf(fp, "%f", &sensor_value) != 1) { -			g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); -			fclose(fp); -			return -1.0; -		} -		break; - -	default: -		/* should only have added temp or fan sensors */ -                g_error("Unknown sensor type passed as parameter to smu-sys sensor interface, cannot get value for this sensor"); +gdouble smu_sys_plugin_get_sensor_value(const gchar *path, +                                        const gchar *id, +                                        SensorType type, +                                        GError **error) { + +    /* to open and access the value of each sensor */ +    FILE *fp; +    gfloat sensor_value = -1.0; + +    if (NULL == (fp = fopen(path, "r"))) { +        g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SMU_SYS_DEVICE_FILE_OPEN_ERROR, "Error opening sensor device file %s", path); +        return -1.0; +    } +    switch(type) { +        case FAN_SENSOR: +            if (fscanf(fp, "%f", &sensor_value) != 1) {                  g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); -	} -	fclose(fp); +                fclose(fp); +                return -1.0; +            } +            break; -	return (gdouble)sensor_value; +        case TEMP_SENSOR: +            if (fscanf(fp, "%f", &sensor_value) != 1) { +                g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); +                fclose(fp); +                return -1.0; +            } +            break; + +        default: +            /* should only have added temp or fan sensors */ +            g_error("Unknown sensor type passed as parameter to smu-sys sensor interface, cannot get value for this sensor"); +            g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SMU_SYS_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); +    } +    fclose(fp); + +    return (gdouble)sensor_value;  } -const gchar *sensors_applet_plugin_name(void)  +const gchar *sensors_applet_plugin_name(void)  { -        return plugin_name; +    return plugin_name;  } -GList *sensors_applet_plugin_init(void)  +GList *sensors_applet_plugin_init(void)  { -        return smu_sys_plugin_init(); +    return smu_sys_plugin_init();  } -gdouble sensors_applet_plugin_get_sensor_value(const gchar *path,  -                                                const gchar *id,  +gdouble sensors_applet_plugin_get_sensor_value(const gchar *path, +                                                const gchar *id,                                                  SensorType type,                                                  GError **error) { -        return smu_sys_plugin_get_sensor_value(path, id, type, error); + +    return smu_sys_plugin_get_sensor_value(path, id, type, error);  } diff --git a/plugins/sonypi/sonypi-plugin.c b/plugins/sonypi/sonypi-plugin.c index 8dab2a7..ca5987a 100644 --- a/plugins/sonypi/sonypi-plugin.c +++ b/plugins/sonypi/sonypi-plugin.c @@ -45,69 +45,71 @@ const gchar *plugin_name = "sonypi";  #define SONYPI_TEMP "sonypi_temp"  enum { -	SONYPI_DEVICE_FILE_OPEN_ERROR, -	SONYPI_DEVICE_FILE_READ_ERROR +    SONYPI_DEVICE_FILE_OPEN_ERROR, +    SONYPI_DEVICE_FILE_READ_ERROR  };  GList *sonypi_plugin_init(void) { -        int fd; -        GList *sensors = NULL; -         -        if ( (fd = open(SONYPI_DEV, O_RDONLY)) != -1 ) { -                if ( close(fd) != -1 ) { -                        sensors_applet_plugin_add_sensor(&sensors, -                                                         SONYPI_DEV, -                                                         SONYPI_TEMP, -                                                         _("CPU TEMP"), -                                                         TEMP_SENSOR, -                                                         TRUE, -                                                         CPU_ICON, -                                                         DEFAULT_GRAPH_COLOR); -                } +    int fd; +    GList *sensors = NULL; + +    if ( (fd = open(SONYPI_DEV, O_RDONLY)) != -1 ) { +        if ( close(fd) != -1 ) { +            sensors_applet_plugin_add_sensor(&sensors, +                                             SONYPI_DEV, +                                             SONYPI_TEMP, +                                             _("CPU TEMP"), +                                             TEMP_SENSOR, +                                             TRUE, +                                             CPU_ICON, +                                             DEFAULT_GRAPH_COLOR);          } -        return sensors; +    } +    return sensors;  } -gdouble sonypi_plugin_get_sensor_value(const gchar *path,  -                                                  const gchar *id,  -                                                  SensorType type, -                                                  GError **error) { -        int fd; -        guint8 value8; - -        gdouble sensor_value = -1.0; - -        if ((fd = open(path, O_RDONLY)) != -1) { -                /* only use temp sensor */ -                if (g_ascii_strcasecmp(id, SONYPI_TEMP) == 0) { -                        if (ioctl(fd, SONYPI_IOCGTEMP, &value8) != -1) { -                                sensor_value = (gdouble)value8; -                        } else { -                                g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SONYPI_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); -                        }         -                } -                close(fd); -        } else { -		g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SONYPI_DEVICE_FILE_OPEN_ERROR, "Error opening from sensor device file %s", path); +gdouble sonypi_plugin_get_sensor_value(const gchar *path, +                                       const gchar *id, +                                       SensorType type, +                                       GError **error) { + +    int fd; +    guint8 value8; + +    gdouble sensor_value = -1.0; + +    if ((fd = open(path, O_RDONLY)) != -1) { +        /* only use temp sensor */ +        if (g_ascii_strcasecmp(id, SONYPI_TEMP) == 0) { +            if (ioctl(fd, SONYPI_IOCGTEMP, &value8) != -1) { +                sensor_value = (gdouble)value8; +            } else { +                g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SONYPI_DEVICE_FILE_READ_ERROR, "Error reading from sensor device file %s", path); +            }          } -                         -        return sensor_value; +        close(fd); +    } else { +        g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, SONYPI_DEVICE_FILE_OPEN_ERROR, "Error opening from sensor device file %s", path); +    } + +    return sensor_value;  } -const gchar *sensors_applet_plugin_name(void)  +const gchar *sensors_applet_plugin_name(void)  { -        return plugin_name; +    return plugin_name;  } -GList *sensors_applet_plugin_init(void)  +GList *sensors_applet_plugin_init(void)  { -        return sonypi_plugin_init(); +    return sonypi_plugin_init();  } -gdouble sensors_applet_plugin_get_sensor_value(const gchar *path,  -                                                const gchar *id,  +gdouble sensors_applet_plugin_get_sensor_value(const gchar *path, +                                                const gchar *id,                                                  SensorType type,                                                  GError **error) { -        return sonypi_plugin_get_sensor_value(path, id, type, error); + +    return sonypi_plugin_get_sensor_value(path, id, type, error);  } diff --git a/plugins/udisks/udisks-plugin.c b/plugins/udisks/udisks-plugin.c index 702de64..be259a4 100644 --- a/plugins/udisks/udisks-plugin.c +++ b/plugins/udisks/udisks-plugin.c @@ -1,6 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * vim: sts=0 sw=8 ts=8 tw=78 noexpandtab - * +/*   * Copyright (C) 2009 Pramod Dematagoda <[email protected]>   *   * This program is free software; you can redistribute it and/or modify @@ -39,11 +37,11 @@   * Info about a single sensor   */  typedef struct _DevInfo{ -	gchar *path; -	gchar *id; -	gdouble temp; -	DBusGProxy *sensor_proxy; -	GError *error; +    gchar *path; +    gchar *id; +    gdouble temp; +    DBusGProxy *sensor_proxy; +    GError *error;  } DevInfo;  const gchar *plugin_name = "udisks"; @@ -55,296 +53,282 @@ DBusGConnection *connection;  static void update_device(DevInfo *info)  { -	DBusGProxy *sensor_proxy; -	GValue smart_time = { 0, }; -	SkDisk *sk_disk; -	GValue smart_blob_val = { 0, }; -	GArray *smart_blob; -	guint64 temperature; - -	g_return_if_fail(info != NULL); - -	g_clear_error(&info->error); - -	sensor_proxy = dbus_g_proxy_new_for_name(connection, -						 UDISKS_BUS_NAME, -						 info->path, -						 UDISKS_PROPERTIES_INTERFACE); - -	if (!dbus_g_proxy_call(sensor_proxy, "Get", NULL, -			       G_TYPE_STRING, UDISKS_BUS_NAME, -			       G_TYPE_STRING, "DriveAtaSmartTimeCollected", G_TYPE_INVALID, -			       G_TYPE_VALUE, &smart_time, -			       G_TYPE_INVALID) || -	    !g_value_get_uint64(&smart_time)) -	{ -		g_object_unref(sensor_proxy); -		return; -	} - -	if (!dbus_g_proxy_call(sensor_proxy, "Get", &info->error, -			      G_TYPE_STRING, UDISKS_BUS_NAME, -			      G_TYPE_STRING, "DriveAtaSmartBlob", G_TYPE_INVALID, -			      G_TYPE_VALUE, &smart_blob_val, -			      G_TYPE_INVALID)) -	{ -		g_debug("Error getting DriveAtaSmartBlob %s", -			info->error ? info->error->message : "NULL"); -		g_object_unref(sensor_proxy); -		return; -	} -	smart_blob = g_value_get_boxed(&smart_blob_val); - -	sk_disk_open(NULL, &sk_disk); -	sk_disk_set_blob(sk_disk, smart_blob->data, smart_blob->len); -	if (sk_disk_smart_get_temperature(sk_disk, &temperature) < 0) -	{ -		g_debug("Error getting temperature from AtaSmartBlob"); -		g_free(sk_disk); -		g_array_free(smart_blob, TRUE); -		g_object_unref(sensor_proxy); -		return; -	} - -	/* Temperature is in mK, so convert it to K first */ -	temperature /= 1000; -	info->temp = (gdouble)temperature - 273.15; - -	g_free(sk_disk); -	g_array_free(smart_blob, TRUE); -	g_object_unref(sensor_proxy); +    DBusGProxy *sensor_proxy; +    GValue smart_time = { 0, }; +    SkDisk *sk_disk; +    GValue smart_blob_val = { 0, }; +    GArray *smart_blob; +    guint64 temperature; + +    g_return_if_fail(info != NULL); + +    g_clear_error(&info->error); + +    sensor_proxy = dbus_g_proxy_new_for_name(connection, +                                         UDISKS_BUS_NAME, +                                         info->path, +                                         UDISKS_PROPERTIES_INTERFACE); + +    if (!dbus_g_proxy_call(sensor_proxy, "Get", NULL, +                           G_TYPE_STRING, UDISKS_BUS_NAME, +                           G_TYPE_STRING, "DriveAtaSmartTimeCollected", G_TYPE_INVALID, +                           G_TYPE_VALUE, &smart_time, +                           G_TYPE_INVALID) || +        !g_value_get_uint64(&smart_time)) { + +        g_object_unref(sensor_proxy); +        return; +    } + +    if (!dbus_g_proxy_call(sensor_proxy, "Get", &info->error, +                          G_TYPE_STRING, UDISKS_BUS_NAME, +                          G_TYPE_STRING, "DriveAtaSmartBlob", G_TYPE_INVALID, +                          G_TYPE_VALUE, &smart_blob_val, +                          G_TYPE_INVALID)) { + +        g_debug("Error getting DriveAtaSmartBlob %s", info->error ? info->error->message : "NULL"); +        g_object_unref(sensor_proxy); +        return; +    } +    smart_blob = g_value_get_boxed(&smart_blob_val); + +    sk_disk_open(NULL, &sk_disk); +    sk_disk_set_blob(sk_disk, smart_blob->data, smart_blob->len); +    if (sk_disk_smart_get_temperature(sk_disk, &temperature) < 0) { +        g_debug("Error getting temperature from AtaSmartBlob"); +        g_free(sk_disk); +        g_array_free(smart_blob, TRUE); +        g_object_unref(sensor_proxy); +        return; +    } + +    /* Temperature is in mK, so convert it to K first */ +    temperature /= 1000; +    info->temp = (gdouble)temperature - 273.15; + +    g_free(sk_disk); +    g_array_free(smart_blob, TRUE); +    g_object_unref(sensor_proxy);  }  /* This is the handler for the Changed() signal emitted by UDisks. */  static void udisks_changed_signal_cb(DBusGProxy *sensor_proxy) { -	const gchar *path; -	DevInfo *info; +    const gchar *path; +    DevInfo *info; -	path = dbus_g_proxy_get_path(sensor_proxy); -	g_debug("%s changed()", path); -	info = g_hash_table_lookup(devices, path); +    path = dbus_g_proxy_get_path(sensor_proxy); +    g_debug("%s changed()", path); +    info = g_hash_table_lookup(devices, path); -	update_device(info); +    update_device(info);  }  static void udisks_plugin_get_sensors(GList **sensors) { -	DBusGProxy *proxy, *sensor_proxy; -	GError *error = NULL; -	GPtrArray *paths; -	guint i; -	DevInfo *info; - -	/* This connection will be used for everything, including the obtaining -	 * of sensor data -	 */ -	connection = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); -	if (connection == NULL) -	{ -		g_debug("Failed to open connection to DBUS: %s", -							error->message); -		g_error_free(error); -		return; -	} - -	/* This is the proxy which is only used once during the enumeration of -	 * the device object paths -	 */ -	proxy = dbus_g_proxy_new_for_name(connection, -					  UDISKS_BUS_NAME, -					  UDISKS_OBJECT_PATH, -					  UDISKS_INTERFACE_NAME); - -	/* The object paths of the disks are enumerated and placed in an array -	 * of object paths -	 */ -	if (!dbus_g_proxy_call(proxy, "EnumerateDevices", &error, -			       G_TYPE_INVALID, -			       dbus_g_type_get_collection("GPtrArray", -							  DBUS_TYPE_G_OBJECT_PATH), -			       &paths, -			       G_TYPE_INVALID)) -	{ -		g_debug("Failed to enumerate disk devices: %s", -			   error->message); -		g_error_free(error); -		g_object_unref(proxy); -		dbus_g_connection_unref(connection); -		connection = NULL; -		return; -	} - -	for (i = 0; i < paths->len; i++) { -		/* This proxy is used to get the required data in order to build -		 * up the list of sensors -		 */ -		GValue smart_available = G_VALUE_INIT; -		gchar *path = (gchar *)g_ptr_array_index(paths, i); - -		sensor_proxy = dbus_g_proxy_new_for_name(connection, -							 UDISKS_BUS_NAME, -							 path, -							 UDISKS_PROPERTIES_INTERFACE); - -		if (dbus_g_proxy_call(sensor_proxy, "Get", &error, -				      G_TYPE_STRING, -				      UDISKS_BUS_NAME, -				      G_TYPE_STRING, -				      "DriveAtaSmartIsAvailable", -				      G_TYPE_INVALID, -				      G_TYPE_VALUE, &smart_available, G_TYPE_INVALID)) { -			if (!g_value_get_boolean(&smart_available)) { -				g_debug("Drive at path '%s' does not support " -                                        "Smart monitoring... ignoring", -					path); -				g_object_unref(sensor_proxy); -				g_free (path); -				continue; -			} - -			GValue model_v = G_VALUE_INIT; -			dbus_g_proxy_call(sensor_proxy, "Get", NULL, -					  G_TYPE_STRING, UDISKS_BUS_NAME, -					  G_TYPE_STRING, "DriveModel", -					  G_TYPE_INVALID, -					  G_TYPE_VALUE, &model_v, -					  G_TYPE_INVALID); - -			GValue dev_v = G_VALUE_INIT; -			dbus_g_proxy_call(sensor_proxy, "Get", NULL, -					  G_TYPE_STRING, UDISKS_BUS_NAME, -					  G_TYPE_STRING, "DeviceFile", -					  G_TYPE_INVALID, -					  G_TYPE_VALUE, &dev_v, -					  G_TYPE_INVALID); - -			GValue ids_v = G_VALUE_INIT; -			dbus_g_proxy_call(sensor_proxy, "Get", NULL, -					  G_TYPE_STRING, UDISKS_BUS_NAME, -					  G_TYPE_STRING, "DeviceFileById", -					  G_TYPE_INVALID, -					  G_TYPE_VALUE, &ids_v, -					  G_TYPE_INVALID); - -			g_object_unref(sensor_proxy); - -			sensor_proxy = dbus_g_proxy_new_for_name(connection, -								 UDISKS_BUS_NAME, -								 path, -								 UDISKS_DEVICE_INTERFACE_NAME); - -			/* Use the Changed() signal emitted from UDisks to -			 * get the temperature immediately if it changes rather -			 * than waiting to poll -			 */ -			dbus_g_proxy_add_signal(sensor_proxy, "Changed", -						G_TYPE_INVALID); - -			dbus_g_proxy_connect_signal(sensor_proxy, "Changed", -						    G_CALLBACK(udisks_changed_signal_cb), -						    path, NULL); - - -			gchar *model = g_value_get_string(&model_v); -			gchar *dev = g_value_get_string(&dev_v); -			GStrv ids = g_value_get_boxed(&ids_v); - -			gchar *id = ids != NULL && ids[0] != NULL ? ids[0] : dev; - -			info = g_malloc0(sizeof(DevInfo)); -			if (devices == NULL) -			{ -				devices = g_hash_table_new(g_str_hash, -							   g_str_equal); -			} -			info->id = g_strdup(id); -			info->path = g_strdup(path); -			info->sensor_proxy = sensor_proxy; -			/* Set the device status changed as TRUE because we need -			 * to get the initial temperature reading -			 */ -			info->temp = 0.0; -			g_hash_table_insert(devices, info->id, info); - -			/* Write the sensor data */ -			sensors_applet_plugin_add_sensor(sensors, -							 id, -							 "Disk Temperature", -							 model, -							 TEMP_SENSOR, -							 FALSE, -							 HDD_ICON, -							 DEFAULT_GRAPH_COLOR); -			g_strfreev(ids); -			g_free(model); -			g_free(dev); -			g_debug("Added %s %s", path, id); -		} else { -			g_debug ("Cannot obtain data for device: %s\n" -				 "Error: %s\n", -				 path, -				 error->message); -			g_error_free (error); -			error = NULL; -			g_object_unref(sensor_proxy); -		} -		g_free(path); -	} -	g_ptr_array_free(paths, TRUE); -	g_object_unref(proxy); -	if (devices == NULL) -	{ -		dbus_g_connection_unref(connection); -		connection = NULL; -	} +    DBusGProxy *proxy, *sensor_proxy; +    GError *error = NULL; +    GPtrArray *paths; +    guint i; +    DevInfo *info; + +    /* This connection will be used for everything, including the obtaining of sensor data */ +    connection = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); +    if (connection == NULL) +    { +        g_debug("Failed to open connection to DBUS: %s", error->message); +        g_error_free(error); +        return; +    } + +    /* This is the proxy which is only used once during the enumeration of the device object paths */ +    proxy = dbus_g_proxy_new_for_name(connection, +                                      UDISKS_BUS_NAME, +                                      UDISKS_OBJECT_PATH, +                                      UDISKS_INTERFACE_NAME); + +    /* The object paths of the disks are enumerated and placed in an array of object paths */ +    if (!dbus_g_proxy_call(proxy, "EnumerateDevices", &error, +                            G_TYPE_INVALID, +                            dbus_g_type_get_collection("GPtrArray", +                            DBUS_TYPE_G_OBJECT_PATH), +                            &paths, +                            G_TYPE_INVALID)) { + +        g_debug("Failed to enumerate disk devices: %s", error->message); +        g_error_free(error); +        g_object_unref(proxy); +        dbus_g_connection_unref(connection); +        connection = NULL; +        return; +    } + +    for (i = 0; i < paths->len; i++) { +        /* This proxy is used to get the required data in order to build up the list of sensors */ +        GValue smart_available = G_VALUE_INIT; +        gchar *path = (gchar *)g_ptr_array_index(paths, i); + +        sensor_proxy = dbus_g_proxy_new_for_name(connection, +                                                 UDISKS_BUS_NAME, +                                                 path, +                                                 UDISKS_PROPERTIES_INTERFACE); + +        if (dbus_g_proxy_call(sensor_proxy, "Get", &error, +                              G_TYPE_STRING, +                              UDISKS_BUS_NAME, +                              G_TYPE_STRING, +                              "DriveAtaSmartIsAvailable", +                              G_TYPE_INVALID, +                              G_TYPE_VALUE, &smart_available, G_TYPE_INVALID)) { + +            if (!g_value_get_boolean(&smart_available)) { +                g_debug("Drive at path '%s' does not support Smart monitoring... ignoring", path); +                g_object_unref(sensor_proxy); +                g_free (path); +                continue; +            } + +            GValue model_v = G_VALUE_INIT; +            dbus_g_proxy_call(sensor_proxy, "Get", NULL, +                              G_TYPE_STRING, UDISKS_BUS_NAME, +                              G_TYPE_STRING, "DriveModel", +                              G_TYPE_INVALID, +                              G_TYPE_VALUE, &model_v, +                              G_TYPE_INVALID); + +            GValue dev_v = G_VALUE_INIT; +            dbus_g_proxy_call(sensor_proxy, "Get", NULL, +                              G_TYPE_STRING, UDISKS_BUS_NAME, +                              G_TYPE_STRING, "DeviceFile", +                              G_TYPE_INVALID, +                              G_TYPE_VALUE, &dev_v, +                              G_TYPE_INVALID); + +            GValue ids_v = G_VALUE_INIT; +            dbus_g_proxy_call(sensor_proxy, "Get", NULL, +                              G_TYPE_STRING, UDISKS_BUS_NAME, +                              G_TYPE_STRING, "DeviceFileById", +                              G_TYPE_INVALID, +                              G_TYPE_VALUE, &ids_v, +                              G_TYPE_INVALID); + +            g_object_unref(sensor_proxy); + +            sensor_proxy = dbus_g_proxy_new_for_name(connection, +                                                     UDISKS_BUS_NAME, +                                                     path, +                                                     UDISKS_DEVICE_INTERFACE_NAME); + +            /* Use the Changed() signal emitted from UDisks to +             * get the temperature immediately if it changes rather +             * than waiting to poll +             */ +            dbus_g_proxy_add_signal(sensor_proxy, "Changed", G_TYPE_INVALID); + +            dbus_g_proxy_connect_signal(sensor_proxy, "Changed", +                                        G_CALLBACK(udisks_changed_signal_cb), +                                        path, NULL); + +            gchar *model = g_value_get_string(&model_v); +            gchar *dev = g_value_get_string(&dev_v); +            GStrv ids = g_value_get_boxed(&ids_v); + +            gchar *id = ids != NULL && ids[0] != NULL ? ids[0] : dev; + +            info = g_malloc0(sizeof(DevInfo)); +            if (devices == NULL) +            { +                devices = g_hash_table_new(g_str_hash, g_str_equal); +            } +            info->id = g_strdup(id); +            info->path = g_strdup(path); +            info->sensor_proxy = sensor_proxy; +            /* Set the device status changed as TRUE because we need +             * to get the initial temperature reading +             */ +            info->temp = 0.0; +            g_hash_table_insert(devices, info->id, info); + +            /* Write the sensor data */ +            sensors_applet_plugin_add_sensor(sensors, +                                             id, +                                             "Disk Temperature", +                                             model, +                                             TEMP_SENSOR, +                                             FALSE, +                                             HDD_ICON, +                                             DEFAULT_GRAPH_COLOR); + +            g_strfreev(ids); +            g_free(model); +            g_free(dev); +            g_debug("Added %s %s", path, id); +        } else { +            g_debug ("Cannot obtain data for device: %s\n" +                 "Error: %s\n", +                 path, +                 error->message); +            g_error_free (error); +            error = NULL; +            g_object_unref(sensor_proxy); +        } +        g_free(path); +    } /* end of for */ + +    g_ptr_array_free(paths, TRUE); +    g_object_unref(proxy); +    if (devices == NULL) +    { +        dbus_g_connection_unref(connection); +        connection = NULL; +    }  }  static gdouble udisks_plugin_get_sensor_value(const gchar *path, -					      const gchar *id, -					      SensorType type, -					      GError **error) { -	DevInfo *info; - -	info = (DevInfo *)g_hash_table_lookup(devices, path); -	if (info == NULL) -	{ -		g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, 0, -			    "Error finding disk with path %s", path); -		return 0.0; -	} - -	if (info->error) -	{ -		*error = info->error; -		info->error = NULL; -		return 0.0; -	} -	/* update value since Changed() signal doesn't fire manually enough so -	 * poll instead */ -	update_device(info); -	return info->temp; +                                              const gchar *id, +                                              SensorType type, +                                              GError **error) { +    DevInfo *info; + +    info = (DevInfo *)g_hash_table_lookup(devices, path); +    if (info == NULL) +    { +        g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, 0, "Error finding disk with path %s", path); +        return 0.0; +    } + +    if (info->error) +    { +        *error = info->error; +        info->error = NULL; +        return 0.0; +    } + +    /* update value since Changed() signal doesn't fire manually enough so poll instead */ +    update_device(info); +    return info->temp;  }  static GList *udisks_plugin_init(void) { -	GList *sensors = NULL; +    GList *sensors = NULL; -	udisks_plugin_get_sensors(&sensors); +    udisks_plugin_get_sensors(&sensors); -	return sensors; +    return sensors;  }  const gchar *sensors_applet_plugin_name(void)  { -	return plugin_name; +    return plugin_name;  }  GList *sensors_applet_plugin_init(void)  { -	return udisks_plugin_init(); +    return udisks_plugin_init();  }  gdouble sensors_applet_plugin_get_sensor_value(const gchar *path, -					       const gchar *id, -					       SensorType type, -					       GError **error) { -	return udisks_plugin_get_sensor_value(path, id, type, error); +                                               const gchar *id, +                                               SensorType type, +                                               GError **error) { + +    return udisks_plugin_get_sensor_value(path, id, type, error);  } diff --git a/plugins/udisks2/udisks2-plugin.c b/plugins/udisks2/udisks2-plugin.c index 2fe401e..c23d09d 100644 --- a/plugins/udisks2/udisks2-plugin.c +++ b/plugins/udisks2/udisks2-plugin.c @@ -1,6 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * vim: sts=0 sw=8 ts=8 tw=78 noexpandtab - * +/*   * Copyright (C) 2009 Pramod Dematagoda <[email protected]>   *   * This program is free software; you can redistribute it and/or modify @@ -36,7 +34,6 @@ syslog(LOG_ERR, "hellodd"); -  #ifdef HAVE_CONFIG_H  #include "config.h"  #endif /* HAVE_CONFIG_H */ @@ -67,11 +64,11 @@ syslog(LOG_ERR, "hellodd");   * Info about a single sensor   */  typedef struct _DevInfo{ -	gchar *path; -	gchar *id; -	gdouble temp; -	GDBusProxy *sensor_proxy;       // dbus object -	GError *error; +    gchar *path; +    gchar *id; +    gdouble temp; +    GDBusProxy *sensor_proxy;       // dbus object +    GError *error;  } DevInfo; @@ -84,64 +81,58 @@ GHashTable *devices = NULL;  GDBusConnection *connection = NULL; -static void update_device(DevInfo *info) -{ -	GError *error = NULL; -	GVariant *tempgvar = NULL; -	GVariant *tempgvar2 = NULL; -	gdouble temp; +static void update_device(DevInfo *info) { +    GError *error = NULL; +    GVariant *tempgvar = NULL; +    GVariant *tempgvar2 = NULL; +    gdouble temp; -	// check valid input parameter -	g_return_if_fail(info != NULL); +    // check valid input parameter +    g_return_if_fail(info != NULL); -	// check connection too -	g_return_if_fail(connection != NULL); +    // check connection too +    g_return_if_fail(connection != NULL); -	g_clear_error(&info->error); +    g_clear_error(&info->error);  // for the udisks plugin a new sensor_proxy was created here, which seems stupid, as one is already stored in the DevInfo struct  // I only create one direct connect proxy here in this function -	// check for sensor_proxy, which should exist at this point, make one if necessary and save it into DevInfo -	// this is used to get the temp value the direct way -	if(NULL == info->sensor_proxy) -	{ -		info->sensor_proxy = g_dbus_proxy_new_sync(connection, G_DBUS_PROXY_FLAGS_NONE, NULL, -						  UDISKS2_BUS_NAME, -						  info->path, -						  UDISKS2_PROPERTIES_INTERFACE, -						  NULL, &error -						); - -		// check, just to be sure -		if (NULL == info->sensor_proxy) -		{ +    // check for sensor_proxy, which should exist at this point, make one if necessary and save it into DevInfo +    // this is used to get the temp value the direct way +    if(NULL == info->sensor_proxy) { +        info->sensor_proxy = g_dbus_proxy_new_sync(connection, G_DBUS_PROXY_FLAGS_NONE, NULL, +                                                  UDISKS2_BUS_NAME, +                                                  info->path, +                                                  UDISKS2_PROPERTIES_INTERFACE, +                                                  NULL, &error ); + +        // check, just to be sure +        if (NULL == info->sensor_proxy) {  #ifdef UD2PD  syslog(LOG_ERR, "Failed to get drive temperature 1");  #endif -			g_debug("Failed to get drive temperature 1: %s", -				   error->message); -			g_clear_error(&error); -			return; -		} -	} +            g_debug("Failed to get drive temperature 1: %s", error->message); +            g_clear_error(&error); +            return; +        } +    }  // "DriveAtaSmartTimeCollected" in ud2 is "drive ata SmartUpdated"  // fd: The point in time (seconds since the Unix Epoch) that the SMART status was updated or 0 if never updated.  // should we bother getting this time??  /* -	if (!g_dbus_proxy_call_sync(sensor_proxy, "Get", NULL, -			       G_TYPE_STRING, UDISKS2_BUS_NAME, -			       G_TYPE_STRING, "DriveAtaSmartTimeCollected", G_TYPE_INVALID, -			       G_TYPE_VALUE, &smart_time, -			       G_TYPE_INVALID) || -	    !g_value_get_uint64(&smart_time)) -	{ -		g_object_unref(sensor_proxy); -		return; -	} +    if (!g_dbus_proxy_call_sync(sensor_proxy, "Get", NULL, +                   G_TYPE_STRING, UDISKS2_BUS_NAME, +                   G_TYPE_STRING, "DriveAtaSmartTimeCollected", G_TYPE_INVALID, +                   G_TYPE_VALUE, &smart_time, +                   G_TYPE_INVALID) || !g_value_get_uint64(&smart_time)) { + +        g_object_unref(sensor_proxy); +        return; +    }  */ @@ -154,56 +145,50 @@ syslog(LOG_ERR, "Failed to get drive temperature 1");  // this smartblob was needed, bc there was no other way to get the smart temperature from udisks  /* -	if (!g_dbus_proxy_call_sync(sensor_proxy, "Get", &info->error, -			      G_TYPE_STRING, UDISKS2_BUS_NAME, -			      G_TYPE_STRING, "DriveAtaSmartBlob", G_TYPE_INVALID, -			      G_TYPE_VALUE, &smart_blob_val, -			      G_TYPE_INVALID)) -	{ -		g_debug("Error getting DriveAtaSmartBlob %s", -			info->error ? info->error->message : "NULL"); -		g_object_unref(sensor_proxy); -		return; -	} -	smart_blob = g_value_get_boxed(&smart_blob_val); - -	sk_disk_open(NULL, &sk_disk); -	sk_disk_set_blob(sk_disk, smart_blob->data, smart_blob->len); -	if (sk_disk_smart_get_temperature(sk_disk, &temperature) < 0) -	{ -		g_debug("Error getting temperature from AtaSmartBlob"); -		g_free(sk_disk); -		g_array_free(smart_blob, TRUE); -		g_object_unref(sensor_proxy); -		return; -	} +    if (!g_dbus_proxy_call_sync(sensor_proxy, "Get", &info->error, +                  G_TYPE_STRING, UDISKS2_BUS_NAME, +                  G_TYPE_STRING, "DriveAtaSmartBlob", G_TYPE_INVALID, +                  G_TYPE_VALUE, &smart_blob_val, +                  G_TYPE_INVALID)) { + +        g_debug("Error getting DriveAtaSmartBlob %s", info->error ? info->error->message : "NULL"); +        g_object_unref(sensor_proxy); +        return; +    } +    smart_blob = g_value_get_boxed(&smart_blob_val); + +    sk_disk_open(NULL, &sk_disk); +    sk_disk_set_blob(sk_disk, smart_blob->data, smart_blob->len); +    if (sk_disk_smart_get_temperature(sk_disk, &temperature) < 0) { +        g_debug("Error getting temperature from AtaSmartBlob"); +        g_free(sk_disk); +        g_array_free(smart_blob, TRUE); +        g_object_unref(sensor_proxy); +        return; +    }  */ -	// directly asking the device's DBus object for the temp -	tempgvar = g_dbus_proxy_call_sync(info->sensor_proxy, "Get", -				g_variant_new ("(ss)", -					UDISKS2_DEVICE_INTERFACE2_NAME, -					"SmartTemperature"),				// parameters -				G_DBUS_CALL_FLAGS_NONE,		// flags -				-1,				// timeout -				NULL,				// cancellable -				&error); +    // directly asking the device's DBus object for the temp +    tempgvar = g_dbus_proxy_call_sync(info->sensor_proxy, "Get", +                g_variant_new ("(ss)", +                    UDISKS2_DEVICE_INTERFACE2_NAME, +                    "SmartTemperature"),                // parameters +                G_DBUS_CALL_FLAGS_NONE,        // flags +                -1,                // timeout +                NULL,                // cancellable +                &error); -	if (NULL == tempgvar) -	{ +    if (NULL == tempgvar) {  #ifdef UD2PD  syslog(LOG_ERR, "Failed to get drive temperature 2");  #endif -		g_debug("Failed to get drive temperature 2: %s", -			   error->message); -		g_clear_error(&error); -		// throw away proxy, maybe next time it will be better -		g_clear_object(&info->sensor_proxy); -		return; -	} -	else -	{ +        g_debug("Failed to get drive temperature 2: %s", error->message); +        g_clear_error(&error); +        // throw away proxy, maybe next time it will be better +        g_clear_object(&info->sensor_proxy); +        return; +    } else {  #ifdef UD2PD  syslog(LOG_ERR, "tempgvar value: %s", g_variant_print(tempgvar, TRUE)); @@ -211,25 +196,25 @@ syslog(LOG_ERR, "tempgvar value: %s", g_variant_print(tempgvar, TRUE));  //syslog(LOG_ERR, "tempgvar value: %s", g_variant_print(g_variant_get_variant(g_variant_get_child_value(tempgvar, 0)), TRUE));  #endif -		// tempgvar comes back as sg along the lines of array(gvariant(tempasdouble)) -		// hence unpacking -		// need to free up every param / return value, so can't do it like: -		//temp = g_variant_get_double(g_variant_get_variant(g_variant_get_child_value(tempgvar, 0))); -		tempgvar2 = g_variant_get_child_value(tempgvar, 0); -		g_variant_unref(tempgvar); -		tempgvar = g_variant_get_variant(tempgvar2); -		g_variant_unref(tempgvar2); -		temp = g_variant_get_double(tempgvar); -		g_variant_unref(tempgvar); +        // tempgvar comes back as sg along the lines of array(gvariant(tempasdouble)) +        // hence unpacking +        // need to free up every param / return value, so can't do it like: +        //temp = g_variant_get_double(g_variant_get_variant(g_variant_get_child_value(tempgvar, 0))); +        tempgvar2 = g_variant_get_child_value(tempgvar, 0); +        g_variant_unref(tempgvar); +        tempgvar = g_variant_get_variant(tempgvar2); +        g_variant_unref(tempgvar2); +        temp = g_variant_get_double(tempgvar); +        g_variant_unref(tempgvar); -		// temp in K -		info->temp = temp - 273.15; +        // temp in K +        info->temp = temp - 273.15;  #ifdef UD2PD  syslog(LOG_ERR, "Refresh udisks2 device temp: '%f'\n", info->temp);  #endif -	} +    }  } @@ -239,15 +224,15 @@ syslog(LOG_ERR, "Refresh udisks2 device temp: '%f'\n", info->temp);  /* This is the handler for the Changed() signal emitted by UDisks. */  /*  static void udisks2_changed_signal_cb(GDBusProxy *sensor_proxy) { -	const gchar *path; -	DevInfo *info; +    const gchar *path; +    DevInfo *info; -	// fd2: Gets the object path sensor_proxy is for. -	path = g_dbus_proxy_get_object_path(sensor_proxy); -	g_debug("%s changed()", path); -	info = g_hash_table_lookup(devices, path); +    // fd2: Gets the object path sensor_proxy is for. +    path = g_dbus_proxy_get_object_path(sensor_proxy); +    g_debug("%s changed()", path); +    info = g_hash_table_lookup(devices, path); -//	update_device(info); +//    update_device(info);  }  */ @@ -262,133 +247,125 @@ static void udisks2_plugin_get_sensors(GList **sensors) {  syslog(LOG_ERR, "fstart");  #endif -	GDBusProxy *proxy = NULL; -	GError *error = NULL; +    GDBusProxy *proxy = NULL; +    GError *error = NULL; -	DevInfo *info; +    DevInfo *info; -	/* This connection will be used for everything, including the obtaining -	 * of sensor data -	 */ -	// fd1: Returns a connection to the given bus. The connection is a global variable shared with other callers of this function. -	// fd2: Synchronously connects to the message bus specified by bus_type . Note that the returned object may shared with other callers, e.g. if two separate parts of a process calls this function with the same bus_type , they will share the same object. -	connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); -	if (NULL == connection) -	{ +    /* This connection will be used for everything, including the obtaining +     * of sensor data +     */ +    // fd1: Returns a connection to the given bus. The connection is a global variable shared with other callers of this function. +    // fd2: Synchronously connects to the message bus specified by bus_type . Note that the returned object may shared with other callers, e.g. if two separate parts of a process calls this function with the same bus_type , they will share the same object. +    connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); +    if (NULL == connection) {  #ifdef UD2PD  syslog(LOG_ERR, "dbus conn fail");  #endif -		g_debug("Failed to open connection to DBUS: %s", -			error->message); -		g_clear_error(&error); -		return; -	} +        g_debug("Failed to open connection to DBUS: %s", error->message); +        g_clear_error(&error); +        return; +    }  #ifdef UD2PD  syslog(LOG_ERR, "dbus conn success");  #endif -	/* This was the proxy which is only used once during the enumeration of -	 * the device object paths -	 */ -	// I use it to get all info of all devices at once -	// fd1: Creates a new proxy for a remote interface exported by a connection on a message bus. -	// fd2: Creates a proxy for accessing interface_name on the remote object at object_path owned by name at connection and synchronously loads D-Bus properties unless the G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used. -	proxy = g_dbus_proxy_new_sync(connection, G_DBUS_PROXY_FLAGS_NONE, NULL, -					  UDISKS2_BUS_NAME, -					  UDISKS2_OBJECT_PATH, -					  UDISKS2_INTERFACE_NAME, -					  NULL, &error -					); - -	if (NULL == proxy) -	{ +    /* This was the proxy which is only used once during the enumeration of +     * the device object paths +     */ +    // I use it to get all info of all devices at once +    // fd1: Creates a new proxy for a remote interface exported by a connection on a message bus. +    // fd2: Creates a proxy for accessing interface_name on the remote object at object_path owned by name at connection and synchronously loads D-Bus properties unless the G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used. +    proxy = g_dbus_proxy_new_sync(connection, G_DBUS_PROXY_FLAGS_NONE, NULL, +                                  UDISKS2_BUS_NAME, +                                  UDISKS2_OBJECT_PATH, +                                  UDISKS2_INTERFACE_NAME, +                                  NULL, &error ); + +    if (NULL == proxy) {  #ifdef UD2PD  syslog(LOG_ERR, "dbus conn proxy fail");  #endif -		g_debug("dbus conn proxy fail: %s", -			   error->message); -		g_clear_error(&error); -		g_clear_object(&connection); -		return; -	} +        g_debug("dbus conn proxy fail: %s", error->message); +        g_clear_error(&error); +        g_clear_object(&connection); +        return; +    }  #ifdef UD2PD  syslog(LOG_ERR, "dbus conn proxy success");  #endif -	/* The object paths of the disks are enumerated and placed in an array -	 * of object paths -	 */ -	// fd1: Function for synchronously invoking a method and receiving reply values. -	// fd2: Synchronously invokes the method_name method on proxy. -	// called "EnumerateDevices" method on UDisks object through dbus -	// which returned an array of objectpaths -	// "GetManagedObjects" returns dict of (objectpath, (dict of (string [ie. if. name], dict of(string [ie. property name], variant [ie. prop. value])))) +    /* The object paths of the disks are enumerated and placed in an array +     * of object paths +     */ +    // fd1: Function for synchronously invoking a method and receiving reply values. +    // fd2: Synchronously invokes the method_name method on proxy. +    // called "EnumerateDevices" method on UDisks object through dbus +    // which returned an array of objectpaths +    // "GetManagedObjects" returns dict of (objectpath, (dict of (string [ie. if. name], dict of(string [ie. property name], variant [ie. prop. value])))) -	// g_dbus_proxy_call_sync() returns NULL on error, GVariant * otherwise -	// need second param to prevent memory leak -	GVariant *managed_objects, *managed_objects2; +    // g_dbus_proxy_call_sync() returns NULL on error, GVariant * otherwise +    // need second param to prevent memory leak +    GVariant *managed_objects, *managed_objects2; -	managed_objects2 = g_dbus_proxy_call_sync(proxy, "GetManagedObjects", -				NULL,				// parameters -				G_DBUS_CALL_FLAGS_NONE,		// flags -				-1,				// timeout -				NULL,				// cancellable -				&error); +    managed_objects2 = g_dbus_proxy_call_sync(proxy, "GetManagedObjects", +                                            NULL,                // parameters +                                            G_DBUS_CALL_FLAGS_NONE,        // flags +                                            -1,                // timeout +                                            NULL,                // cancellable +                                            &error); -	if (NULL == managed_objects2) -	{ +    if (NULL == managed_objects2) {  #ifdef UD2PD  syslog(LOG_ERR, "Failed to enumerate disk devices");  #endif -		g_debug("Failed to enumerate disk devices: %s", -			   error->message); -		g_clear_error(&error); -		g_clear_object(&proxy); -		g_clear_object(&connection); -		return; -	} +        g_debug("Failed to enumerate disk devices: %s", error->message); +        g_clear_error(&error); +        g_clear_object(&proxy); +        g_clear_object(&connection); +        return; +    } -	// the result dictionary is enclosed in an array, unpack -	managed_objects = g_variant_get_child_value(managed_objects2, 0); -	g_variant_unref(managed_objects2); +    // the result dictionary is enclosed in an array, unpack +    managed_objects = g_variant_get_child_value(managed_objects2, 0); +    g_variant_unref(managed_objects2);  #ifdef UD2PD  //syslog(LOG_ERR, "managed_objects type: %s", g_variant_print(managed_objects, TRUE));  syslog(LOG_ERR, "success to enumerate disk devices");  #endif -	// iterator for the result dictionary +    // iterator for the result dictionary -	// iterator code is based on the g_variant_iter_next() documentation -	// iter is freed if the GVariant is, when using g_variant_iter_init() -	GVariantIter iter; -	gchar *key;	     // object path (like '/org/freedesktop/UDisks2/drives/Samsung_SSD_840_EVO_250GB_*insert drive serial nr.*') -	GVariant *value; +    // iterator code is based on the g_variant_iter_next() documentation +    // iter is freed if the GVariant is, when using g_variant_iter_init() +    GVariantIter iter; +    gchar *key;         // object path (like '/org/freedesktop/UDisks2/drives/Samsung_SSD_840_EVO_250GB_*insert drive serial nr.*') +    GVariant *value;  #ifdef UD2PD  // log collection size  syslog(LOG_ERR, "iter init count: %d", (int) g_variant_iter_init(&iter, managed_objects));  #else -	g_variant_iter_init(&iter, managed_objects); +    g_variant_iter_init(&iter, managed_objects);  #endif -	// "{sv}"  is a GVariant format string -	// {} dictionary of, s string, v GVariant -	// changed to "{oa{sa{sv}}}" on error message 'the GVariant format string '{sv}' has a type of '{sv}' but the given value has a type of 'a{oa{sa{sv}}}'' -	// a is array, o is object path -	// NOO!! the right format string is "{o@*}", which means get an object path into the 1st variable (key) -	// and get 'everything else' (as a GVariant) into the 2nd variable (value) -	// needs the & before the key and value params! -	while (g_variant_iter_next(&iter, "{o@*}", &key, &value)) -	{ +    // "{sv}"  is a GVariant format string +    // {} dictionary of, s string, v GVariant +    // changed to "{oa{sa{sv}}}" on error message 'the GVariant format string '{sv}' has a type of '{sv}' but the given value has a type of 'a{oa{sa{sv}}}'' +    // a is array, o is object path +    // NOO!! the right format string is "{o@*}", which means get an object path into the 1st variable (key) +    // and get 'everything else' (as a GVariant) into the 2nd variable (value) +    // needs the & before the key and value params! +    while (g_variant_iter_next(&iter, "{o@*}", &key, &value)) {  #ifdef UD2PD  syslog(LOG_ERR, "in iter while loop"); @@ -396,43 +373,42 @@ syslog(LOG_ERR, "key value: %s", key);  //syslog(LOG_ERR, "value type: %s", g_variant_print(value, TRUE));  #endif -		// level 2 -		// create a dictionary of value -		// the two interface names that we are searching for are known and defined -		// can't use GVariantDict, it only supports '{sv}' but the given value has a type of '{sa{sv}}' -		// using general lookup +        // level 2 +        // create a dictionary of value +        // the two interface names that we are searching for are known and defined +        // can't use GVariantDict, it only supports '{sv}' but the given value has a type of '{sa{sv}}' +        // using general lookup -		GVariant *propdict;		// drive data -		GVariant *propdict2;	// drive smart data +        GVariant *propdict;        // drive data +        GVariant *propdict2;    // drive smart data -		// make two dictionaries that contain the properties of the drive interfaces -		propdict = g_variant_lookup_value(value, UDISKS2_DEVICE_INTERFACE_NAME, G_VARIANT_TYPE_DICTIONARY); -		propdict2 = g_variant_lookup_value(value, UDISKS2_DEVICE_INTERFACE2_NAME, G_VARIANT_TYPE_DICTIONARY); +        // make two dictionaries that contain the properties of the drive interfaces +        propdict = g_variant_lookup_value(value, UDISKS2_DEVICE_INTERFACE_NAME, G_VARIANT_TYPE_DICTIONARY); +        propdict2 = g_variant_lookup_value(value, UDISKS2_DEVICE_INTERFACE2_NAME, G_VARIANT_TYPE_DICTIONARY); -		// do we have the right ifname keys? -		if((NULL != propdict) && (NULL != propdict2)) -		{ +        // do we have the right ifname keys? +        if((NULL != propdict) && (NULL != propdict2)) {  #ifdef UD2PD  syslog(LOG_ERR, "propdict type: %s", g_variant_print(propdict, TRUE));  syslog(LOG_ERR, "propdict2 type: %s", g_variant_print(propdict2, TRUE));  #endif -			// get data -			gchar *id; -			gchar *model; +            // get data +            gchar *id; +            gchar *model; -			gboolean smartenabled; -			gdouble temp; +            gboolean smartenabled; +            gdouble temp; -			// NULL, bc we don't care about the length of the string -			// typecast bc g_variant_get_string() returns const char* -			id = (gchar *) g_variant_get_string(g_variant_lookup_value(propdict, "Id", G_VARIANT_TYPE_STRING), NULL); -			model = (gchar *) g_variant_get_string(g_variant_lookup_value(propdict, "Model", G_VARIANT_TYPE_STRING), NULL); +            // NULL, bc we don't care about the length of the string +            // typecast bc g_variant_get_string() returns const char* +            id = (gchar *) g_variant_get_string(g_variant_lookup_value(propdict, "Id", G_VARIANT_TYPE_STRING), NULL); +            model = (gchar *) g_variant_get_string(g_variant_lookup_value(propdict, "Model", G_VARIANT_TYPE_STRING), NULL); -			smartenabled = g_variant_get_boolean(g_variant_lookup_value(propdict2, "SmartEnabled", G_VARIANT_TYPE_BOOLEAN)); -			temp = g_variant_get_double(g_variant_lookup_value(propdict2, "SmartTemperature", G_VARIANT_TYPE_DOUBLE)); +            smartenabled = g_variant_get_boolean(g_variant_lookup_value(propdict2, "SmartEnabled", G_VARIANT_TYPE_BOOLEAN)); +            temp = g_variant_get_double(g_variant_lookup_value(propdict2, "SmartTemperature", G_VARIANT_TYPE_DOUBLE));  #ifdef UD2PD  syslog(LOG_ERR, "Found udisks2 device id: '%s'\n", id); @@ -442,144 +418,135 @@ syslog(LOG_ERR, "Found udisks2 device temp: '%f'\n", temp);  #endif -			// only go on if smart is enabled -			// save data -			if(smartenabled) -			{ +            // only go on if smart is enabled +            // save data +            if(smartenabled) { -				info = g_malloc0(sizeof(DevInfo)); -				if (NULL == devices) -				{ -					devices = g_hash_table_new(g_str_hash, -								   g_str_equal); -				} +                info = g_malloc0(sizeof(DevInfo)); +                if (NULL == devices) { +                    devices = g_hash_table_new(g_str_hash, g_str_equal); +                } -				info->id =  g_strdup(id); -				info->path =  g_strdup(key); +                info->id =  g_strdup(id); +                info->path =  g_strdup(key); -				// temp in K -				// this could be left at 0.0, 2 seconds later it will be refreshed anyway -				info->temp = (gdouble)temp - 273.15; -				g_hash_table_insert(devices, info->id, info); +                // temp in K +                // this could be left at 0.0, 2 seconds later it will be refreshed anyway +                info->temp = (gdouble)temp - 273.15; +                g_hash_table_insert(devices, info->id, info); -				// Write the sensor data -				sensors_applet_plugin_add_sensor(sensors, -								 id, -								 "Disk Temperature", -								 model, -								 TEMP_SENSOR, -								 FALSE, -								 HDD_ICON, -								 DEFAULT_GRAPH_COLOR); +                // Write the sensor data +                sensors_applet_plugin_add_sensor(sensors, +                                                 id, +                                                 "Disk Temperature", +                                                 model, +                                                 TEMP_SENSOR, +                                                 FALSE, +                                                 HDD_ICON, +                                                 DEFAULT_GRAPH_COLOR); -				g_debug("Added %s", id); +                g_debug("Added %s", id);  #ifdef UD2PD  syslog(LOG_ERR, "Added %s", id);  #endif -			} -			else -			{ +            } else {  #ifdef UD2PD  syslog(LOG_ERR, "No temp data for device: %s\n", key);  #endif -				g_debug ("No temp data for device: %s\n", key); -			} +                g_debug ("No temp data for device: %s\n", key); +            }  #ifdef UD2PD  syslog(LOG_ERR, "b4 free1");  #endif -			g_free(id); -			g_free(model); +            g_free(id); +            g_free(model); -		} +        }  #ifdef UD2PD  syslog(LOG_ERR, "b4 free2");  #endif -		// free propdict, propdict2 -		// g_variant_dict_unref() may not work a few times, gives error -		// this one seems to do fine -		if(NULL != propdict) {g_variant_unref(propdict);} -		if(NULL != propdict2) {g_variant_unref(propdict2);} +        // free propdict, propdict2 +        // g_variant_dict_unref() may not work a few times, gives error +        // this one seems to do fine +        if(NULL != propdict) {g_variant_unref(propdict);} +        if(NULL != propdict2) {g_variant_unref(propdict2);}  #ifdef UD2PD  syslog(LOG_ERR, "b4 free3");  #endif -		g_free(key); -		g_variant_unref(value); +        g_free(key); +        g_variant_unref(value); -	}       // end of while loop +    }       // end of while loop -	g_variant_unref(managed_objects); -	g_clear_object(&proxy); -	if (NULL == devices) -	{ -		g_clear_object(&connection); -	} +    g_variant_unref(managed_objects); +    g_clear_object(&proxy); +    if (NULL == devices) { +        g_clear_object(&connection); +    }  } -  // this is the function called every refresh cycle  static gdouble udisks2_plugin_get_sensor_value(const gchar *path, -					      const gchar *id, -					      SensorType type, -					      GError **error) { -	DevInfo *info; - -	// get device stuct from data store -	info = (DevInfo *)g_hash_table_lookup(devices, path); -	if (NULL == info) -	{ -		g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, 0, -			    "Error finding disk with path %s", path); -		return 0.0; -	} - -	if (info->error) -	{ -		*error = info->error; -		info->error = NULL; -		return 0.0; -	} - -	// refresh device temp -	/* update value since Changed() signal doesn't fire manually enough so -	 * poll instead */ -	update_device(info); -	return info->temp; +                                               const gchar *id, +                                               SensorType type, +                                               GError **error) { +    DevInfo *info; + +    // get device stuct from data store +    info = (DevInfo *) g_hash_table_lookup(devices, path); +    if (NULL == info) { +        g_set_error(error, SENSORS_APPLET_PLUGIN_ERROR, 0, "Error finding disk with path %s", path); +        return 0.0; +    } + +    if (info->error) { +        *error = info->error; +        info->error = NULL; +        return 0.0; +    } + +    // refresh device temp +    /* update value since Changed() signal doesn't fire manually enough so +     * poll instead */ +    update_device(info); +    return info->temp;  }  // API functions  const gchar *sensors_applet_plugin_name(void)  { -	return plugin_name; +    return plugin_name;  }  static GList *udisks2_plugin_init(void) { -	GList *sensors = NULL; +    GList *sensors = NULL; -	udisks2_plugin_get_sensors(&sensors); +    udisks2_plugin_get_sensors(&sensors); -	return sensors; +    return sensors;  }  GList *sensors_applet_plugin_init(void)  { -	return udisks2_plugin_init(); +    return udisks2_plugin_init();  }  gdouble sensors_applet_plugin_get_sensor_value(const gchar *path, -					       const gchar *id, -					       SensorType type, -					       GError **error) { -	return udisks2_plugin_get_sensor_value(path, id, type, error); +                                               const gchar *id, +                                               SensorType type, +                                               GError **error) { + +    return udisks2_plugin_get_sensor_value(path, id, type, error);  } | 
