more ongoing SAE-driven changes (too many too list here)

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2715 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2007-11-26 17:20:34 +00:00
parent 90a5607604
commit 1268bf8b45
17 changed files with 272 additions and 95 deletions

View file

@ -25,6 +25,7 @@
#include <pbd/error.h> #include <pbd/error.h>
#include <pbd/convert.h> #include <pbd/convert.h>
#include <gtkmm2ext/utils.h> #include <gtkmm2ext/utils.h>
#include <ardour/profile.h>
#include "utils.h" #include "utils.h"
#include "add_route_dialog.h" #include "add_route_dialog.h"
@ -70,6 +71,14 @@ AddRouteDialog::AddRouteDialog ()
if (track_mode_strings.empty()) { if (track_mode_strings.empty()) {
track_mode_strings = I18N (track_mode_names); 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"); set_name ("AddRouteDialog");

View file

@ -95,6 +95,9 @@
<menuitem action='select-all-in-punch-range'/> <menuitem action='select-all-in-punch-range'/>
<menuitem action='select-all-in-loop-range'/> <menuitem action='select-all-in-loop-range'/>
<separator/> <separator/>
<menuitem action='select-next-route'/>
<menuitem action='select-prev-route'/>
<separator/>
<menu action='EditCursorMovementOptions'> <menu action='EditCursorMovementOptions'>
<menuitem action='edit-cursor-to-next-region-start'/> <menuitem action='edit-cursor-to-next-region-start'/>
<menuitem action='edit-cursor-to-next-region-end'/> <menuitem action='edit-cursor-to-next-region-end'/>
@ -154,9 +157,6 @@
<menuitem action='ToggleMaximalEditor'/> <menuitem action='ToggleMaximalEditor'/>
<separator/> <separator/>
<menu name='ZoomFocus' action='ZoomFocus'> <menu name='ZoomFocus' action='ZoomFocus'>
<menuitem action='zoom-focus-left'/>
<menuitem action='zoom-focus-right'/>
<menuitem action='zoom-focus-center'/>
<menuitem action='zoom-focus-playhead'/> <menuitem action='zoom-focus-playhead'/>
<menuitem action='zoom-focus-edit'/> <menuitem action='zoom-focus-edit'/>
<menuitem action='zoom-focus-mouse'/> <menuitem action='zoom-focus-mouse'/>
@ -208,6 +208,7 @@
<separator/> <separator/>
<menuitem action='show-editor-mixer'/> <menuitem action='show-editor-mixer'/>
<menuitem action='SyncEditorAndMixerTrackOrder'/> <menuitem action='SyncEditorAndMixerTrackOrder'/>
<menuitem action='ToggleMeasureVisibility'/>
<menuitem action='ToggleLogoVisibility'/> <menuitem action='ToggleLogoVisibility'/>
<separator/> <separator/>
<menuitem action='goto-editor'/> <menuitem action='goto-editor'/>

View file

@ -10,10 +10,10 @@
; (gtk_accel_path "<Actions>/Editor/Autoconnect" "") ; (gtk_accel_path "<Actions>/Editor/Autoconnect" "")
; (gtk_accel_path "<Actions>/Editor/Edit" "") ; (gtk_accel_path "<Actions>/Editor/Edit" "")
(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-end" "<Control>comma") (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-end" "<Control>comma")
(gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "<Alt>KP_Decimal") (gtk_accel_path "<Actions>/Editor/cycle-edit-point" "grave")
(gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "KP_Decimal") (gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "1")
(gtk_accel_path "<Actions>/Editor/cycle-edit-point" "KP_Divide") (gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "2")
(gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "KP_Multiply") (gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "3")
; (gtk_accel_path "<Actions>/redirectmenu/copy" "") ; (gtk_accel_path "<Actions>/redirectmenu/copy" "")
; (gtk_accel_path "<Actions>/options/MeterFalloffFaster" "") ; (gtk_accel_path "<Actions>/options/MeterFalloffFaster" "")
(gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<Control>space") (gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<Control>space")
@ -73,6 +73,8 @@
; (gtk_accel_path "<Actions>/options/StopPluginsWithTransport" "") ; (gtk_accel_path "<Actions>/options/StopPluginsWithTransport" "")
(gtk_accel_path "<Actions>/Editor/editor-paste" "<Control>v") (gtk_accel_path "<Actions>/Editor/editor-paste" "<Control>v")
(gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down") (gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down")
(gtk_accel_path "<Actions>/Editor/select-next-route" "<Ctrl>Page_Down")
(gtk_accel_path "<Actions>/Editor/select-prev-route" "<Ctrl>Page_Up")
; (gtk_accel_path "<Actions>/Snap/snap-to-smpte-minutes" "") ; (gtk_accel_path "<Actions>/Snap/snap-to-smpte-minutes" "")
; (gtk_accel_path "<Actions>/Main/FlushWastebasket" "") ; (gtk_accel_path "<Actions>/Main/FlushWastebasket" "")
(gtk_accel_path "<Actions>/Editor/normalize-region" "n") (gtk_accel_path "<Actions>/Editor/normalize-region" "n")
@ -333,3 +335,5 @@
(gtk_accel_path "<Actions>/Editor/goto-mark-7" "KP_7") (gtk_accel_path "<Actions>/Editor/goto-mark-7" "KP_7")
(gtk_accel_path "<Actions>/Editor/goto-mark-8" "KP_8") (gtk_accel_path "<Actions>/Editor/goto-mark-8" "KP_8")
(gtk_accel_path "<Actions>/Editor/goto-mark-9" "KP_9") (gtk_accel_path "<Actions>/Editor/goto-mark-9" "KP_9")
(gtk_accel_path "<Actions>/Transport/ToggleClick" "5")
(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "4")

View file

@ -43,6 +43,7 @@
#include <ardour/location.h> #include <ardour/location.h>
#include <ardour/panner.h> #include <ardour/panner.h>
#include <ardour/playlist.h> #include <ardour/playlist.h>
#include <ardour/profile.h>
#include <ardour/session.h> #include <ardour/session.h>
#include <ardour/session_playlist.h> #include <ardour/session_playlist.h>
#include <ardour/utils.h> #include <ardour/utils.h>
@ -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))); waveform_items.push_back (RadioMenuElem (group, _("Traditional"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Traditional)));
traditional_item = static_cast<RadioMenuItem *> (&waveform_items.back()); traditional_item = static_cast<RadioMenuItem *> (&waveform_items.back());
waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified))); if (!Profile->get_sae()) {
rectified_item = static_cast<RadioMenuItem *> (&waveform_items.back()); waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified)));
rectified_item = static_cast<RadioMenuItem *> (&waveform_items.back());
} else {
rectified_item = 0;
}
waveform_items.push_back (SeparatorElem()); waveform_items.push_back (SeparatorElem());
@ -268,9 +273,11 @@ AudioTimeAxisView::append_extra_display_menu_items ()
AudioStreamView* asv = audio_view(); AudioStreamView* asv = audio_view();
if (asv) { if (asv) {
ignore_toggle = true; ignore_toggle = true;
if (asv->get_waveform_shape() == Rectified) if (asv->get_waveform_shape() == Rectified && rectified_item) {
rectified_item->set_active(true); rectified_item->set_active(true);
else traditional_item->set_active(true); } else {
traditional_item->set_active(true);
}
if (asv->get_waveform_scale() == LogWaveform) if (asv->get_waveform_scale() == LogWaveform)
logscale_item->set_active(true); logscale_item->set_active(true);

View file

@ -318,6 +318,7 @@ Editor::Editor ()
_dragging_playhead = false; _dragging_playhead = false;
_dragging_edit_point = false; _dragging_edit_point = false;
_dragging_hscrollbar = false; _dragging_hscrollbar = false;
select_new_marker = false;
scrubbing_direction = 0; scrubbing_direction = 0;
@ -489,7 +490,7 @@ Editor::Editor ()
CellRendererToggle* route_list_visible_cell = dynamic_cast<CellRendererToggle*>(route_list_display.get_column_cell_renderer (0)); CellRendererToggle* route_list_visible_cell = dynamic_cast<CellRendererToggle*>(route_list_display.get_column_cell_renderer (0));
route_list_visible_cell->property_activatable() = true; route_list_visible_cell->property_activatable() = true;
route_list_visible_cell->property_radio() = false; 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_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_row_changed().connect (mem_fun (*this, &Editor::route_list_change));
route_display_model->signal_rows_reordered().connect (mem_fun (*this, &Editor::track_list_reorder)); 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.append_column (_("Regions"), region_list_columns.name);
region_list_display.set_headers_visible (false); region_list_display.set_headers_visible (false);
CellRendererText* region_name_cell = dynamic_cast<CellRendererText*>(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)); 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); 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); tmp_regions = get_regions_at (where, selection->tracks);
return tmp_regions; return tmp_regions;
} }
void
Editor::get_regions_corresponding_to (boost::shared_ptr<Region> region, vector<RegionView*>& regions)
{
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
RouteTimeAxisView* tatv;
if ((tatv = dynamic_cast<RouteTimeAxisView*> (*i)) != 0) {
boost::shared_ptr<Playlist> pl;
vector<boost::shared_ptr<Region> > results;
RegionView* marv;
boost::shared_ptr<Diskstream> ds;
if ((ds = tatv->get_diskstream()) == 0) {
/* bus */
continue;
}
if ((pl = (ds->playlist())) != 0) {
pl->get_region_list_equivalent_regions (region, results);
}
for (vector<boost::shared_ptr<Region> >::iterator ir = results.begin(); ir != results.end(); ++ir) {
if ((marv = tatv->view()->find_view (*ir)) != 0) {
regions.push_back (marv);
}
}
}
}
}

