106 |
*Lbuffer = 0; |
*Lbuffer = 0; |
107 |
Lstatus = g_io_channel_read_chars(Astd, Lbuffer, _BUF_SIZE-1, &Llu, NULL); |
Lstatus = g_io_channel_read_chars(Astd, Lbuffer, _BUF_SIZE-1, &Llu, NULL); |
108 |
if (!*Lbuffer || Lstatus == G_IO_STATUS_ERROR || Lstatus == G_IO_STATUS_AGAIN) { |
if (!*Lbuffer || Lstatus == G_IO_STATUS_ERROR || Lstatus == G_IO_STATUS_AGAIN) { |
109 |
return FALSE; |
return TRUE; |
110 |
} |
} |
111 |
Lbuffer[Llu]=0; |
Lbuffer[Llu]=0; |
112 |
_DEB("===>%s", Lbuffer); |
_DEB("===>%s", Lbuffer); |
329 |
if (Lcurcd > 1 && !Ldosimul) { |
if (Lcurcd > 1 && !Ldosimul) { |
330 |
/* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le |
/* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le |
331 |
* nouveau cd vierge */ |
* nouveau cd vierge */ |
332 |
|
GSList *Llmediarequis = g_slist_append(NULL, GINT_TO_POINTER(_MEDIA_CDR + _MEDIA_APPENDABLE)); |
333 |
|
gboolean Lstatus; |
334 |
|
Llmediarequis = g_slist_append(Llmediarequis, GINT_TO_POINTER(_MEDIA_CDRW + _MEDIA_APPENDABLE)); |
335 |
|
|
336 |
/* gint Lrep; |
/* gint Lrep; |
337 |
GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow, |
GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow, |
338 |
GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, |
GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, |
341 |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
342 |
gtk_widget_destroy(Lconfirm); |
gtk_widget_destroy(Lconfirm); |
343 |
if (Lrep == GTK_RESPONSE_NO) {*/ |
if (Lrep == GTK_RESPONSE_NO) {*/ |
344 |
if (waiting_for_user("", Ag, _MEDIA_CDR + _MEDIA_APPENDABLE , &Lmediadetect1, Lbufgrav)==FALSE) { |
Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis, &Lmediadetect1, Lbufgrav); |
345 |
|
g_slist_free(Llmediarequis); |
346 |
|
|
347 |
|
if (Lstatus==FALSE) { |
348 |
/* si c'est non alors on arrete */ |
/* si c'est non alors on arrete */ |
349 |
*Labort = TRUE; |
*Labort = TRUE; |
350 |
Lstatus = TRUE; |
Lstatus = TRUE; |
351 |
} |
} |
|
|
|
352 |
} |
} |
353 |
|
|
354 |
/* Lbuftitle = get_title(Lnbrgravure, Lcurcd, Ldosimul); |
/* Lbuftitle = get_title(Lnbrgravure, Lcurcd, Ldosimul); |
471 |
|
|
472 |
|
|
473 |
/* retourne les infos sur le media inseré dans le lecteur */ |
/* retourne les infos sur le media inseré dans le lecteur */ |
474 |
gint get_cdinfo(gchar *Adevice, GError **Aerror) |
gint get_cdinfo(Tgrave *Ag, gchar *Adevice, GError **Aerror) |
475 |
{ |
{ |
476 |
gchar Lcommandline[_BUF_SIZE]; |
gchar Lcommandline[_BUF_SIZE]; |
477 |
gboolean Lstatus; |
gboolean Lstatus; |
|
gint Lexit = 0; |
|
|
gchar *Lout = NULL, *Lerr = NULL; |
|
478 |
gchar **Larrbuf; |
gchar **Larrbuf; |
479 |
|
gchar **Lcmd; |
480 |
gint i; |
gint i; |
481 |
gint Llu = _MEDIA_NONE; |
gint Llu = _MEDIA_NONE; |
482 |
|
gint g_err, g_out, Lnbrarg; |
483 |
|
GIOChannel *Lcom; |
484 |
|
guint Lcomevent; |
485 |
|
gint Lloccont = 2; |
486 |
|
gint *Lpid = (gint *)sc_grave_get_data(Ag, "pid"); |
487 |
|
GString *Loutput; |
488 |
|
|
489 |
g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", conf_get_string("cdrdao"), Adevice); |
g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", conf_get_string("cdrdao"), Adevice); |
490 |
|
if (!g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror)) return 0; |
491 |
|
|
492 |
|
|
493 |
Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, Aerror); |
Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, (GSpawnFlags) (G_SPAWN_DO_NOT_REAP_CHILD), NULL, NULL, |
494 |
|
Lpid, NULL, &g_out, &g_err, Aerror); |
495 |
|
g_strfreev(Lcmd); |
496 |
|
|
497 |
if (Lstatus == FALSE || Lexit != 0) { |
if (Lstatus == FALSE) { |
|
g_free(Lout); g_free(Lerr); |
|
498 |
return 0; |
return 0; |
499 |
} |
} |
500 |
printf("lout = %s\n", Lout); |
|
501 |
Larrbuf = g_strsplit(Lout, "\n", 0); |
Loutput = g_string_new(""); |
502 |
|
sc_grave_set_data(Ag, Loutput, "buffer"); |
503 |
|
sc_grave_set_data(Ag, &Lloccont, "loccont"); |
504 |
|
|
505 |
|
Lcom = g_io_channel_unix_new( g_out ); |
506 |
|
g_io_channel_set_encoding (Lcom, NULL, NULL); |
507 |
|
g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL ); |
508 |
|
Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
509 |
|
read_all_output_callback, Ag); |
510 |
|
|
511 |
|
while (Lloccont > 0) { |
512 |
|
gtk_main_iteration(); |
513 |
|
} |
514 |
|
|
515 |
|
g_source_remove(Lcomevent); |
516 |
|
|
517 |
|
g_io_channel_shutdown(Lcom, FALSE, NULL); |
518 |
|
g_io_channel_unref(Lcom); |
519 |
|
g_spawn_close_pid(*Lpid); |
520 |
|
printf(" LU = >%s\n", Loutput->str); |
521 |
|
Larrbuf = g_strsplit(Loutput->str, "\n", 0); |
522 |
|
|
523 |
|
g_string_free(Loutput, TRUE); |
524 |
|
|
525 |
|
sc_grave_del_data(Ag, "loccount"); |
526 |
|
sc_grave_del_data(Ag, "buffer"); |
527 |
|
|
528 |
|
|
529 |
for (i=0; Larrbuf[i]; i++) { |
for (i=0; Larrbuf[i]; i++) { |
530 |
if (!*Larrbuf[i]) continue; |
if (!*Larrbuf[i]) continue; |
536 |
} else if (!strncmp(Larrbuf[i], CDRDAO_TOCTYPE, strlen(CDRDAO_TOCTYPE))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_TOCTYPE, strlen(CDRDAO_TOCTYPE))) { |
537 |
if (strstr(Larrbuf[i], CDRDAO_CD)) { |
if (strstr(Larrbuf[i], CDRDAO_CD)) { |
538 |
Llu += _MEDIA_CD; |
Llu += _MEDIA_CD; |
539 |
|
printf("oui cd !\n"); |
540 |
} |
} |
541 |
} else if (!strncmp(Larrbuf[i], CDRDAO_CDR, strlen(CDRDAO_CDR))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_CDR, strlen(CDRDAO_CDR))) { |
542 |
if (!strstr(Larrbuf[i], CDRDAO_NA)) { |
if (!strstr(Larrbuf[i], CDRDAO_NA)) { |
543 |
Llu += _MEDIA_CDR; |
Llu += _MEDIA_CDR; |
544 |
|
printf("oui cdr !\n"); |
545 |
} |
} |
546 |
} else if (!strncmp(Larrbuf[i], CDRDAO_EMPTY, strlen(CDRDAO_EMPTY))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_EMPTY, strlen(CDRDAO_EMPTY))) { |
547 |
if (strstr(Larrbuf[i], CDRDAO_YES)) { |
if (strstr(Larrbuf[i], CDRDAO_YES)) { |
554 |
} else if (!strncmp(Larrbuf[i], CDRDAO_APPENDABLE, strlen(CDRDAO_APPENDABLE))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_APPENDABLE, strlen(CDRDAO_APPENDABLE))) { |
555 |
if (!strstr(Larrbuf[i], CDRDAO_NO)) { |
if (!strstr(Larrbuf[i], CDRDAO_NO)) { |
556 |
Llu += _MEDIA_APPENDABLE; |
Llu += _MEDIA_APPENDABLE; |
557 |
|
printf("oui appednable !\n"); |
558 |
} |
} |
559 |
} |
} |
560 |
} |
} |