[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Graveman-cvs] Changes to graveman/current/src/cdrdao.c
From: |
sylvain cresto |
Subject: |
[Graveman-cvs] Changes to graveman/current/src/cdrdao.c |
Date: |
Sun, 27 Feb 2005 20:28:12 -0500 |
Index: graveman/current/src/cdrdao.c
diff -u graveman/current/src/cdrdao.c:1.3 graveman/current/src/cdrdao.c:1.4
--- graveman/current/src/cdrdao.c:1.3 Sat Feb 26 16:15:40 2005
+++ graveman/current/src/cdrdao.c Mon Feb 28 01:28:09 2005
@@ -53,6 +53,12 @@
#define CDRDAO_BUFFERS "Buffers "
#define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and
not appendable"
+/* detection des media */
+#define CDRDAO_CDRW "CD-RW"
+#define CDRDAO_YES "yes"
+#define CDRDAO_CDR "CD-R medium"
+#define CDRDAO_EMPTY "CD-R empty"
+
static gchar *get_blank_type(Tgrave *Ag)
{
gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank");
@@ -457,6 +463,51 @@
}
+/* retourne les infos sur le media inseré dans le lecteur */
+gint get_cdinfo(gchar *Adevice, GError **Aerror)
+{
+ gchar Lcommandline[_BUF_SIZE];
+ gboolean Lstatus;
+ gint Lexit = 0;
+ gchar *Lout = NULL, *Lerr = NULL;
+ gchar **Larrbuf;
+ gint i;
+ gint Llu = _MEDIA_NONE;
+
+ g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s",
conf_get_string("cdrdao"), Adevice);
+
+ Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit,
Aerror);
+
+ if (Lstatus == FALSE || Lexit != 0) {
+ g_free(Lout); g_free(Lerr);
+ return FALSE;
+ }
+
+ Larrbuf = g_strsplit(Lout, "\n", 0);
+
+ for (i=0; Larrbuf[i]; i++) {
+ if (!*Larrbuf[i]) continue;
+
+ if (!strncmp(Larrbuf[i], CDRDAO_CDRW, strlen(CDRDAO_CDRW))) {
+ if (strstr(Larrbuf[i], CDRDAO_YES)) {
+printf("ok c'est un CDRW ! \n");
+ Llu |= _MEDIA_CDRW;
+ }
+ } else if (!strncmp(Larrbuf[i], CDRDAO_CDR, strlen(CDRDAO_CDR))) {
+ if (strstr(Larrbuf[i], CDRDAO_YES)) {
+printf("ok c'est un CDR ! \n");
+ Llu |= _MEDIA_CDR;
+ }
+ } else if (!strncmp(Larrbuf[i], CDRDAO_EMPTY, strlen(CDRDAO_EMPTY))) {
+ if (strstr(Larrbuf[i], CDRDAO_YES)) Llu &= _MEDIA_BLANK;
+ }
+ }
+
+ g_strfreev(Larrbuf);
+
+ return Llu;
+}
+
/*
* vim:et:ts=8:sts=2:sw=2