42 #include <audacious/audctrl.h>
43 #include <audacious/dbus.h>
56 void (*update_spinner_value_cb)(GtkWidget *spinner, gpointer data);
57 gpointer user_data_for_cb;
65 void (*update_adjustment_value)(GtkAdjustment *adjustment, gpointer data);
66 gpointer user_data_for_cb;
70 GArray *spinner_int_preferences;
71 GArray *range_preferences;
100 gchar *browser_directory;
102 GList *text_options_list;
105 gint number_of_silence_points;
106 gint malloced_num_of_silence_points;
110 gint player_hundr_secs;
113 gint player_seconds2;
114 gint player_minutes2;
115 gint player_hundr_secs2;
121 gint width_drawing_area;
123 gfloat zoom_coeff_old;
126 gint tens_of_secs_th;
132 gint one_minute_time;
133 gint three_minutes_time;
134 gint six_minutes_time;
135 gint ten_minutes_time;
136 gint twenty_minutes_time;
137 gint fourty_minutes_time;
139 GArray *preview_time_windows;
141 GPtrArray *filtered_points_presence;
142 gint silence_wave_number_of_points_threshold;
144 gint selected_player;
146 gdouble douglas_peucker_thresholds[5];
147 gdouble douglas_peucker_thresholds_defaults[5];
149 gint debug_is_active;
151 gfloat silence_threshold_value;
152 gfloat silence_offset_value;
153 gint silence_number_of_tracks;
154 gfloat silence_minimum_length;
155 gfloat silence_minimum_track_length;
156 gboolean silence_remove_silence_between_tracks;
158 gint freedb_table_number;
159 gint playlist_tree_number;
160 gint multiple_files_tree_number;
162 gint freedb_selected_id;
166 gint split_file_mode;
168 GString *outputdirname;
177 const gchar *song_artist;
178 const gchar *song_title;
182 gint _gstreamer_is_running;
186 DBusGProxy *dbus_proxy;
187 DBusGConnection *dbus_connection;
205 GtkActionGroup *action_group;
206 GtkWidget *open_file_chooser_button;
207 GString *input_filename;
209 GtkWidget *player_box;
210 GtkWidget *playlist_box;
212 GtkWidget *song_name_label;
213 GtkWidget *song_infos;
214 GtkWidget *label_time;
216 GtkAdjustment *progress_adj;
217 GtkWidget *progress_bar;
219 GtkTreeView *tree_view;
221 GtkWidget *drawing_area;
222 GtkProgressBar *percent_progress_bar;
223 GtkWidget *drawing_area_expander;
227 gint real_erase_split_length;
228 gint real_move_split_length;
229 gint real_checkbox_length;
230 gint real_wave_length;
232 gint erase_split_ylimit;
233 gint progress_ylimit;
234 gint splitpoint_ypos;
239 GPtrArray *wave_quality_das;
240 GtkWidget *player_scrolled_window;
242 GtkStatusbar *status_bar;
244 GtkWidget *add_button;
245 GtkWidget *remove_row_button;
246 GtkWidget *remove_all_button;
248 GtkTextTagTable *mess_hist_tag_table;
249 GtkTextBuffer *mess_hist_buffer;
251 GtkToggleButton *names_from_filename;
253 GtkWidget *pause_button;
255 GtkBox *player_buttons_hbox;
258 GtkWidget *Go_BegButton_active;
259 GtkWidget *Go_BegButton_inactive;
260 GtkWidget *Go_EndButton_active;
261 GtkWidget *Go_EndButton_inactive;
262 GtkWidget *PlayButton_active;
263 GtkWidget *PlayButton_inactive;
264 GtkWidget *StopButton_active;
265 GtkWidget *StopButton_inactive;
266 GtkWidget *PauseButton_active;
267 GtkWidget *PauseButton_inactive;
270 GtkWidget *play_button;
271 GtkWidget *stop_button;
272 GtkWidget *player_add_button;
273 GtkWidget *go_beg_button;
274 GtkWidget *go_end_button;
276 GtkWidget *connect_button;
277 GtkWidget *disconnect_button;
279 GtkWidget *silence_wave_check_button;
281 GtkWidget *cancel_button;
283 GtkWidget *volume_button;
285 GtkTreeView *playlist_tree;
287 GtkWidget *playlist_remove_file_button;
288 GtkWidget *playlist_remove_all_files_button;
290 GtkWidget *frame_mode;
291 GtkWidget *adjust_mode;
293 GtkWidget *spinner_adjust_offset;
294 GtkWidget *spinner_adjust_gap;
295 GtkWidget *spinner_adjust_threshold;
297 GtkWidget *gap_label;
298 GtkWidget *offset_label;
299 GtkWidget *threshold_label;
301 GtkWidget *spinner_time;
302 GtkWidget *spinner_equal_tracks;
304 GtkWidget *all_spinner_silence_number_tracks;
305 GtkWidget *all_spinner_silence_minimum;
306 GtkWidget *all_spinner_track_minimum;
307 GtkWidget *all_spinner_silence_offset;
308 GtkWidget *all_spinner_trim_silence_threshold;
309 GtkWidget *all_spinner_silence_threshold;
310 GtkWidget *all_silence_remove_silence;
312 GtkWidget *all_threshold_label;
313 GtkWidget *all_trim_threshold_label;
314 GtkWidget *all_offset_label;
315 GtkWidget *all_number_of_tracks_label;
316 GtkWidget *all_min_silence_label;
317 GtkWidget *all_min_track_label;
319 GtkWidget *tags_radio;
320 GtkWidget *tags_version_radio;
322 GtkWidget *replace_underscore_by_space_check_box;
323 GtkComboBox *artist_text_properties_combo;
324 GtkComboBox *album_text_properties_combo;
325 GtkComboBox *title_text_properties_combo;
326 GtkComboBox *comment_text_properties_combo;
327 GtkComboBox *genre_combo;
328 GtkWidget *comment_tag_entry;
329 GtkWidget *regex_entry;
330 GtkWidget *test_regex_fname_entry;
331 GtkWidget *sample_result_label;
332 GtkWidget *extract_tags_box;
334 GtkWidget *create_dirs_from_output_files;
336 GtkWidget *output_entry;
337 GtkWidget *output_label;
338 GtkWidget *output_default_label;
340 GtkTreeView *split_tree;
342 GtkWidget *spinner_minutes;
343 GtkWidget *spinner_seconds;
344 GtkWidget *spinner_hundr_secs;
346 GtkWidget *scan_trim_silence_button;
347 GtkWidget *scan_trim_silence_button_player;
348 GtkWidget *scan_silence_button;
349 GtkWidget *scan_silence_button_player;
351 GtkWidget *spinner_silence_number_tracks;
352 GtkWidget *spinner_silence_minimum;
353 GtkWidget *spinner_silence_minimum_track;
354 GtkWidget *spinner_silence_offset;
355 GtkWidget *spinner_silence_threshold;
356 GtkWidget *silence_remove_silence;
358 GtkWidget *queue_files_button;
359 GtkWidget *remove_file_button;
360 GtkWidget *remove_all_files_button;
362 GtkWidget *freedb_entry;
363 GtkWidget *freedb_search_button;
364 GtkWidget *freedb_spinner;
365 GtkTreeView *freedb_tree;
366 GtkWidget *freedb_add_button;
368 GtkWidget *radio_output;
370 GtkWidget *split_mode_radio_button;
372 GtkWidget *time_label;
373 GtkWidget *time_label_after;
374 GtkWidget *equal_tracks_label;
375 GtkWidget *equal_tracks_label_after;
377 GtkWidget *multiple_files_component;
379 GtkWidget *directory_entry;
380 GtkWidget *player_combo_box;
381 GtkWidget *radio_button;
383 GPtrArray *wave_preview_labels;
385 GtkWidget *mess_history_window;
386 GtkWidget *mess_hist_view;
388 GtkTreeView *multiple_files_tree;
390 GtkWidget *multiple_files_remove_file_button;
391 GtkWidget *multiple_files_remove_all_files_button;
393 GtkWidget *preferences_widget;
394 GtkWidget *preferences_window;
396 GtkWidget *split_files_widget;
397 GtkWidget *split_files_window;
399 GtkWidget *freedb_widget;
400 GtkWidget *freedb_window;
402 GtkWidget *splitpoints_widget;
403 GtkWidget *splitpoints_window;
408 gint process_in_progress;
409 gint mouse_on_progress_bar;
410 gint currently_compute_douglas_peucker_filters;
411 gint show_silence_wave;
413 gboolean timer_active;
415 gint quick_preview_end_splitpoint;
416 gint preview_start_splitpoint;
420 gboolean button1_pressed;
421 gboolean button2_pressed;
422 gboolean quick_preview;
429 gboolean move_splitpoints;
430 gint splitpoint_to_move;
431 gboolean remove_splitpoints;
432 gboolean select_splitpoints;
433 gboolean check_splitpoint;
435 gint first_splitpoint_selected;
439 gint spin_hundr_secs;
441 gchar current_description[255];
443 gint preview_start_position;
447 gint currently_scanning_for_silence;
449 gchar *filename_to_split;
451 gint douglas_callback_counter;
455 gint only_press_pause;
457 gboolean change_volume;
458 gboolean on_the_volume_button;
461 gint selected_split_mode;
465 gint file_selection_changed;
470 #define SPLT_MUTEX GStaticMutex
484 GPtrArray *files_to_split;
486 SPLT_MUTEX variables_mutex;