diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index 3907f986d6..f28acb4e1b 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -25,6 +25,7 @@ #include #include #include +#include #include "utils.h" #include "add_route_dialog.h" @@ -70,6 +71,14 @@ AddRouteDialog::AddRouteDialog () if (track_mode_strings.empty()) { track_mode_strings = I18N (track_mode_names); + + if (ARDOUR::Profile->get_sae()) { + /* remove all but the first track mode (Normal) */ + + while (track_mode_strings.size() > 1) { + track_mode_strings.pop_back(); + } + } } set_name ("AddRouteDialog"); diff --git a/gtk2_ardour/ardour-sae.menus b/gtk2_ardour/ardour-sae.menus index 94974b6028..6e8441e17b 100644 --- a/gtk2_ardour/ardour-sae.menus +++ b/gtk2_ardour/ardour-sae.menus @@ -95,6 +95,9 @@ + + + @@ -154,9 +157,6 @@ - - - @@ -208,6 +208,7 @@ + diff --git a/gtk2_ardour/ardour.bindings.in b/gtk2_ardour/ardour.bindings.in index 6e5c4c30c2..da72eff544 100644 --- a/gtk2_ardour/ardour.bindings.in +++ b/gtk2_ardour/ardour.bindings.in @@ -10,10 +10,10 @@ ; (gtk_accel_path "/Editor/Autoconnect" "") ; (gtk_accel_path "/Editor/Edit" "") (gtk_accel_path "/Editor/playhead-to-previous-region-end" "comma") -(gtk_accel_path "/Editor/cycle-snap-mode" "KP_Decimal") -(gtk_accel_path "/Editor/cycle-snap-choice" "KP_Decimal") -(gtk_accel_path "/Editor/cycle-edit-point" "KP_Divide") -(gtk_accel_path "/Editor/toggle-edit-mode" "KP_Multiply") +(gtk_accel_path "/Editor/cycle-edit-point" "grave") +(gtk_accel_path "/Editor/toggle-edit-mode" "1") +(gtk_accel_path "/Editor/cycle-snap-mode" "2") +(gtk_accel_path "/Editor/cycle-snap-choice" "3") ; (gtk_accel_path "/redirectmenu/copy" "") ; (gtk_accel_path "/options/MeterFalloffFaster" "") (gtk_accel_path "/Transport/ToggleRollForgetCapture" "space") @@ -73,6 +73,8 @@ ; (gtk_accel_path "/options/StopPluginsWithTransport" "") (gtk_accel_path "/Editor/editor-paste" "v") (gtk_accel_path "/Editor/scroll-tracks-down" "Page_Down") +(gtk_accel_path "/Editor/select-next-route" "Page_Down") +(gtk_accel_path "/Editor/select-prev-route" "Page_Up") ; (gtk_accel_path "/Snap/snap-to-smpte-minutes" "") ; (gtk_accel_path "/Main/FlushWastebasket" "") (gtk_accel_path "/Editor/normalize-region" "n") @@ -333,3 +335,5 @@ (gtk_accel_path "/Editor/goto-mark-7" "KP_7") (gtk_accel_path "/Editor/goto-mark-8" "KP_8") (gtk_accel_path "/Editor/goto-mark-9" "KP_9") +(gtk_accel_path "/Transport/ToggleClick" "5") +(gtk_accel_path "/Transport/ToggleAutoReturn" "4") diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc index 1766da943c..de253ccc77 100644 --- a/gtk2_ardour/audio_time_axis.cc +++ b/gtk2_ardour/audio_time_axis.cc @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -251,8 +252,12 @@ AudioTimeAxisView::append_extra_display_menu_items () waveform_items.push_back (RadioMenuElem (group, _("Traditional"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Traditional))); traditional_item = static_cast (&waveform_items.back()); - waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified))); - rectified_item = static_cast (&waveform_items.back()); + if (!Profile->get_sae()) { + waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified))); + rectified_item = static_cast (&waveform_items.back()); + } else { + rectified_item = 0; + } waveform_items.push_back (SeparatorElem()); @@ -268,9 +273,11 @@ AudioTimeAxisView::append_extra_display_menu_items () AudioStreamView* asv = audio_view(); if (asv) { ignore_toggle = true; - if (asv->get_waveform_shape() == Rectified) + if (asv->get_waveform_shape() == Rectified && rectified_item) { rectified_item->set_active(true); - else traditional_item->set_active(true); + } else { + traditional_item->set_active(true); + } if (asv->get_waveform_scale() == LogWaveform) logscale_item->set_active(true); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index d638d54689..e95e65d1c3 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -318,6 +318,7 @@ Editor::Editor () _dragging_playhead = false; _dragging_edit_point = false; _dragging_hscrollbar = false; + select_new_marker = false; scrubbing_direction = 0; @@ -489,7 +490,7 @@ Editor::Editor () CellRendererToggle* route_list_visible_cell = dynamic_cast(route_list_display.get_column_cell_renderer (0)); route_list_visible_cell->property_activatable() = true; route_list_visible_cell->property_radio() = false; - + route_display_model->signal_row_deleted().connect (mem_fun (*this, &Editor::route_list_delete)); route_display_model->signal_row_changed().connect (mem_fun (*this, &Editor::route_list_change)); route_display_model->signal_rows_reordered().connect (mem_fun (*this, &Editor::track_list_reorder)); @@ -579,6 +580,10 @@ Editor::Editor () region_list_display.append_column (_("Regions"), region_list_columns.name); region_list_display.set_headers_visible (false); + CellRendererText* region_name_cell = dynamic_cast(region_list_display.get_column_cell_renderer (0)); + region_name_cell->property_editable() = true; + region_name_cell->signal_edited().connect (mem_fun (*this, &Editor::region_name_edit)); + region_list_display.get_selection()->set_select_function (mem_fun (*this, &Editor::region_list_selection_filter)); TreeViewColumn* tv_col = region_list_display.get_column(0); @@ -4226,3 +4231,37 @@ Editor::get_regions_for_action () tmp_regions = get_regions_at (where, selection->tracks); return tmp_regions; } + +void +Editor::get_regions_corresponding_to (boost::shared_ptr region, vector& regions) +{ + + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + + RouteTimeAxisView* tatv; + + if ((tatv = dynamic_cast (*i)) != 0) { + + boost::shared_ptr pl; + vector > results; + RegionView* marv; + boost::shared_ptr ds; + + if ((ds = tatv->get_diskstream()) == 0) { + /* bus */ + continue; + } + + if ((pl = (ds->playlist())) != 0) { + pl->get_region_list_equivalent_regions (region, results); + } + + for (vector >::iterator ir = results.begin(); ir != results.end(); ++ir) { + if ((marv = tatv->view()->find_view (*ir)) != 0) { + regions.push_back (marv); + } + } + + } + } +} diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 6563bdfee6..5c7c9a791c 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -763,13 +763,15 @@ class Editor : public PublicEditor RegionListDisplayModelColumns region_list_columns; Gtkmm2ext::DnDTreeView > region_list_display; - + Glib::RefPtr region_list_model; Glib::RefPtr toggle_full_region_list_action; Glib::RefPtr toggle_show_auto_regions_action; void region_list_selection_changed (); bool region_list_selection_filter (const Glib::RefPtr& model, const Gtk::TreeModel::Path& path, bool yn); + void region_name_edit (const Glib::ustring&, const Glib::ustring&); + void get_regions_corresponding_to (boost::shared_ptr region, std::vector& regions); Gtk::Menu *region_list_menu; Gtk::ScrolledWindow region_list_scroller; @@ -1096,6 +1098,7 @@ class Editor : public PublicEditor void set_punch_range (nframes_t start, nframes_t end, std::string cmd); void add_location_from_playhead_cursor (); + bool select_new_marker; void reverse_selection (); void edit_envelope (); @@ -1969,6 +1972,8 @@ class Editor : public PublicEditor void fast_update_strips (); bool meters_running; + void select_next_route (); + void select_prev_route (); }; #endif /* __ardour_editor_h__ */ diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 86ea9510ba..0141e2a7ce 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -149,6 +149,12 @@ Editor::register_actions () ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (editor_actions, "select-all-in-loop-range", _("Select All in Loop Range"), mem_fun(*this, &Editor::select_all_selectables_using_loop)); ActionManager::session_sensitive_actions.push_back (act); + + act = ActionManager::register_action (editor_actions, "select-next-route", _("Select Next Track/Bus"), mem_fun(*this, &Editor::select_next_route)); + ActionManager::session_sensitive_actions.push_back (act); + act = ActionManager::register_action (editor_actions, "select-prev-route", _("Select Previous Track/Bus"), mem_fun(*this, &Editor::select_prev_route)); + ActionManager::session_sensitive_actions.push_back (act); + act = ActionManager::register_action (editor_actions, "goto-mark-1", _("Locate to Mark 1"), bind (mem_fun (*this, &Editor::goto_nth_marker), 0)); ActionManager::session_sensitive_actions.push_back (act); diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index d31127e22e..ab6cd4f939 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -135,6 +135,11 @@ Editor::add_new_location (Location *location) newpair.second = lam; location_markers.insert (newpair); + + if (select_new_marker && location->is_mark()) { + selection->set (lam->start); + select_new_marker = false; + } } void diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 99baba28f3..e9c191c272 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -1508,6 +1508,8 @@ Editor::add_location_from_playhead_cursor () nframes_t where = session->audible_frame(); + select_new_marker = true; + session->locations()->next_available_name(markername,"mark"); Location *location = new Location (where, where, markername, Location::IsMark); session->begin_reversible_command (_("add marker")); @@ -4192,3 +4194,56 @@ Editor::trim_region (bool front) } commit_reversible_command (); } + +struct EditorOrderRouteSorter { + bool operator() (boost::shared_ptr a, boost::shared_ptr b) { + /* use of ">" forces the correct sort order */ + return a->order_key ("editor") < b->order_key ("editor"); + } +}; + +void +Editor::select_next_route() +{ + if (selection->tracks.empty()) { + selection->set (track_views.front()); + return; + } + + TimeAxisView* current = selection->tracks.front(); + + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + if (*i == current) { + ++i; + if (i != track_views.end()) { + selection->set (*i); + } else { + selection->set (*(track_views.begin())); + } + break; + } + } +} + +void +Editor::select_prev_route() +{ + if (selection->tracks.empty()) { + selection->set (track_views.front()); + return; + } + + TimeAxisView* current = selection->tracks.front(); + + for (TrackViewList::reverse_iterator i = track_views.rbegin(); i != track_views.rend(); ++i) { + if (*i == current) { + ++i; + if (i != track_views.rend()) { + selection->set (*i); + } else { + selection->set (*(track_views.rbegin())); + } + break; + } + } +} diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc index b59b7ff583..ea65e31c54 100644 --- a/gtk2_ardour/editor_region_list.cc +++ b/gtk2_ardour/editor_region_list.cc @@ -38,6 +38,7 @@ #include "ardour_ui.h" #include "gui_thread.h" #include "actions.h" +#include "region_view.h" #include "utils.h" #include "i18n.h" @@ -632,3 +633,30 @@ Editor::region_list_selection_filter (const RefPtr& model, const Tree return true; } + +void +Editor::region_name_edit (const Glib::ustring& path, const Glib::ustring& new_text) +{ + boost::shared_ptr region; + TreeIter iter; + + if ((iter = region_list_model->get_iter (path))) { + region = (*iter)[region_list_columns.region]; + (*iter)[region_list_columns.name] = new_text; + } + + /* now mapover everything */ + + if (region) { + vector equivalents; + get_regions_corresponding_to (region, equivalents); + + for (vector::iterator i = equivalents.begin(); i != equivalents.end(); ++i) { + if (new_text != (*i)->region()->name()) { + (*i)->region()->set_name (new_text); + } + } + } + +} + diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index 28aeddd8bd..25c2206405 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -558,40 +558,18 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op, return commit; } + void Editor::set_selected_regionview_from_region_list (boost::shared_ptr region, Selection::Operation op) { vector all_equivalent_regions; - for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { - - RouteTimeAxisView* tatv; - - if ((tatv = dynamic_cast (*i)) != 0) { - - boost::shared_ptr pl; - vector > results; - RegionView* marv; - boost::shared_ptr ds; - - if ((ds = tatv->get_diskstream()) == 0) { - /* bus */ - continue; - } - - if ((pl = (ds->playlist())) != 0) { - pl->get_region_list_equivalent_regions (region, results); - } - - for (vector >::iterator ir = results.begin(); ir != results.end(); ++ir) { - if ((marv = tatv->view()->find_view (*ir)) != 0) { - all_equivalent_regions.push_back (marv); - } - } - - } + get_regions_corresponding_to (region, all_equivalent_regions); + + if (all_equivalent_regions.empty()) { + return; } - + switch (op) { case Selection::Toggle: /* XXX this is not correct */ diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index 96222f9ac3..20a44c8856 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -38,6 +38,7 @@ #include #include #include +#include #include "export_dialog.h" #include "ardour_ui.h" @@ -318,30 +319,52 @@ ExportDialog::ExportDialog(PublicEditor& e) format_table.set_col_spacings (5); format_table.set_row_spacings (5); - format_table.attach (channel_count_label, 0, 1, 0, 1); - format_table.attach (channel_count_combo, 1, 2, 0, 1); + int row = 0; + + format_table.attach (channel_count_label, 0, 1, row, row+1); + format_table.attach (channel_count_combo, 1, 2, row, row+1); + + row++; - format_table.attach (header_format_label, 0, 1, 1, 2); - format_table.attach (header_format_combo, 1, 2, 1, 2); + format_table.attach (header_format_label, 0, 1, row, row+1); + format_table.attach (header_format_combo, 1, 2, row, row+1); - format_table.attach (bitdepth_format_label, 0, 1, 2, 3); - format_table.attach (bitdepth_format_combo, 1, 2, 2, 3); + row++; - format_table.attach (endian_format_label, 0, 1, 3, 4); - format_table.attach (endian_format_combo, 1, 2, 3, 4); + format_table.attach (bitdepth_format_label, 0, 1, row, row+1); + format_table.attach (bitdepth_format_combo, 1, 2, row, row+1); - format_table.attach (sample_rate_label, 0, 1, 4, 5); - format_table.attach (sample_rate_combo, 1, 2, 4, 5); + row++; - format_table.attach (src_quality_label, 0, 1, 5, 6); - format_table.attach (src_quality_combo, 1, 2, 5, 6); + if (!Profile->get_sae()) { + format_table.attach (endian_format_label, 0, 1, row, row+1); + format_table.attach (endian_format_combo, 1, 2, row, row+1); + row++; + } - format_table.attach (dither_type_label, 0, 1, 6, 7); - format_table.attach (dither_type_combo, 1, 2, 6, 7); + format_table.attach (sample_rate_label, 0, 1, row, row+1); + format_table.attach (sample_rate_combo, 1, 2, row, row+1); - format_table.attach (cue_file_label, 0, 1, 7, 8); - format_table.attach (cue_file_combo, 1, 2, 7, 8); - format_table.attach (cuefile_only_checkbox, 0, 2, 8, 9); + row++; + + if (!Profile->get_sae()) { + format_table.attach (src_quality_label, 0, 1, row, row+1); + format_table.attach (src_quality_combo, 1, 2, row, row+1); + row++; + } + + format_table.attach (dither_type_label, 0, 1, row, row+1); + format_table.attach (dither_type_combo, 1, 2, row, row+1); + + row++; + + if (!Profile->get_sae()) { + format_table.attach (cue_file_label, 0, 1, row, row+1); + format_table.attach (cue_file_combo, 1, 2, row, row+1); + row++; + + format_table.attach (cuefile_only_checkbox, 0, 2, row, row+1); + } file_entry.set_name ("ExportFileDisplay"); @@ -918,7 +941,7 @@ ExportDialog::do_export () return; } - if (export_cd_markers_allowed) { + if (!Profile->get_sae() && export_cd_markers_allowed) { if (cue_file_combo.get_active_text () != _("None")) { do_export_cd_markers (file_entry.get_text(), cue_file_combo.get_active_text ()); } @@ -1212,10 +1235,12 @@ ExportDialog::initSpec(string &filepath) spec.format = 0; spec.format |= sndfile_header_format_from_string (header_format_combo.get_active_text ()); - - if ((spec.format & SF_FORMAT_WAV) == 0) { - /* RIFF/WAV specifies endianess */ - spec.format |= sndfile_endian_format_from_string (endian_format_combo.get_active_text ()); + + if (!Profile->get_sae()) { + if ((spec.format & SF_FORMAT_WAV) == 0) { + /* RIFF/WAV specifies endianess */ + spec.format |= sndfile_endian_format_from_string (endian_format_combo.get_active_text ()); + } } spec.format |= sndfile_bitdepth_format_from_string (bitdepth_format_combo.get_active_text ()); @@ -1237,17 +1262,21 @@ ExportDialog::initSpec(string &filepath) spec.sample_rate = session->frame_rate(); } - string src_str = src_quality_combo.get_active_text(); - if (src_str == _("fastest")) { - spec.src_quality = SRC_ZERO_ORDER_HOLD; - } else if (src_str == _("linear")) { - spec.src_quality = SRC_LINEAR; - } else if (src_str == _("better")) { - spec.src_quality = SRC_SINC_FASTEST; - } else if (src_str == _("intermediate")) { - spec.src_quality = SRC_SINC_MEDIUM_QUALITY; - } else { + if (Profile->get_sae()) { spec.src_quality = SRC_SINC_BEST_QUALITY; + } else { + string src_str = src_quality_combo.get_active_text(); + if (src_str == _("fastest")) { + spec.src_quality = SRC_ZERO_ORDER_HOLD; + } else if (src_str == _("linear")) { + spec.src_quality = SRC_LINEAR; + } else if (src_str == _("better")) { + spec.src_quality = SRC_SINC_FASTEST; + } else if (src_str == _("intermediate")) { + spec.src_quality = SRC_SINC_MEDIUM_QUALITY; + } else { + spec.src_quality = SRC_SINC_BEST_QUALITY; + } } string dither_str = dither_type_combo.get_active_text(); diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 0bb9e40b19..edeb8f3442 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -992,7 +993,9 @@ MixerStrip::build_route_ops_menu () build_remote_control_menu (); items.push_back (SeparatorElem()); - items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu)); + if (!Profile->get_sae()) { + items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu)); + } items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Remove"), mem_fun(*this, &RouteUI::remove_this_route))); diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 91f4993df5..d7eeceafed 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -50,6 +50,7 @@ #include #include #include +#include #include "ardour_ui.h" #include "route_time_axis.h" @@ -416,7 +417,9 @@ RouteTimeAxisView::build_display_menu () items.push_back (SeparatorElem()); build_remote_control_menu (); - items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu)); + if (!Profile->get_sae()) { + items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu)); + } build_automation_action_menu (); items.push_back (MenuElem (_("Automation"), *automation_action_menu)); @@ -446,10 +449,10 @@ RouteTimeAxisView::build_display_menu () if (get_diskstream()->alignment_style() == CaptureTime) align_capture_item->set_active(); - items.push_back (MenuElem (_("Alignment"), *alignment_menu)); - - get_diskstream()->AlignmentStyleChanged.connect ( - mem_fun(*this, &RouteTimeAxisView::align_style_changed)); + if (!Profile->get_sae()) { + items.push_back (MenuElem (_("Alignment"), *alignment_menu)); + get_diskstream()->AlignmentStyleChanged.connect (mem_fun(*this, &RouteTimeAxisView::align_style_changed)); + } RadioMenuItem::Group mode_group; items.push_back (RadioMenuElem (mode_group, _("Normal mode"), diff --git a/libs/ardour/ardour/sndfile_helpers.h b/libs/ardour/ardour/sndfile_helpers.h index 26a93ad124..cf6b15f3a4 100644 --- a/libs/ardour/ardour/sndfile_helpers.h +++ b/libs/ardour/ardour/sndfile_helpers.h @@ -28,7 +28,7 @@ using std::string; // Use this define when initializing arrarys for use in sndfile_*_format() #define SNDFILE_STR_LENGTH 32 -#define SNDFILE_HEADER_FORMATS 7 +#define SNDFILE_HEADER_FORMATS 5 extern const char * const sndfile_header_formats_strings[SNDFILE_HEADER_FORMATS+1]; extern const char * const sndfile_file_endings_strings[SNDFILE_HEADER_FORMATS+1]; diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc index 63f8850c09..7f1154a13d 100644 --- a/libs/ardour/auditioner.cc +++ b/libs/ardour/auditioner.cc @@ -149,8 +149,19 @@ Auditioner::audition_region (boost::shared_ptr region) _panner->reset (n_outputs(), _diskstream->n_channels()); length = the_region->length(); - _diskstream->seek (0); - current_frame = 0; + + int dir; + nframes_t offset = the_region->sync_offset (dir); + + /* can't audition from a negative sync point */ + + if (dir < 0) { + offset = 0; + } + + _diskstream->seek (offset); + current_frame = offset; + g_atomic_int_set (&_active, 1); } diff --git a/libs/ardour/sndfile_helpers.cc b/libs/ardour/sndfile_helpers.cc index 9e439ba4c6..22a1b3555e 100644 --- a/libs/ardour/sndfile_helpers.cc +++ b/libs/ardour/sndfile_helpers.cc @@ -33,33 +33,27 @@ using namespace std; const char * const sndfile_header_formats_strings[SNDFILE_HEADER_FORMATS+1] = { N_("WAV"), N_("AIFF"), - N_("raw (no header)"), - N_("PAF (Ensoniq Paris)"), - N_("AU (Sun/NeXT)"), - N_("IRCAM"), + N_("CAF"), N_("W64 (64 bit WAV)"), + N_("raw (no header)"), 0 }; const char* const sndfile_file_endings_strings[SNDFILE_HEADER_FORMATS+1] = { N_(".wav"), N_(".aiff"), - N_(".raw"), - N_(".paf"), - N_(".au"), - N_(".ircam"), + N_(".caf"), N_(".w64"), + N_(".raw"), 0 }; int sndfile_header_formats[SNDFILE_HEADER_FORMATS] = { SF_FORMAT_WAV, SF_FORMAT_AIFF, - SF_FORMAT_RAW, - SF_FORMAT_PAF, - SF_FORMAT_AU, - SF_FORMAT_IRCAM, - SF_FORMAT_W64 + SF_FORMAT_CAF, + SF_FORMAT_W64, + SF_FORMAT_RAW }; const char * const sndfile_bitdepth_formats_strings[SNDFILE_BITDEPTH_FORMATS+1] = {