View file

@ -763,13 +763,15 @@ class Editor : public PublicEditor
RegionListDisplayModelColumns region_list_columns; RegionListDisplayModelColumns region_list_columns;
Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Region> > region_list_display; Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Region> > region_list_display;
Glib::RefPtr<Gtk::TreeStore> region_list_model; Glib::RefPtr<Gtk::TreeStore> region_list_model;
Glib::RefPtr<Gtk::ToggleAction> toggle_full_region_list_action; Glib::RefPtr<Gtk::ToggleAction> toggle_full_region_list_action;
Glib::RefPtr<Gtk::ToggleAction> toggle_show_auto_regions_action; Glib::RefPtr<Gtk::ToggleAction> toggle_show_auto_regions_action;
void region_list_selection_changed (); void region_list_selection_changed ();
bool region_list_selection_filter (const Glib::RefPtr<Gtk::TreeModel>& model, const Gtk::TreeModel::Path& path, bool yn); bool region_list_selection_filter (const Glib::RefPtr<Gtk::TreeModel>& 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<ARDOUR::Region> region, std::vector<RegionView*>& regions);
Gtk::Menu *region_list_menu; Gtk::Menu *region_list_menu;
Gtk::ScrolledWindow region_list_scroller; 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 set_punch_range (nframes_t start, nframes_t end, std::string cmd);
void add_location_from_playhead_cursor (); void add_location_from_playhead_cursor ();
bool select_new_marker;
void reverse_selection (); void reverse_selection ();
void edit_envelope (); void edit_envelope ();
@ -1969,6 +1972,8 @@ class Editor : public PublicEditor
void fast_update_strips (); void fast_update_strips ();
bool meters_running; bool meters_running;
void select_next_route ();
void select_prev_route ();
}; };
#endif /* __ardour_editor_h__ */ #endif /* __ardour_editor_h__ */

