diff options
Diffstat (limited to 'gtk/src/queuehandler.c')
-rw-r--r-- | gtk/src/queuehandler.c | 237 |
1 files changed, 116 insertions, 121 deletions
diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c index f721c03f6..2f48c8bf3 100644 --- a/gtk/src/queuehandler.c +++ b/gtk/src/queuehandler.c @@ -91,17 +91,17 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter // Collect information for first line in the display // Volume (Title X, Chapters Y through Z, N Video Passes) --> Destination - title = ghb_settings_get_int(settings, "title"); - start_point = ghb_settings_get_int(settings, "start_point"); - end_point = ghb_settings_get_int(settings, "end_point"); - vol_name = ghb_settings_get_const_string(settings, "volume_label"); - dest = ghb_settings_get_const_string(settings, "destination"); + title = ghb_dict_get_int(settings, "title"); + start_point = ghb_dict_get_int(settings, "start_point"); + end_point = ghb_dict_get_int(settings, "end_point"); + vol_name = ghb_dict_get_string(settings, "volume_label"); + dest = ghb_dict_get_string(settings, "destination"); basename = g_path_get_basename(dest); escape = g_markup_escape_text(basename, -1); escape2 = g_markup_escape_text(vol_name, -1); - vqtype = ghb_settings_get_boolean(settings, "vquality_type_constant"); - two_pass = ghb_settings_get_boolean(settings, "VideoTwoPass"); + vqtype = ghb_dict_get_bool(settings, "vquality_type_constant"); + two_pass = ghb_dict_get_bool(settings, "VideoTwoPass"); const gchar *points = _("Chapters"); if (ghb_settings_combo_int(settings, "PtoPType") == 0) @@ -141,7 +141,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter } // Set the job status icon - status = ghb_settings_get_int(settings, "job_status"); + status = ghb_dict_get_int(settings, "job_status"); const char *status_icon; switch (status) { @@ -176,13 +176,13 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter const char *mux_id; const hb_container_t *mux; - mux_id = ghb_settings_get_const_string(settings, "FileFormat"); + mux_id = ghb_dict_get_string(settings, "FileFormat"); mux = ghb_lookup_container_by_name(mux_id); - preset_modified = ghb_settings_get_boolean(settings, "preset_modified"); - path = ghb_settings_get_value(settings, "preset"); + preset_modified = ghb_dict_get_bool(settings, "preset_modified"); + path = ghb_dict_get_value(settings, "preset"); preset = ghb_preset_path_string(path); - markers = ghb_settings_get_boolean(settings, "ChapterMarkers"); + markers = ghb_dict_get_bool(settings, "ChapterMarkers"); if (preset_modified) { @@ -203,8 +203,8 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter gboolean ipod = FALSE, http = FALSE; if (mux->format & HB_MUX_MASK_MP4) { - ipod = ghb_settings_get_boolean(settings, "Mp4iPodCompatible"); - http = ghb_settings_get_boolean(settings, "Mp4HttpOptimize"); + ipod = ghb_dict_get_bool(settings, "Mp4iPodCompatible"); + http = ghb_dict_get_bool(settings, "Mp4HttpOptimize"); } if (http || ipod || markers) { @@ -240,14 +240,14 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter int crop[4]; gboolean keep_aspect; - width = ghb_settings_get_int(settings, "scale_width"); - height = ghb_settings_get_int(settings, "scale_height"); - pic_par = ghb_settings_get_int(settings, "PicturePAR"); - keep_aspect = ghb_settings_get_boolean(settings, "PictureKeepRatio"); - crop[0] = ghb_settings_get_int(settings, "PictureTopCrop"); - crop[1] = ghb_settings_get_int(settings, "PictureBottomCrop"); - crop[2] = ghb_settings_get_int(settings, "PictureLeftCrop"); - crop[3] = ghb_settings_get_int(settings, "PictureRightCrop"); + width = ghb_dict_get_int(settings, "scale_width"); + height = ghb_dict_get_int(settings, "scale_height"); + pic_par = ghb_dict_get_int(settings, "PicturePAR"); + keep_aspect = ghb_dict_get_bool(settings, "PictureKeepRatio"); + crop[0] = ghb_dict_get_int(settings, "PictureTopCrop"); + crop[1] = ghb_dict_get_int(settings, "PictureBottomCrop"); + crop[2] = ghb_dict_get_int(settings, "PictureLeftCrop"); + crop[3] = ghb_dict_get_int(settings, "PictureRightCrop"); gchar *aspect_desc; switch (pic_par) @@ -286,8 +286,8 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter } gint source_width, source_height; - source_width = ghb_settings_get_int(settings, "source_width"); - source_height = ghb_settings_get_int(settings, "source_height"); + source_width = ghb_dict_get_int(settings, "source_width"); + source_height = ghb_dict_get_int(settings, "source_height"); XPRINT(_("<b>Picture:</b> <small>")); XPRINT(_("Source: %d x %d, Output %d x %d %s, Crop %d:%d:%d:%d"), source_width, source_height, width, height, aspect_desc, @@ -295,8 +295,8 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter if (pic_par) { int display_width, display_height; - display_width = ghb_settings_get_int(settings, "PictureDisplayWidth"); - display_height = ghb_settings_get_int(settings, "PictureDisplayHeight"); + display_width = ghb_dict_get_int(settings, "PictureDisplayWidth"); + display_height = ghb_dict_get_int(settings, "PictureDisplayHeight"); XPRINT(_(", Display %d x %d"), display_width, display_height); } @@ -312,26 +312,26 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter gboolean grayscale; gboolean filters; - decomb_deint = ghb_settings_get_boolean(settings, "PictureDecombDeinterlace"); + decomb_deint = ghb_dict_get_bool(settings, "PictureDecombDeinterlace"); decomb = ghb_settings_combo_int(settings, "PictureDecomb"); decomb_opt = ghb_settings_combo_option(settings, "PictureDecomb"); - decomb_cust = ghb_settings_get_const_string(settings, + decomb_cust = ghb_dict_get_string(settings, "PictureDecombCustom"); deint = ghb_settings_combo_int(settings, "PictureDeinterlace"); deint_opt = ghb_settings_combo_option(settings, "PictureDeinterlace"); - deint_cust = ghb_settings_get_const_string(settings, + deint_cust = ghb_dict_get_string(settings, "PictureDeinterlaceCustom"); detel = ghb_settings_combo_int(settings, "PictureDetelecine"); - detel_cust = ghb_settings_get_const_string(settings, + detel_cust = ghb_dict_get_string(settings, "PictureDetelecineCustom"); - deblock = ghb_settings_get_int(settings, "PictureDeblock"); + deblock = ghb_dict_get_int(settings, "PictureDeblock"); denoise = ghb_settings_combo_int(settings, "PictureDenoiseFilter"); denoise_opt = ghb_settings_combo_option(settings, "PictureDenoiseFilter"); denoise_preset = ghb_settings_combo_option(settings, "PictureDenoisePreset"); denoise_tune = ghb_settings_combo_option(settings, "PictureDenoiseTune"); - denoise_cust = ghb_settings_get_const_string(settings, + denoise_cust = ghb_dict_get_string(settings, "PictureDenoiseCustom"); - grayscale = ghb_settings_get_boolean(settings, "VideoGrayScale"); + grayscale = ghb_dict_get_bool(settings, "VideoGrayScale"); filters = detel || (decomb_deint && decomb) || (!decomb_deint && deint) || denoise || (deblock >= 5) || grayscale; @@ -416,7 +416,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter if (fps->rate == 0) { const char *rate_mode; - if (ghb_settings_get_boolean(settings, "VideoFramerateCFR")) + if (ghb_dict_get_bool(settings, "VideoFramerateCFR")) rate_mode = _("(constant)"); else rate_mode = _("(variable)"); @@ -424,7 +424,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter } else { - if (ghb_settings_get_boolean(settings, "VideoFrameratePFR")) + if (ghb_dict_get_bool(settings, "VideoFrameratePFR")) { XPRINT(_(", Framerate: Peak %s (may be lower)"), fps->name); } @@ -439,7 +439,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter if (!vqtype) { // Has to be bitrate - vqvalue = ghb_settings_get_int(settings, "VideoAvgBitrate"); + vqvalue = ghb_dict_get_int(settings, "VideoAvgBitrate"); vq_desc = _("Bitrate:"); vq_units = _("kbps"); XPRINT(", %s %d%s", @@ -448,7 +448,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter else { // Constant quality - vqvalue = ghb_settings_get_double(settings, "VideoQualitySlider"); + vqvalue = ghb_dict_get_double(settings, "VideoQualitySlider"); vq_desc = _("Constant Quality:"); vq_units = hb_video_quality_get_name(video_encoder->codec); XPRINT(", %s %.4g(%s)", @@ -458,7 +458,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter // Next line in the display (Turbo setting) gboolean turbo; - turbo = ghb_settings_get_boolean(settings, "VideoTurboTwoPass"); + turbo = ghb_dict_get_bool(settings, "VideoTurboTwoPass"); if (!vqtype && two_pass && turbo) { XPRINT(_("<b>Turbo 1st Pass:</b> <small>On</small>\n")); @@ -467,7 +467,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter // Next line in the display (Video Encoder Options) // Video Options: Preset - Tune - Profile - Level if (video_encoder->codec == HB_VCODEC_X264 && - !ghb_settings_get_boolean(settings, "x264UseAdvancedOptions")) + !ghb_dict_get_bool(settings, "x264UseAdvancedOptions")) { const gchar *extra_opt = NULL; @@ -478,13 +478,13 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter const gchar *profile_opt, *level_opt; gboolean fastdecode, zerolatency; - preset_opt = ghb_settings_get_const_string(settings, "VideoPreset"); - tune_opt = ghb_settings_get_const_string(settings, "VideoTune"); - fastdecode = ghb_settings_get_boolean(settings, "x264FastDecode"); - zerolatency = ghb_settings_get_boolean(settings, "x264ZeroLatency"); - profile_opt = ghb_settings_get_const_string(settings, "VideoProfile"); - level_opt = ghb_settings_get_const_string(settings, "VideoLevel"); - extra_opt = ghb_settings_get_const_string(settings, "VideoOptionExtra"); + preset_opt = ghb_dict_get_string(settings, "VideoPreset"); + tune_opt = ghb_dict_get_string(settings, "VideoTune"); + fastdecode = ghb_dict_get_bool(settings, "x264FastDecode"); + zerolatency = ghb_dict_get_bool(settings, "x264ZeroLatency"); + profile_opt = ghb_dict_get_string(settings, "VideoProfile"); + level_opt = ghb_dict_get_string(settings, "VideoLevel"); + extra_opt = ghb_dict_get_string(settings, "VideoOptionExtra"); XPRINT(_("<b>Video Options:</b> <small>Preset: %s</small>"), preset_opt); if ((tune_opt != NULL && tune_opt[0] != 0) || zerolatency || fastdecode) @@ -533,12 +533,11 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter { // Next line in the display (Video Encoder Options) // Video Advanced Options: detailed settings - gchar *opts = ghb_build_advanced_opts_string(settings); + const gchar *opts = ghb_build_advanced_opts_string(settings); if (opts != NULL && opts[0] != 0) { XPRINT(_("<b>Advanced Options:</b> <small>%s</small>\n"), opts); } - g_free(opts); } // Next line in the display (Audio) @@ -548,7 +547,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter gint count, ii; const GhbValue *audio_list; - audio_list = ghb_settings_get_value(settings, "audio_list"); + audio_list = ghb_dict_get_value(settings, "audio_list"); count = ghb_array_len(audio_list); if (count == 1) { @@ -560,15 +559,16 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter } for (ii = 0; ii < count; ii++) { - gchar *quality = NULL, *track; + const gchar *track; + gchar *quality = NULL; GhbValue *asettings; const hb_encoder_t *audio_encoder; asettings = ghb_array_get(audio_list, ii); audio_encoder = ghb_settings_audio_encoder(asettings, "AudioEncoder"); - double q = ghb_settings_get_double(asettings, "AudioTrackQuality"); - if (ghb_settings_get_boolean(asettings, "AudioTrackQualityEnable") && + double q = ghb_dict_get_double(asettings, "AudioTrackQuality"); + if (ghb_dict_get_bool(asettings, "AudioTrackQualityEnable") && q != HB_INVALID_AUDIO_QUALITY) { quality = ghb_format_quality(_("Quality: "), audio_encoder->codec, q); @@ -580,7 +580,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter } const hb_rate_t *sr; sr = ghb_settings_audio_samplerate(asettings, "AudioSamplerate"); - track = ghb_settings_get_string(asettings, "AudioTrackDescription"); + track = ghb_dict_get_string(asettings, "AudioTrackDescription"); const hb_mixdown_t *mix; mix = ghb_settings_mixdown(asettings, "AudioMixdown"); if (count > 1) @@ -595,7 +595,6 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter XPRINT(_("%s --> Encoder: %s, Mixdown: %s, SampleRate: %s, %s"), track, audio_encoder->name, mix->name, sr->name, quality); } - g_free(track); g_free(quality); } if (count > 0) @@ -609,7 +608,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter // ... const GhbValue *sub_list; - sub_list = ghb_settings_get_value(settings, "subtitle_list"); + sub_list = ghb_dict_get_value(settings, "subtitle_list"); count = ghb_array_len(sub_list); if (count == 1) { @@ -622,16 +621,16 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter for (ii = 0; ii < count; ii++) { GhbValue *settings; - gchar *track; + const gchar *track; gboolean force, burn, def; gint source; settings = ghb_array_get(sub_list, ii); - track = ghb_settings_get_string(settings, "SubtitleTrackDescription"); - source = ghb_settings_get_int(settings, "SubtitleSource"); - force = ghb_settings_get_boolean(settings, "SubtitleForced"); - burn = ghb_settings_get_boolean(settings, "SubtitleBurned"); - def = ghb_settings_get_boolean(settings, "SubtitleDefaultTrack"); + track = ghb_dict_get_string(settings, "SubtitleTrackDescription"); + source = ghb_dict_get_int(settings, "SubtitleSource"); + force = ghb_dict_get_bool(settings, "SubtitleForced"); + burn = ghb_dict_get_bool(settings, "SubtitleBurned"); + def = ghb_dict_get_bool(settings, "SubtitleDefaultTrack"); if (count > 1) XPRINT("\t"); @@ -646,21 +645,19 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *settings, GtkTreeIter *piter else { gint offset; - gchar *filename, *basename, *code; + const gchar *filename, *code; + gchar *basename; - offset = ghb_settings_get_int(settings, "SrtOffset"); - filename = ghb_settings_get_string(settings, "SrtFile"); + offset = ghb_dict_get_int(settings, "SrtOffset"); + filename = ghb_dict_get_string(settings, "SrtFile"); basename = g_path_get_basename(filename); - code = ghb_settings_get_string(settings, "SrtCodeset"); + code = ghb_dict_get_string(settings, "SrtCodeset"); XPRINT(_("<small> %s (%s), %s, Offset (ms) %d%s</small>\n"), track, code, basename, offset, def ? " (Default)":""); - g_free(filename); g_free(basename); - g_free(code); } - g_free(track); } // Remove the final newline in the string @@ -705,7 +702,7 @@ ghb_update_status(signal_user_data_t *ud, int status, int index) if (settings == NULL) // should never happen return; - if (ghb_settings_get_int(settings, "job_status") == GHB_QUEUE_RUNNING) + if (ghb_dict_get_int(settings, "job_status") == GHB_QUEUE_RUNNING) return; // Never change the status of currently running jobs GtkTreeView *treeview; @@ -721,7 +718,7 @@ ghb_update_status(signal_user_data_t *ud, int status, int index) } g_free(path); - ghb_settings_set_int(settings, "job_status", status); + ghb_dict_set_int(settings, "job_status", status); } void @@ -748,7 +745,7 @@ save_queue_file(signal_user_data_t *ud) GhbValue *settings = ghb_array_get(ud->queue, ii); if (settings == NULL) continue; - ghb_settings_set_int(settings, "job_status", GHB_QUEUE_PENDING); + ghb_dict_set_int(settings, "job_status", GHB_QUEUE_PENDING); } GtkWidget *dialog; @@ -824,8 +821,8 @@ open_queue_file(signal_user_data_t *ud) GhbValue *settings = ghb_array_get(queue, ii); ghb_value_incref(settings); ghb_array_remove(queue, ii); - ghb_settings_set_int(settings, "job_status", GHB_QUEUE_PENDING); - ghb_settings_set_int(settings, "job_unique_id", 0); + ghb_dict_set_int(settings, "job_status", GHB_QUEUE_PENDING); + ghb_dict_set_int(settings, "job_unique_id", 0); if (ud->queue == NULL) ud->queue = ghb_array_new(); @@ -904,10 +901,10 @@ validate_settings(signal_user_data_t *ud, GhbValue *settings, gint batch) hb_window = GTK_WINDOW(GHB_WIDGET(ud->builder, "hb_window")); - title_id = ghb_settings_get_int(settings, "title"); + title_id = ghb_dict_get_int(settings, "title"); title = ghb_lookup_title(title_id, &titleindex); if (title == NULL) return FALSE; - dest = ghb_settings_get_const_string(settings, "destination"); + dest = ghb_dict_get_string(settings, "destination"); count = ghb_array_len(ud->queue); for (ii = 0; ii < count; ii++) { @@ -915,7 +912,7 @@ validate_settings(signal_user_data_t *ud, GhbValue *settings, gint batch) const gchar *filename; js = ghb_array_get(ud->queue, ii); - filename = ghb_settings_get_const_string(js, "destination"); + filename = ghb_dict_get_string(js, "destination"); if (strcmp(dest, filename) == 0) { message = g_strdup_printf( @@ -1056,11 +1053,11 @@ queue_add(signal_user_data_t *ud, GhbValue *settings, gint batch) // Copy current prefs into settings // The job should run with the preferences that existed // when the job was added to the queue. - ghb_settings_set_value(settings, "Preferences", ud->prefs); + ghb_dict_set(settings, "Preferences", ghb_value_dup(ud->prefs)); // Make a copy of current settings to be used for the new job - ghb_settings_set_int(settings, "job_status", GHB_QUEUE_PENDING); - ghb_settings_set_int(settings, "job_unique_id", 0); + ghb_dict_set_int(settings, "job_status", GHB_QUEUE_PENDING); + ghb_dict_set_int(settings, "job_unique_id", 0); ghb_array_append(ud->queue, settings); add_to_queue_list(ud, settings, NULL); @@ -1090,7 +1087,7 @@ title_multiple_can_select(GhbValue *settings_array, int index) const char *dest; settings = ghb_array_get(settings_array, index); - gdest = ghb_settings_get_value(settings, "destination"); + gdest = ghb_dict_get_value(settings, "destination"); dest = ghb_value_get_string(gdest); if (dest == NULL) return FALSE; @@ -1102,7 +1099,7 @@ title_multiple_can_select(GhbValue *settings_array, int index) const char *tmp; settings = ghb_array_get(settings_array, ii); - gdest = ghb_settings_get_value(settings, "destination"); + gdest = ghb_dict_get_value(settings, "destination"); tmp = ghb_value_get_string(gdest); if (tmp != NULL && !strncmp(dest, tmp, PATH_MAX)) return FALSE; @@ -1251,7 +1248,7 @@ title_add_multiple_check_conflicts(signal_user_data_t *ud) settings = ghb_array_get(ud->settings_array, ii); can_select = title_multiple_can_select(ud->settings_array, ii); - ghb_settings_set_boolean(settings, "title_selected", FALSE); + ghb_dict_set_bool(settings, "title_selected", FALSE); gtk_toggle_button_set_active(selected, FALSE); title_add_multiple_set_sensitive(GTK_WIDGET(row), can_select); are_conflicts |= !can_select; @@ -1294,7 +1291,7 @@ title_add_multiple_select_all_cb(GtkWidget *widget, signal_user_data_t *ud) selected = GTK_TOGGLE_BUTTON(find_widget(row, "title_selected")); settings = ghb_array_get(ud->settings_array, ii); can_select = title_multiple_can_select(ud->settings_array, ii); - ghb_settings_set_boolean(settings, "title_selected", can_select); + ghb_dict_set_bool(settings, "title_selected", can_select); gtk_toggle_button_set_active(selected, TRUE); title_add_multiple_set_sensitive(GTK_WIDGET(row), can_select); } @@ -1332,7 +1329,7 @@ title_add_multiple_clear_all_cb(GtkWidget *widget, signal_user_data_t *ud) row = GTK_WIDGET(gtk_list_box_get_row_at_index(list, ii)); selected = GTK_TOGGLE_BUTTON(find_widget(row, "title_selected")); settings = ghb_array_get(ud->settings_array, ii); - ghb_settings_set_boolean(settings, "title_selected", FALSE); + ghb_dict_set_bool(settings, "title_selected", FALSE); gtk_toggle_button_set_active(selected, FALSE); } clear_select_all_busy = FALSE; @@ -1349,7 +1346,7 @@ add_multiple_titles(signal_user_data_t *ud) GhbValue *settings; settings = ghb_value_dup(ghb_array_get(ud->settings_array, ii)); - if (ghb_settings_get_boolean(settings, "title_selected")) + if (ghb_dict_get_bool(settings, "title_selected")) { queue_add(ud, settings, ii); } @@ -1395,7 +1392,7 @@ title_selected_cb(GtkWidget *widget, signal_user_data_t *ud) selected = ghb_widget_boolean(widget); settings = ghb_array_get(ud->settings_array, index); can_select = title_multiple_can_select(ud->settings_array, index); - ghb_settings_set_boolean(settings, "title_selected", + ghb_dict_set_bool(settings, "title_selected", selected && can_select); } @@ -1403,7 +1400,8 @@ G_MODULE_EXPORT void title_dest_file_cb(GtkWidget *widget, signal_user_data_t *ud) { GhbValue *settings; - gchar *dest_file, *dest_dir, *dest; + const gchar *dest_dir; + gchar *dest_file, *dest; GtkListBoxRow * row = title_get_row(widget); if (row == NULL) return; @@ -1412,21 +1410,20 @@ title_dest_file_cb(GtkWidget *widget, signal_user_data_t *ud) dest_file = ghb_widget_string(widget); settings = ghb_array_get(ud->settings_array, index); - ghb_settings_set_string(settings, "dest_file", dest_file); - dest_dir = ghb_settings_get_string(settings, "dest_dir"); + ghb_dict_set_string(settings, "dest_file", dest_file); + dest_dir = ghb_dict_get_string(settings, "dest_dir"); dest = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", dest_dir, dest_file); - ghb_settings_set_string(settings, "destination", dest); + ghb_dict_set_string(settings, "destination", dest); // Check if changing the destination file name resolves // a file name conflict. Enable selection if so. // Disable selection if it creates a confict!!! gboolean can_select; can_select = title_multiple_can_select(ud->settings_array, index); - ghb_settings_set_boolean(settings, "title_selected", can_select); + ghb_dict_set_bool(settings, "title_selected", can_select); title_add_multiple_set_sensitive(GTK_WIDGET(row), can_select); g_free(dest_file); - g_free(dest_dir); g_free(dest); title_add_multiple_set_conflict_label(ud, @@ -1437,7 +1434,8 @@ G_MODULE_EXPORT void title_dest_dir_cb(GtkWidget *widget, signal_user_data_t *ud) { GhbValue *settings; - gchar *dest_file, *dest_dir, *dest; + const gchar *dest_file; + gchar *dest_dir, *dest; GtkListBoxRow * row = title_get_row(widget); if (row == NULL) return; @@ -1446,20 +1444,19 @@ title_dest_dir_cb(GtkWidget *widget, signal_user_data_t *ud) dest_dir = ghb_widget_string(widget); settings = ghb_array_get(ud->settings_array, index); - ghb_settings_set_string(settings, "dest_dir", dest_dir); - dest_file = ghb_settings_get_string(settings, "dest_file"); + ghb_dict_set_string(settings, "dest_dir", dest_dir); + dest_file = ghb_dict_get_string(settings, "dest_file"); dest = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", dest_dir, dest_file); - ghb_settings_set_string(settings, "destination", dest); + ghb_dict_set_string(settings, "destination", dest); // Check if changing the destination file name resolves // a file name conflict. Enable selection if so. // Disable selection if it creates a confict!!! gboolean can_select; can_select = title_multiple_can_select(ud->settings_array, index); - ghb_settings_set_boolean(settings, "title_selected", can_select); + ghb_dict_set_bool(settings, "title_selected", can_select); title_add_multiple_set_sensitive(GTK_WIDGET(row), can_select); - g_free(dest_file); g_free(dest_dir); g_free(dest); @@ -1550,7 +1547,8 @@ queue_add_multiple_clicked_cb(GtkWidget *widget, signal_user_data_t *ud) GtkLabel *label; GtkEntry *entry; GtkFileChooser *chooser; - gchar *title_label, *dest_dir, *dest_file; + gchar *title_label; + const gchar *dest_dir, *dest_file; int title_id, titleindex; const hb_title_t *title; @@ -1560,7 +1558,7 @@ queue_add_multiple_clicked_cb(GtkWidget *widget, signal_user_data_t *ud) chooser = GTK_FILE_CHOOSER(find_widget(row, "title_dir")); settings = ghb_array_get(ud->settings_array, ii); - title_id = ghb_settings_get_int(settings, "title"); + title_id = ghb_dict_get_int(settings, "title"); title = ghb_lookup_title(title_id, &titleindex); if (title != NULL) { @@ -1571,16 +1569,14 @@ queue_add_multiple_clicked_cb(GtkWidget *widget, signal_user_data_t *ud) if (len > max_title_len) max_title_len = len; - dest_file = ghb_settings_get_string(settings, "dest_file"); - dest_dir = ghb_settings_get_string(settings, "dest_dir"); + dest_file = ghb_dict_get_string(settings, "dest_file"); + dest_dir = ghb_dict_get_string(settings, "dest_dir"); gtk_label_set_markup(label, title_label); gtk_entry_set_text(entry, dest_file); gtk_file_chooser_set_filename(chooser, dest_dir); g_free(title_label); - g_free(dest_file); - g_free(dest_dir); } gtk_list_box_insert(list, row, -1); @@ -1661,7 +1657,7 @@ queue_remove_clicked_cb(GtkWidget *widget, gchar *path, signal_user_data_t *ud) if (row >= ghb_array_len(ud->queue)) return; settings = ghb_array_get(ud->queue, row); - status = ghb_settings_get_int(settings, "job_status"); + status = ghb_dict_get_int(settings, "job_status"); if (status == GHB_QUEUE_RUNNING) { // Ask if wants to stop encode. @@ -1669,7 +1665,7 @@ queue_remove_clicked_cb(GtkWidget *widget, gchar *path, signal_user_data_t *ud) { return; } - unique_id = ghb_settings_get_int(settings, "job_unique_id"); + unique_id = ghb_dict_get_int(settings, "job_unique_id"); ghb_remove_job(unique_id); } // Remove the selected item @@ -1697,7 +1693,7 @@ find_last_finished(GhbValue *queue) for (ii = 0; ii < count; ii++) { js = ghb_array_get(queue, ii); - status = ghb_settings_get_int(js, "job_status"); + status = ghb_dict_get_int(js, "job_status"); if (status != GHB_QUEUE_DONE && status != GHB_QUEUE_RUNNING) { return ii-1; @@ -1743,7 +1739,7 @@ queue_drag_motion_cb( row = indices[0]; gtk_tree_path_free(path); js = ghb_array_get(ud->queue, row); - status = ghb_settings_get_int(js, "job_status"); + status = ghb_dict_get_int(js, "job_status"); if (status != GHB_QUEUE_PENDING && status != GHB_QUEUE_CANCELED) { gdk_drag_status(ctx, 0, time); @@ -1875,7 +1871,7 @@ queue_drag_cb( break; } // Reset job to pending - ghb_settings_set_int(js, "job_status", GHB_QUEUE_PENDING); + ghb_dict_set_int(js, "job_status", GHB_QUEUE_PENDING); add_to_queue_list(ud, js, &iter); dstpath = gtk_tree_model_get_path (dstmodel, &iter); @@ -1908,7 +1904,7 @@ ghb_queue_buttons_grey(signal_user_data_t *ud) gboolean show_start, show_stop, paused; queue_count = ghb_array_len(ud->queue); - title_id = ghb_settings_get_int(ud->settings, "title"); + title_id = ghb_dict_get_int(ud->settings, "title"); title = ghb_lookup_title(title_id, &titleindex); queue_state = ghb_get_queue_state(); @@ -2028,7 +2024,7 @@ queue_start_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) for (ii = 0; ii < count; ii++) { js = ghb_array_get(ud->queue, ii); - status = ghb_settings_get_int(js, "job_status"); + status = ghb_dict_get_int(js, "job_status"); if ((status == GHB_QUEUE_RUNNING) || (status == GHB_QUEUE_PENDING)) { @@ -2087,7 +2083,7 @@ find_pid: for (ii = 0; ii < count; ii++) { settings = ghb_array_get(queue, ii); - status = ghb_settings_get_int(settings, "job_status"); + status = ghb_dict_get_int(settings, "job_status"); if (status != GHB_QUEUE_DONE && status != GHB_QUEUE_CANCELED) { unfinished++; @@ -2115,7 +2111,7 @@ find_pid: for (ii = count-1; ii >= 0; ii--) { settings = ghb_array_get(queue, ii); - status = ghb_settings_get_int(settings, "job_status"); + status = ghb_dict_get_int(settings, "job_status"); if (status == GHB_QUEUE_DONE || status == GHB_QUEUE_CANCELED) { ghb_array_remove(queue, ii); @@ -2125,8 +2121,8 @@ find_pid: for (ii = 0; ii < count; ii++) { settings = ghb_array_get(queue, ii); - ghb_settings_set_int(settings, "job_unique_id", 0); - ghb_settings_set_int(settings, "job_status", GHB_QUEUE_PENDING); + ghb_dict_set_int(settings, "job_unique_id", 0); + ghb_dict_set_int(settings, "job_status", GHB_QUEUE_PENDING); add_to_queue_list(ud, settings, NULL); } ghb_queue_buttons_grey(ud); @@ -2204,7 +2200,7 @@ queue_key_press_cb( if (row >= ghb_array_len(ud->queue)) return FALSE; settings = ghb_array_get(ud->queue, row); - status = ghb_settings_get_int(settings, "job_status"); + status = ghb_dict_get_int(settings, "job_status"); if (status == GHB_QUEUE_RUNNING) { // Ask if wants to stop encode. @@ -2212,7 +2208,7 @@ queue_key_press_cb( { return TRUE; } - unique_id = ghb_settings_get_int(settings, "job_unique_id"); + unique_id = ghb_dict_get_int(settings, "job_unique_id"); ghb_remove_job(unique_id); } // Remove the selected item @@ -2258,7 +2254,7 @@ queue_edit_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) if (row >= ghb_array_len(ud->queue)) return; ghb_queue_edit_settings = ghb_array_get(ud->queue, row); - status = ghb_settings_get_int(ghb_queue_edit_settings, "job_status"); + status = ghb_dict_get_int(ghb_queue_edit_settings, "job_status"); if (status == GHB_QUEUE_PENDING) { // Remove the selected item @@ -2271,10 +2267,9 @@ queue_edit_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) { ghb_queue_edit_settings = ghb_value_dup(ghb_queue_edit_settings); } - gchar *source; - source = ghb_settings_get_string(ghb_queue_edit_settings, "source"); + const gchar *source; + source = ghb_dict_get_string(ghb_queue_edit_settings, "source"); ghb_do_scan(ud, source, 0, FALSE); - g_free(source); GtkWidget *widget = GHB_WIDGET(ud->builder, "show_queue"); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(widget), FALSE); |