summaryrefslogtreecommitdiff
path: root/ide.c
diff options
context:
space:
mode:
Diffstat (limited to 'ide.c')
-rw-r--r--ide.c94
1 files changed, 46 insertions, 48 deletions
diff --git a/ide.c b/ide.c
index c24305ec..bb790121 100644
--- a/ide.c
+++ b/ide.c
@@ -1,3 +1,4 @@
+
/*
* Hardware Information, version 0.3
* Copyright (C) 2003 Leandro Pereira <leandro@linuxmag.com.br>
@@ -15,7 +16,7 @@ IDEDevice *hi_scan_ide(void)
{
FILE *proc_ide;
gchar *device, iface;
- gint n=0, i=0;
+ gint n = 0, i = 0;
struct stat st;
IDEDevice *ide_dev, *ide;
@@ -59,9 +60,34 @@ IDEDevice *hi_scan_ide(void)
ide_dev->cache = atoi(buf);
}
+ g_free(device);
+
+ device = g_strdup_printf("/proc/ide/hd%c/geometry", iface);
+ if (!stat(device, &st)) {
+ gchar *tmp;
+
+ proc_ide = fopen(device, "r");
+
+ fgets(buf, 64, proc_ide);
+ for (tmp = buf; *tmp; tmp++) {
+ if (*tmp >= '0' && *tmp <= '9') break;
+ }
+
+ ide_dev->phy_geometry = g_strdup(g_strstrip(tmp));
+
+ fgets(buf, 64, proc_ide);
+ for (tmp = buf; *tmp; tmp++) {
+ if (*tmp >= '0' && *tmp <= '9') break;
+ }
+ ide_dev->log_geometry = g_strdup(g_strstrip(tmp));
+
+ fclose(proc_ide);
+ }
+ g_free(device);
+
n++;
- }
- g_free(device);
+ } else
+ g_free(device);
}
return ide;
@@ -69,7 +95,6 @@ IDEDevice *hi_scan_ide(void)
void hi_show_ide_info(MainWindow *mainwindow, IDEDevice *device)
{
- GtkWidget *hbox, *vbox, *label;
static struct {
char *type;
char *label;
@@ -80,9 +105,6 @@ void hi_show_ide_info(MainWindow *mainwindow, IDEDevice *device)
};
int i;
gchar *buf;
-#ifdef GTK2
- GtkWidget *pixmap;
-#endif
if(!device) return;
@@ -90,53 +112,29 @@ void hi_show_ide_info(MainWindow *mainwindow, IDEDevice *device)
if (!strcmp(device->media, type2icon[i].type)) break;
}
-#ifdef GTK2
buf = g_strdup_printf("%s%s", IMG_PREFIX, type2icon[i].icon);
- pixmap = gtk_image_new_from_file(buf);
- gtk_widget_show(pixmap);
-
- g_free(buf);
-#endif
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
- gtk_widget_show(hbox);
-
- if(mainwindow->framec)
- gtk_widget_destroy(mainwindow->framec);
-
- gtk_container_add(GTK_CONTAINER(mainwindow->frame), hbox);
- mainwindow->framec = hbox;
+ detail_window_set_icon(mainwindow->det_window, buf);
+ g_free(buf);
buf = g_strdup_printf(_("ATA/IDE %s Device"), type2icon[i].label);
- gtk_frame_set_label(GTK_FRAME(mainwindow->frame), buf);
+ gtk_window_set_title(GTK_WINDOW(mainwindow->det_window->window), buf);
+ detail_window_set_dev_type(mainwindow->det_window, buf);
g_free(buf);
-
-#ifdef GTK2
- gtk_box_pack_start(GTK_BOX(hbox), pixmap, FALSE, FALSE, 0);
-#endif
-
- vbox = gtk_vbox_new(FALSE, 2);
- gtk_widget_show(vbox);
- gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
-#ifdef GTK2
- buf = g_strdup_printf("<b>%s</b>", device->model);
- label = gtk_label_new(buf);
- gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
- gtk_label_set_selectable(GTK_LABEL(label), TRUE);
+ detail_window_set_dev_name(mainwindow->det_window, device->model);
- g_free(buf);
-#else
- label = gtk_label_new(device->model);
-#endif
- gtk_widget_show(label);
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
-
if (device->cache) {
- buf = g_strdup_printf(_("Cache: %d KB"), device->cache);
- label = gtk_label_new(buf);
- gtk_widget_show(label);
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- g_free(buf);
+ detail_window_append_info_int(mainwindow->det_window, _("Cache (kb)"),
+ device->cache, FALSE);
+ }
+
+ if (device->phy_geometry) {
+ detail_window_append_info(mainwindow->det_window, _("Physical geometry"),
+ device->phy_geometry);
+ }
+ if (device->log_geometry) {
+ detail_window_append_info(mainwindow->det_window, _("Logical geometry"),
+ device->log_geometry);
}
+
}