-using namespace sigc;
-using namespace Gtk;
-
-static const gchar *sample_rates[] = {
- N_("22.05kHz"),
- N_("44.1kHz"),
- N_("48kHz"),
- N_("88.2kHz"),
- N_("96kHz"),
- N_("192kHz"),
- 0
-};
-
-static const gchar *src_quality[] = {
- N_("best"),
- N_("fastest"),
- N_("linear"),
- N_("better"),
- N_("intermediate"),
- 0
-};
-
-static const gchar *dither_types[] = {
- N_("None"),
- N_("Rectangular"),
- N_("Shaped Noise"),
- N_("Triangular"),
- 0
-};
-
-static const gchar* channel_strings[] = {
- N_("stereo"),
- N_("mono"),
- 0
-};
-
-static const gchar* cue_file_types[] = {
- N_("None"),
- N_("CUE"),
- N_("TOC"),
- 0
-};
-
-ExportDialog::ExportDialog(PublicEditor& e, AudioRegion* r)
- : ArdourDialog ("export dialog"),
- editor (e),
- format_table (9, 2),
- format_frame (_("FORMAT")),
- cue_file_label (_("CD MARKER FILE TYPE"), 1.0, 0.5),
- channel_count_label (_("CHANNELS"), 1.0, 0.5),
- header_format_label (_("FILE TYPE"), 1.0, 0.5),
- bitdepth_format_label (_("SAMPLE FORMAT"), 1.0, 0.5),
- endian_format_label (_("SAMPLE ENDIANNESS"), 1.0, 0.5),
- sample_rate_label (_("SAMPLE RATE"), 1.0, 0.5),
- src_quality_label (_("CONVERSION QUALITY"), 1.0, 0.5),
- dither_type_label (_("DITHER TYPE"), 1.0, 0.5),
- cuefile_only_checkbox (_("EXPORT CD MARKER FILE ONLY")),
- file_frame (_("EXPORT TO FILE")),
- file_browse_button (_("Browse")),
- track_selector_button (_("Specific tracks ..."))
-{
- guint32 n;
- guint32 len;
- guint32 maxlen;
-
- audio_region = r;
-
- session = 0;
-
- set_title (_("ardour: export"));
- set_wmclass (_("ardour_export"), "Ardour");
- set_name ("ExportWindow");
- add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
-
- file_selector = 0;
- spec.running = false;
-
- file_entry.set_name ("ExportFileNameEntry");
-
- master_list = ListStore::create (exp_cols);
- master_selector.set_model (master_list);
-
- master_selector.set_name ("ExportTrackSelector");
- master_selector.set_size_request (-1, 100);
- master_selector.append_column(_("Output"), exp_cols.output);
- master_selector.append_column_editable(_("Left"), exp_cols.left);
- master_selector.append_column_editable(_("Right"), exp_cols.right);
- master_selector.get_column(0)->set_min_width(100);
-
- master_selector.get_column(1)->set_min_width(40);
- master_selector.get_column(1)->set_sizing(Gtk::TREE_VIEW_COLUMN_AUTOSIZE);
- master_selector.get_column(2)->set_min_width(40);
- master_selector.get_column(2)->set_sizing(Gtk::TREE_VIEW_COLUMN_AUTOSIZE);
- master_selector.get_selection()->set_mode (Gtk::SELECTION_NONE);
-
- track_list = ListStore::create (exp_cols);
- track_selector.set_model (track_list);
-
- track_selector.set_name ("ExportTrackSelector");
- track_selector.set_size_request (-1, 130);
- track_selector.append_column(_("Output"), exp_cols.output);
- track_selector.append_column_editable(_("Left"), exp_cols.left);
- track_selector.append_column_editable(_("Right"), exp_cols.right);
-
- track_selector.get_column(0)->set_min_width(100);
- track_selector.get_column(1)->set_min_width(40);
- track_selector.get_column(1)->set_sizing(Gtk::TREE_VIEW_COLUMN_AUTOSIZE);
- track_selector.get_column(2)->set_min_width(40);
- track_selector.get_column(2)->set_sizing(Gtk::TREE_VIEW_COLUMN_AUTOSIZE);
- track_selector.get_selection()->set_mode (Gtk::SELECTION_NONE);
-
- progress_bar.set_name ("ExportProgress");
-
- format_frame.add (format_table);
- format_frame.set_name (FRAME_NAME);
-
- track_scroll.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
- master_scroll.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
-
- get_vbox()->pack_start (file_frame, false, false);
-
- hpacker.set_spacing (5);
- hpacker.set_border_width (5);
- hpacker.pack_start (format_frame, false, false);
-
- if (!audio_region) {
-
- master_scroll.add (master_selector);
- track_scroll.add (track_selector);
-
- master_scroll.set_size_request (220, 100);
- track_scroll.set_size_request (220, 100);
-
-
-
- /* we may hide some of these later */
- track_vpacker.pack_start (master_scroll);
- track_vpacker.pack_start (track_scroll);
- track_vpacker.pack_start (track_selector_button, Gtk::PACK_EXPAND_PADDING);
-
- hpacker.pack_start (track_vpacker);
- }
-
- get_vbox()->pack_start (hpacker);
-
- track_selector_button.set_name ("EditorGTKButton");
- track_selector_button.signal_clicked().connect (mem_fun(*this, &ExportDialog::track_selector_button_click));
-
- get_vbox()->pack_start (progress_bar, false, false);
-
- Gtkmm2ext::set_size_request_to_display_given_text (file_entry, X_("Kg/quite/a/reasonable/size/for/files/i/think"), 5, 8);
-
- file_hbox.set_spacing (5);
- file_hbox.set_border_width (5);
- file_hbox.pack_start (file_entry, true, true);
- file_hbox.pack_start (file_browse_button, false, false);
-
- file_frame.add (file_hbox);
- file_frame.set_border_width (5);
- file_frame.set_name (FRAME_NAME);
-
- /* pop_strings needs to be created on the stack because set_popdown_strings()
- takes a reference.
- */
-
- vector<string> pop_strings = internationalize(sample_rates);
- Gtkmm2ext::set_popdown_strings (sample_rate_combo, pop_strings);
- sample_rate_combo.set_active_text (pop_strings.front());
- pop_strings = internationalize(src_quality);
- Gtkmm2ext::set_popdown_strings (src_quality_combo, pop_strings);
- src_quality_combo.set_active_text (pop_strings.front());
- pop_strings = internationalize(dither_types);
- Gtkmm2ext::set_popdown_strings (dither_type_combo, pop_strings);
- dither_type_combo.set_active_text (pop_strings.front());
- pop_strings = internationalize(channel_strings);
- Gtkmm2ext::set_popdown_strings (channel_count_combo, pop_strings);
- channel_count_combo.set_active_text (pop_strings.front());
- pop_strings = internationalize((const char **) sndfile_header_formats_strings);
- Gtkmm2ext::set_popdown_strings (header_format_combo, pop_strings);
- header_format_combo.set_active_text (pop_strings.front());
- pop_strings = internationalize((const char **) sndfile_bitdepth_formats_strings);
- Gtkmm2ext::set_popdown_strings (bitdepth_format_combo, pop_strings);
- bitdepth_format_combo.set_active_text (pop_strings.front());
- pop_strings = internationalize((const char **) sndfile_endian_formats_strings);
- Gtkmm2ext::set_popdown_strings (endian_format_combo, pop_strings);
- endian_format_combo.set_active_text (pop_strings.front());
- pop_strings = internationalize(cue_file_types);
- Gtkmm2ext::set_popdown_strings (cue_file_combo, pop_strings);
- cue_file_combo.set_active_text (pop_strings.front());
-
- /* this will re-sensitized as soon as a non RIFF/WAV
- header format is chosen.
- */
-
- endian_format_combo.set_sensitive (false);
-
- /* determine longest strings at runtime */
-
- const guint32 FUDGE = 10; // Combo's are stupid - they steal space from the entry for the button
-
- maxlen = 0;
- const char *longest = "gl";
- string longest_str;
-
- for (n = 0; n < SNDFILE_HEADER_FORMATS; ++n) {
- if ((len = strlen (sndfile_header_formats_strings[n])) > maxlen) {
- maxlen = len;
- longest = sndfile_header_formats_strings[n];
- }
- }
-
- for (n = 0; n < SNDFILE_BITDEPTH_FORMATS; ++n) {
- if ((len = strlen (sndfile_bitdepth_formats_strings[n])) > maxlen) {
- maxlen = len;
- longest = sndfile_bitdepth_formats_strings[n];
- }
- }