X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fqueuehandler.c;h=3b91a24649aacf2f0fec6e9baab1da4374018ced;hb=b67c31f229fcdd3dd1d8784938229ae61f822282;hp=fe3f2db873f47fcb402fde96ea5d581bd3023960;hpb=42087bffd3ff090c26a982596455e888b10ac426;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c index fe3f2db8..3b91a246 100644 --- a/gtk/src/queuehandler.c +++ b/gtk/src/queuehandler.c @@ -70,9 +70,9 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter) gchar *dest, *preset, *vol_name, *basename; const gchar *vcodec, *container; gchar *fps, *vcodec_abbr; - gint title, start_chapter, end_chapter, width, height; + gint title, start_point, end_point, width, height; gint source_width, source_height; - gboolean pass2, keep_aspect, vqtype, turbo; + gboolean pass2 = FALSE, keep_aspect, vqtype, turbo; gint pic_par; gboolean tweaks; gchar *escape; @@ -84,19 +84,29 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter) tweaks = ghb_settings_get_boolean(settings, "allow_tweaks"); title = ghb_settings_get_int(settings, "titlenum"); - start_chapter = ghb_settings_get_int(settings, "start_chapter"); - end_chapter = ghb_settings_get_int(settings, "end_chapter"); - pass2 = ghb_settings_get_boolean(settings, "VideoTwoPass"); + start_point = ghb_settings_get_int(settings, "start_point"); + end_point = ghb_settings_get_int(settings, "end_point"); vol_name = ghb_settings_get_string(settings, "volume_label"); dest = ghb_settings_get_string(settings, "destination"); basename = g_path_get_basename(dest); escape = g_markup_escape_text(basename, -1); + + vqtype = ghb_settings_get_boolean(settings, "vquality_type_constant"); + if (!vqtype) + pass2 = ghb_settings_get_boolean(settings, "VideoTwoPass"); + const gchar *points; + if (ghb_settings_combo_int(settings, "PtoPType") == 0) + points = "Chapters"; + else if (ghb_settings_combo_int(settings, "PtoPType") == 1) + points = "Seconds"; + else if (ghb_settings_combo_int(settings, "PtoPType") == 2) + points = "Frames"; info = g_strdup_printf ( "%s " - "(Title %d, Chapters %d through %d, %d Video %s)" + "(Title %d, %s %d through %d, %d Video %s)" " --> %s", - vol_name, title, start_chapter, end_chapter, + vol_name, title, points, start_point, end_point, pass2 ? 2:1, pass2 ? "Passes":"Pass", escape ); g_free(basename); @@ -256,7 +266,7 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter) vqvalue = ghb_settings_get_double(settings, "VideoQualitySlider"); vq_desc = "Constant Quality:"; vqstr = g_strdup_printf("%d", (gint)vqvalue); - vq_units = "(crf)"; + vq_units = "(RF)"; } fps = ghb_settings_get_string(settings, "VideoFramerate"); if (strcmp("source", fps) == 0) @@ -283,8 +293,10 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter) source_width, source_height, width, height, aspect_desc); gint decomb, detel; + gboolean decomb_deint; gboolean filters = FALSE; + decomb_deint = ghb_settings_get_boolean(settings, "PictureDecombDeinterlace"); decomb = ghb_settings_combo_int(settings, "PictureDecomb"); g_string_append_printf(str, "Filters:"); detel = ghb_settings_combo_int(settings, "PictureDetelecine"); @@ -300,7 +312,7 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter) } filters = TRUE; } - if (decomb) + if (decomb_deint && decomb) { g_string_append_printf(str, " - Decomb"); if (decomb == 1) @@ -312,7 +324,7 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter) } filters = TRUE; } - else + else if (!decomb_deint) { gint deint = ghb_settings_combo_int(settings, "PictureDeinterlace"); if (deint) @@ -509,6 +521,7 @@ audio_list_refresh(signal_user_data_t *ud) { const gchar *track, *codec, *br, *sr, *mix; gchar *drc, *s_track, *s_codec, *s_br, *s_sr, *s_mix; + gint itrack, icodec; gdouble s_drc; GValue *asettings; @@ -518,7 +531,9 @@ audio_list_refresh(signal_user_data_t *ud) asettings = ghb_array_get_nth(audio_list, row); track = ghb_settings_combo_option(asettings, "AudioTrack"); + itrack = ghb_settings_combo_int(asettings, "AudioTrack"); codec = ghb_settings_combo_option(asettings, "AudioEncoder"); + icodec = ghb_settings_combo_int(asettings, "AudioEncoder"); br = ghb_settings_combo_option(asettings, "AudioBitrate"); sr = ghb_settings_combo_option(asettings, "AudioSamplerate"); mix = ghb_settings_combo_option(asettings, "AudioMixdown"); @@ -534,6 +549,9 @@ audio_list_refresh(signal_user_data_t *ud) else drc = g_strdup_printf("%.1f", s_drc); + if (icodec == HB_ACODEC_MASK) + codec = ghb_select_audio_codec_str(ud, itrack); + gtk_list_store_set(GTK_LIST_STORE(store), &iter, // These are displayed in list 0, track, @@ -783,7 +801,7 @@ queue_remove_clicked_cb(GtkWidget *widget, gchar *path, signal_user_data_t *ud) if (status == GHB_QUEUE_RUNNING) { // Ask if wants to stop encode. - if (!ghb_cancel_encode(NULL)) + if (!ghb_cancel_encode2(ud, NULL)) { return; } @@ -1033,7 +1051,8 @@ ghb_queue_buttons_grey(signal_user_data_t *ud) scan_state = ghb_get_scan_state(); show_stop = queue_state & - (GHB_STATE_WORKING | GHB_STATE_SCANNING | GHB_STATE_MUXING); + (GHB_STATE_WORKING | GHB_STATE_SEARCHING | + GHB_STATE_SCANNING | GHB_STATE_MUXING); show_start = !(scan_state & GHB_STATE_SCANNING) && (titleindex >= 0 || queue_count > 0); @@ -1194,10 +1213,11 @@ queue_start_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) gint state; state = ghb_get_queue_state(); - if (state & (GHB_STATE_WORKING | GHB_STATE_SCANNING | GHB_STATE_MUXING)) + if (state & (GHB_STATE_WORKING | GHB_STATE_SEARCHING | + GHB_STATE_SCANNING | GHB_STATE_MUXING)) { - if (ghb_cancel_encode(NULL)) - ud->cancel_encode = TRUE; + ghb_cancel_encode(ud, "You are currently encoding. " + "What would you like to do?"); return; } @@ -1239,13 +1259,20 @@ ghb_reload_queue(signal_user_data_t *ud) GValue *queue; gint unfinished = 0; gint count, ii; + gint pid; gint status; GValue *settings; gchar *message; g_debug("ghb_reload_queue"); - queue = ghb_load_queue(); +find_pid: + pid = ghb_find_pid_file(); + if (pid < 0) + return FALSE; + + queue = ghb_load_old_queue(pid); + ghb_remove_old_queue_file(pid); // Look for unfinished entries count = ghb_array_len(queue); for (ii = 0; ii < count; ii++) @@ -1257,6 +1284,9 @@ ghb_reload_queue(signal_user_data_t *ud) unfinished++; } } + if (!unfinished) + goto find_pid; + if (unfinished) { message = g_strdup_printf( @@ -1269,6 +1299,8 @@ ghb_reload_queue(signal_user_data_t *ud) { GtkWidget *widget = GHB_WIDGET (ud->builder, "queue_window"); gtk_widget_show (widget); + widget = GHB_WIDGET (ud->builder, "show_queue"); + gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(widget), TRUE); ud->queue = queue; // First get rid of any old items we don't want @@ -1292,11 +1324,11 @@ ghb_reload_queue(signal_user_data_t *ud) add_to_queue_list(ud, settings, NULL); } ghb_queue_buttons_grey(ud); + ghb_save_queue(ud->queue); } else { ghb_value_free(queue); - ghb_remove_queue_file(); } g_free(message); } @@ -1345,7 +1377,7 @@ queue_key_press_cb( if (status == GHB_QUEUE_RUNNING) { // Ask if wants to stop encode. - if (!ghb_cancel_encode(NULL)) + if (!ghb_cancel_encode2(ud, NULL)) { return TRUE; } @@ -1405,6 +1437,10 @@ queue_edit_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) // Remove the corresponding item from the queue list ghb_array_remove(ud->queue, row); } + else + { + ghb_queue_edit_settings = ghb_value_dup(ghb_queue_edit_settings); + } gchar *source; source = ghb_settings_get_string(ghb_queue_edit_settings, "source"); ghb_do_scan(ud, source, 0, FALSE);