41#include "options_manager.h"
52 if (!is_checked_output_radio_box)
54 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_FORMAT);
55 gint error = mp3splt_set_oformat(ui->mp3splt_state, output_format);
56 print_status_bar_confirmation_in_idle(error, ui);
60 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_DEFAULT);
71 ui_fs->frame_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->frame_mode));
72 ui_fs->bit_reservoir_mode =
73 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->bit_reservoir_mode));
75 ui_fs->adjust_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->adjust_mode));
76 ui_fs->adjust_offset = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_offset));
77 ui_fs->adjust_gap = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_adjust_gap));
78 ui_fs->adjust_threshold =
79 gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_threshold));
80 ui_fs->adjust_min = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_min));
82 ui_fs->split_file_mode = get_split_file_mode(ui);
84 ui_fs->selected_split_mode = get_selected_split_mode(ui);
86 ui_fs->time_split_value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_time));
87 ui_fs->equal_tracks_value =
88 gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_equal_tracks));
90 ui_fs->silence_threshold =
91 gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_threshold));
92 ui_fs->silence_offset =
93 gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_offset));
94 ui_fs->silence_number =
95 gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->all_spinner_silence_number_tracks));
96 ui_fs->silence_minimum_length =
97 gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_minimum));
98 ui_fs->silence_minimum_track_length =
99 gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_track_minimum));
100 ui_fs->silence_remove =
101 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->all_silence_remove_silence));
103 ui_fs->trim_silence_threshold =
104 gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_trim_silence_threshold));
106 ui_fs->single_silence_threshold = ui->infos->silence_threshold_value;
107 ui_fs->single_silence_offset = ui->infos->silence_offset_value;
108 ui_fs->single_silence_number = ui->infos->silence_number_of_tracks;
109 ui_fs->single_silence_minimum_length = ui->infos->silence_minimum_length;
110 ui_fs->single_silence_minimum_track_length = ui->infos->silence_minimum_track_length;
111 ui_fs->single_silence_remove = ui->infos->silence_remove_silence_between_tracks;
113 ui_fs->selected_tags_value = rh_get_active_value(gui->tags_radio);
116 ui_fs->create_dirs_from_filenames =
117 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->create_dirs_from_output_files));
119 ui_fs->regex_replace_underscores =
120 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->replace_underscore_by_space_check_box));
121 ui_fs->regex_artist_tag_format = ch_get_active_value(gui->artist_text_properties_combo);
122 ui_fs->regex_album_tag_format = ch_get_active_value(gui->album_text_properties_combo);
123 ui_fs->regex_title_tag_format = ch_get_active_value(gui->title_text_properties_combo);
124 ui_fs->regex_comment_tag_format = ch_get_active_value(gui->comment_text_properties_combo);
126 const gchar *regex = gtk_entry_get_text(GTK_ENTRY(gui->regex_entry));
129 ui_fs->regex = g_strdup(regex);
132 const gchar *regex_default_comment = gtk_entry_get_text(GTK_ENTRY(gui->comment_tag_entry));
133 if (regex_default_comment != NULL)
135 ui_fs->regex_default_comment = g_strdup(regex_default_comment);
138 const gchar *regex_default_genre = ch_get_active_str_value(gui->genre_combo);
139 if (regex_default_genre != NULL)
141 ui_fs->regex_default_genre = g_strdup(regex_default_genre);
144 const gchar *output_format = gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry));
145 if (output_format != NULL)
147 ui_fs->output_format = g_strdup(output_format);
151 if (output_directory != NULL)
153 ui_fs->output_directory = g_strdup(output_directory);
165 free_points_and_tags(&ui_fs->pat);
168 if (ui_fs->regex) { g_free(ui_fs->regex); }
169 if (ui_fs->regex_default_comment) { g_free(ui_fs->regex_default_comment); }
170 if (ui_fs->regex_default_genre) { g_free(ui_fs->regex_default_genre); }
171 if (ui_fs->output_format) { g_free(ui_fs->output_format); }
172 if (ui_fs->output_directory) { g_free(ui_fs->output_directory); }
173 if (ui_fs->test_regex_filename) { g_free(ui_fs->test_regex_filename); }
189 if (ui_fs->frame_mode)
191 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FRAME_MODE, SPLT_TRUE);
195 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FRAME_MODE, SPLT_FALSE);
198 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_HANDLE_BIT_RESERVOIR,
199 ui_fs->bit_reservoir_mode);
201 if (ui_fs->adjust_mode)
203 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_AUTO_ADJUST, SPLT_TRUE);
204 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, ui_fs->adjust_offset);
205 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_GAP, ui_fs->adjust_gap);
206 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, ui_fs->adjust_threshold);
207 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_LENGTH, ui_fs->adjust_min);
211 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_AUTO_ADJUST, SPLT_FALSE);
214 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_INPUT_NOT_SEEKABLE, SPLT_FALSE);
215 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_NORMAL_MODE);
217 if (ui_fs->split_file_mode == FILE_MODE_SINGLE)
219 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_NORMAL_MODE);
223 switch (ui_fs->selected_split_mode)
225 case SELECTED_SPLIT_NORMAL:
226 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_NORMAL_MODE);
228 case SELECTED_SPLIT_WRAP:
229 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_WRAP_MODE);
231 case SELECTED_SPLIT_TIME:
232 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_TIME_MODE);
233 mp3splt_set_long_option(ui->mp3splt_state, SPLT_OPT_SPLIT_TIME,
234 ui_fs->time_split_value * 100);
236 case SELECTED_SPLIT_EQUAL_TIME_TRACKS:
237 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_LENGTH_MODE);
238 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_LENGTH_SPLIT_FILE_NUMBER,
239 ui_fs->equal_tracks_value);
241 case SELECTED_SPLIT_SILENCE:
242 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_SILENCE_MODE);
243 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD,
244 ui_fs->silence_threshold);
245 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, ui_fs->silence_offset);
246 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_NUMBER_TRACKS,
247 ui_fs->silence_number);
248 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_LENGTH,
249 ui_fs->silence_minimum_length);
250 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_TRACK_LENGTH,
251 ui_fs->silence_minimum_track_length);
252 if (ui_fs->silence_remove)
254 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_REMOVE_SILENCE, SPLT_TRUE);
258 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_REMOVE_SILENCE, SPLT_FALSE);
261 case SELECTED_SPLIT_TRIM_SILENCE:
262 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_TRIM_SILENCE_MODE);
263 mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, ui_fs->trim_silence_threshold);
265 case SELECTED_SPLIT_ERROR:
266 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_ERROR_MODE);
273 int selected_tags_value = ui_fs->selected_tags_value;;
274 if (selected_tags_value == NO_TAGS)
276 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, SPLT_NO_TAGS);
278 else if (selected_tags_value == DEFAULT_TAGS)
280 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, SPLT_CURRENT_TAGS);
282 else if (selected_tags_value == ORIGINAL_FILE_TAGS)
284 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, SPLT_TAGS_ORIGINAL_FILE);
286 else if (selected_tags_value == TAGS_FROM_FILENAME)
288 put_tags_from_filename_regex_options(ui_fs);
291 int tags_radio_choice = ui_fs->tags_version;
292 if (tags_radio_choice == 0)
294 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FORCE_TAGS_VERSION, 0);
296 else if (tags_radio_choice == 1)
298 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FORCE_TAGS_VERSION, 1);
300 else if (tags_radio_choice == 2)
302 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FORCE_TAGS_VERSION, 2);
304 else if (tags_radio_choice == 3)
306 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FORCE_TAGS_VERSION, 12);
309 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_CREATE_DIRS_FROM_FILENAMES,
310 ui_fs->create_dirs_from_filenames);
313void put_tags_from_filename_regex_options(
ui_for_split *ui_fs)
317 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, SPLT_TAGS_FROM_FILENAME_REGEX);
319 int underscores = ui_fs->regex_replace_underscores;
320 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_REPLACE_UNDERSCORES_TAG_FORMAT, underscores);
322 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_ARTIST_TAG_FORMAT,
323 ui_fs->regex_artist_tag_format);
324 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_ALBUM_TAG_FORMAT,
325 ui_fs->regex_album_tag_format);
326 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TITLE_TAG_FORMAT,
327 ui_fs->regex_title_tag_format);
328 mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_COMMENT_TAG_FORMAT,
329 ui_fs->regex_comment_tag_format);
331 mp3splt_set_input_filename_regex(ui->mp3splt_state, ui_fs->regex);
333 const gchar *default_comment = ui_fs->regex_default_comment;
334 if (strlen(default_comment) == 0)
336 default_comment = NULL;
338 mp3splt_set_default_comment_tag(ui->mp3splt_state, default_comment);
340 mp3splt_set_default_genre_tag(ui->mp3splt_state, ui_fs->regex_default_genre);
void update_output_options(ui_state *ui, gboolean is_checked_output_radio_box, gchar *output_format)
Update the output options.
void put_options_from_preferences(ui_for_split *ui_fs)
Update the ui->mp3splt_state structure.
gchar * get_output_directory(ui_state *ui)
Get the name of the output directory.
gboolean get_checked_output_radio_box(ui_state *ui)
returns the checked output radio box
gint get_checked_tags_version_radio_box(gui_state *gui)
returns the checked tags radio box