View file

@ -149,6 +149,12 @@ Editor::register_actions ()
ActionManager::session_sensitive_actions.push_back (act); 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)); 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); 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)); 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); ActionManager::session_sensitive_actions.push_back (act);

View file

@ -135,6 +135,11 @@ Editor::add_new_location (Location *location)
newpair.second = lam; newpair.second = lam;
location_markers.insert (newpair); location_markers.insert (newpair);
if (select_new_marker && location->is_mark()) {
selection->set (lam->start);
select_new_marker = false;
}
} }
void void

View file

@ -1508,6 +1508,8 @@ Editor::add_location_from_playhead_cursor ()
nframes_t where = session->audible_frame(); nframes_t where = session->audible_frame();
select_new_marker = true;
session->locations()->next_available_name(markername,"mark"); session->locations()->next_available_name(markername,"mark");
Location *location = new Location (where, where, markername, Location::IsMark); Location *location = new Location (where, where, markername, Location::IsMark);
session->begin_reversible_command (_("add marker")); session->begin_reversible_command (_("add marker"));
@ -4192,3 +4194,56 @@ Editor::trim_region (bool front)
} }
commit_reversible_command (); commit_reversible_command ();
} }
struct EditorOrderRouteSorter {
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> 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;
}
}
}

View file

@ -38,6 +38,7 @@
#include "ardour_ui.h" #include "ardour_ui.h"
#include "gui_thread.h" #include "gui_thread.h"
#include "actions.h" #include "actions.h"
#include "region_view.h"
#include "utils.h" #include "utils.h"
#include "i18n.h" #include "i18n.h"
@ -632,3 +633,30 @@ Editor::region_list_selection_filter (const RefPtr<TreeModel>& model, const Tree
return true; return true;
} }
void
Editor::region_name_edit (const Glib::ustring& path, const Glib::ustring& new_text)
{
boost::shared_ptr<Region> 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<RegionView*> equivalents;
get_regions_corresponding_to (region, equivalents);
for (vector<RegionView*>::iterator i = equivalents.begin(); i != equivalents.end(); ++i) {
if (new_text != (*i)->region()->name()) {
(*i)->region()->set_name (new_text);
}
}
}
}

