/[graveman]/graveman/current/src/cdrdao.c
ViewVC logotype

Diff of /graveman/current/src/cdrdao.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by scresto, Sat Feb 26 16:15:40 2005 UTC revision 1.4 by scresto, Mon Feb 28 01:28:09 2005 UTC
# Line 53  Line 53 
53  #define CDRDAO_BUFFERS "Buffers "  #define CDRDAO_BUFFERS "Buffers "
54  #define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and not appendable"  #define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and not appendable"
55    
56    /* detection des media */
57    #define CDRDAO_CDRW "CD-RW"
58    #define CDRDAO_YES "yes"
59    #define CDRDAO_CDR "CD-R medium"
60    #define CDRDAO_EMPTY "CD-R empty"
61    
62  static gchar *get_blank_type(Tgrave *Ag)  static gchar *get_blank_type(Tgrave *Ag)
63  {  {
64    gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank");    gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank");
# Line 457  _DEB("execution [%s]\n", Lcommandline); Line 463  _DEB("execution [%s]\n", Lcommandline);
463  }  }
464    
465    
466    /* retourne les infos sur le media inseré dans le lecteur */
467    gint get_cdinfo(gchar *Adevice, GError **Aerror)
468    {
469      gchar Lcommandline[_BUF_SIZE];
470      gboolean Lstatus;
471      gint Lexit = 0;
472      gchar *Lout = NULL, *Lerr = NULL;
473      gchar **Larrbuf;
474      gint i;
475      gint Llu = _MEDIA_NONE;
476    
477      g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", conf_get_string("cdrdao"), Adevice);
478    
479      Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, Aerror);
480    
481      if (Lstatus == FALSE || Lexit != 0) {
482        g_free(Lout); g_free(Lerr);
483        return FALSE;
484      }
485    
486      Larrbuf = g_strsplit(Lout, "\n", 0);
487    
488      for (i=0; Larrbuf[i]; i++) {
489        if (!*Larrbuf[i]) continue;
490    
491        if (!strncmp(Larrbuf[i], CDRDAO_CDRW, strlen(CDRDAO_CDRW))) {
492          if (strstr(Larrbuf[i], CDRDAO_YES)) {
493    printf("ok c'est un CDRW ! \n");        
494            Llu |= _MEDIA_CDRW;
495          }
496        } else if (!strncmp(Larrbuf[i], CDRDAO_CDR, strlen(CDRDAO_CDR))) {
497          if (strstr(Larrbuf[i], CDRDAO_YES)) {
498    printf("ok c'est un CDR ! \n");        
499            Llu |= _MEDIA_CDR;
500          }
501        } else if (!strncmp(Larrbuf[i], CDRDAO_EMPTY, strlen(CDRDAO_EMPTY))) {
502          if (strstr(Larrbuf[i], CDRDAO_YES)) Llu &= _MEDIA_BLANK;
503        }
504      }
505      
506      g_strfreev(Larrbuf);
507    
508      return Llu;
509    }
510    
511    
512  /*  /*
513   * vim:et:ts=8:sts=2:sw=2   * vim:et:ts=8:sts=2:sw=2

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26