[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Graveman-cvs] Changes to graveman/current/src/matos.c
From: |
sylvain cresto |
Subject: |
[Graveman-cvs] Changes to graveman/current/src/matos.c |
Date: |
Mon, 16 May 2005 21:16:42 -0400 |
Index: graveman/current/src/matos.c
diff -u graveman/current/src/matos.c:1.34 graveman/current/src/matos.c:1.35
--- graveman/current/src/matos.c:1.34 Sun May 15 17:37:21 2005
+++ graveman/current/src/matos.c Tue May 17 01:16:34 2005
@@ -118,7 +118,7 @@
}
}
-void insert_or_update_drive(gchar *Adev, gchar *Amarque, gchar *Amodel, gchar
*Aquoi, Tsearchdrive *Adrivedesc)
+void matos_insert_or_update_drive(gchar *Adev, gchar *Amarque, gchar *Amodel,
gchar *Aquoi, Tsearchdrive *Adrivedesc)
{
/* on commence par construire l'identifiant */
gchar *Lident = g_strdup_printf("%s %s %s", Amarque, Amodel, Aquoi);
@@ -764,9 +764,62 @@
/* try to umount device when it's mounted
* scan /etc/ftab file to do this */
-gboolean umount_device(Tdriveinfo *Adevice, Tgrave *Ag)
+gboolean matos_umount_device(Tdriveinfo *Adrive, GError **Aerror)
{
-
+ gchar *Lcontent = NULL;
+ gint i;
+ gchar **Larrbuf, *Lcur, *s, *Lcurdev = NULL;
+ gchar Lcommand[_BUF_SIZE];
+ GSList *Llistdev;
+ gboolean Lfind = FALSE, Lstatus = FALSE;
+
+ if (!g_file_get_contents("/etc/mtab", &Lcontent, NULL, Aerror) || !Lcontent)
return FALSE;
+ Larrbuf = g_strsplit(Lcontent, "\n", 0);
+
+ for (i=0; Larrbuf[i] && !Lfind; i++) {
+ s = Lcur = Larrbuf[i];
+ if (!*Lcur) continue;
+
+ _DEB("deb => [%s]", Lcur);
+
+ while (g_ascii_isalnum(*s) || *s=='/') s++;
+ *s=0;
+ if ((s=strchr(Lcur, '='))) Lcur=s+1;
+
+ for (Llistdev = Adrive->dev; Llistdev; Llistdev = g_slist_next(Llistdev)) {
+ Lcurdev = (gchar *) Llistdev->data;
+_DEB("comp de [%s] et [%s]", Lcurdev,Lcur);
+ if (!strcmp(Lcurdev, Lcur)) {
+ Lfind = TRUE;
+ break;
+ }
+ }
+ }
+
+ if (Lfind && Lcurdev) {
+ g_snprintf(Lcommand, sizeof(Lcommand)-1, "/sbin/umount %s", Lcurdev);
+
+ _DEB("try to umount [%s]", Lcommand);
+
+ Lstatus = g_spawn_command_line_async(Lcommand, Aerror);
+ }
+
+ g_strfreev(Larrbuf);
+ g_free(Lcontent);
+
+ return Lstatus;
+}
+
+gboolean matos_maj_drive_info(Tdriveinfo *Adrive, gchar *Adev, GError **Aerror)
+{
+ Adrive->type = 0;
+
+ cdrecord_maj_drive_info(Adrive, Adev, Aerror);
+
+ /* use /proc/sys/dev/cdrom/info with linux to find DVD capability */
+ proc_maj_drive_info(Adrive, Aerror);
+
+ return TRUE;
}
/*
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/02
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/02
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/03
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/16
- [Graveman-cvs] Changes to graveman/current/src/matos.c,
sylvain cresto <=
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/18
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/22
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/22
- [Graveman-cvs] Changes to graveman/current/src/matos.c, sylvain cresto, 2005/05/27