#ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include "callbacks.h" #include "interface.h" #include "support.h" #include "gmencoder.h" DATOS_DVD medio_dvd; DATOS_FICHERO medio_fichero; DATOS_TELE medio_tele; int SalirRippeo = 0; int SalirOperacion = 0; int Respuesta = NO_RESP; int Pausa = PLAY; DATOS_RIPPEO datos_rippeo[MAX_COLA]; int NumCola = 0; void PonTiempos () { int Tiempo; Tiempo = DameTiempo(); gtk_spin_button_set_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe), 0, Tiempo-1); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe), 0); gtk_spin_button_set_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), 1, Tiempo); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), Tiempo); } void LimpiaInterfaz () { gtk_notebook_set_current_page (GTK_NOTEBOOK (strPrincipal.nbkRippeo), 0); /* Opciones Video */ gtk_entry_set_text (GTK_ENTRY (strPrincipal.entCmbCodecVideo), "lavcodec"); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entCmbCodecLav), "mpeg4 - ISO standard MPEG-4 (DivX 5, XVID compatible)"); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spBitrateLav), 4); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkBitrateAutoLav), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbt3PasadasLav), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCalidadAltaLav), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposA), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposDe), FALSE); /* Opciones Audio */ gtk_entry_set_text (GTK_ENTRY (strPrincipal.entCmbCodecAudio), "lame"); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spBitrateLame), 128); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spCalidadLame), 9); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spCalidadAlgoritmoLame), 9); /* Opciones Postprocesado */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkPostProcesar), TRUE); /* Opciones Postprocesado */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCropping), TRUE); /* Opciones Redimensionar */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkRedimensionar), TRUE); /* Opciones Varias */ gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutFrames), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutAspect), 0); /* Opciones de la fuente de datos */ gtk_notebook_set_current_page (GTK_NOTEBOOK (strPrincipal.nbkFuente), 0); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroEntrada), ""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtUsarFichero), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtUsarDVD), TRUE); /* Opciones de la salida de datos */ gtk_notebook_set_current_page (GTK_NOTEBOOK (strPrincipal.nbkSalida), 0); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaGeneral), ""); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroCopiarDisco), ""); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaSubtitulos), ""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtHeaderAvi), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCopiarADisco), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkSubtitulos), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbt1CD), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbt700), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTamanioFijo), FALSE); } int Encolar () { char tmp[512]; char tmp2[512]; char Origen[256]; char Salida[256]; char FormatoSalida[256]; char CodecVideo[256]; char codeclavc[256]; char CodecAudio[256]; char OptsVideo[256]; char OptsVideo1[256]; char OptsVideo2[256]; char OptsAudio[256]; float Aspecto; int i; int j; struct stat strStat; int Retorno; int Orden = 0; int Titulo = 0; int Tamanio = 0; int Pasadas = 0; FILE *fich; int FaltanFicheros = 0; int Cola = 0; int Encontrado = 0; int ret = 0; GtkWidget *Aviso; for (Cola = 0; Cola < MAX_COLA; Cola ++) { if (!datos_rippeo[Cola].Encolado) { break; } } for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado && i != Cola) { if (!strcmp (datos_rippeo[i].FicheroSalida, gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroSalidaGeneral)))) { sprintf (tmp, _("There are more than one queue element with the\nsame target file.\nDo you want to override it?")); Aviso = gnome_message_box_new (tmp, GNOME_MESSAGE_BOX_QUESTION, GNOME_STOCK_BUTTON_YES, GNOME_STOCK_BUTTON_NO, GNOME_STOCK_BUTTON_CANCEL, NULL); gtk_window_set_transient_for (GTK_WINDOW (Aviso), GTK_WINDOW (strPrincipal.winPrincipal)); gtk_window_set_position (GTK_WINDOW (Aviso), GTK_WIN_POS_CENTER); ret = gnome_dialog_run (GNOME_DIALOG (Aviso)); if (ret == 0) { /* SI */ printf ("SI -> [%s]\n", datos_rippeo[Cola].FicheroSalida); } else { /* NO */ printf ("NO o CANCEL -> [%s]\n", datos_rippeo[Cola].FicheroSalida); return -1; } break; } } } memset (&datos_rippeo[Cola], 0, sizeof(DATOS_RIPPEO)); /* Lo primero que hago es generarme el origen y destino de los datos */ /* Origen de los datos */ if (GeneraOrigen (datos_rippeo[Cola].Origen, &Titulo, &Aspecto)) { memset (&datos_rippeo[Cola], 0, sizeof(DATOS_RIPPEO)); return -1; } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbtUsarTele))) { datos_rippeo[Cola].Comienzo = gnome_date_edit_get_time (GNOME_DATE_EDIT (strPrincipal.dateTele)); datos_rippeo[Cola].Tiempo = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposA)); #ifdef DEBUG fprintf (stderr, "It will start at second [%d].\n", datos_rippeo[Cola].Comienzo); #endif } /* Salida del rippeo */ sprintf (Salida, "-o \"%s\"", gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroSalidaGeneral))); /* Compruebo que los campos necesarios estén introducidos */ if (ComprobacionesRippeo ()) { memset (&datos_rippeo[Cola], 0, sizeof(DATOS_RIPPEO)); return -1; } /* Compruebo que los ficheros de salida no existan */ if (CompruebaFicheros ()) { memset (&datos_rippeo[Cola], 0, sizeof(DATOS_RIPPEO)); return -1; } /* Busco el Path del fichero de salida */ sprintf (tmp, "%s", gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroSalidaGeneral))); for (i = strlen (tmp); i > -1; i --) { if (tmp[i] == '/') { tmp[i] = 0; strcpy (datos_rippeo[Cola].Path, tmp); tmp[i] = '/'; datos_rippeo[Cola].Path[i] = '/'; datos_rippeo[Cola].Path[i+1] = 0; break; } } /* Tamanio de la peli */ if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.chkTamanioFijo))) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt1CD))) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt650))) { datos_rippeo[Cola].Tamanio = 1 * 650; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt700))) { datos_rippeo[Cola].Tamanio = 1 * 700; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt800))) { datos_rippeo[Cola].Tamanio = 1 * 800; } } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt2CD))) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt650))) { datos_rippeo[Cola].Tamanio = 2 * 650; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt700))) { datos_rippeo[Cola].Tamanio = 2 * 700; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.rbt800))) { datos_rippeo[Cola].Tamanio = 2 * 800; } } } else { datos_rippeo[Cola].Tamanio = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTamanioFijo)); } /* Compruebo si existen ficheros temporales y si hay que borrarlos */ sprintf (datos_rippeo[Cola].FicheroSalida, "%s", gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroSalidaGeneral))); sprintf (datos_rippeo[Cola].FicheroPasada1, "%sframeno.avi", datos_rippeo[Cola].Path); FicheroBr (datos_rippeo[Cola].FicheroBr, &datos_rippeo[Cola]); FicheroPasada2 (datos_rippeo[Cola].FicheroPasada2, &datos_rippeo[Cola]); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.chkCopiarADisco)) && !strcmp ("", gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroCopiarDisco)))) { sprintf (datos_rippeo[Cola].FicheroCopiarDisco, "%s/%s", datos_rippeo[Cola].Path, gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroCopiarDisco))); } else { datos_rippeo[Cola].FicheroCopiarDisco[0] = 0; } datos_rippeo[Cola].BitrateV = CalculaBitrateV (); if (CompruebaFicherosTemporales (&datos_rippeo[Cola])) { memset (&datos_rippeo[Cola], 0, sizeof(DATOS_RIPPEO)); return -1; } Aspecto = gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spOutAspect)); /* Como voy a rippear el video */ if (0 == (datos_rippeo[Cola].Pasadas = GeneraOptsVideo (CodecVideo, OptsVideo, OptsVideo1, OptsVideo2, Aspecto, &datos_rippeo[Cola]))) { memset (&datos_rippeo[Cola], 0, sizeof(DATOS_RIPPEO)); return -1; } /* Como voy a rippear el audio */ if (GeneraOptsAudio (CodecAudio, OptsAudio)) { memset (&datos_rippeo[Cola], 0, sizeof(DATOS_RIPPEO)); return -1; } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbtHeaderAvi))) { strcpy (FormatoSalida, "avi"); } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbtHeaderMpeg))) { strcpy (FormatoSalida, "mpeg"); } /* Genera las diferentes ordenes */ GeneraOrdenes (datos_rippeo[Cola].Origen, CodecVideo, CodecAudio, OptsVideo, OptsVideo1, OptsVideo2, OptsAudio, Salida, FormatoSalida, &datos_rippeo[Cola]); datos_rippeo[Cola].BorrarTemporales = 0; for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado && i != Cola) { if (!strcmp (datos_rippeo[i].Path, datos_rippeo[Cola].Path)) { /* Mismo path */ if (datos_rippeo[i].BorrarTemporales == 0) { /* Ya había hecho la pregunta en * procesos anteriores y me habían * dicho que no La repito por si acaso */ sprintf (tmp, _("You have elements in the queue with the same path.\nThe temporal files of two or more sources encoded\nin the same path could interfer betwen them\nDo you want to delete the temporal files in the\ndisk before start encoding this queued elements?")); Aviso = gnome_message_box_new (tmp, GNOME_MESSAGE_BOX_QUESTION, GNOME_STOCK_BUTTON_YES, GNOME_STOCK_BUTTON_NO, GNOME_STOCK_BUTTON_CANCEL, NULL); gtk_window_set_transient_for (GTK_WINDOW (Aviso), GTK_WINDOW (strPrincipal.winPrincipal)); gtk_window_set_position (GTK_WINDOW (Aviso), GTK_WIN_POS_CENTER); ret = gnome_dialog_run (GNOME_DIALOG (Aviso)); if (ret == 0) { /* SI */ datos_rippeo[Cola].BorrarTemporales = 1; for (j = 0; j < MAX_COLA; j ++) { if (datos_rippeo[j].Encolado && i != Cola && !strcmp (datos_rippeo[j].Path, datos_rippeo[Cola].Path)) { datos_rippeo[j].BorrarTemporales = 1; } } } else if (ret == 1) { /* NO */ datos_rippeo[Cola].BorrarTemporales = 0; } else { memset (&datos_rippeo[Cola], 0, sizeof (DATOS_RIPPEO)); return -1; } } else if (datos_rippeo[i].BorrarTemporales == 1) { /* Ya había hecho la pregunta en * procesos anteriores y me habían * dicho que si no la repito */ datos_rippeo[Cola].BorrarTemporales = 1; } break; } } } Encontrado = 0; for (j = MAX_COLA - 1; j > -1; j --) { if (j) sprintf (tmp, "%s (%d)", datos_rippeo[Cola].Nombre, j); else sprintf (tmp, "%s", datos_rippeo[Cola].Nombre); for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado) { if (!strcmp (datos_rippeo[i].Nombre, tmp)) { sprintf (tmp, "%s (%d)", datos_rippeo[Cola].Nombre, j + 1); Encontrado = 1; break; } } } if (Encontrado) break; } strcpy (datos_rippeo[Cola].Nombre, tmp); NumCola ++; datos_rippeo[Cola].Encolado = NumCola; return Cola; } void on_bntCancelarRippeo_clicked (GtkObject *object, gpointer user_data) { SalirRippeo = 1; } void on_bntPause_clicked (GtkButton *button, gpointer user_data) { char *pathname; if (Pausa == PLAY) { Pausa = PAUSA; gtk_label_set_text (GTK_LABEL(strProgreso.lblPause), _("Play ")); pathname = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP, "gmencoder/media-play.png", TRUE, NULL); gtk_image_set_from_file (GTK_IMAGE(strProgreso.imgPlayPause), pathname); } else { Pausa = PLAY; gtk_label_set_text (GTK_LABEL(strProgreso.lblPause), _("Pause")); pathname = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP, "gmencoder/media-pause.png", TRUE, NULL); gtk_image_set_from_file (GTK_IMAGE(strProgreso.imgPlayPause), pathname); } } void on_bntOperacionCancelar_clicked (GtkObject *object, gpointer user_data) { SalirOperacion = 1; } void on_chkEjecutarOrden_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strProgreso.entOrden, TRUE); } else { gtk_widget_set_sensitive(strProgreso.entOrden, FALSE); } } void on_bntSalir_clicked (GtkObject *object, gpointer user_data) { gtk_main_quit(); } void on_entCmbCodecVideo_changed (GtkEditable *editable, gpointer user_data) { if (!strcmp ("lavcodec", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_hide (strPrincipal.frmCodecVCopy); gtk_widget_hide (strPrincipal.frmCodecDivx4); gtk_widget_show (strPrincipal.frmCodecLavcodec); if (HayOrigen ()) { gtk_widget_set_sensitive(strPrincipal.chkCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOAR, TRUE); gtk_widget_set_sensitive(strPrincipal.spOutFrames, TRUE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, TRUE); gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, TRUE); if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); } } } else if (!strcmp ("rawrgb", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_hide (strPrincipal.frmCodecLavcodec); gtk_widget_hide (strPrincipal.frmCodecDivx4); gtk_widget_show (strPrincipal.frmCodecVCopy); if (HayOrigen ()) { gtk_widget_set_sensitive(strPrincipal.chkCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutFrames, TRUE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, TRUE); if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); } } } else if (!strcmp ("copy", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_hide (strPrincipal.frmCodecLavcodec); gtk_widget_hide (strPrincipal.frmCodecDivx4); gtk_widget_show (strPrincipal.frmCodecVCopy); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkRedimensionar), FALSE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutFrames, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCropping), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkPostProcesar), FALSE); gtk_widget_set_sensitive(strPrincipal.chkCropping, FALSE); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, FALSE); gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, FALSE); } if (!strcmp ("divx4linux/divx5linux", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_hide (strPrincipal.frmCodecLavcodec); gtk_widget_hide (strPrincipal.frmCodecVCopy); gtk_widget_show (strPrincipal.frmCodecDivx4); if (HayOrigen ()) { gtk_widget_set_sensitive(strPrincipal.chkCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutFrames, TRUE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, TRUE); if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); } } } } void on_chkBitrateAutoLav_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.lblBitrateLav, FALSE); gtk_widget_set_sensitive(strPrincipal.spBitrateLav, FALSE); } else { gtk_widget_set_sensitive(strPrincipal.lblBitrateLav, TRUE); gtk_widget_set_sensitive(strPrincipal.spBitrateLav, TRUE); } } void on_chkBitrateAutoDivx4_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.lblBitrateDivx4, FALSE); gtk_widget_set_sensitive(strPrincipal.spBitrateDivx4, FALSE); } else { gtk_widget_set_sensitive(strPrincipal.lblBitrateDivx4, TRUE); gtk_widget_set_sensitive(strPrincipal.spBitrateDivx4, TRUE); } } void on_entCmbCodecAudio_changed (GtkEditable *editable, gpointer user_data) { if (!strcmp ("lame", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecAudio)))) { gtk_widget_hide (strPrincipal.frmCodecACopy); gtk_widget_show (strPrincipal.frmCodecLame); } else if (!strcmp ("pcm", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecAudio))) || !strcmp ("copy", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecAudio)))) { gtk_widget_hide (strPrincipal.frmCodecLame); gtk_widget_show (strPrincipal.frmCodecACopy); } } void on_rbtUsarDVD_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.bntAnalizarDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposA, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, FALSE); } else { LimpiaOrigenes(); gtk_widget_set_sensitive(strPrincipal.chkTodoTitulo, FALSE); gtk_widget_set_sensitive(strPrincipal.bntAnalizarDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblTituloDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbTitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblCapitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblDeCapituloDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblAlCapituloDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbDeCapitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbACapitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblAspectoDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.spAspectoDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblTamanioDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.spTamanioDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutFrames, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_widget_set_sensitive(strPrincipal.bntEncolar, FALSE); } } void on_bntAnalizarDVD_clicked (GtkButton *button, gpointer user_data) { GtkWidget *Aviso; char Tmp[1024]; LimpiaOrigenes(); if (AnalizaDVD()) { gtk_widget_set_sensitive(strPrincipal.lblTituloDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbTitulosDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTodoTitulo, TRUE); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.chkTodoTitulo))) { gtk_widget_set_sensitive(strPrincipal.lblCapitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblDeCapituloDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblAlCapituloDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbDeCapitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbACapitulosDVD, FALSE); } else { gtk_widget_set_sensitive(strPrincipal.lblCapitulosDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.lblDeCapituloDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.lblAlCapituloDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbDeCapitulosDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbACapitulosDVD, TRUE); } gtk_widget_set_sensitive(strPrincipal.lblAspectoDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.spAspectoDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.lblTamanioDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.spTamanioDVD, TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spAspectoDVD), DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutAspect), DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutFrames), DameFPS()); gtk_widget_set_sensitive(strPrincipal.chkCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, TRUE); if (strcmp ("copy", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_set_sensitive(strPrincipal.spOutFrames, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spOutFrames, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, FALSE); } if (!strcmp ("lavcodec", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_set_sensitive(strPrincipal.spOutAspect, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOAR, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); } gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, TRUE); if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); } } else { sprintf (Tmp, _("The source disk is not a valid DVD.")); Aviso = gnome_message_box_new (Tmp, GNOME_MESSAGE_BOX_ERROR, GNOME_STOCK_BUTTON_OK, NULL, NULL); gtk_window_set_transient_for (GTK_WINDOW (Aviso), GTK_WINDOW (strPrincipal.winPrincipal)); gtk_window_set_position (GTK_WINDOW (Aviso), GTK_WIN_POS_CENTER); gnome_dialog_run (GNOME_DIALOG (Aviso)); return; } } void on_entCmbTitulosDVD_changed (GtkEditable *editable, gpointer user_data) { char *Texto; int Titulo; int i; char *temp[MAX_CAPITULOS]; int activo_mantener = 0; Texto = (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbTitulosDVD)); if (!Texto || Texto [0] == 0) /* No hay titulo seleccionado */ { /* Limpiar combos y deshabilita redimensionar y subtitulos */ strPrincipal.cmbTitulosDVD_items = g_list_append (strPrincipal.cmbTitulosDVD_items, (gpointer) ""); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbDeCapitulosDVD), strPrincipal.cmbTitulosDVD_items); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbACapitulosDVD), strPrincipal.cmbTitulosDVD_items); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaAudio), strPrincipal.cmbTitulosDVD_items); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaSubtitulos), strPrincipal.cmbTitulosDVD_items); g_list_free(strPrincipal.cmbTitulosDVD_items); strPrincipal.cmbTitulosDVD_items = NULL; /* Quito el activo para que al actualizar los spins no intente mantener el aspecto */ activo_mantener = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto), FALSE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spX), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spY), 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto), activo_mantener); /* Quito el activo y sensible de los chks */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkRedimensionar), FALSE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutFrames, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkSubtitulos), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCropping), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkPostProcesar), FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (strPrincipal.chkTiemposA), FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (strPrincipal.chkTiemposDe), FALSE); gtk_widget_set_sensitive(strPrincipal.chkCropping, FALSE); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, FALSE); gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, FALSE); gtk_widget_set_sensitive(strPrincipal.chkSubtitulos, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposA, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, FALSE); /* No tiene idioma de audio */ gtk_widget_set_sensitive(strPrincipal.cmbIdiomaAudio, FALSE); gtk_widget_set_sensitive(strPrincipal.lblIdiomaAudio, FALSE); /* No tiene capitulos */ gtk_widget_set_sensitive(strPrincipal.chkTodoTitulo, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTodoTitulo), FALSE); /* Tamanio y Aspecto a 0 No hay titulo*/ gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spAspectoDVD), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTamanioDVD), 0); gtk_widget_set_sensitive(strPrincipal.spTamanioDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.spAspectoDVD, FALSE); } else { Titulo = TituloAct() - 1; gtk_widget_set_sensitive(strPrincipal.chkTodoTitulo, TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(strPrincipal.chkTodoTitulo), TRUE); /* Relleno combo de capitulos */ if (medio_dvd.Capitulos[Titulo]) { gtk_widget_set_sensitive (strPrincipal.chkTodoTitulo, TRUE); for (i = 0; i < medio_dvd.Capitulos[Titulo]; i ++) { if (NULL != (temp[i] = (char *) malloc (9*sizeof (char)))) { sprintf (temp[i], "%d", i+1); strPrincipal.cmbDeCapitulosDVD_items = g_list_append (strPrincipal.cmbDeCapitulosDVD_items, (gpointer) temp[i]); strPrincipal.cmbACapitulosDVD_items = g_list_append (strPrincipal.cmbACapitulosDVD_items, (gpointer) temp[i]); } } } else { gtk_widget_set_sensitive (strPrincipal.chkTodoTitulo, FALSE); } gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbDeCapitulosDVD), strPrincipal.cmbDeCapitulosDVD_items); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbACapitulosDVD), strPrincipal.cmbACapitulosDVD_items); for (i = 0; i < medio_dvd.Capitulos[Titulo]; i ++) { free (temp[i]); } g_list_free(strPrincipal.cmbDeCapitulosDVD_items); g_list_free(strPrincipal.cmbACapitulosDVD_items); strPrincipal.cmbDeCapitulosDVD_items = NULL; strPrincipal.cmbACapitulosDVD_items = NULL; gtk_widget_set_sensitive(strPrincipal.bntEncolar, TRUE); /* Relleno la combo de Subtitulos */ if (medio_dvd.NumSubtitulos[Titulo]) { for (i = 0; i < medio_dvd.NumSubtitulos[Titulo]; i ++) { strPrincipal.cmbIdiomaSubtitulos_items = g_list_append (strPrincipal.cmbIdiomaSubtitulos_items, (gpointer) medio_dvd.TextoSubtitulos[Titulo][i]); } gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaSubtitulos), strPrincipal.cmbIdiomaSubtitulos_items); g_list_free(strPrincipal.cmbIdiomaSubtitulos_items); strPrincipal.cmbIdiomaSubtitulos_items = NULL; gtk_widget_set_sensitive(strPrincipal.chkSubtitulos, TRUE); } else { strPrincipal.cmbIdiomaSubtitulos_items = g_list_append (strPrincipal.cmbIdiomaSubtitulos_items, (gpointer) ""); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaSubtitulos), strPrincipal.cmbIdiomaSubtitulos_items); g_list_free(strPrincipal.cmbIdiomaSubtitulos_items); strPrincipal.cmbIdiomaSubtitulos_items = NULL; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkSubtitulos), FALSE); gtk_widget_set_sensitive(strPrincipal.chkSubtitulos, FALSE); } /* Relleno la combo de Idiomas de Audio */ if (medio_dvd.NumAudio[Titulo]) { for (i = 0; i < medio_dvd.NumAudio[Titulo]; i ++) { strPrincipal.cmbIdiomaAudio_items = g_list_append (strPrincipal.cmbIdiomaAudio_items, (gpointer) medio_dvd.TextoAudio[Titulo][i]); } gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaAudio), strPrincipal.cmbIdiomaAudio_items); g_list_free(strPrincipal.cmbIdiomaAudio_items); strPrincipal.cmbIdiomaAudio_items = NULL; gtk_widget_set_sensitive(strPrincipal.cmbIdiomaAudio, TRUE); gtk_widget_set_sensitive(strPrincipal.lblIdiomaAudio, TRUE); } else { strPrincipal.cmbIdiomaAudio_items = g_list_append (strPrincipal.cmbIdiomaAudio_items, (gpointer) ""); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaAudio), strPrincipal.cmbIdiomaAudio_items); g_list_free(strPrincipal.cmbIdiomaAudio_items); strPrincipal.cmbIdiomaAudio_items = NULL; gtk_widget_set_sensitive(strPrincipal.cmbIdiomaAudio, FALSE); gtk_widget_set_sensitive(strPrincipal.lblIdiomaAudio, FALSE); } /* Quito el activo para que al actualizar los spins no intente mantener el aspecto */ activo_mantener = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto), FALSE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spX), medio_dvd.x[Titulo]); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spY), medio_dvd.y[Titulo]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto), activo_mantener); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, TRUE); if (strcmp ("copy", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_set_sensitive(strPrincipal.spOutFrames, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spOutFrames, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, FALSE); } if (!strcmp ("lavcodec", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_set_sensitive(strPrincipal.spOutAspect, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOAR, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); } gtk_widget_set_sensitive(strPrincipal.chkCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, TRUE); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.chkTodoTitulo))) { if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); } } else { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, FALSE); } gtk_widget_set_sensitive(strPrincipal.lblAspectoDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.spAspectoDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.lblTamanioDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.spTamanioDVD, TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTamanioDVD), (double) DameTiempo()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spAspectoDVD), (double) DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutAspect), DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutFrames), DameFPS()); PonTiempos (); } } void on_entCmbDeCapitulosDVD_changed (GtkEditable *editable, gpointer user_data) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTamanioDVD), (double) DameTiempo()); PonTiempos (); } void on_entCmbACapitulosDVD_changed (GtkEditable *editable, gpointer user_data) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTamanioDVD), (double) DameTiempo()); PonTiempos (); } void on_chkTodoTitulo_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.lblCapitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblDeCapituloDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.lblAlCapituloDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbDeCapitulosDVD, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbACapitulosDVD, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposA), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposDe), FALSE); if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, FALSE); } } else { AnalizaCapitulos (atoi ((char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbTitulosDVD)))); gtk_widget_set_sensitive(strPrincipal.lblCapitulosDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.lblDeCapituloDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.lblAlCapituloDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbDeCapitulosDVD, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbACapitulosDVD, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposA), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposDe), FALSE); if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.chkTiemposA, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, FALSE); } } gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTamanioDVD), (double) DameTiempo()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spAspectoDVD), (double) DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutAspect), DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutFrames), DameFPS()); PonTiempos (); } void on_rbtUsarFichero_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.bntAnalizarFichero, TRUE); gtk_widget_set_sensitive(strPrincipal.fileFicheroEntrada, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposA, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, FALSE); } else { LimpiaOrigenes(); gtk_widget_set_sensitive(strPrincipal.bntAnalizarFichero, FALSE); gtk_widget_set_sensitive(strPrincipal.fileFicheroEntrada, FALSE); gtk_widget_set_sensitive(strPrincipal.spTamanioFichero, FALSE); gtk_widget_set_sensitive(strPrincipal.spAspectoFichero, FALSE); gtk_widget_set_sensitive(strPrincipal.lblAspectoFichero, FALSE); gtk_widget_set_sensitive(strPrincipal.lblTamanioFichero, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutFrames, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); gtk_widget_set_sensitive(strPrincipal.bntEncolar, FALSE); } } void on_entFileFicheroEntrada_changed (GtkEditable *editable, gpointer user_data) { memset (&medio_fichero, 0, sizeof (DATOS_FICHERO)); } void on_entFileFicheroSalidaGeneral_changed (GtkEditable *editable, gpointer user_data) { char Nombre[512]; char tmp[512]; int Libre; int Total; strcpy (Nombre, (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroSalidaGeneral))); if (strlen (Nombre)) { if ((strlen (Nombre) - 4) > 1 && Nombre[strlen (Nombre) - 4] == '.') { Nombre[strlen (Nombre) - 4] = 0; } sprintf (tmp, "%s-SRC.avi", Nombre); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroCopiarDisco), tmp); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaSubtitulos), Nombre); } else { gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroCopiarDisco), ""); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaSubtitulos), ""); } SacaEspacioFS (Nombre, &Libre, &Total); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (strPrincipal.pbEspacioSalida), (float) ((float) Libre / (float) Total)); sprintf (tmp, _("Free Space: %d Mb"), Libre); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (strPrincipal.pbEspacioSalida), tmp); } void on_bntAnalizarFichero_clicked (GtkButton *button, gpointer user_data) { GtkWidget *Aviso; char Tmp[1024]; int i; int ret; LimpiaOrigenes (); ret = AnalizaFichero(); if (ret > 0) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spX), medio_fichero.x); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spY), medio_fichero.y); gtk_widget_set_sensitive(strPrincipal.chkCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.chkRedimensionar, TRUE); if (strcmp ("copy", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_set_sensitive(strPrincipal.spOutFrames, TRUE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spOutFrames, FALSE); gtk_widget_set_sensitive(strPrincipal.lblOFPS, FALSE); } if (!strcmp ("lavcodec", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbCodecVideo)))) { gtk_widget_set_sensitive(strPrincipal.lblOAR, TRUE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.lblOAR, FALSE); gtk_widget_set_sensitive(strPrincipal.spOutAspect, FALSE); } gtk_widget_set_sensitive(strPrincipal.chkPostProcesar, TRUE); if (DameTiempo ()) { gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); } gtk_widget_set_sensitive(strPrincipal.spTamanioFichero, TRUE); gtk_widget_set_sensitive(strPrincipal.spAspectoFichero, TRUE); gtk_widget_set_sensitive(strPrincipal.lblAspectoFichero, TRUE); gtk_widget_set_sensitive(strPrincipal.lblTamanioFichero, TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTamanioFichero), (double) DameTiempo()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spAspectoFichero), (double) DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutAspect), DameAspecto()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutFrames), DameFPS()); gtk_widget_set_sensitive(strPrincipal.bntEncolar, TRUE); PonTiempos (); /* Relleno la combo de Subtitulos */ if (medio_fichero.NumSubtitulos) { for (i = 0; i < medio_fichero.NumSubtitulos; i ++) { strPrincipal.cmbIdiomaSubtitulos_items = g_list_append (strPrincipal.cmbIdiomaSubtitulos_items, (gpointer) medio_fichero.TextoSubtitulos[i]); } gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaSubtitulos), strPrincipal.cmbIdiomaSubtitulos_items); g_list_free(strPrincipal.cmbIdiomaSubtitulos_items); strPrincipal.cmbIdiomaSubtitulos_items = NULL; gtk_widget_set_sensitive(strPrincipal.chkSubtitulos, TRUE); } else { strPrincipal.cmbIdiomaSubtitulos_items = g_list_append (strPrincipal.cmbIdiomaSubtitulos_items, (gpointer) ""); gtk_combo_set_popdown_strings (GTK_COMBO (strPrincipal.cmbIdiomaSubtitulos), strPrincipal.cmbIdiomaSubtitulos_items); g_list_free(strPrincipal.cmbIdiomaSubtitulos_items); strPrincipal.cmbIdiomaSubtitulos_items = NULL; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkSubtitulos), FALSE); gtk_widget_set_sensitive(strPrincipal.chkSubtitulos, FALSE); } } else { if (ret != -1) { sprintf (Tmp, _("The specified file is not valid.")); Aviso = gnome_message_box_new (Tmp, GNOME_MESSAGE_BOX_ERROR, GNOME_STOCK_BUTTON_OK, NULL, NULL); gtk_window_set_transient_for (GTK_WINDOW (Aviso), GTK_WINDOW (strPrincipal.winPrincipal)); gtk_window_set_position (GTK_WINDOW (Aviso), GTK_WIN_POS_CENTER); gnome_dialog_run (GNOME_DIALOG (Aviso)); } } } void on_chkTiemposDe_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.spTiemposDe, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spTiemposDe, FALSE); } } void on_chkTiemposA_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.spTiemposA, TRUE); } else { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbtUsarTele))) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposA), TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spTiemposA, FALSE); } } } void on_spTiemposDe_changed (GtkEditable *editable, gpointer user_data) { double de; double a; double tiempo; double tmp; gtk_spin_button_get_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), &tmp, &tiempo); de = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe)); a = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposA)); if (a <= de) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), (int) de+1); } } void on_spTiemposA_changed (GtkEditable *editable, gpointer user_data) { double de; double a; double tiempo; double tmp; gtk_spin_button_get_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), &tmp, &tiempo); de = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe)); a = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposA)); if (a <= de) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe), (int) a-1); } } void on_chkPostProcesar_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.lblValoresPostProcesar, TRUE); gtk_widget_set_sensitive(strPrincipal.entValoresPostProcesar, TRUE); gtk_widget_set_sensitive(strPrincipal.lblCmbPostProcesar, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbPostProcesar, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.lblValoresPostProcesar, FALSE); gtk_widget_set_sensitive(strPrincipal.entValoresPostProcesar, FALSE); gtk_widget_set_sensitive(strPrincipal.lblCmbPostProcesar, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbPostProcesar, FALSE); } } void on_entCmbPostProcesar_changed (GtkEditable *editable, gpointer user_data) { int i; for (i = 0; opts_pp[i].Text[0]; i ++) { if (!strcmp (opts_pp[i].Text, (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbPostProcesar)))) { gtk_entry_set_text (GTK_ENTRY (strPrincipal.entValoresPostProcesar), opts_pp[i].Value); #ifdef DEBUG fprintf (stderr, _("Found [%s] value [%s]\n"), opts_pp[i].Text, opts_pp[i].Value); #endif break; } } if (!opts_pp[i].Text[0]) { gtk_entry_set_text (GTK_ENTRY (strPrincipal.entPostProcesar), ""); } } void on_chkCropping_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.lblValoresCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbValoresCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.bntCalcularCropping, TRUE); gtk_widget_set_sensitive(strPrincipal.bntMostrarCropping, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.lblValoresCropping, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbValoresCropping, FALSE); gtk_widget_set_sensitive(strPrincipal.bntCalcularCropping, FALSE); gtk_widget_set_sensitive(strPrincipal.bntMostrarCropping, FALSE); } } void on_chkRedimensionar_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.chkRedimensionar))) { gtk_widget_set_sensitive(strPrincipal.lblNuevoTamanio, TRUE); gtk_widget_set_sensitive(strPrincipal.lblX, TRUE); gtk_widget_set_sensitive(strPrincipal.lblY, TRUE); if (DameAspecto()) gtk_widget_set_sensitive(strPrincipal.rbtMantenerAspecto, TRUE); else { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto))) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerLibre), TRUE); } gtk_widget_set_sensitive(strPrincipal.rbtMantenerAspecto, FALSE); } if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerTamanio)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerLibre))) { gtk_widget_set_sensitive(strPrincipal.spY, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spY, FALSE); } if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerLibre))) { gtk_widget_set_sensitive(strPrincipal.spX, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.spX, FALSE); } gtk_widget_set_sensitive(strPrincipal.rbtMantenerTamanio, TRUE); gtk_widget_set_sensitive(strPrincipal.rbtMantenerLibre, TRUE); gtk_widget_set_sensitive(strPrincipal.frmAlgoritmoRedimensionar, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.rbtMantenerAspecto, FALSE); gtk_widget_set_sensitive(strPrincipal.rbtMantenerTamanio, FALSE); gtk_widget_set_sensitive(strPrincipal.rbtMantenerLibre, FALSE); gtk_widget_set_sensitive(strPrincipal.lblNuevoTamanio, FALSE); gtk_widget_set_sensitive(strPrincipal.lblX, FALSE); gtk_widget_set_sensitive(strPrincipal.lblY, FALSE); gtk_widget_set_sensitive(strPrincipal.spX, FALSE); gtk_widget_set_sensitive(strPrincipal.spY, FALSE); gtk_widget_set_sensitive(strPrincipal.frmAlgoritmoRedimensionar, FALSE); } } void on_chkTamanioFijo_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.chkTamanioFijo))) { gtk_widget_set_sensitive(strPrincipal.rbt650, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt700, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt800, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt1CD, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt2CD, FALSE); gtk_widget_set_sensitive(strPrincipal.spTamanioFijo, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.rbt650, TRUE); gtk_widget_set_sensitive(strPrincipal.rbt700, TRUE); gtk_widget_set_sensitive(strPrincipal.rbt800, TRUE); gtk_widget_set_sensitive(strPrincipal.rbt1CD, TRUE); gtk_widget_set_sensitive(strPrincipal.rbt2CD, TRUE); gtk_widget_set_sensitive(strPrincipal.spTamanioFijo, FALSE); } } void on_spX_changed (GtkEditable *editable, gpointer user_data) { int valor; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerTamanio))) { valor = (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(strPrincipal.spX)) * DameY()) / DameX(); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spY), valor); } } void on_spY_changed (GtkEditable *editable, gpointer user_data) { int valor; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.rbtMantenerAspecto))) { valor = (int) ((((float) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(strPrincipal.spY))) * DameAspecto()) + 0.5); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spX), valor); } } void on_spOutFrames_changed (GtkEditable *editable, gpointer user_data) { PonFPS (gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spOutFrames))); } void on_spAspectoDVD_changed (GtkEditable *editable, gpointer user_data) { if (gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spOutAspect)) == DameAspecto()) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutAspect), gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spAspectoDVD))); } PonAspecto (gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spAspectoDVD))); on_chkRedimensionar_toggled (NULL, NULL); on_spY_changed (NULL, NULL); } void on_spAspectoFichero_changed (GtkEditable *editable, gpointer user_data) { if ((float ) gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spOutAspect)) == (float) DameAspecto()) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spOutAspect), gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spAspectoFichero))); } PonAspecto (gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON(strPrincipal.spAspectoFichero))); on_chkRedimensionar_toggled (NULL, NULL); on_spY_changed (NULL, NULL); } void on_spTamanioDVD_changed (GtkEditable *editable, gpointer user_data) { int OldTiempo; int OldTiempoAGui; int OldTiempoDeGui; OldTiempoAGui = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposA)); OldTiempoDeGui = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe)); OldTiempo = DameTiempo (); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.chkTodoTitulo))) { PonTiempo (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTamanioDVD))); gtk_spin_button_set_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe), 0, DameTiempo()-1); gtk_spin_button_set_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), 1, DameTiempo()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe), OldTiempoDeGui); if (OldTiempoAGui == OldTiempo && OldTiempo > DameTiempo()) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), DameTiempo()); } else { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), OldTiempoAGui); } } } void on_spTamanioFichero_changed (GtkEditable *editable, gpointer user_data) { int OldTiempo; int OldTiempoAGui; int OldTiempoDeGui; OldTiempoAGui = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposA)); OldTiempoDeGui = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe)); OldTiempo = DameTiempo (); PonTiempo (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(strPrincipal.spTamanioFichero))); gtk_spin_button_set_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe), 0, DameTiempo()-1); gtk_spin_button_set_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), 1, DameTiempo()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposDe), OldTiempoDeGui); if (OldTiempoAGui == OldTiempo && OldTiempo > DameTiempo()) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), DameTiempo()); } else { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), OldTiempoAGui); } } void on_chkCopiarADisco_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.fileFicheroCopiarDisco, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.fileFicheroCopiarDisco, FALSE); } } void on_chkSubtitulos_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.lblIdiomaSubtitulo, TRUE); gtk_widget_set_sensitive(strPrincipal.cmbIdiomaSubtitulos, TRUE); gtk_widget_set_sensitive(strPrincipal.chkFicheroSalidaSubtitulos, TRUE); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strPrincipal.chkFicheroSalidaSubtitulos))) { gtk_widget_set_sensitive(strPrincipal.fileFicheroSalidaSubtitulos, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.fileFicheroSalidaSubtitulos, FALSE); } } else { gtk_widget_set_sensitive(strPrincipal.lblIdiomaSubtitulo, FALSE); gtk_widget_set_sensitive(strPrincipal.cmbIdiomaSubtitulos, FALSE); gtk_widget_set_sensitive(strPrincipal.chkFicheroSalidaSubtitulos, FALSE); gtk_widget_set_sensitive(strPrincipal.fileFicheroSalidaSubtitulos, FALSE); } } void on_chkFicheroSalidaSubtitulos_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.fileFicheroSalidaSubtitulos, TRUE); } else { gtk_widget_set_sensitive(strPrincipal.fileFicheroSalidaSubtitulos, FALSE); } } void on_bntRippear_clicked (GtkButton *button, gpointer user_data) { char *pathname; int Encolados = 0; int Rippeados = 0; int i; int j; int ret; int Pagina; GtkWidget *Aviso; char tmp[512]; if (!NumCola) { #ifdef DEBUG fprintf (stderr, "I do not have elements.\n"); #endif if (0 > Encolar ()) { return; } } else { /* Ya tengo elementos en la cola */ #ifdef DEBUG fprintf (stderr, "I have elements.\n"); #endif if(HayOrigen()) { sprintf (tmp, _("There is an analized source.\nDo you want to enque it?")); Aviso = gnome_message_box_new (tmp, GNOME_MESSAGE_BOX_QUESTION, GNOME_STOCK_BUTTON_YES, GNOME_STOCK_BUTTON_NO, GNOME_STOCK_BUTTON_CANCEL, NULL); gtk_window_set_transient_for (GTK_WINDOW (Aviso), GTK_WINDOW (strPrincipal.winPrincipal)); gtk_window_set_position (GTK_WINDOW (Aviso), GTK_WIN_POS_CENTER); ret = gnome_dialog_run (GNOME_DIALOG (Aviso)); if (ret == 0) { /* SI */ printf ("SI\n"); ret = Encolar (); if (0 > ret) { return; } else { #ifdef DEBUG fprintf (stderr, "Queing Pos [%d] Pri [%d]\n", ret, datos_rippeo[ret].Encolado); #endif /* Limpiar Interfaz */ memset (&medio_dvd, 0, sizeof (DATOS_DVD)); memset (&medio_fichero, 0, sizeof (DATOS_FICHERO)); /* Añadir al tree de la cola */ gtk_list_store_append (strPrincipal.treeColaStore, &datos_rippeo[ret].treeIter); gtk_list_store_set (strPrincipal.treeColaStore, &datos_rippeo[ret].treeIter, 0, datos_rippeo[ret].Nombre, -1); gtk_tree_view_append_column (GTK_TREE_VIEW (strPrincipal.treeCola), strPrincipal.treeColaColumn); LimpiaInterfaz(); } } if (ret == 2) { return; } } } Pagina = gtk_notebook_get_current_page (GTK_NOTEBOOK (strPrincipal.nbkSalida)); gtk_notebook_set_current_page (GTK_NOTEBOOK (strPrincipal.nbkSalida), 3); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (strProgreso.chkPararDespuesFich), FALSE); gtk_widget_show (strProgreso.winProgreso); Encolados = NumCola; while (NumCola) { for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado == 1) { Pausa = PLAY; pathname = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP, "gmencoder/media-pause.png", TRUE, NULL); gtk_image_set_from_file (GTK_IMAGE(strProgreso.imgPlayPause), pathname); gtk_label_set_text (GTK_LABEL(strProgreso.lblPause), _("Pause")); SalirRippeo = 0; if (NumCola != 1) gtk_widget_show (strProgreso.chkPararDespuesFich); else { if (Encolados == 1) { gtk_widget_hide (strProgreso.chkPararDespuesFich); } else { gtk_widget_set_sensitive(strProgreso.chkPararDespuesFich, FALSE); } } Rippeados ++; ret = Rippea (&datos_rippeo[i], Rippeados, Encolados); /* Borrar del tree */ if (gtk_list_store_iter_is_valid (strPrincipal.treeColaStore, &datos_rippeo[i].treeIter)) { gtk_list_store_remove (strPrincipal.treeColaStore, &datos_rippeo[i].treeIter); } memset (&datos_rippeo[i], 0, sizeof (DATOS_RIPPEO)); NumCola --; /* Decremento los que me quedan */ for (j = 0; j < MAX_COLA; j ++) { if (datos_rippeo[j].Encolado) { fprintf (stderr, "paso [%d] --> [%d]\n", datos_rippeo[j].Encolado, datos_rippeo[j].Encolado-1); datos_rippeo[j].Encolado --; } } if (ret || gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strProgreso.chkPararDespuesFich))) { #ifdef DEBUG fprintf (stderr, "Exit request exiting.\n"); #endif } break; } } if (ret || gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strProgreso.chkPararDespuesFich))) { break; } } gtk_notebook_set_current_page (GTK_NOTEBOOK (strPrincipal.nbkSalida), Pagina); gtk_widget_hide (strProgreso.winProgreso); } void on_bntGuardar_clicked (GtkButton *button, gpointer user_data) { gtk_entry_set_text (GTK_ENTRY (strConfig.entDVDDevice), CfgGen.DeviceDVD); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strConfig.chkUsarAspectRatio), CfgGen.UsarAspectoPreviews); gtk_entry_set_text (GTK_ENTRY (strConfig.entPathMP), CfgGen.Path_mp); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strConfig.chkAutoDetectarPathMP), CfgGen.AutoDetectarPathMP); gtk_widget_set_sensitive(strConfig.entPathMP, !CfgGen.AutoDetectarPathMP); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strConfig.chkDeleteTemporalFiles), CfgGen.DeleteTemporalFiles); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strConfig.chkDeleteCopyFile), CfgGen.DeleteCopyFile); if (CfgGen.Guardado) gtk_widget_set_sensitive(strConfig.bntCfgGuardar, FALSE); else gtk_widget_set_sensitive(strConfig.bntCfgGuardar, TRUE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, FALSE); gtk_widget_show (strConfig.winConfig); } void on_bntProbarOrigen_clicked (GtkButton *button, gpointer user_data) { char OpcionesVideo[512]; char Opciones[1024]; if (CfgGen.UsarAspectoPreviews) { if (DameAspecto()) sprintf (Opciones, "%s -aspect %f", SacaOpcionesVideo (OpcionesVideo), DameAspecto()); else sprintf (Opciones, "%s", SacaOpcionesVideo (OpcionesVideo)); } else { sprintf (Opciones, "%s -noaspect", SacaOpcionesVideo (OpcionesVideo)); } EjecutaMplayer (Opciones); } void on_bntFicherosOk_clicked (GtkButton *button, gpointer user_data) { Respuesta = RESP_OK; } void on_bntFicherosCancelar_clicked (GtkButton *button, gpointer user_data) { Respuesta = RESP_CANCEL; } void on_bntFaltanDatosOk_clicked (GtkButton *button, gpointer user_data) { gtk_widget_hide (strFaltanDatos.winFaltanDatos); } void on_bntSobreescribirSi_clicked (GtkButton *button, gpointer user_data) { Respuesta = RESP_SI; } void on_bntSobreescribirNo_clicked (GtkButton *button, gpointer user_data) { Respuesta = RESP_NO; } void on_bntCalcularCropping_clicked (GtkButton *button, gpointer user_data) { DetectarCrop(); } void on_bntMostrarCropping_clicked (GtkButton *button, gpointer user_data) { char Parametros[512]; char Opciones[1024]; sprintf (Parametros, "-vop rectangle=%s", (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entCmbValoresCropping))); if (CfgGen.UsarAspectoPreviews) { sprintf (Opciones, "%s -aspect %f", Parametros, DameAspecto()); } else { sprintf (Opciones, "%s -noaspect", Parametros); } EjecutaMplayer (Opciones); } void on_rbtMantenerTamanio_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spX), DameX()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spY), DameY()); on_spX_changed (NULL, NULL); gtk_widget_set_sensitive(strPrincipal.spX, TRUE); gtk_widget_set_sensitive(strPrincipal.spY, FALSE); } } void on_rbtMantenerAspecto_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbtMantenerAspecto))) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spX), DameX()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spY), DameY()); on_spY_changed (NULL, NULL); gtk_widget_set_sensitive(strPrincipal.spX, FALSE); gtk_widget_set_sensitive(strPrincipal.spY, TRUE); } } void on_rbtMantenerLibre_toggled (GtkToggleButton *togglebutton, gpointer user_data) { if (gtk_toggle_button_get_active (togglebutton)) { gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spX), DameX()); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spY), DameY()); gtk_widget_set_sensitive(strPrincipal.spX, TRUE); gtk_widget_set_sensitive(strPrincipal.spY, TRUE); } } void on_rbtHeaderAvi_toggled (GtkToggleButton *togglebutton, gpointer user_data) { char Nombre[512]; char tmp[512]; if (gtk_toggle_button_get_active (togglebutton)) { strcpy (Nombre, (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroSalidaGeneral))); if (strlen (Nombre)) { if ((strlen (Nombre) - 4) > 1 && !strcmp (&Nombre[strlen (Nombre) - 4], ".mpg")) { Nombre[strlen (Nombre) - 4] = 0; sprintf (tmp, "%s.avi", Nombre); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaGeneral), tmp); sprintf (tmp, "%s-SRC.avi", Nombre); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroCopiarDisco), tmp); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaSubtitulos), Nombre); } } else { gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroCopiarDisco), ""); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaSubtitulos), ""); } } } void on_rbtHeaderMpeg_toggled (GtkToggleButton *togglebutton, gpointer user_data) { char Nombre[512]; char tmp[512]; if (gtk_toggle_button_get_active (togglebutton)) { strcpy (Nombre, (char *) gtk_entry_get_text (GTK_ENTRY(strPrincipal.entFileFicheroSalidaGeneral))); if (strlen (Nombre)) { if ((strlen (Nombre) - 4) > 1 && !strcmp (&Nombre[strlen (Nombre) - 4], ".avi")) { Nombre[strlen (Nombre) - 4] = 0; sprintf (tmp, "%s.mpg", Nombre); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaGeneral), tmp); sprintf (tmp, "%s-SRC.mpg", Nombre); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroCopiarDisco), tmp); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaSubtitulos), Nombre); } } else { gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroCopiarDisco), ""); gtk_entry_set_text (GTK_ENTRY (strPrincipal.entFileFicheroSalidaSubtitulos), ""); } } } void on_bntEncolar_clicked (GtkButton *button, gpointer user_data) { int ret; ret = Encolar (); if (ret >= 0) { #ifdef DEBUG fprintf (stderr, "Queing Pos [%d] Pri [%d]\n", ret, datos_rippeo[ret].Encolado); #endif /* Limpiar Interfaz */ memset (&medio_dvd, 0, sizeof (DATOS_DVD)); memset (&medio_fichero, 0, sizeof (DATOS_FICHERO)); /* Añadir al tree de la cola */ gtk_list_store_append (strPrincipal.treeColaStore, &datos_rippeo[ret].treeIter); gtk_list_store_set (strPrincipal.treeColaStore, &datos_rippeo[ret].treeIter, 0, datos_rippeo[ret].Nombre, -1); gtk_tree_view_append_column (GTK_TREE_VIEW (strPrincipal.treeCola), strPrincipal.treeColaColumn); LimpiaInterfaz(); } } void on_bntArribaCola_clicked (GtkButton *button, gpointer user_data) { GtkTreeIter iter; GtkTreeIter TreeIter; GtkTreeModel *model; gchar *Nombre; int posicion = 0; int i; int j; if (gtk_tree_selection_get_selected (strPrincipal.treeColaSeleccion, &model, &iter)) { gtk_tree_model_get (model, &iter, 0, &Nombre, -1); /* Lo busco */ for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado && !strcmp (datos_rippeo[i].Nombre, Nombre)) { posicion = i; #ifdef DEBUG fprintf (stderr, "Puting up [%s] -> %d -> %d\n", datos_rippeo[i].Nombre, i, datos_rippeo[i].Encolado); #endif break; } } g_free (Nombre); if (i != MAX_COLA && datos_rippeo[posicion].Encolado != 1) { /* Les cambio la prioridad */ for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado == datos_rippeo[posicion].Encolado - 1) { if (datos_rippeo[i].Encolado == 1) { gtk_list_store_move_after (strPrincipal.treeColaStore, &datos_rippeo[i].treeIter, &datos_rippeo[posicion].treeIter); } else { gtk_list_store_move_before (strPrincipal.treeColaStore, &datos_rippeo[posicion].treeIter, &datos_rippeo[i].treeIter); } datos_rippeo[i].Encolado ++; datos_rippeo[posicion].Encolado --; break; } } } } } void on_bntAbajoCola_clicked (GtkButton *button, gpointer user_data) { GtkTreeIter iter; GtkTreeIter TreeIter; GtkTreeModel *model; gchar *Nombre; int posicion = 0; int i; int j; if (gtk_tree_selection_get_selected (strPrincipal.treeColaSeleccion, &model, &iter)) { gtk_tree_model_get (model, &iter, 0, &Nombre, -1); /* Lo busco */ for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado && !strcmp (datos_rippeo[i].Nombre, Nombre)) { posicion = i; #ifdef DEBUG fprintf (stderr, "Puting down [%s] -> %d -> %d\n", datos_rippeo[i].Nombre, i, datos_rippeo[i].Encolado); #endif break; } } g_free (Nombre); if (i != MAX_COLA && datos_rippeo[posicion].Encolado != NumCola) { /* Les cambio la prioridad */ for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado == datos_rippeo[posicion].Encolado + 1) { gtk_list_store_move_after (strPrincipal.treeColaStore, &datos_rippeo[posicion].treeIter, &datos_rippeo[i].treeIter); datos_rippeo[i].Encolado --; datos_rippeo[posicion].Encolado ++; break; } } } } } void on_bntBorrarCola_clicked (GtkButton *button, gpointer user_data) { GtkTreeIter iter; GtkTreeModel *model; gchar *Nombre; int i; int j; if (gtk_tree_selection_get_selected (strPrincipal.treeColaSeleccion, &model, &iter)) { gtk_tree_model_get (model, &iter, 0, &Nombre, -1); for (i = 0; i < MAX_COLA; i ++) { if (datos_rippeo[i].Encolado && !strcmp (datos_rippeo[i].Nombre, Nombre)) { #ifdef DEBUG fprintf (stderr, "Deleting [%s] -> Pos [%d] -> Pri [%d]\n", datos_rippeo[i].Nombre, i, datos_rippeo[i].Encolado); #endif datos_rippeo[i].Encolado ++; for (j = 0; j < MAX_COLA; j ++) { if (j != i) { if (datos_rippeo[j].Encolado == datos_rippeo[i].Encolado) { printf ("Cambio [%d] a [%d]\n", datos_rippeo[j].Encolado, datos_rippeo[j].Encolado - 1); datos_rippeo[j].Encolado --; datos_rippeo[i].Encolado ++; j = -1; } } } memset (&datos_rippeo[i], 0, sizeof (DATOS_RIPPEO)); NumCola --; } } gtk_list_store_remove (strPrincipal.treeColaStore, &iter); g_free (Nombre); } } void on_bntCfgAplicar_clicked (GtkButton *button, gpointer user_data) { strcpy (CfgGen.DeviceDVD, gtk_entry_get_text (GTK_ENTRY(strConfig.entDVDDevice))); CfgGen.UsarAspectoPreviews = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strConfig.chkUsarAspectRatio)); CfgGen.AutoDetectarPathMP = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strConfig.chkAutoDetectarPathMP)); strcpy (CfgGen.Path_mp, gtk_entry_get_text (GTK_ENTRY(strConfig.entPathMP))); CfgGen.DeleteTemporalFiles = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strConfig.chkDeleteTemporalFiles)); CfgGen.DeleteCopyFile = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strConfig.chkDeleteCopyFile)); CfgGen.Guardado = 0; gtk_widget_set_sensitive(strConfig.bntCfgAplicar, FALSE); } void on_bntCfgGuardar_clicked (GtkButton *button, gpointer user_data) { FILE *fich; char fichero_conf[1024]; char *home; on_bntCfgAplicar_clicked (NULL, NULL); if (NULL != (home = getenv ("HOME"))) { sprintf (fichero_conf, "%s/.gmencoderrc", home); if (NULL != (fich = fopen (fichero_conf, "w"))) { fprintf (fich, "DeviceDVD:%s\n", CfgGen.DeviceDVD); fprintf (fich, "UseAspectRatioPreviews:%d\n", CfgGen.UsarAspectoPreviews); fprintf (fich, "AutoDetectPathMP:%d\n", CfgGen.AutoDetectarPathMP); fprintf (fich, "PathMP:%s\n", CfgGen.Path_mp); fprintf (fich, "DeleteTemporalFiles:%d\n", CfgGen.AutoDetectarPathMP); fprintf (fich, "DeleteCopyToDiskFile:%d\n", CfgGen.AutoDetectarPathMP); fclose (fich); CfgGen.Guardado = 1; } else { fprintf (stderr, "Can not open [%s]\n", fichero_conf); } } else { fprintf (stderr, "Can not get home directory\n"); } gtk_widget_set_sensitive(strConfig.bntCfgGuardar, FALSE); } void on_bntCfgCerrar_clicked (GtkButton *button, gpointer user_data) { gtk_widget_set_sensitive(strConfig.bntCfgGuardar, FALSE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, FALSE); gtk_widget_hide (strConfig.winConfig); } void on_chkUsarAspectRatio_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive(strConfig.bntCfgGuardar, TRUE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, TRUE); } void on_entDVDDevice_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive(strConfig.bntCfgGuardar, TRUE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, TRUE); } void on_chkAutoDetectarPathMP_toggled (GtkToggleButton *togglebutton, gpointer user_data) { char *path_tmp; char *ptr_tmp; char path[512]; char *path_ptr = NULL; char path2[512]; char tmp[512]; struct stat buf; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(strConfig.chkAutoDetectarPathMP))) { path2[0] = 0; ptr_tmp = getenv ("PATH"); if (ptr_tmp) { strcpy (path, ptr_tmp); for (path_ptr = strtok (path, ":"); path_ptr; path_ptr = strtok (NULL, ":")) { sprintf (tmp, "%s/mplayer", path_ptr); if (!stat (tmp, &buf)) { sprintf (tmp, "%s/mencoder", path_ptr); if (!stat (tmp, &buf)) { strcpy (path2, path_ptr); break; } } } } gtk_entry_set_text (GTK_ENTRY (strConfig.entPathMP), path2); gtk_widget_set_sensitive(strConfig.entPathMP, FALSE); } else { gtk_widget_set_sensitive(strConfig.entPathMP, TRUE); } gtk_widget_set_sensitive(strConfig.bntCfgGuardar, TRUE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, TRUE); } void on_entPathMP_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive(strConfig.bntCfgGuardar, TRUE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, TRUE); } void on_chkDeleteTemporalFiles_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive(strConfig.bntCfgGuardar, TRUE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, TRUE); } void on_chkDeleteCopyFile_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive(strConfig.bntCfgGuardar, TRUE); gtk_widget_set_sensitive(strConfig.bntCfgAplicar, TRUE); } void on_rbtUsarTele_toggled (GtkToggleButton *togglebutton, gpointer user_data) { static GtkToggleButton *ActivoDivx4 = NULL; static GtkToggleButton *ActivoLavc = NULL; static int ActivoTiempo = -1; static int ActivoCalidadAlta = -1; if (gtk_toggle_button_get_active (togglebutton)) { gtk_widget_set_sensitive(strPrincipal.bntAnalizarTele, TRUE); gtk_widget_set_sensitive(strPrincipal.bntEditarTele, FALSE); gtk_widget_set_sensitive(strPrincipal.dateTele, FALSE); gtk_widget_set_sensitive(strPrincipal.entParametrosTele, FALSE); gtk_widget_set_sensitive(strPrincipal.lblParametrosTele, FALSE); gtk_widget_set_sensitive(strPrincipal.lblTiemposTele, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposA, FALSE); gtk_widget_set_sensitive(strPrincipal.chkTiemposDe, FALSE); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbt1PasadaLav))) { ActivoLavc = GTK_TOGGLE_BUTTON (strPrincipal.rbt1PasadaLav); } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbt2PasadasLav))) { ActivoLavc = GTK_TOGGLE_BUTTON (strPrincipal.rbt2PasadasLav); } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbt3PasadasLav))) { ActivoLavc = GTK_TOGGLE_BUTTON (strPrincipal.rbt3PasadasLav); } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbt1PasadaDivx4))) { ActivoDivx4 = GTK_TOGGLE_BUTTON (strPrincipal.rbt1PasadaDivx4); } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbt2PasadaDivx4))) { ActivoDivx4 = GTK_TOGGLE_BUTTON (strPrincipal.rbt2PasadaDivx4); } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.rbt3PasadaDivx4))) { ActivoDivx4 = GTK_TOGGLE_BUTTON (strPrincipal.rbt3PasadaDivx4); } ActivoTiempo = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (strPrincipal.chkTiemposA)); ActivoCalidadAlta = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCalidadAltaLav)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCalidadAltaLav), FALSE); gtk_widget_set_sensitive(strPrincipal.rbt2PasadasLav, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt3PasadasLav, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt2PasadaDivx4, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt3PasadaDivx4, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbt1PasadaLav), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.rbt1PasadaDivx4), TRUE); } else { LimpiaOrigenes(); gtk_widget_set_sensitive(strPrincipal.bntAnalizarTele, FALSE); gtk_widget_set_sensitive(strPrincipal.bntEditarTele, FALSE); gtk_widget_set_sensitive(strPrincipal.dateTele, FALSE); gtk_widget_set_sensitive(strPrincipal.lblParametrosTele, FALSE); gtk_widget_set_sensitive(strPrincipal.lblTiemposTele, FALSE); gtk_widget_set_sensitive(strPrincipal.rbt2PasadasLav, TRUE); gtk_widget_set_sensitive(strPrincipal.rbt3PasadasLav, TRUE); gtk_widget_set_sensitive(strPrincipal.rbt2PasadaDivx4, TRUE); gtk_widget_set_sensitive(strPrincipal.rbt3PasadaDivx4, TRUE); if (ActivoTiempo != -1) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (strPrincipal.chkTiemposA), ActivoTiempo); ActivoTiempo = -1; } if (ActivoLavc) { gtk_toggle_button_set_active(ActivoLavc, TRUE); ActivoLavc = NULL; } if (ActivoDivx4) { gtk_toggle_button_set_active(ActivoDivx4, TRUE); ActivoDivx4 = NULL; } if (ActivoCalidadAlta != -1) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkCalidadAltaLav), ActivoCalidadAlta); ActivoCalidadAlta = -1; } } } void on_bntAnalizarTele_clicked (GtkButton *button, gpointer user_data) { if (AnalizaTele()) { gtk_widget_set_sensitive(strPrincipal.bntEditarTele, TRUE); gtk_widget_set_sensitive(strPrincipal.dateTele, TRUE); gtk_widget_set_sensitive(strPrincipal.entParametrosTele, TRUE); gtk_widget_set_sensitive(strPrincipal.lblParametrosTele, TRUE); gtk_widget_set_sensitive(strPrincipal.lblTiemposTele, TRUE); gtk_widget_set_sensitive(strPrincipal.chkTiemposA, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strPrincipal.chkTiemposA), TRUE); gtk_spin_button_set_range (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), 1, 100000); gtk_spin_button_set_value (GTK_SPIN_BUTTON(strPrincipal.spTiemposA), 300); gtk_widget_set_sensitive(strPrincipal.bntEncolar, TRUE); } } void on_bntEditarTele_clicked (GtkButton *button, gpointer user_data) { gtk_entry_set_text (GTK_ENTRY (strEditTV.entResultado), CfgGen.ResultadoTV); if (CfgGen.GuardadoTV) gtk_widget_set_sensitive(strEditTV.bntTVGuardar, FALSE); else gtk_widget_set_sensitive(strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, FALSE); gtk_widget_show (strEditTV.winEditTV); } void on_entCmbDriver_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_rbtNoAudio_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_entCmbInput_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spChannel_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spNose_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spWidth_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_rbtSiAudio_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spAudoBitrate_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_entCmbAudioMode_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spVolumen_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spBalance_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_entCmbNorm_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_entCmbChannelList_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spFramesPerSecond_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spHeight_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_rbtCapturarAudioOSS_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_rbtCapturarAudioAlsa_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spAudioId_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_chkUsarInmediateMode_toggled (GtkToggleButton *togglebutton, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spBass_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_spTremble_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_entResultado_changed (GtkEditable *editable, gpointer user_data) { gtk_widget_set_sensitive (strEditTV.bntTVGuardar, TRUE); gtk_widget_set_sensitive (strEditTV.bntTVAplicar, TRUE); } void on_bntTVAplicar_clicked (GtkButton *button, gpointer user_data) { gtk_entry_set_text (GTK_ENTRY (strPrincipal.entParametrosTele), gtk_entry_get_text (GTK_ENTRY (strEditTV.entResultado))); strcpy (CfgGen.ResultadoTV, gtk_entry_get_text (GTK_ENTRY (strEditTV.entResultado))); CfgGen.GuardadoTV = 0; gtk_widget_set_sensitive (strEditTV.bntTVAplicar, FALSE); } void on_bntTVGuardar_clicked (GtkButton *button, gpointer user_data) { FILE *fich; char fichero_conf[1024]; char *home; on_bntTVAplicar_clicked (NULL, NULL); if (NULL != (home = getenv ("HOME"))) { sprintf (fichero_conf, "%s/.gmencodertvrc", home); if (NULL != (fich = fopen (fichero_conf, "w"))) { fprintf (fich, "Result:%s\n", CfgGen.ResultadoTV); fclose (fich); CfgGen.GuardadoTV = 1; } else { fprintf (stderr, "Can not open [%s]\n", fichero_conf); } } else { fprintf (stderr, "Can not get home directory\n"); } gtk_widget_set_sensitive (strEditTV.bntTVGuardar, FALSE); } void on_bntTVCerrar_clicked (GtkButton *button, gpointer user_data) { gtk_widget_hide (strEditTV.winEditTV); }