View file

@ -558,40 +558,18 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
return commit; return commit;
} }
void void
Editor::set_selected_regionview_from_region_list (boost::shared_ptr<Region> region, Selection::Operation op) Editor::set_selected_regionview_from_region_list (boost::shared_ptr<Region> region, Selection::Operation op)
{ {
vector<RegionView*> all_equivalent_regions; vector<RegionView*> all_equivalent_regions;
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { get_regions_corresponding_to (region, all_equivalent_regions);
RouteTimeAxisView* tatv; if (all_equivalent_regions.empty()) {
return;
if ((tatv = dynamic_cast<RouteTimeAxisView*> (*i)) != 0) {
boost::shared_ptr<Playlist> pl;
vector<boost::shared_ptr<Region> > results;
RegionView* marv;
boost::shared_ptr<Diskstream> ds;
if ((ds = tatv->get_diskstream()) == 0) {
/* bus */
continue;
}
if ((pl = (ds->playlist())) != 0) {
pl->get_region_list_equivalent_regions (region, results);
}
for (vector<boost::shared_ptr<Region> >::iterator ir = results.begin(); ir != results.end(); ++ir) {
if ((marv = tatv->view()->find_view (*ir)) != 0) {
all_equivalent_regions.push_back (marv);
}
}
}
} }
switch (op) { switch (op) {
case Selection::Toggle: case Selection::Toggle:
/* XXX this is not correct */ /* XXX this is not correct */

View file

@ -38,6 +38,7 @@
#include <ardour/audioengine.h> #include <ardour/audioengine.h>
#include <ardour/gdither.h> #include <ardour/gdither.h>
#include <ardour/utils.h> #include <ardour/utils.h>
#include <ardour/profile.h>
#include "export_dialog.h" #include "export_dialog.h"
#include "ardour_ui.h" #include "ardour_ui.h"
@ -318,30 +319,52 @@ ExportDialog::ExportDialog(PublicEditor& e)
format_table.set_col_spacings (5); format_table.set_col_spacings (5);
format_table.set_row_spacings (5); format_table.set_row_spacings (5);
format_table.attach (channel_count_label, 0, 1, 0, 1); int row = 0;
format_table.attach (channel_count_combo, 1, 2, 0, 1);
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_label, 0, 1, row, row+1);
format_table.attach (header_format_combo, 1, 2, 1, 2); format_table.attach (header_format_combo, 1, 2, row, row+1);
format_table.attach (bitdepth_format_label, 0, 1, 2, 3); row++;
format_table.attach (bitdepth_format_combo, 1, 2, 2, 3);
format_table.attach (endian_format_label, 0, 1, 3, 4); format_table.attach (bitdepth_format_label, 0, 1, row, row+1);
format_table.attach (endian_format_combo, 1, 2, 3, 4); format_table.attach (bitdepth_format_combo, 1, 2, row, row+1);
format_table.attach (sample_rate_label, 0, 1, 4, 5); row++;
format_table.attach (sample_rate_combo, 1, 2, 4, 5);
format_table.attach (src_quality_label, 0, 1, 5, 6); if (!Profile->get_sae()) {
format_table.attach (src_quality_combo, 1, 2, 5, 6); 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 (sample_rate_label, 0, 1, row, row+1);
format_table.attach (dither_type_combo, 1, 2, 6, 7); format_table.attach (sample_rate_combo, 1, 2, row, row+1);
format_table.attach (cue_file_label, 0, 1, 7, 8); row++;
format_table.attach (cue_file_combo, 1, 2, 7, 8);
format_table.attach (cuefile_only_checkbox, 0, 2, 8, 9); 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"); file_entry.set_name ("ExportFileDisplay");
@ -918,7 +941,7 @@ ExportDialog::do_export ()
return; return;
} }
if (export_cd_markers_allowed) { if (!Profile->get_sae() && export_cd_markers_allowed) {
if (cue_file_combo.get_active_text () != _("None")) { if (cue_file_combo.get_active_text () != _("None")) {
do_export_cd_markers (file_entry.get_text(), cue_file_combo.get_active_text ()); 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 = 0;
spec.format |= sndfile_header_format_from_string (header_format_combo.get_active_text ()); spec.format |= sndfile_header_format_from_string (header_format_combo.get_active_text ());
if ((spec.format & SF_FORMAT_WAV) == 0) { if (!Profile->get_sae()) {
/* RIFF/WAV specifies endianess */ if ((spec.format & SF_FORMAT_WAV) == 0) {
spec.format |= sndfile_endian_format_from_string (endian_format_combo.get_active_text ()); /* 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 ()); 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(); spec.sample_rate = session->frame_rate();
} }
string src_str = src_quality_combo.get_active_text(); if (Profile->get_sae()) {
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; 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(); string dither_str = dither_type_combo.get_active_text();

View file

@ -42,6 +42,7 @@
#include <ardour/panner.h> #include <ardour/panner.h>
#include <ardour/send.h> #include <ardour/send.h>
#include <ardour/insert.h> #include <ardour/insert.h>
#include <ardour/profile.h>
#include <ardour/ladspa_plugin.h> #include <ardour/ladspa_plugin.h>
#include <ardour/connection.h> #include <ardour/connection.h>
#include <ardour/session_connection.h> #include <ardour/session_connection.h>
@ -992,7 +993,9 @@ MixerStrip::build_route_ops_menu ()
build_remote_control_menu (); build_remote_control_menu ();
items.push_back (SeparatorElem()); 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 (SeparatorElem());
items.push_back (MenuElem (_("Remove"), mem_fun(*this, &RouteUI::remove_this_route))); items.push_back (MenuElem (_("Remove"), mem_fun(*this, &RouteUI::remove_this_route)));

View file

@ -50,6 +50,7 @@
#include <ardour/session.h> #include <ardour/session.h>
#include <ardour/session_playlist.h> #include <ardour/session_playlist.h>
#include <ardour/utils.h> #include <ardour/utils.h>
#include <ardour/profile.h>
#include "ardour_ui.h" #include "ardour_ui.h"
#include "route_time_axis.h" #include "route_time_axis.h"
@ -416,7 +417,9 @@ RouteTimeAxisView::build_display_menu ()
items.push_back (SeparatorElem()); items.push_back (SeparatorElem());
build_remote_control_menu (); 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 (); build_automation_action_menu ();
items.push_back (MenuElem (_("Automation"), *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) if (get_diskstream()->alignment_style() == CaptureTime)
align_capture_item->set_active(); align_capture_item->set_active();
items.push_back (MenuElem (_("Alignment"), *alignment_menu)); if (!Profile->get_sae()) {
items.push_back (MenuElem (_("Alignment"), *alignment_menu));
get_diskstream()->AlignmentStyleChanged.connect ( get_diskstream()->AlignmentStyleChanged.connect (mem_fun(*this, &RouteTimeAxisView::align_style_changed));
mem_fun(*this, &RouteTimeAxisView::align_style_changed)); }
RadioMenuItem::Group mode_group; RadioMenuItem::Group mode_group;
items.push_back (RadioMenuElem (mode_group, _("Normal mode"), items.push_back (RadioMenuElem (mode_group, _("Normal mode"),

View file

@ -28,7 +28,7 @@ using std::string;
// Use this define when initializing arrarys for use in sndfile_*_format() // Use this define when initializing arrarys for use in sndfile_*_format()
#define SNDFILE_STR_LENGTH 32 #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_header_formats_strings[SNDFILE_HEADER_FORMATS+1];
extern const char * const sndfile_file_endings_strings[SNDFILE_HEADER_FORMATS+1]; extern const char * const sndfile_file_endings_strings[SNDFILE_HEADER_FORMATS+1];

View file

@ -149,8 +149,19 @@ Auditioner::audition_region (boost::shared_ptr<Region> region)
_panner->reset (n_outputs(), _diskstream->n_channels()); _panner->reset (n_outputs(), _diskstream->n_channels());
length = the_region->length(); 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); g_atomic_int_set (&_active, 1);
} }

View file

@ -33,33 +33,27 @@ using namespace std;
const char * const sndfile_header_formats_strings[SNDFILE_HEADER_FORMATS+1] = { const char * const sndfile_header_formats_strings[SNDFILE_HEADER_FORMATS+1] = {
N_("WAV"), N_("WAV"),
N_("AIFF"), N_("AIFF"),
N_("raw (no header)"), N_("CAF"),
N_("PAF (Ensoniq Paris)"),
N_("AU (Sun/NeXT)"),
N_("IRCAM"),
N_("W64 (64 bit WAV)"), N_("W64 (64 bit WAV)"),
N_("raw (no header)"),
0 0
}; };
const char* const sndfile_file_endings_strings[SNDFILE_HEADER_FORMATS+1] = { const char* const sndfile_file_endings_strings[SNDFILE_HEADER_FORMATS+1] = {
N_(".wav"), N_(".wav"),
N_(".aiff"), N_(".aiff"),
N_(".raw"), N_(".caf"),
N_(".paf"),
N_(".au"),
N_(".ircam"),
N_(".w64"), N_(".w64"),
N_(".raw"),
0 0
}; };
int sndfile_header_formats[SNDFILE_HEADER_FORMATS] = { int sndfile_header_formats[SNDFILE_HEADER_FORMATS] = {
SF_FORMAT_WAV, SF_FORMAT_WAV,
SF_FORMAT_AIFF, SF_FORMAT_AIFF,
SF_FORMAT_RAW, SF_FORMAT_CAF,
SF_FORMAT_PAF, SF_FORMAT_W64,
SF_FORMAT_AU, SF_FORMAT_RAW
SF_FORMAT_IRCAM,
SF_FORMAT_W64
}; };
const char * const sndfile_bitdepth_formats_strings[SNDFILE_BITDEPTH_FORMATS+1] = { const char * const sndfile_bitdepth_formats_strings[SNDFILE_BITDEPTH_FORMATS+1] = {