diff options
66 files changed, 255 insertions, 4024 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index f5f4c62dac..d039f67c0e 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -60,7 +60,6 @@ AddRouteDialog::AddRouteDialog (Session* s) set_session (s); set_name ("AddRouteDialog"); - set_position (Gtk::WIN_POS_MOUSE); set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); diff --git a/gtk2_ardour/add_video_dialog.cc b/gtk2_ardour/add_video_dialog.cc index 395e16142c..a005b74467 100644 --- a/gtk2_ardour/add_video_dialog.cc +++ b/gtk2_ardour/add_video_dialog.cc @@ -68,7 +68,6 @@ AddVideoDialog::AddVideoDialog (Session* s) { set_session (s); set_name ("AddVideoDialog"); - set_position (Gtk::WIN_POS_MOUSE); set_modal (true); set_skip_taskbar_hint (true); set_resizable (true); diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc index c0e1708781..87b48d986a 100644 --- a/gtk2_ardour/ardour_dialog.cc +++ b/gtk2_ardour/ardour_dialog.cc @@ -34,12 +34,15 @@ sigc::signal<void> ArdourDialog::CloseAllDialogs; ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator) : Dialog (title, modal, use_seperator) + , _splash_pushed (false) { init (); + set_position (Gtk::WIN_POS_MOUSE); } ArdourDialog::ArdourDialog (Gtk::Window& parent, string title, bool modal, bool use_seperator) : Dialog (title, parent, modal, use_seperator) + , _splash_pushed (false) { init (); set_position (Gtk::WIN_POS_CENTER_ON_PARENT); @@ -47,6 +50,13 @@ ArdourDialog::ArdourDialog (Gtk::Window& parent, string title, bool modal, bool ArdourDialog::~ArdourDialog () { + if (_splash_pushed) { + Splash* spl = Splash::instance(); + + if (spl) { + spl->pop_front(); + } + } } bool @@ -73,15 +83,16 @@ ArdourDialog::on_unmap () void ArdourDialog::on_show () { + Dialog::on_show (); + // never allow the splash screen to obscure any dialog Splash* spl = Splash::instance(); - if (spl) { + if (spl && spl->is_visible()) { spl->pop_back_for (*this); + _splash_pushed = true; } - - Dialog::on_show (); } void diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h index 4f53662c23..1008f63000 100644 --- a/gtk2_ardour/ardour_dialog.h +++ b/gtk2_ardour/ardour_dialog.h @@ -46,6 +46,7 @@ class ArdourDialog : public Gtk::Dialog, public ARDOUR::SessionHandlePtr static void close_all_dialogs () { CloseAllDialogs(); } private: + bool _splash_pushed; void init (); static sigc::signal<void> CloseAllDialogs; diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index eebd35aefb..c138fb1567 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -933,7 +933,6 @@ ARDOUR_UI::ask_about_saving_session (const vector<string>& actions) window.get_vbox()->pack_start (dhbox); window.set_name (_("Prompter")); - window.set_position (Gtk::WIN_POS_MOUSE); window.set_modal (true); window.set_resizable (false); @@ -1367,8 +1366,6 @@ ARDOUR_UI::open_recent_session () while (true) { - session_selector_window->set_position (WIN_POS_MOUSE); - ResponseType r = (ResponseType) session_selector_window->run (); switch (r) { @@ -3246,7 +3243,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window) if (add_route_dialog == 0) { add_route_dialog = new AddRouteDialog (_session); - add_route_dialog->set_position (WIN_POS_MOUSE); if (float_window) { add_route_dialog->set_transient_for (*float_window); } @@ -3771,12 +3767,14 @@ audio may be played at the wrong sample rate.\n"), desired, PROGRAM_NAME, actual image->show(); hbox->show(); - switch (dialog.run ()) { + switch (dialog.run()) { case RESPONSE_ACCEPT: return 0; default: - return 1; + break; } + + return 1; } diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 66335bb55b..3d3dacd868 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -142,17 +142,6 @@ ARDOUR_UI::install_actions () sigc::mem_fun (*editor, &PublicEditor::export_video)); ActionManager::session_sensitive_actions.push_back (act); -#ifdef WITH_CMT - - std::string anicomp_file_path; - - if (PBD::find_file_in_search_path (Glib::getenv("PATH"), "AniComp", anicomp_file_path)) { - act = ActionManager::register_action (main_actions, X_("aniConnect"), _("Connect"), (sigc::mem_fun (*editor, &PublicEditor::connect_to_image_compositor))); - ActionManager::session_sensitive_actions.push_back (act); - } - -#endif - act = ActionManager::register_action (main_actions, X_("Snapshot"), _("Snapshot..."), sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::snapshot_session), false)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::write_sensitive_actions.push_back (act); diff --git a/gtk2_ardour/ardour_window.cc b/gtk2_ardour/ardour_window.cc index 616cfbcb66..6330ecd6ac 100644 --- a/gtk2_ardour/ardour_window.cc +++ b/gtk2_ardour/ardour_window.cc @@ -35,6 +35,7 @@ ArdourWindow::ArdourWindow (string title) { set_title (title); init (); + set_position (Gtk::WIN_POS_MOUSE); } ArdourWindow::ArdourWindow (Gtk::Window& parent, string /*title*/) @@ -75,5 +76,15 @@ void ArdourWindow::init () { set_border_width (10); + + /* ArdourWindows are not dialogs (they have no "OK" or "Close" button) but + they should be considered part of the same "window level" as a dialog. This + works on X11 and Quartz, in that: + + (a) utility & dialog windows are considered to be part of the same level + (b) they will float above normal windows without any particular effort + */ + + set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY); } diff --git a/gtk2_ardour/au_pluginui.h b/gtk2_ardour/au_pluginui.h index 6f90480457..424d81e901 100644 --- a/gtk2_ardour/au_pluginui.h +++ b/gtk2_ardour/au_pluginui.h @@ -76,9 +76,6 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox void lower_box_realized (); void cocoa_view_resized (); void on_realize (); - bool on_map_event (GdkEventAny*); - bool on_focus_in_event (GdkEventFocus*); - bool on_focus_out_event (GdkEventFocus*); void forward_key_event (GdkEventKey*); bool on_window_show (const std::string& /*title*/); @@ -93,7 +90,7 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox int prefwidth; Gtk::HBox top_box; - Gtk::EventBox low_box; + Gtk::HBox low_box; Gtk::VBox vpacker; Gtk::Label automation_mode_label; Gtk::ComboBoxText automation_mode_selector; @@ -105,6 +102,7 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox NSWindow* cocoa_window; NSView* au_view; + NSRect last_au_frame; /* Carbon */ diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm index f394e305c8..7bebcee84f 100644 --- a/gtk2_ardour/au_pluginui.mm +++ b/gtk2_ardour/au_pluginui.mm @@ -1,5 +1,3 @@ -#include <gtkmm/stock.h> - #undef Marker #define Marker FuckYouAppleAndYourLackOfNameSpaces @@ -50,6 +48,26 @@ static const gchar* _automation_mode_strings[] = { 0 }; +static void +dump_view_tree (NSView* view, int depth) +{ + NSArray* subviews = [view subviews]; + unsigned long cnt = [subviews count]; + + for (int d = 0; d < depth; d++) { + cerr << '\t'; + } + NSRect frame = [view frame]; + cerr << " view @ " << frame.origin.x << ", " << frame.origin.y + << ' ' << frame.size.width << " x " << frame.size.height + << endl; + + for (unsigned long i = 0; i < cnt; ++i) { + NSView* subview = [subviews objectAtIndex:i]; + dump_view_tree (subview, depth+1); + } +} + @implementation NotificationObject - (NotificationObject*) initWithPluginUI: (AUPluginUI*) apluginui andCocoaParent: (NSWindow*) cp andTopLevelParent: (NSWindow*) tlp @@ -170,13 +188,16 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert) top_box.show (); low_box.show (); - _activating_from_app = false; cocoa_parent = 0; - _notify = 0; cocoa_window = 0; - carbon_window = 0; + +#ifdef WITH_CARBBON + _activating_from_app = false; + _notify = 0; au_view = 0; editView = 0; + carbon_window = 0; +#endif /* prefer cocoa, fall back to cocoa, but use carbon if its there */ @@ -227,6 +248,7 @@ AUPluginUI::~AUPluginUI () bool AUPluginUI::test_carbon_view_support () { +#ifdef WITH_CARBON bool ret = false; carbon_descriptor.componentType = kAudioUnitCarbonViewComponentType; @@ -253,6 +275,9 @@ AUPluginUI::test_carbon_view_support () } return ret; +#else + return false; +#endif } bool @@ -282,7 +307,7 @@ AUPluginUI::plugin_class_valid (Class pluginClass) int AUPluginUI::create_cocoa_view () { - BOOL wasAbleToLoadCustomView = NO; + bool wasAbleToLoadCustomView = false; AudioUnitCocoaViewInfo* cocoaViewInfo = NULL; UInt32 numberOfClasses = 0; UInt32 dataSize; @@ -380,7 +405,7 @@ AUPluginUI::create_cocoa_view () free (cocoaViewInfo); } - wasAbleToLoadCustomView = YES; + wasAbleToLoadCustomView = true; } } @@ -390,14 +415,16 @@ AUPluginUI::create_cocoa_view () au->get_au())); au_view = [[AUGenericView alloc] initWithAudioUnit:*au->get_au()]; DEBUG_TRACE (DEBUG::AudioUnits, string_compose ("view created @ %1\n", au_view)); - [(AUGenericView *)au_view setShowsExpertParameters:YES]; + [(AUGenericView *)au_view setShowsExpertParameters:1]; } // Get the initial size of the new AU View's frame NSRect rect = [au_view frame]; + prefheight = rect.size.height; + prefwidth = rect.size.width; low_box.set_size_request (rect.size.width, rect.size.height); - + return 0; } @@ -406,14 +433,11 @@ AUPluginUI::cocoa_view_resized () { GtkRequisition topsize = top_box.size_request (); NSWindow* window = get_nswindow (); - NSSize oldContentSize= [window contentRectForFrameRect:[window frame]].size; - NSSize newContentSize= [au_view frame].size; NSRect windowFrame= [window frame]; - - oldContentSize.height -= topsize.height; + NSRect new_frame = [au_view frame]; - float dy = oldContentSize.height - newContentSize.height; - float dx = oldContentSize.width - newContentSize.width; + float dy = last_au_frame.size.height - new_frame.size.height; + float dx = last_au_frame.size.width - new_frame.size.width; windowFrame.origin.y += dy; windowFrame.origin.x += dx; @@ -427,12 +451,30 @@ AUPluginUI::cocoa_view_resized () NSUInteger old_auto_resize = [au_view autoresizingMask]; [au_view setAutoresizingMask:NSViewNotSizable]; - [window setFrame:windowFrame display:YES]; + [window setFrame:windowFrame display:1]; + + /* Some stupid AU Views change the origin of the original AU View + when they are resized (I'm looking at you AUSampler). If the origin + has been moved, move it back. + */ + + if (last_au_frame.origin.x != new_frame.origin.x || + last_au_frame.origin.y != new_frame.origin.y) { + new_frame.origin = last_au_frame.origin; + [au_view setFrame:new_frame]; + /* also be sure to redraw the topbox because this can + also go wrong. + */ + top_box.queue_draw (); + } + [au_view setAutoresizingMask:old_auto_resize]; [[NSNotificationCenter defaultCenter] addObserver:_notify selector:@selector(auViewResized:) name:NSViewFrameDidChangeNotification object:au_view]; + + last_au_frame = new_frame; } int @@ -526,7 +568,6 @@ AUPluginUI::activate () #ifdef WITH_CARBON ActivateWindow (carbon_window, TRUE); #endif - // [cocoa_parent makeKeyAndOrderFront:nil]; } void @@ -603,7 +644,7 @@ AUPluginUI::parent_cocoa_window () return -1; } - [win setAutodisplay:YES]; // turn of GTK stuff for this window + [win setAutodisplay:1]; // turn of GTK stuff for this window Gtk::Container* toplevel = get_toplevel(); @@ -620,7 +661,9 @@ AUPluginUI::parent_cocoa_window () NSPoint origin = { 0, a.height }; [au_view setFrameOrigin:origin]; - [view addSubview:au_view positioned:NSWindowBelow relativeTo:nil]; + [view addSubview:au_view positioned:NSWindowBelow relativeTo:nil]; + + last_au_frame = [au_view frame]; // watch for size changes of the view @@ -633,23 +676,6 @@ AUPluginUI::parent_cocoa_window () return 0; } -static void -dump_view_tree (NSView* view, int depth) -{ - NSArray* subviews = [view subviews]; - unsigned long cnt = [subviews count]; - - for (int d = 0; d < depth; d++) { - cerr << '\t'; - } - cerr << " view @ " << view << endl; - - for (unsigned long i = 0; i < cnt; ++i) { - NSView* subview = [subviews objectAtIndex:i]; - dump_view_tree (subview, depth+1); - } -} - void AUPluginUI::forward_key_event (GdkEventKey* ev) { @@ -681,7 +707,7 @@ AUPluginUI::on_realize () NSWindow* win = get_nswindow (); if (win) { - [win setShowsResizeIndicator:NO]; + [win setShowsResizeIndicator:0]; } } @@ -695,12 +721,6 @@ AUPluginUI::lower_box_realized () } } -bool -AUPluginUI::on_map_event (GdkEventAny*) -{ - return false; -} - void AUPluginUI::on_window_hide () { @@ -710,8 +730,14 @@ AUPluginUI::on_window_hide () ActivateWindow (carbon_window, FALSE); } #endif - hide_all (); + +#if 0 + NSArray* wins = [NSApp windows]; + for (uint32_t i = 0; i < [wins count]; i++) { + id win = [wins objectAtIndex:i]; + } +#endif } bool @@ -753,19 +779,4 @@ create_au_gui (boost::shared_ptr<PluginInsert> plugin_insert, VBox** box) return aup; } -bool -AUPluginUI::on_focus_in_event (GdkEventFocus*) -{ - //cerr << "au plugin focus in\n"; - //Keyboard::magic_widget_grab_focus (); - return false; -} - -bool -AUPluginUI::on_focus_out_event (GdkEventFocus*) -{ - //cerr << "au plugin focus out\n"; - //Keyboard::magic_widget_drop_focus (); - return false; -} diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc index 169c66874b..bfce754b70 100644 --- a/gtk2_ardour/audio_region_view.cc +++ b/gtk2_ardour/audio_region_view.cc @@ -1540,7 +1540,6 @@ AudioRegionView::show_region_editor () } editor->present (); - editor->set_position (Gtk::WIN_POS_MOUSE); editor->show_all(); } diff --git a/gtk2_ardour/automation_controller.h b/gtk2_ardour/automation_controller.h index 88e6d87e01..29635c8488 100644 --- a/gtk2_ardour/automation_controller.h +++ b/gtk2_ardour/automation_controller.h @@ -21,6 +21,13 @@ #ifndef __ardour_gtk_automation_controller_h__ #define __ardour_gtk_automation_controller_h__ +#ifdef YES +#undef YES +#endif +#ifdef NO +#undef NO +#endif + #include <boost/shared_ptr.hpp> #include <gtkmm.h> diff --git a/gtk2_ardour/bundle_manager.cc b/gtk2_ardour/bundle_manager.cc index e9cddbd754..c7754f69cc 100644 --- a/gtk2_ardour/bundle_manager.cc +++ b/gtk2_ardour/bundle_manager.cc @@ -115,7 +115,6 @@ BundleEditorMatrix::add_channel (boost::shared_ptr<Bundle> b, DataType t) if (b == _bundle) { NameChannelDialog d; - d.set_position (Gtk::WIN_POS_MOUSE); if (d.run () != Gtk::RESPONSE_ACCEPT) { return; @@ -162,7 +161,6 @@ void BundleEditorMatrix::rename_channel (BundleChannel bc) { NameChannelDialog d (bc.bundle, bc.channel); - d.set_position (Gtk::WIN_POS_MOUSE); if (d.run () != Gtk::RESPONSE_ACCEPT) { return; diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc index 214ba7fb06..c545a02b46 100644 --- a/gtk2_ardour/crossfade_edit.cc +++ b/gtk2_ardour/crossfade_edit.cc @@ -105,7 +105,6 @@ CrossfadeEditor::CrossfadeEditor (Session* s, boost::shared_ptr<Crossfade> xf, d set_wmclass (X_("ardour_automationedit"), PROGRAM_NAME); set_name ("CrossfadeEditWindow"); - set_position (Gtk::WIN_POS_MOUSE); add_accel_group (ActionManager::ui_manager->get_accel_group()); diff --git a/gtk2_ardour/edit_note_dialog.cc b/gtk2_ardour/edit_note_dialog.cc index 2782122dbf..3d72e080ed 100644 --- a/gtk2_ardour/edit_note_dialog.cc +++ b/gtk2_ardour/edit_note_dialog.cc @@ -146,16 +146,13 @@ EditNoteDialog::EditNoteDialog (MidiRegionView* rv, set<NoteBase*> n) add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); add_button (Gtk::Stock::APPLY, Gtk::RESPONSE_ACCEPT); set_default_response (Gtk::RESPONSE_ACCEPT); - - show_all (); } -int -EditNoteDialog::run () +void +EditNoteDialog::done (int r) { - int const r = Dialog::run (); if (r != RESPONSE_ACCEPT) { - return r; + return; } /* These calls mean that if a value is entered using the keyboard @@ -227,6 +224,4 @@ EditNoteDialog::run () for (set<NoteBase*>::iterator i = _events.begin(); i != _events.end(); ++i) { (*i)->set_selected ((*i)->selected()); // change color } - - return r; } diff --git a/gtk2_ardour/edit_note_dialog.h b/gtk2_ardour/edit_note_dialog.h index 11fd70a91c..59e53722a0 100644 --- a/gtk2_ardour/edit_note_dialog.h +++ b/gtk2_ardour/edit_note_dialog.h @@ -28,11 +28,11 @@ class NoteBase; class EditNoteDialog : public ArdourDialog { public: - EditNoteDialog (MidiRegionView *, std::set<NoteBase*>); + EditNoteDialog (MidiRegionView* rv, set<NoteBase*> n); - int run (); - -private: + void done (int); + + private: MidiRegionView* _region_view; std::set<NoteBase*> _events; Gtk::SpinButton _channel; diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index bad7fb06ca..33f23951b8 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -119,10 +119,6 @@ #include "i18n.h" -#ifdef WITH_CMT -#include "imageframe_socket_handler.h" -#endif - using namespace std; using namespace ARDOUR; using namespace PBD; @@ -270,10 +266,6 @@ Editor::Editor () , _toolbar_viewport (*manage (new Gtk::Adjustment (0, 0, 1e10)), *manage (new Gtk::Adjustment (0, 0, 1e10))) -#ifdef WITH_CMT - , image_socket_listener(0) -#endif - /* nudge */ , nudge_clock (new AudioClock (X_("nudge"), false, X_("nudge"), true, false, true)) @@ -768,18 +760,6 @@ Editor::Editor () Editor::~Editor() { -#ifdef WITH_CMT - if(image_socket_listener) { - if(image_socket_listener->is_connected()) - { - image_socket_listener->close_connection() ; - } - - delete image_socket_listener ; - image_socket_listener = 0 ; - } -#endif - delete button_bindings; delete _routes; delete _route_groups; @@ -3333,8 +3313,6 @@ Editor::duplicate_range (bool with_dialog) win.add_button (_("Duplicate"), RESPONSE_ACCEPT); win.set_default_response (RESPONSE_ACCEPT); - win.set_position (WIN_POS_MOUSE); - spinner.grab_focus (); switch (win.run ()) { @@ -5417,7 +5395,6 @@ Editor::change_region_layering_order (bool from_context_menu) if (layering_order_editor == 0) { layering_order_editor = new RegionLayeringOrderEditor (*this); - layering_order_editor->set_position (WIN_POS_MOUSE); } layering_order_editor->set_context (clicked_routeview->name(), _session, clicked_routeview, pl, position); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index f9bbd6ef1a..0647b17089 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -97,14 +97,25 @@ class BundleManager; class ButtonJoiner; class ControlPoint; class DragManager; +class EditNoteDialog; +class EditorCursor; +class EditorGroupTabs; +class EditorLocations; +class EditorRegions; +class EditorRoutes; +class EditorRouteGroups; +class EditorSnapshots; +class EditorSummary; class GroupedButtons; class GUIObjectState; class Marker; class MidiRegionView; class MixerStrip; +class MouseCursors; class NoteBase; class PlaylistSelector; class PluginSelector; +class ProgressReporter; class RhythmFerret; class Selection; class SoundFileOmega; @@ -113,29 +124,9 @@ class TempoLines; class TimeAxisView; class TimeFXDialog; class TimeSelection; -class EditorGroupTabs; -class EditorRoutes; -class EditorRouteGroups; -class EditorRegions; -class EditorLocations; -class EditorSnapshots; -class EditorSummary; class RegionLayeringOrderEditor; -class ProgressReporter; -class EditorCursor; -class MouseCursors; class VerboseCursor; -/* <CMT Additions> */ -class ImageFrameView; -class ImageFrameTimeAxisView; -class ImageFrameTimeAxis; -class MarkerTimeAxis ; -class MarkerView ; -class ImageFrameSocketHandler ; -class TimeAxisViewItem ; -/* </CMT Additions> */ - class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr, public Gtkmm2ext::VisibilityTracker { public: @@ -1506,7 +1497,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void edit_tempo_marker (ArdourCanvas::Item*); void edit_meter_marker (ArdourCanvas::Item*); void edit_control_point (ArdourCanvas::Item*); - void edit_notes (std::set<NoteBase*> const & s); + void edit_notes (TimeAxisViewItem&); void marker_menu_edit (); void marker_menu_remove (); @@ -2110,7 +2101,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool _following_mixer_selection; int time_fx (ARDOUR::RegionList&, float val, bool pitching); - + void note_edit_done (int, EditNoteDialog*); void toggle_sound_midi_notes (); /** Flag for a bit of a hack wrt control point selection; see set_selected_control_point_from_click */ diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index abc6ea96ad..4acd04a318 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -79,10 +79,10 @@ Editor::track_canvas_scroll (GdkEventScroll* ev) temporal_zoom_step (false); zoom_focus = temp_focus; return true; - } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) { + } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { direction = GDK_SCROLL_LEFT; goto retry; - } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { + } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) { if (!current_stepping_trackview) { step_timeout = Glib::signal_timeout().connect (sigc::mem_fun(*this, &Editor::track_height_step_timeout), 500); std::pair<TimeAxisView*, int> const p = trackview_by_y_position (event_coords.y); @@ -108,10 +108,10 @@ Editor::track_canvas_scroll (GdkEventScroll* ev) temporal_zoom_step (true); zoom_focus = temp_focus; return true; - } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) { + } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { direction = GDK_SCROLL_RIGHT; goto retry; - } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { + } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) { if (!current_stepping_trackview) { step_timeout = Glib::signal_timeout().connect (sigc::mem_fun(*this, &Editor::track_height_step_timeout), 500); std::pair<TimeAxisView*, int> const p = trackview_by_y_position (event_coords.y); diff --git a/gtk2_ardour/editor_imageframe.cc b/gtk2_ardour/editor_imageframe.cc deleted file mode 100644 index e36250f8b5..0000000000 --- a/gtk2_ardour/editor_imageframe.cc +++ /dev/null @@ -1,1113 +0,0 @@ -/* - Copyright (C) 2000-2003 Paul Davis - Written by Colin Law, CMT, Glasgow - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#include "imageframe_view.h" -#include "imageframe_time_axis.h" -#include "imageframe_time_axis_view.h" -#include "imageframe_time_axis_group.h" -#include "marker_time_axis_view.h" -#include "marker_time_axis.h" -#include "marker_view.h" -#include "editor.h" -#include "i18n.h" - -#include <gtkmm2ext/gtk_ui.h> -#include "pbd/error.h" - -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <unistd.h> -#include <arpa/inet.h> - -#include "imageframe_socket_handler.h" -#include "ardour_image_compositor_socket.h" -#include "public_editor.h" -#include "gui_thread.h" - -using namespace Gtk; -using namespace PBD; -using namespace std; - -TimeAxisView* -Editor::get_named_time_axis(const string & name) -{ - TimeAxisView* tav = 0 ; - - for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i) - { - if (((TimeAxisView*)*i)->name() == name) - { - tav = ((TimeAxisView*)*i) ; - break ; - } - } - return(tav) ; -} - -/* <CMT Additions file="editor.cc"> */ - -void -Editor::add_imageframe_time_axis(const string & track_name, void* src) -{ - // check for duplicate name - if(get_named_time_axis(track_name)) - { - warning << "Repeated time axis name" << std::endl ; - } - else - { - Gtkmm2ext::UI::instance()->call_slot (boost::bind (&Editor::handle_new_imageframe_time_axis_view, this,track_name, src)); - } -} - -void -Editor::connect_to_image_compositor() -{ - if(image_socket_listener == 0) - { - image_socket_listener = ImageFrameSocketHandler::create_instance(*this) ; - } - - if(image_socket_listener->is_connected() == true) - { - return ; - } - - // XXX should really put this somewhere safe - const char * host_ip = "127.0.0.1" ; - - bool retcode = image_socket_listener->connect(host_ip, ardourvis::DEFAULT_PORT) ; - - if(retcode == false) - { - // XXX need to get some return status here - warning << "Image Compositor Connection attempt failed" << std::endl ; - return ; - } - - // add the socket to the gui loop, and keep the retuned tag value of the input - gint tag = gdk_input_add(image_socket_listener->get_socket_descriptor(), GDK_INPUT_READ,ImageFrameSocketHandler::image_socket_callback,image_socket_listener) ; - image_socket_listener->set_gdk_input_tag(tag) ; -} - -void -Editor::scroll_timeaxis_to_imageframe_item(const TimeAxisViewItem* item) -{ - // GTK2FIX - //framepos_t offset = static_cast<framepos_t>(frames_per_unit * (edit_hscroll_slider_width/2)) ; - framepos_t offset = 0; - - framepos_t x_pos = 0 ; - - if (item->get_position() < offset) { - x_pos = 0 ; - } else { - x_pos = item->get_position() - offset + (item->get_duration() / 2); - } - - reset_x_origin (x_pos); -} - -void -Editor::add_imageframe_marker_time_axis(const string & track_name, TimeAxisView* marked_track, void* src) -{ - // Can we only sigc::bind 2 data Items? - // @todo we really want to sigc::bind the src attribute too, for the moment tracks can only be added remotely, - // so this is not too much of an issue, however will need to be looked at again - Gtkmm2ext::UI::instance()->call_slot (boost::bind (&Editor::handle_new_imageframe_marker_time_axis_view, this, track_name, marked_track)); -} - -void -Editor::popup_imageframe_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_item) -{ - ImageFrameTimeAxis* ifta = dynamic_cast<ImageFrameTimeAxis*>(clicked_axisview) ; - - if(ifta) - { - ImageFrameTimeAxisGroup* iftag = ifta->get_view()->get_selected_imageframe_group() ; - - if(iftag) - { - ImageFrameView* selected_ifv = ifta->get_view()->get_selected_imageframe_view() ; - ifta->popup_imageframe_edit_menu(button, time, selected_ifv, with_item) ; - } - } -} - -void -Editor::popup_marker_time_axis_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_item) -{ - MarkerTimeAxis* mta = dynamic_cast<MarkerTimeAxis*>(clicked_axisview) ; - - if(mta) - { - MarkerView* selected_mv = mta->get_view()->get_selected_time_axis_item() ; - if(selected_mv) - { - mta->popup_marker_time_axis_edit_menu(button,time, selected_mv, with_item) ; - } - } -} -/* </CMT Additions file="editor.cc"> */ - -/* <CMT Additions file="editor_canvas_events.cc"> */ -bool -Editor::canvas_imageframe_item_view_event (GdkEvent *event, ArdourCanvas::Item* item, ImageFrameView *ifv) -{ - gint ret = FALSE ; - ImageFrameTimeAxisGroup* iftag = 0 ; - - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = &ifv->get_time_axis_view(); - iftag = ifv->get_time_axis_group() ; - dynamic_cast<ImageFrameTimeAxis*>(clicked_axisview)->get_view()->set_selected_imageframe_view(iftag, ifv); - ret = button_press_handler (item, event, ImageFrameItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler (item, event, ImageFrameItem) ; - break ; - case GDK_MOTION_NOTIFY: - ret = motion_handler (item, event, ImageFrameItem) ; - break ; - default: - break ; - } - return(ret) ; -} - -bool -Editor::canvas_imageframe_start_handle_event (GdkEvent *event, ArdourCanvas::Item* item, ImageFrameView *ifv) -{ - gint ret = FALSE ; - ImageFrameTimeAxisGroup* iftag = 0 ; - - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = &ifv->get_time_axis_view() ; - iftag = ifv->get_time_axis_group() ; - dynamic_cast<ImageFrameTimeAxis*>(clicked_axisview)->get_view()->set_selected_imageframe_view(iftag, ifv); - - ret = button_press_handler (item, event, ImageFrameHandleStartItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler (item, event, ImageFrameHandleStartItem) ; - break; - case GDK_MOTION_NOTIFY: - ret = motion_handler (item, event, ImageFrameHandleStartItem) ; - break ; - case GDK_ENTER_NOTIFY: - ret = enter_handler (item, event, ImageFrameHandleStartItem) ; - break ; - case GDK_LEAVE_NOTIFY: - ret = leave_handler (item, event, ImageFrameHandleStartItem) ; - break ; - default: - break ; - } - return(ret) ; -} - -bool -Editor::canvas_imageframe_end_handle_event (GdkEvent *event, ArdourCanvas::Item* item, ImageFrameView *ifv) -{ - gint ret = FALSE ; - ImageFrameTimeAxisGroup* iftag = 0 ; - - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = &ifv->get_time_axis_view() ; - iftag = ifv->get_time_axis_group() ; - dynamic_cast<ImageFrameTimeAxis*>(clicked_axisview)->get_view()->set_selected_imageframe_view(iftag, ifv); - - ret = button_press_handler (item, event, ImageFrameHandleEndItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler (item, event, ImageFrameHandleEndItem) ; - break ; - case GDK_MOTION_NOTIFY: - ret = motion_handler (item, event, ImageFrameHandleEndItem) ; - break ; - case GDK_ENTER_NOTIFY: - ret = enter_handler (item, event, ImageFrameHandleEndItem) ; - break ; - case GDK_LEAVE_NOTIFY: - ret = leave_handler (item, event, ImageFrameHandleEndItem); - break ; - default: - break ; - } - return(ret) ; -} - -bool -Editor::canvas_imageframe_view_event (GdkEvent* event, ArdourCanvas::Item* item, ImageFrameTimeAxis* ifta) -{ - gint ret = FALSE ; - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = ifta ; - ret = button_press_handler (item, event, ImageFrameTimeAxisItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler (item, event, ImageFrameTimeAxisItem) ; - break ; - case GDK_MOTION_NOTIFY: - break ; - default: - break ; - } - return(ret) ; -} - -bool -Editor::canvas_marker_time_axis_view_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerTimeAxis* mta) -{ - gint ret = FALSE ; - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = mta ; - ret = button_press_handler(item, event, MarkerTimeAxisItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler(item, event, MarkerTimeAxisItem) ; - break ; - case GDK_MOTION_NOTIFY: - default: - break ; - } - return(ret) ; -} - - -bool -Editor::canvas_markerview_item_view_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerView* mta) -{ - gint ret = FALSE ; - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = &mta->get_time_axis_view() ; - dynamic_cast<MarkerTimeAxis*>(clicked_axisview)->get_view()->set_selected_time_axis_item(mta); - ret = button_press_handler(item, event, MarkerViewItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler(item, event, MarkerViewItem) ; - break ; - case GDK_MOTION_NOTIFY: - ret = motion_handler(item, event, MarkerViewItem) ; - break ; - default: - break ; - } - return(ret) ; -} - -bool -Editor::canvas_markerview_start_handle_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerView* mta) -{ - gint ret = FALSE ; - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = &mta->get_time_axis_view() ; - dynamic_cast<MarkerTimeAxis*>(clicked_axisview)->get_view()->set_selected_time_axis_item(mta) ; - ret = button_press_handler(item, event, MarkerViewHandleStartItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler(item, event, MarkerViewHandleStartItem) ; - break ; - case GDK_MOTION_NOTIFY: - ret = motion_handler(item, event, MarkerViewHandleStartItem) ; - break ; - case GDK_ENTER_NOTIFY: - ret = enter_handler(item, event, MarkerViewHandleStartItem) ; - break ; - case GDK_LEAVE_NOTIFY: - ret = leave_handler(item, event, MarkerViewHandleStartItem) ; - break ; - default: - break ; - } - return(ret) ; -} - -bool -Editor::canvas_markerview_end_handle_event (GdkEvent* event, ArdourCanvas::Item* item, MarkerView* mta) -{ - gint ret = FALSE ; - switch (event->type) - { - case GDK_BUTTON_PRESS: - case GDK_2BUTTON_PRESS: - case GDK_3BUTTON_PRESS: - clicked_axisview = &mta->get_time_axis_view() ; - dynamic_cast<MarkerTimeAxis*>(clicked_axisview)->get_view()->set_selected_time_axis_item(mta) ; - ret = button_press_handler(item, event, MarkerViewHandleEndItem) ; - break ; - case GDK_BUTTON_RELEASE: - ret = button_release_handler(item, event, MarkerViewHandleEndItem) ; - break ; - case GDK_MOTION_NOTIFY: - ret = motion_handler(item, event, MarkerViewHandleEndItem) ; - break ; - case GDK_ENTER_NOTIFY: - ret = enter_handler(item, event, MarkerViewHandleEndItem) ; - break ; - case GDK_LEAVE_NOTIFY: - ret = leave_handler(item, event, MarkerViewHandleEndItem) ; - break ; - default: - break ; - } - return(ret) ; -} - - -/* </CMT Additions file="editor_canvas_events.cc"> */ - - -/* - --------------------------------------------------------------------------------------------------- - --------------------------------------------------------------------------------------------------- - --------------------------------------------------------------------------------------------------- -*/ - - - -/* <CMT Additions file="editor_mouse.cc"> */ - -void -Editor::start_imageframe_grab(ArdourCanvas::Item* item, GdkEvent* event) -{ - ImageFrameView* ifv = ((ImageFrameTimeAxis*)clicked_axisview)->get_view()->get_selected_imageframe_view() ; - drag_info.copy = false ; - drag_info.item = item ; - drag_info.data = ifv ; - drag_info.motion_callback = &Editor::imageframe_drag_motion_callback; - drag_info.finished_callback = &Editor::timeaxis_item_drag_finished_callback; - drag_info.last_frame_position = ifv->get_position() ; - - drag_info.source_trackview = &ifv->get_time_axis_view() ; - drag_info.dest_trackview = drag_info.source_trackview; - - /* this is subtle. raising the regionview itself won't help, - because raise_to_top() just puts the item on the top of - its parent's stack. so, we need to put the trackview canvas_display group - on the top, since its parent is the whole canvas. - - however, this hides the measure bars within that particular trackview, - so move them to the top afterwards. - */ - - drag_info.item->raise_to_top(); - drag_info.source_trackview->canvas_display->raise_to_top(); - //time_line_group->raise_to_top(); - cursor_group->raise_to_top (); - - start_grab(event) ; - - drag_info.pointer_frame_offset = pixel_to_sample(drag_info.grab_x) - drag_info.last_frame_position; -} - - -void -Editor::start_markerview_grab(ArdourCanvas::Item* item, GdkEvent* event) -{ - MarkerView* mv = ((MarkerTimeAxis*)clicked_axisview)->get_view()->get_selected_time_axis_item() ; - drag_info.copy = false ; - drag_info.item = item ; - drag_info.data = mv ; - drag_info.motion_callback = &Editor::markerview_drag_motion_callback; - drag_info.finished_callback = &Editor::timeaxis_item_drag_finished_callback; - drag_info.last_frame_position = mv->get_position() ; - - drag_info.source_trackview = &mv->get_time_axis_view() ; - drag_info.dest_trackview = drag_info.source_trackview; - - /* this is subtle. raising the regionview itself won't help, - because raise_to_top() just puts the item on the top of - its parent's stack. so, we need to put the trackview canvas_display group - on the top, since its parent is the whole canvas. - - however, this hides the measure bars within that particular trackview, - so move them to the top afterwards. - */ - - drag_info.item->raise_to_top(); - drag_info.source_trackview->canvas_display->raise_to_top(); - //time_line_group->raise_to_top(); - cursor_group->raise_to_top (); - - start_grab(event) ; - - drag_info.pointer_frame_offset = pixel_to_sample(drag_info.grab_x) - drag_info.last_frame_position ; -} - - -void -Editor::markerview_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event) -{ - double cx, cy ; - - MarkerView* mv = reinterpret_cast<MarkerView*>(drag_info.data) ; - framepos_t pending_region_position ; - framepos_t pointer_frame ; - - pointer_frame = canvas_event_frame(event, &cx, &cy) ; - - snap_to(pointer_frame) ; - - if (pointer_frame > (framepos_t) drag_info.pointer_frame_offset) - { - pending_region_position = pointer_frame - drag_info.pointer_frame_offset ; - snap_to(pending_region_position) ; - - // we dont allow marker items to extend beyond, or in front of the marked items so - // cap the value to the marked items position and duration - if((pending_region_position + mv->get_duration()) >= ((mv->get_marked_item()->get_position()) + (mv->get_marked_item()->get_duration()))) - { - pending_region_position = (mv->get_marked_item()->get_position() + mv->get_marked_item()->get_duration()) - (mv->get_duration()) ; - } - else if(pending_region_position <= mv->get_marked_item()->get_position()) - { - pending_region_position = mv->get_marked_item()->get_position() ; - } - } - else - { - pending_region_position = mv->get_marked_item()->get_position() ; - } - - drag_info.last_frame_position = pending_region_position ; - - // we treat this as a special case, usually we want to send the identitiy of the caller - // but in this case, that would trigger our socket handler to handle the event, sending - // notification to the image compositor. This would be fine, except that we have not - // finished the drag, we therefore do not want to sent notification until we have - // completed the drag, only then do we want the image compositor notofied. - // We therefore set the caller identity to the special case of 0 - mv->set_position(pending_region_position, 0) ; - - show_verbose_time_cursor(pending_region_position) ; -} - -void -Editor::imageframe_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event) -{ - double cx, cy ; - - ImageFrameView* ifv = reinterpret_cast<ImageFrameView*>(drag_info.data) ; - - framepos_t pending_region_position; - framepos_t pointer_frame; - - pointer_frame = canvas_event_frame(event, &cx, &cy) ; - - snap_to(pointer_frame) ; - - if (pointer_frame > (framepos_t) drag_info.pointer_frame_offset) - { - pending_region_position = pointer_frame - drag_info.pointer_frame_offset ; - snap_to(pending_region_position) ; - } - else - { - pending_region_position = 0 ; - } - - drag_info.grab_x = cx; - //drag_info.last_frame_position = pending_region_position ; - drag_info.current_pointer_frame = pending_region_position ; - - // we treat this as a special case, usually we want to send the identitiy of the caller - // but in this case, that would trigger our socket handler to handle the event, sending - // notification to the image compositor. This would be fine, except that we have not - // finished the drag, we therefore do not want to sent notification until we have - // completed the drag, only then do we want the image compositor notofied. - // We therefore set the caller identity to the special case of 0 - ifv->set_position(pending_region_position, 0) ; - - show_verbose_time_cursor(pending_region_position) ; -} - -void -Editor::timeaxis_item_drag_finished_callback(ArdourCanvas::Item*, GdkEvent* event) -{ - framepos_t where ; - TimeAxisViewItem* tavi = reinterpret_cast<TimeAxisViewItem*>(drag_info.data) ; - - bool item_x_movement = (drag_info.last_frame_position != tavi->get_position()) ; - - hide_verbose_canvas_cursor() ; - - /* no x or y movement either means the regionview hasn't been moved, or has been moved - but is back in it's original position/trackview.*/ - - if(!item_x_movement && event && event->type == GDK_BUTTON_RELEASE) - { - /* No motion: either set the current region, or align the clicked region - with the current one. - */ - return; - } - - if(item_x_movement) - { - /* base the new region position on the current position of the regionview.*/ - where = drag_info.current_pointer_frame ; - - // final call to set position after the motion to tell interested parties of the new position - tavi->set_position(where, this) ; - } - else - { - //where = tavi->get_position() ; - } - -/* - //locate so user can audition the edit - if ( !session->transport_rolling() && Config->get_always_play_range()) { - locate_with_edit_preroll ( arv->region()->position() ); - } -*/ -} - - -void -Editor::imageframe_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) -{ - // get the selected item from the parent time axis - ImageFrameTimeAxis* ifta = dynamic_cast<ImageFrameTimeAxis*>(clicked_axisview) ; - if(ifta) - { - ImageFrameView* ifv = ifta->get_view()->get_selected_imageframe_view() ; - - if (ifv == 0) { - fatal << _("programming error: no ImageFrameView selected") << endmsg; - /*NOTREACHED*/ - return ; - } - - drag_info.item = ifv->get_canvas_frame() ; - drag_info.data = ifv; - drag_info.grab_x = event->motion.x; - drag_info.cumulative_x_drag = 0; - drag_info.motion_callback = &Editor::imageframe_start_handle_trim_motion ; - drag_info.finished_callback = &Editor::imageframe_start_handle_end_trim ; - - start_grab(event) ; - - show_verbose_time_cursor(ifv->get_position(), 10) ; - } -} - -void -Editor::imageframe_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) -{ - // get the selected item from the parent time axis - ImageFrameTimeAxis* ifta = dynamic_cast<ImageFrameTimeAxis*>(clicked_axisview) ; - - if(ifta) - { - ImageFrameView* ifv = ifta->get_view()->get_selected_imageframe_view() ; - - if (ifv == 0) - { - fatal << _("programming error: no ImageFrameView selected") << endmsg ; - /*NOTREACHED*/ - return ; - } - - drag_info.item = ifv->get_canvas_frame() ; - drag_info.data = ifv ; - drag_info.grab_x = event->motion.x ; - drag_info.cumulative_x_drag = 0 ; - drag_info.motion_callback = &Editor::imageframe_end_handle_trim_motion ; - drag_info.finished_callback = &Editor::imageframe_end_handle_end_trim ; - - start_grab(event, trimmer_cursor) ; - - show_verbose_time_cursor(ifv->get_position() + ifv->get_duration(), 10) ; - } -} - -void -Editor::imageframe_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) -{ - ImageFrameView* ifv = reinterpret_cast<ImageFrameView*> (drag_info.data) ; - - framepos_t start = 0 ; - framepos_t end = 0 ; - framepos_t pointer_frame = canvas_event_frame(event) ; - - // chekc th eposition of the item is not locked - if(!ifv->get_position_locked()) { - snap_to(pointer_frame) ; - - if(pointer_frame != drag_info.last_pointer_frame) { - start = ifv->get_position() ; - end = ifv->get_position() + ifv->get_duration() ; - - if (pointer_frame > end) { - start = end ; - } else { - start = pointer_frame ; - } - - // are we getting bigger or smaller? - framepos_t new_dur_val = end - start ; - - // start handle, so a smaller pointer frame increases our component size - if(pointer_frame <= drag_info.grab_frame) - { - if(ifv->get_max_duration_active() && (new_dur_val > ifv->get_max_duration())) - { - new_dur_val = ifv->get_max_duration() ; - start = end - new_dur_val ; - } - else - { - // current values are ok - } - } - else - { - if(ifv->get_min_duration_active() && (new_dur_val < ifv->get_min_duration())) - { - new_dur_val = ifv->get_min_duration() ; - start = end - new_dur_val ; - } - else - { - // current values are ok - } - } - - drag_info.last_pointer_frame = pointer_frame ; - - /* re-calculatethe duration and position of the imageframeview */ - drag_info.cumulative_x_drag = new_dur_val ; - - // we treat this as a special case, usually we want to send the identitiy of the caller - // but in this case, that would trigger our socket handler to handle the event, sending - // notification to the image compositor. This would be fine, except that we have not - // finished the drag, we therefore do not want to sent notification until we have - // completed the drag, only then do we want the image compositor notofied. - // We therefore set the caller identity to the special case of 0 - ifv->set_duration(new_dur_val, 0) ; - ifv->set_position(start, 0) ; - } - } - - show_verbose_time_cursor(start, 10) ; -} - -void -Editor::imageframe_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) -{ - ImageFrameView* ifv = reinterpret_cast<ImageFrameView *> (drag_info.data) ; - - if (drag_info.cumulative_x_drag == 0) - { - /* just a click */ - } - else - { - framepos_t temp = ifv->get_position() + ifv->get_duration() ; - - ifv->set_position((framepos_t) (temp - drag_info.cumulative_x_drag), this) ; - ifv->set_duration((framepos_t) drag_info.cumulative_x_drag, this) ; - } -} - -void -Editor::imageframe_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) -{ - ImageFrameView* ifv = reinterpret_cast<ImageFrameView *> (drag_info.data) ; - - framepos_t start = 0 ; - framepos_t end = 0 ; - framepos_t pointer_frame = canvas_event_frame(event) ; - framepos_t new_dur_val = 0 ; - - snap_to(pointer_frame) ; - - if (pointer_frame != drag_info.last_pointer_frame) - { - start = ifv->get_position() ; - end = ifv->get_position() + ifv->get_duration() ; - if (pointer_frame < start) - { - end = start ; - } - else - { - end = pointer_frame ; - } - - new_dur_val = end - start ; - - // are we getting bigger or smaller? - if(pointer_frame >= drag_info.last_pointer_frame) - { - if(ifv->get_max_duration_active() && (new_dur_val > ifv->get_max_duration())) - { - new_dur_val = ifv->get_max_duration() ; - } - } - else - { - if(ifv->get_min_duration_active() && (new_dur_val < ifv->get_min_duration())) - { - new_dur_val = ifv->get_min_duration() ; - } - } - - drag_info.last_pointer_frame = pointer_frame ; - drag_info.cumulative_x_drag = new_dur_val ; - - // we treat this as a special case, usually we want to send the identitiy of the caller - // but in this case, that would trigger our socket handler to handle the event, sending - // notification to the image compositor. This would be fine, except that we have not - // finished the drag, we therefore do not want to sent notification until we have - // completed the drag, only then do we want the image compositor notofied. - // We therefore set the caller identity to the special case of 0 - ifv->set_duration(new_dur_val, 0) ; - } - - show_verbose_time_cursor(new_dur_val, 10) ; -} - - -void -Editor::imageframe_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* event) -{ - ImageFrameView* ifv = reinterpret_cast<ImageFrameView *> (drag_info.data) ; - - if (drag_info.cumulative_x_drag == 0) - { - /* just a click */ - } - else - { - framepos_t new_duration = (framepos_t)drag_info.cumulative_x_drag ; - if((new_duration <= ifv->get_max_duration()) && (new_duration >= ifv->get_min_duration())) - { - ifv->set_duration(new_duration, this) ; - } - } -} - - -void -Editor::markerview_item_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) -{ - MarkerView* mv = reinterpret_cast<MarkerTimeAxis*>(clicked_axisview)->get_view()->get_selected_time_axis_item() ; - - if (mv == 0) - { - fatal << _("programming error: no MarkerView selected") << endmsg ; - /*NOTREACHED*/ - return ; - } - - drag_info.item = mv->get_canvas_frame() ; - drag_info.data = mv; - drag_info.grab_x = event->motion.x; - - drag_info.cumulative_x_drag = 0 ; - drag_info.motion_callback = &Editor::markerview_start_handle_trim_motion ; - drag_info.finished_callback = &Editor::markerview_start_handle_end_trim ; - - start_grab(event, trimmer_cursor) ; -} - -void -Editor::markerview_item_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) -{ - MarkerView* mv = reinterpret_cast<MarkerTimeAxis*>(clicked_axisview)->get_view()->get_selected_time_axis_item() ; - if (mv == 0) - { - fatal << _("programming error: no MarkerView selected") << endmsg ; - /*NOTREACHED*/ - return ; - } - - drag_info.item = mv->get_canvas_frame() ; - drag_info.data = mv ; - drag_info.grab_x = event->motion.x ; - drag_info.cumulative_x_drag = 0 ; - - drag_info.motion_callback = &Editor::markerview_end_handle_trim_motion ; - drag_info.finished_callback = &Editor::markerview_end_handle_end_trim ; - - start_grab(event, trimmer_cursor) ; -} - - -void -Editor::markerview_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) -{ - MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ; - - framepos_t start = 0 ; - framepos_t end = 0 ; - framepos_t pointer_frame = canvas_event_frame(event) ; - - // chekc th eposition of the item is not locked - if(!mv->get_position_locked()) - { - snap_to(pointer_frame) ; - if(pointer_frame != drag_info.last_pointer_frame) - { - start = mv->get_position() ; - end = mv->get_position() + mv->get_duration() ; - - if (pointer_frame > end) - { - start = end ; - } - else - { - start = pointer_frame ; - } - - // are we getting bigger or smaller? - framepos_t new_dur_val = end - start ; - - if(pointer_frame <= drag_info.grab_frame) - { - if(mv->get_max_duration_active() && (new_dur_val > mv->get_max_duration())) - { - new_dur_val = mv->get_max_duration() ; - start = end - new_dur_val ; - } - else - { - // current values are ok - } - } - else - { - if(mv->get_min_duration_active() && (new_dur_val < mv->get_min_duration())) - { - new_dur_val = mv->get_min_duration() ; - start = end - new_dur_val ; - } - else - { - // current values are ok - } - } - - drag_info.last_pointer_frame = pointer_frame ; - - /* re-calculatethe duration and position of the imageframeview */ - drag_info.cumulative_x_drag = new_dur_val ; - - // we treat this as a special case, usually we want to send the identitiy of the caller - // but in this case, that would trigger our socket handler to handle the event, sending - // notification to the image compositor. This would be fine, except that we have not - // finished the drag, we therefore do not want to sent notification until we have - // completed the drag, only then do we want the image compositor notofied. - // We therefore set the caller identity to the special case of 0 - mv->set_duration(new_dur_val, 0) ; - mv->set_position(start, 0) ; - } - } - - show_verbose_time_cursor(start, 10) ; -} - -void -Editor::markerview_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) -{ - MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ; - - if (drag_info.cumulative_x_drag == 0) - { - /* just a click */ - } - else - { - framepos_t temp = mv->get_position() + mv->get_duration() ; - - mv->set_position((framepos_t) (temp - drag_info.cumulative_x_drag), this) ; - mv->set_duration((framepos_t) drag_info.cumulative_x_drag, this) ; - } -} - -void -Editor::markerview_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) -{ - MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ; - - framepos_t start = 0 ; - framepos_t end = 0 ; - framepos_t pointer_frame = canvas_event_frame(event) ; - framepos_t new_dur_val = 0 ; - - snap_to(pointer_frame) ; - - if (pointer_frame != drag_info.last_pointer_frame) - { - start = mv->get_position() ; - end = mv->get_position() + mv->get_duration() ; - - if(pointer_frame < start) - { - end = start ; - } - else - { - end = pointer_frame ; - } - - new_dur_val = end - start ; - - // are we getting bigger or smaller? - if(pointer_frame >= drag_info.last_pointer_frame) - { - // we cant extend beyond the item we are marking - ImageFrameView* marked_item = mv->get_marked_item() ; - framepos_t marked_end = marked_item->get_position() + marked_item->get_duration() ; - - if(mv->get_max_duration_active() && (new_dur_val > mv->get_max_duration())) - { - if((start + mv->get_max_duration()) > marked_end) - { - new_dur_val = marked_end - start ; - } - else - { - new_dur_val = mv->get_max_duration() ; - } - } - else if(end > marked_end) - { - new_dur_val = marked_end - start ; - } - } - else - { - if(mv->get_min_duration_active() && (new_dur_val < mv->get_min_duration())) - { - new_dur_val = mv->get_min_duration() ; - } - } - - - drag_info.last_pointer_frame = pointer_frame ; - drag_info.cumulative_x_drag = new_dur_val ; - - // we treat this as a special case, usually we want to send the identitiy of the caller - // but in this case, that would trigger our socket handler to handle the event, sending - // notification to the image compositor. This would be fine, except that we have not - // finished the drag, we therefore do not want to sent notification until we have - // completed the drag, only then do we want the image compositor notofied. - // We therefore set the caller identity to the special case of 0 - mv->set_duration(new_dur_val, 0) ; - } - - show_verbose_time_cursor(new_dur_val, 10) ; -} - - -void -Editor::markerview_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* event) -{ - MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ; - - if (drag_info.cumulative_x_drag == 0) - { - /* just a click */ - } - else - { - framepos_t new_duration = (framepos_t)drag_info.cumulative_x_drag ; - mv->set_duration(new_duration, this) ; - } -} - - -/* </CMT Additions file="editor_mouse.cc"> */ - - - - - - - -/* <CMT Additions file="editor_route_list.cc"> */ - -void -Editor::handle_new_imageframe_time_axis_view(const string & track_name, void* src) -{ - ImageFrameTimeAxis* iftav ; - iftav = new ImageFrameTimeAxis(track_name, *this, *session, *track_canvas) ; - iftav->set_time_axis_name(track_name, this) ; - track_views.push_back(iftav) ; - - TreeModel::Row row = *(route_display_model->append()); - - row[route_display_columns.text] = iftav->name(); - row[route_display_columns.tv] = iftav; - route_list_display.get_selection()->select (row); - - iftav->gui_changed.connect(sigc::mem_fun(*this, &Editor::handle_gui_changes)) ; -} - -void -Editor::handle_new_imageframe_marker_time_axis_view(const string & track_name, TimeAxisView* marked_track) -{ - MarkerTimeAxis* mta = new MarkerTimeAxis (*this, *this->session(), *track_canvas, track_name, marked_track) ; - ((ImageFrameTimeAxis*)marked_track)->add_marker_time_axis(mta, this) ; - track_views.push_back(mta) ; - - TreeModel::Row row = *(route_display_model->append()); - - row[route_display_columns.text] = mta->name(); - row[route_display_columns.tv] = mta; - route_list_display.get_selection()->select (row); -} - - -/* </CMT Additions file="editor_route_list.cc"> */ diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index ff28f7b56a..c9a151f96e 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -17,7 +17,6 @@ */ -#include <sigc++/retype.h> #include <cstdlib> #include <cmath> diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 0e4b54c7a2..e75d51313e 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -1001,10 +1001,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT } if (internal_editing ()) { - if (event->type == GDK_2BUTTON_PRESS && event->button.button == 1) { - Glib::RefPtr<Action> act = ActionManager::get_action (X_("MouseMode"), X_("toggle-internal-edit")); - act->activate (); - } break; } @@ -1140,31 +1136,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT break; } -#ifdef WITH_CMT - case ImageFrameHandleStartItem: - imageframe_start_handle_op(item, event) ; - return(true) ; - break ; - case ImageFrameHandleEndItem: - imageframe_end_handle_op(item, event) ; - return(true) ; - break ; - case MarkerViewHandleStartItem: - markerview_item_start_handle_op(item, event) ; - return(true) ; - break ; - case MarkerViewHandleEndItem: - markerview_item_end_handle_op(item, event) ; - return(true) ; - break ; - case MarkerViewItem: - start_markerview_grab(item, event) ; - break ; - case ImageFrameItem: - start_imageframe_grab(item, event) ; - break ; -#endif - case MarkerBarItem: break; @@ -1510,14 +1481,6 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT edit_control_point (item); break; - case NoteItem: - { - NoteBase* e = reinterpret_cast<NoteBase*> (item->get_data ("notebase")); - assert (e); - edit_notes (e->region_view().selection ()); - break; - } - default: break; } @@ -1601,21 +1564,6 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT popup_control_point_context_menu (item, event); break; -#ifdef WITH_CMT - case ImageFrameItem: - popup_imageframe_edit_menu(1, event->button.time, item, true) ; - break ; - case ImageFrameTimeAxisItem: - popup_imageframe_edit_menu(1, event->button.time, item, false) ; - break ; - case MarkerViewItem: - popup_marker_time_axis_edit_menu(1, event->button.time, item, true) ; - break ; - case MarkerTimeAxisItem: - popup_marker_time_axis_edit_menu(1, event->button.time, item, false) ; - break ; -#endif - default: break; } @@ -1895,19 +1843,11 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_ break; case StartSelectionTrimItem: -#ifdef WITH_CMT - case ImageFrameHandleStartItem: - case MarkerViewHandleStartItem: -#endif if (is_drawable()) { set_canvas_cursor (_cursors->left_side_trim); } break; case EndSelectionTrimItem: -#ifdef WITH_CMT - case ImageFrameHandleEndItem: - case MarkerViewHandleEndItem: -#endif if (is_drawable()) { set_canvas_cursor (_cursors->right_side_trim); } @@ -2082,13 +2022,6 @@ Editor::leave_handler (ArdourCanvas::Item* item, GdkEvent*, ItemType item_type) case EndSelectionTrimItem: case PlayheadCursorItem: -#ifdef WITH_CMT - case ImageFrameHandleStartItem: - case ImageFrameHandleEndItem: - case MarkerViewHandleStartItem: - case MarkerViewHandleEndItem: -#endif - _over_region_trim_target = false; if (is_drawable()) { @@ -2376,7 +2309,6 @@ Editor::edit_control_point (ArdourCanvas::Item* item) } ControlPointDialog d (p); - d.set_position (Gtk::WIN_POS_MOUSE); ensure_float (d); if (d.run () != RESPONSE_ACCEPT) { @@ -2387,19 +2319,33 @@ Editor::edit_control_point (ArdourCanvas::Item* item) } void -Editor::edit_notes (MidiRegionView::Selection const & s) +Editor::edit_notes (TimeAxisViewItem& tavi) { + MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(&tavi); + + if (!mrv) { + return; + } + + MidiRegionView::Selection const & s = mrv->selection(); + if (s.empty ()) { return; } - EditNoteDialog d (&(*s.begin())->region_view(), s); - d.set_position (Gtk::WIN_POS_MOUSE); - ensure_float (d); + EditNoteDialog* d = new EditNoteDialog (&(*s.begin())->region_view(), s); + d->show_all (); + ensure_float (*d); - d.run (); + d->signal_response().connect (sigc::bind (sigc::mem_fun (*this, &Editor::note_edit_done), d)); } +void +Editor::note_edit_done (int r, EditNoteDialog* d) +{ + d->done (r); + delete d; +} void Editor::visible_order_range (int* low, int* high) const diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 1bd1a5c82e..4037f7a83d 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -2377,7 +2377,6 @@ Editor::rename_region () d.add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK); d.set_size_request (300, -1); - d.set_position (Gtk::WIN_POS_MOUSE); entry.set_text (rs.front()->region()->name()); entry.select_region (0, -1); diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc index 400f427ee5..5e1c72af97 100644 --- a/gtk2_ardour/editor_tempodisplay.cc +++ b/gtk2_ardour/editor_tempodisplay.cc @@ -192,7 +192,6 @@ Editor::mouse_add_new_tempo_event (framepos_t frame) TempoMap& map(_session->tempo_map()); TempoDialog tempo_dialog (map, frame, _("add")); - tempo_dialog.set_position (Gtk::WIN_POS_MOUSE); //this causes compiz to display no border. //tempo_dialog.signal_realize().connect (sigc::bind (sigc::ptr_fun (set_decoration), &tempo_dialog, Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH))); @@ -235,8 +234,6 @@ Editor::mouse_add_new_meter_event (framepos_t frame) TempoMap& map(_session->tempo_map()); MeterDialog meter_dialog (map, frame, _("add")); - meter_dialog.set_position (Gtk::WIN_POS_MOUSE); - //this causes compiz to display no border.. //meter_dialog.signal_realize().connect (sigc::bind (sigc::ptr_fun (set_decoration), &meter_dialog, Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH))); @@ -292,8 +289,6 @@ Editor::edit_meter_section (MeterSection* section) { MeterDialog meter_dialog (*section, _("done")); - meter_dialog.set_position (Gtk::WIN_POS_MOUSE); - ensure_float (meter_dialog); switch (meter_dialog.run()) { @@ -324,8 +319,6 @@ Editor::edit_tempo_section (TempoSection* section) { TempoDialog tempo_dialog (*section, _("done")); - tempo_dialog.set_position (Gtk::WIN_POS_MOUSE); - ensure_float (tempo_dialog); switch (tempo_dialog.run ()) { diff --git a/gtk2_ardour/export_video_dialog.cc b/gtk2_ardour/export_video_dialog.cc index 417f793f3a..309e3af48f 100644 --- a/gtk2_ardour/export_video_dialog.cc +++ b/gtk2_ardour/export_video_dialog.cc @@ -91,7 +91,6 @@ ExportVideoDialog::ExportVideoDialog (PublicEditor& ed, Session* s) set_session (s); set_name ("ExportVideoDialog"); - set_position (Gtk::WIN_POS_MOUSE); set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); diff --git a/gtk2_ardour/export_video_infobox.cc b/gtk2_ardour/export_video_infobox.cc index a7508702c2..92180462d4 100644 --- a/gtk2_ardour/export_video_infobox.cc +++ b/gtk2_ardour/export_video_infobox.cc @@ -33,7 +33,6 @@ ExportVideoInfobox::ExportVideoInfobox (Session* s) set_session (s); set_name ("ExportVideoInfobox"); - set_position (Gtk::WIN_POS_MOUSE); set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index db165b8b3c..544963f666 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -224,8 +224,6 @@ IOSelectorWindow::IOSelectorWindow (ARDOUR::Session* session, boost::shared_ptr< add (_selector); - set_position (Gtk::WIN_POS_MOUSE); - io_name_changed (this); show_all (); diff --git a/gtk2_ardour/midi_port_dialog.cc b/gtk2_ardour/midi_port_dialog.cc index 4aaa620399..f4c7e5a26b 100644 --- a/gtk2_ardour/midi_port_dialog.cc +++ b/gtk2_ardour/midi_port_dialog.cc @@ -42,7 +42,6 @@ MidiPortDialog::MidiPortDialog () set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); - set_position (Gtk::WIN_POS_MOUSE); set_name (N_("MidiPortDialog")); vector<string> str = internationalize (PACKAGE, mode_strings); diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index e5a48994f8..d681bb43de 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -3755,8 +3755,6 @@ MidiRegionView::edit_patch_change (PatchChange* pc) { PatchChangeDialog d (&_source_relative_time_converter, trackview.session(), *pc->patch (), instrument_info(), Gtk::Stock::APPLY, true); - d.set_position (Gtk::WIN_POS_MOUSE); - int response = d.run(); switch (response) { diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 1b0db3edb5..69e9bcad5f 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -515,7 +515,6 @@ MidiTimeAxisView::toggle_channel_selector () _channel_selector->set_default_channel_color (); } - _channel_selector->set_position (WIN_POS_MOUSE); _channel_selector->show_all (); } else { _channel_selector->cycle_visibility (); diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 90d2a2912a..79d4b224f6 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -1358,7 +1358,6 @@ void MixerStrip::setup_comment_editor () { comment_window = new ArdourWindow (""); // title will be reset to show route - comment_window->set_position (Gtk::WIN_POS_MOUSE); comment_window->set_skip_taskbar_hint (true); comment_window->signal_hide().connect (sigc::mem_fun(*this, &MixerStrip::comment_editor_done_editing)); comment_window->set_default_size (400, 200); diff --git a/gtk2_ardour/note_base.cc b/gtk2_ardour/note_base.cc index 9331674159..e792fcba7d 100644 --- a/gtk2_ardour/note_base.cc +++ b/gtk2_ardour/note_base.cc @@ -342,7 +342,7 @@ NoteBase::event_handler (GdkEvent* ev) case GDK_BUTTON_PRESS: set_mouse_fractions (ev); if (ev->button.button == 3 && Keyboard::no_modifiers_active (ev->button.state) && _selected) { - show_channel_selector(); + _region.get_time_axis_view().editor().edit_notes (_region); return true; } break; diff --git a/gtk2_ardour/playlist_selector.cc b/gtk2_ardour/playlist_selector.cc index b0bc515a61..cdc144d1b7 100644 --- a/gtk2_ardour/playlist_selector.cc +++ b/gtk2_ardour/playlist_selector.cc @@ -44,7 +44,6 @@ PlaylistSelector::PlaylistSelector () { rui = 0; - set_position (WIN_POS_MOUSE); set_name ("PlaylistSelectorWindow"); set_modal(true); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK); diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc index 5bca4c7be0..81adf40896 100644 --- a/gtk2_ardour/plugin_selector.cc +++ b/gtk2_ardour/plugin_selector.cc @@ -66,7 +66,6 @@ PluginSelector::PluginSelector (PluginManager& mgr) , manager (mgr) { - set_position (Gtk::WIN_POS_MOUSE); set_name ("PluginSelectorWindow"); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK); diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 2dd8741a13..8868279cf5 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -82,11 +82,10 @@ using namespace Gtkmm2ext; using namespace Gtk; PluginUIWindow::PluginUIWindow ( - Gtk::Window* win, boost::shared_ptr<PluginInsert> insert, bool scrollable, bool editor) - : parent (win) + : ArdourWindow (string()) , was_visible (false) , _keyboard_focused (false) #ifdef AUDIOUNIT_SUPPORT @@ -96,7 +95,6 @@ PluginUIWindow::PluginUIWindow ( { bool have_gui = false; - Label* label = manage (new Label()); label->set_markup ("<b>THIS IS THE PLUGIN UI</b>"); @@ -147,7 +145,6 @@ PluginUIWindow::PluginUIWindow ( signal_unmap_event().connect (sigc::mem_fun (*pu, &GenericPluginUI::stop_updating)); } - // set_position (Gtk::WIN_POS_MOUSE); set_name ("PluginEditor"); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); @@ -171,18 +168,9 @@ PluginUIWindow::~PluginUIWindow () } void -PluginUIWindow::set_parent (Gtk::Window* win) -{ - parent = win; -} - -void PluginUIWindow::on_map () { Window::on_map (); -#ifdef __APPLE__ - set_keep_above (true); -#endif // __APPLE__ } bool @@ -226,19 +214,25 @@ PluginUIWindow::on_show () } if (_pluginui) { +#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX) + if (pre_deactivate_x >= 0) { + move (pre_deactivate_x, pre_deactivate_y); + } +#endif + if (_pluginui->on_window_show (_title)) { Window::on_show (); } } - - if (parent) { - // set_transient_for (*parent); - } } void PluginUIWindow::on_hide () { +#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX) + get_position (pre_deactivate_x, pre_deactivate_y); +#endif + Window::on_hide (); if (_pluginui) { @@ -560,7 +554,6 @@ PlugUIBase::latency_button_clicked () if (!latency_gui) { latency_gui = new LatencyGUI (*(insert.get()), insert->session().frame_rate(), insert->session().get_block_size()); latency_dialog = new ArdourWindow (_("Edit Latency")); - latency_dialog->set_position (WIN_POS_MOUSE); /* use both keep-above and transient for to try cover as many different WM's as possible. */ diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 6b886cf268..be03e6ede4 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -50,6 +50,7 @@ #include "automation_controller.h" #include "ardour_button.h" +#include "ardour_window.h" namespace ARDOUR { class PluginInsert; @@ -278,11 +279,10 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox bool integer_printer (char* buf, Gtk::Adjustment &, ControlUI *); }; -class PluginUIWindow : public Gtk::Window +class PluginUIWindow : public ArdourWindow { public: - PluginUIWindow (Gtk::Window*, - boost::shared_ptr<ARDOUR::PluginInsert> insert, + PluginUIWindow (boost::shared_ptr<ARDOUR::PluginInsert> insert, bool scrollable=false, bool editor=true); ~PluginUIWindow (); diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 16088786cd..335861883c 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -1183,7 +1183,6 @@ ProcessorBox::weird_plugin_dialog (Plugin& p, Route::ProcessorStreams streams) dialog.add_button (Stock::OK, RESPONSE_ACCEPT); dialog.set_name (X_("PluginIODialog")); - dialog.set_position (Gtk::WIN_POS_MOUSE); dialog.set_modal (true); dialog.show_all (); @@ -1550,7 +1549,6 @@ outputs will not work correctly.")); dialog.add_button (Stock::OK, RESPONSE_ACCEPT); dialog.set_name (X_("PluginIODialog")); - dialog.set_position (Gtk::WIN_POS_MOUSE); dialog.set_modal (true); dialog.show_all (); @@ -2094,20 +2092,16 @@ ProcessorBox::toggle_edit_processor (boost::shared_ptr<Processor> processor) /* these are both allowed to be null */ - Container* toplevel = get_toplevel(); - Window* win = dynamic_cast<Gtk::Window*>(toplevel); - Window* w = get_processor_ui (plugin_insert); if (w == 0) { - plugin_ui = new PluginUIWindow (win, plugin_insert); + plugin_ui = new PluginUIWindow (plugin_insert); plugin_ui->set_title (generate_processor_title (plugin_insert)); set_processor_ui (plugin_insert, plugin_ui); } else { plugin_ui = dynamic_cast<PluginUIWindow *> (w); - plugin_ui->set_parent (win); } gidget = plugin_ui; @@ -2155,9 +2149,7 @@ ProcessorBox::toggle_edit_generic_processor (boost::shared_ptr<Processor> proces return; } - Container* toplevel = get_toplevel(); - Window* win = dynamic_cast<Gtk::Window*>(toplevel); - PluginUIWindow* plugin_ui = new PluginUIWindow(win, plugin_insert, true, false); + PluginUIWindow* plugin_ui = new PluginUIWindow (plugin_insert, true, false); plugin_ui->set_title(generate_processor_title (plugin_insert)); if (plugin_ui->is_visible()) { diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index d95b29d814..c76dd35196 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -288,6 +288,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual void add_to_idle_resize (TimeAxisView*, int32_t) = 0; virtual framecnt_t get_nudge_distance (framepos_t pos, framecnt_t& next) = 0; virtual Evoral::MusicalTime get_grid_type_as_beats (bool& success, framepos_t position) = 0; + virtual void edit_notes (TimeAxisViewItem&) = 0; virtual void queue_visual_videotimeline_update () = 0; virtual void toggle_ruler_video (bool) = 0; @@ -299,14 +300,6 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual void embed_audio_from_video (std::string, framepos_t n = 0) = 0; virtual void export_video () = 0; -#ifdef WITH_CMT - virtual void connect_to_image_compositor() = 0; - virtual void add_imageframe_time_axis(const std::string & track_name, void*) = 0; - virtual void add_imageframe_marker_time_axis(const std::string & track_name, TimeAxisView* marked_track, void*) = 0; - virtual void scroll_timeaxis_to_imageframe_item(const TimeAxisViewItem* item) = 0; - virtual TimeAxisView* get_named_time_axis(const std::string & name) = 0; -#endif - virtual RouteTimeAxisView* get_route_view_by_route_id (const PBD::ID& id) const = 0; virtual void get_equivalent_regions (RegionView* rv, std::vector<RegionView*>&, PBD::PropertyID) const = 0; diff --git a/gtk2_ardour/route_group_dialog.cc b/gtk2_ardour/route_group_dialog.cc index 945219d4f2..bba72fb4a8 100644 --- a/gtk2_ardour/route_group_dialog.cc +++ b/gtk2_ardour/route_group_dialog.cc @@ -50,7 +50,6 @@ RouteGroupDialog::RouteGroupDialog (RouteGroup* g, bool creating_new) set_modal (true); set_skip_taskbar_hint (true); set_resizable (true); - set_position (Gtk::WIN_POS_MOUSE); set_name (N_("RouteGroupDialog")); VBox* main_vbox = manage (new VBox); diff --git a/gtk2_ardour/splash.cc b/gtk2_ardour/splash.cc index 0922ec75ba..99adff68e9 100644 --- a/gtk2_ardour/splash.cc +++ b/gtk2_ardour/splash.cc @@ -25,6 +25,10 @@ #include "ardour/ardour.h" #include "ardour/filesystem_paths.h" +#ifdef check +#undef check +#endif + #include "gui_thread.h" #include "splash.h" @@ -96,15 +100,33 @@ Splash::~Splash () void Splash::pop_back_for (Gtk::Window& win) { +#ifdef __APPLE__ + /* April 2013: window layering on OS X is a bit different to X Window. at present, + the "restack()" functionality in GDK will only operate on windows in the same + "level" (e.g. two normal top level windows, or two utility windows) and will not + work across them. The splashscreen is on its own "StatusWindowLevel" so restacking + is not going to work. + + So for OS X, we just hide ourselves. + */ + hide(); +#else set_keep_above (false); get_window()->restack (win.get_window(), false); - win.signal_hide().connect (sigc::mem_fun (*this, &Splash::pop_front)); +#endif } void Splash::pop_front () { + +#ifdef __APPLE__ + if (get_window()) { + show (); + } +#else set_keep_above (true); +#endif } void diff --git a/gtk2_ardour/step_editor.cc b/gtk2_ardour/step_editor.cc index 2f35772deb..0774252a44 100644 --- a/gtk2_ardour/step_editor.cc +++ b/gtk2_ardour/step_editor.cc @@ -82,7 +82,6 @@ StepEditor::start_step_editing () step_edit_region_view->show_step_edit_cursor (step_edit_beat_pos); step_edit_region_view->set_step_edit_cursor_width (step_editor->note_length()); - step_editor->set_position (WIN_POS_MOUSE); step_editor->present (); } diff --git a/gtk2_ardour/system_exec.cc b/gtk2_ardour/system_exec.cc index 1f178a6c68..566c87dfbb 100644 --- a/gtk2_ardour/system_exec.cc +++ b/gtk2_ardour/system_exec.cc @@ -38,6 +38,8 @@ using namespace std; void * interposer_thread (void *arg); +static void close_fd (int* fd) { if (!fd) return; if (*fd >= 0) ::close (*fd); *fd = -1; } + SystemExec::SystemExec (std::string c, std::string a) : cmd(c) { @@ -483,18 +485,18 @@ SystemExec::start (int stderr_mode) pid=r; /* check if execve was successful. */ - ::close(pok[1]); + close_fd(&pok[1]); char buf; for ( ;; ) { ssize_t n = ::read(pok[0], &buf, 1 ); if ( n==1 ) { /* child process returned from execve */ pid=0; - ::close(pok[0]); - ::close(pin[1]); - ::close(pin[0]); - ::close(pout[1]); - ::close(pout[0]); + close_fd(&pok[0]); + close_fd(&pin[1]); + close_fd(&pin[0]); + close_fd(&pout[1]); + close_fd(&pout[0]); pin[1] = -1; return -3; } else if ( n==-1 ) { @@ -503,7 +505,7 @@ SystemExec::start (int stderr_mode) } break; } - ::close(pok[0]); + close_fd(&pok[0]); /* child started successfully */ #if 0 @@ -519,17 +521,17 @@ SystemExec::start (int stderr_mode) } if (r == 0) { /* 2nd child process - catch stdout */ - ::close(pin[1]); - ::close(pout[1]); + close_fd(&pin[1]); + close_fd(&pout[1]); output_interposer(); exit(0); } - ::close(pout[1]); - ::close(pin[0]); - ::close(pout[0]); + close_fd(&pout[1]); + close_fd(&pin[0]); + close_fd(&pout[0]); #else /* use pthread */ - ::close(pout[1]); - ::close(pin[0]); + close_fd(&pout[1]); + close_fd(&pin[0]); int rv = pthread_create(&thread_id_tt, NULL, interposer_thread, this); thread_active=true; @@ -543,15 +545,15 @@ SystemExec::start (int stderr_mode) } /* child process - exec external process */ - ::close(pok[0]); + close_fd(&pok[0]); ::fcntl(pok[1], F_SETFD, FD_CLOEXEC); - ::close(pin[1]); + close_fd(&pin[1]); if (pin[0] != STDIN_FILENO) { ::dup2(pin[0], STDIN_FILENO); } - ::close(pin[0]); - ::close(pout[0]); + close_fd(&pin[0]); + close_fd(&pout[0]); if (pout[1] != STDOUT_FILENO) { ::dup2(pout[1], STDOUT_FILENO); } @@ -569,7 +571,7 @@ SystemExec::start (int stderr_mode) } if (pout[1] != STDOUT_FILENO && pout[1] != STDERR_FILENO) { - ::close(pout[1]); + close_fd(&pout[1]); } if (nicelevel !=0) { @@ -596,7 +598,7 @@ SystemExec::start (int stderr_mode) /* if we reach here something went wrong.. */ char buf = 0; (void) ::write(pok[1], &buf, 1 ); - (void) ::close(pok[1]); + close_fd(&pok[1]); exit(-1); return -1; } @@ -631,11 +633,10 @@ void SystemExec::close_stdin() { if (pin[1]<0) return; - ::close(pin[0]); - ::close(pin[1]); - ::close(pout[0]); - ::close(pout[1]); - pin[1] = - 1; // mark as closed + close_fd(&pin[0]); + close_fd(&pin[1]); + close_fd(&pout[0]); + close_fd(&pout[1]); } int diff --git a/gtk2_ardour/time_fx_dialog.cc b/gtk2_ardour/time_fx_dialog.cc index 1fd52cebc3..15d46f10ad 100644 --- a/gtk2_ardour/time_fx_dialog.cc +++ b/gtk2_ardour/time_fx_dialog.cc @@ -68,7 +68,6 @@ TimeFXDialog::TimeFXDialog (Editor& e, bool pitch) set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); - set_position (Gtk::WIN_POS_MOUSE); set_name (N_("TimeFXDialog")); if (pitching) { diff --git a/gtk2_ardour/transcode_video_dialog.cc b/gtk2_ardour/transcode_video_dialog.cc index 5ac73a581b..f3373c0376 100644 --- a/gtk2_ardour/transcode_video_dialog.cc +++ b/gtk2_ardour/transcode_video_dialog.cc @@ -77,7 +77,6 @@ TranscodeVideoDialog::TranscodeVideoDialog (Session* s, std::string infile) aborted = false; set_name ("TranscodeVideoDialog"); - set_position (Gtk::WIN_POS_MOUSE); set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); diff --git a/gtk2_ardour/video_server_dialog.cc b/gtk2_ardour/video_server_dialog.cc index 5ee4c02844..8838409ccf 100644 --- a/gtk2_ardour/video_server_dialog.cc +++ b/gtk2_ardour/video_server_dialog.cc @@ -53,7 +53,6 @@ VideoServerDialog::VideoServerDialog (Session* s) set_session (s); set_name ("VideoServerDialog"); - set_position (Gtk::WIN_POS_MOUSE); set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h index d9cfd87bad..7ca973cbb7 100644 --- a/libs/ardour/ardour/vst_plugin.h +++ b/libs/ardour/ardour/vst_plugin.h @@ -73,7 +73,6 @@ public: AEffect * plugin () const { return _plugin; } VSTState * state () const { return _state; } - void set_state (VSTState* s) { _state = s; } int set_state (XMLNode const &, int); diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 89aa99bac8..399ce8aba7 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -1299,8 +1299,8 @@ AUPlugin::render_callback(AudioUnitRenderActionFlags*, { /* not much to do with audio - the data is already in the buffers given to us in connect_and_run() */ - DEBUG_TRACE (DEBUG::AudioUnits, string_compose ("%1: render callback, frames %2 bufs %3\n", - name(), inNumberFrames, ioData->mNumberBuffers)); + // DEBUG_TRACE (DEBUG::AudioUnits, string_compose ("%1: render callback, frames %2 bufs %3\n", + // name(), inNumberFrames, ioData->mNumberBuffers)); if (input_maxbuf == 0) { error << _("AUPlugin: render callback called illegally!") << endmsg; diff --git a/libs/ardour/linux_vst_support.cc b/libs/ardour/linux_vst_support.cc index 9106d69009..99251f08e4 100644 --- a/libs/ardour/linux_vst_support.cc +++ b/libs/ardour/linux_vst_support.cc @@ -34,8 +34,6 @@ #include <glibmm/fileutils.h> #include "ardour/linux_vst_support.h" -#include "ardour/vst_plugin.h" - #include "pbd/basename.h" #include "pbd/error.h" @@ -295,43 +293,36 @@ vstfx_unload (VSTHandle* fhandle) return 0; } -/** - Instantiates a VST plugin and also set _state of its plugin argument - */ +/*This instantiates a plugin*/ -VSTState* -vstfx_instantiate (VSTHandle* fhandle, audioMasterCallback amc, void *ptr) +VSTState * +vstfx_instantiate (VSTHandle* fhandle, audioMasterCallback amc, void* userptr) { VSTState* vstfx = vstfx_new (); - ARDOUR::VSTPlugin* plugin = reinterpret_cast<ARDOUR::VSTPlugin*> (ptr); - if (fhandle == 0) { + if(fhandle == 0) + { vstfx_error( "** ERROR ** VSTFX : The handle was 0\n" ); return 0; } - if ((vstfx->plugin = fhandle->main_entry (amc)) == 0) { + if ((vstfx->plugin = fhandle->main_entry (amc)) == 0) + { vstfx_error ("** ERROR ** VSTFX : %s could not be instantiated :(\n", fhandle->name); free (vstfx); return 0; } vstfx->handle = fhandle; - vstfx->plugin->user = plugin; + vstfx->plugin->user = userptr; - if (vstfx->plugin->magic != kEffectMagic) { + if (vstfx->plugin->magic != kEffectMagic) + { vstfx_error ("** ERROR ** VSTFX : %s is not a VST plugin\n", fhandle->name); free (vstfx); return 0; } - - /* need to set this here because some plugins make audioMaster - * callbacks from within effOpen, and _state must be set for - * that to work. - */ - plugin->set_state (vstfx); - vstfx->plugin->dispatcher (vstfx->plugin, effOpen, 0, 0, 0, 0); /*May or May not need to 'switch the plugin on' here - unlikely diff --git a/libs/ardour/lxvst_plugin.cc b/libs/ardour/lxvst_plugin.cc index 80e6b9c286..6e30e0c443 100755 --- a/libs/ardour/lxvst_plugin.cc +++ b/libs/ardour/lxvst_plugin.cc @@ -32,7 +32,7 @@ LXVSTPlugin::LXVSTPlugin (AudioEngine& e, Session& session, VSTHandle* h) { /* Instantiate the plugin and return a VSTState* */ - if (vstfx_instantiate (_handle, Session::vst_callback, this) == 0) { + if ((_state = vstfx_instantiate (_handle, Session::vst_callback, this)) == 0) { throw failed_constructor(); } @@ -44,7 +44,7 @@ LXVSTPlugin::LXVSTPlugin (const LXVSTPlugin &other) { _handle = other._handle; - if (vstfx_instantiate (_handle, Session::vst_callback, this) == 0) { + if ((_state = vstfx_instantiate (_handle, Session::vst_callback, this)) == 0) { throw failed_constructor(); } _plugin = _state->plugin; diff --git a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour.bak b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour.bak deleted file mode 100644 index 106de1153d..0000000000 --- a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour.bak +++ /dev/null @@ -1,158 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Session version="3001" name="rec_enabled" sample-rate="48000" id-counter="121" event-counter="0"> - <Config> - <Option name="xfade-model" value="FullCrossfade"/> - <Option name="xfade-choice" value="ConstantPowerMinus3dB"/> - <Option name="auto-xfade" value="1"/> - <Option name="short-xfade-seconds" value="0.015"/> - <Option name="destructive-xfade-msecs" value="2"/> - <Option name="use-region-fades" value="1"/> - <Option name="show-region-fades" value="1"/> - <Option name="native-file-data-format" value="FormatFloat"/> - <Option name="native-file-header-format" value="WAVE"/> - <Option name="auto-play" value="0"/> - <Option name="auto-return" value="0"/> - <Option name="auto-input" value="1"/> - <Option name="punch-in" value="0"/> - <Option name="punch-out" value="0"/> - <Option name="subframes-per-frame" value="100"/> - <Option name="timecode-format" value="timecode_30"/> - <Option name="raid-path" value=""/> - <Option name="audio-search-path" value=""/> - <Option name="midi-search-path" value=""/> - <Option name="auditioner-output-left" value="default"/> - <Option name="auditioner-output-right" value="default"/> - <Option name="timecode-source-is-synced" value="1"/> - <Option name="jack-time-master" value="1"/> - <Option name="use-video-sync" value="0"/> - <Option name="video-pullup" value="0"/> - <Option name="show-summary" value="1"/> - <Option name="show-group-tabs" value="1"/> - <Option name="external-sync" value="0"/> - <Option name="sync-source" value="JACK"/> - <Option name="insert-merge-policy" value="InsertMergeRelax"/> - <Option name="timecode-offset" value="0"/> - <Option name="timecode-offset-negative" value="1"/> - <Option name="glue-new-markers-to-bars-and-beats" value="0"/> - <Option name="midi-copy-is-fork" value="0"/> - <Option name="glue-new-regions-to-bars-and-beats" value="0"/> - </Config> - <Metadata/> - <Sources/> - <Regions/> - <Locations> - <Location id="86" name="Loop" start="0" end="1" flags="IsAutoLoop,IsHidden" locked="no" position-lock-style="AudioTime"/> - <Location id="87" name="Punch" start="0" end="1" flags="IsAutoPunch,IsHidden" locked="no" position-lock-style="AudioTime"/> - </Locations> - <Bundles/> - <Routes> - <Route id="88" name="Audio 1" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 1" id="105" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 1/audio_in 1"> - <Connection other="system:capture_1"/> - </Port> - </IO> - <IO name="Audio 1" id="106" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 1/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 1/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="90" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="92" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <Pannable> - <Controllable name="pan-azimuth" id="96" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="100" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="98" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="102" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="104" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="107" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="109" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="110" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="111" name="Audio 1" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 1" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="113" flags="Toggle" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 1.1" name="Audio 1" id="115" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="21" name="master" default-type="audio" flags="MasterOut" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" order-keys="EditorSort=318:MixerSort=318" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no"> - <IO name="master" id="38" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="master/audio_in 1"> - <Connection other="Audio 1/audio_out 1"/> - </Port> - <Port type="audio" name="master/audio_in 2"> - <Connection other="Audio 1/audio_out 2"/> - </Port> - </IO> - <IO name="master" id="39" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="master/audio_out 1"> - <Connection other="system:playback_1"/> - </Port> - <Port type="audio" name="master/audio_out 2"> - <Connection other="system:playback_2"/> - </Port> - </IO> - <Controllable name="solo" id="23" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="25" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <Pannable> - <Controllable name="pan-azimuth" id="29" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="33" flags="" value="1.000000000000"/> - <Controllable name="pan-elevation" id="31" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="35" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="37" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="40" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="42" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="43" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="44" name="master" active="yes" user-latency="0" own-input="yes" own-output="no" output="master" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Equal Power Stereo"/> - </PannerShell> - </Processor> - </Route> - </Routes> - <Playlists> - <Playlist id="116" name="Audio 1.1" type="audio" orig-track-id="88" frozen="no" combine-ops="0"/> - </Playlists> - <UnusedPlaylists/> - <RouteGroups/> - <Click> - <IO name="click" id="46" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="click/audio_out 1"> - <Connection other="system:playback_1"/> - </Port> - <Port type="audio" name="click/audio_out 2"> - <Connection other="system:playback_2"/> - </Port> - </IO> - <Processor id="47" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="49" flags="GainLike" value="1.000000000000"/> - </Processor> - </Click> - <Speakers> - <Speaker azimuth="0" elevation="0" distance="1"/> - <Speaker azimuth="180" elevation="0" distance="0"/> - </Speakers> - <TempoMap> - <Tempo start="1|1|0" beats-per-minute="120.000000" note-type="4.000000" movable="no"/> - <Meter start="1|1|0" note-type="4.000000" divisions-per-bar="4.000000" movable="no"/> - </TempoMap> - <ControlProtocols> - <Protocol name="Open Sound Control (OSC)" active="no"/> - <Protocol name="Generic MIDI" feedback="0" feedback-interval="10000" active="yes"> - <Controls/> - </Protocol> - <Protocol name="Mackie" bank="0" ipmidi-base="21928" device-profile="" device-name="Mackie Control Universal Pro" active="yes"/> - </ControlProtocols> -</Session> diff --git a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history.bak b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history.bak deleted file mode 100644 index 6dd2506a89..0000000000 --- a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history.bak +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<UndoHistory/> diff --git a/libs/ardour/test/profiling/sessions/1region/1region.ardour.bak b/libs/ardour/test/profiling/sessions/1region/1region.ardour.bak deleted file mode 100644 index 4a3e63f351..0000000000 --- a/libs/ardour/test/profiling/sessions/1region/1region.ardour.bak +++ /dev/null @@ -1,148 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Session version="3001" name="1region" sample-rate="48000" id-counter="120" event-counter="0"> - <Config> - <Option name="xfade-model" value="FullCrossfade"/> - <Option name="xfade-choice" value="ConstantPowerMinus3dB"/> - <Option name="auto-xfade" value="1"/> - <Option name="short-xfade-seconds" value="0.015"/> - <Option name="destructive-xfade-msecs" value="2"/> - <Option name="use-region-fades" value="1"/> - <Option name="show-region-fades" value="1"/> - <Option name="native-file-data-format" value="FormatFloat"/> - <Option name="native-file-header-format" value="WAVE"/> - <Option name="auto-play" value="0"/> - <Option name="auto-return" value="0"/> - <Option name="auto-input" value="1"/> - <Option name="punch-in" value="0"/> - <Option name="punch-out" value="0"/> - <Option name="subframes-per-frame" value="100"/> - <Option name="timecode-format" value="timecode_30"/> - <Option name="raid-path" value=""/> - <Option name="audio-search-path" value=""/> - <Option name="midi-search-path" value=""/> - <Option name="auditioner-output-left" value="default"/> - <Option name="auditioner-output-right" value="default"/> - <Option name="timecode-source-is-synced" value="1"/> - <Option name="jack-time-master" value="1"/> - <Option name="use-video-sync" value="0"/> - <Option name="video-pullup" value="0"/> - <Option name="show-summary" value="1"/> - <Option name="show-group-tabs" value="1"/> - <Option name="external-sync" value="0"/> - <Option name="sync-source" value="JACK"/> - <Option name="insert-merge-policy" value="InsertMergeRelax"/> - <Option name="timecode-offset" value="0"/> - <Option name="timecode-offset-negative" value="1"/> - <Option name="glue-new-markers-to-bars-and-beats" value="0"/> - <Option name="midi-copy-is-fork" value="0"/> - <Option name="glue-new-regions-to-bars-and-beats" value="0"/> - </Config> - <Metadata/> - <Sources/> - <Regions/> - <Locations> - <Location id="86" name="Loop" start="0" end="1" flags="IsAutoLoop,IsHidden" locked="no" position-lock-style="AudioTime"/> - <Location id="87" name="Punch" start="0" end="1" flags="IsAutoPunch,IsHidden" locked="no" position-lock-style="AudioTime"/> - </Locations> - <Bundles/> - <Routes> - <Route id="21" name="master" default-type="audio" flags="MasterOut" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=0:signal=0" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no"> - <IO name="master" id="38" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="master/audio_in 1"/> - <Port type="audio" name="master/audio_in 2"/> - </IO> - <IO name="master" id="39" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="master/audio_out 1"> - <Connection other="system:playback_1"/> - </Port> - <Port type="audio" name="master/audio_out 2"> - <Connection other="system:playback_2"/> - </Port> - </IO> - <Controllable name="solo" id="23" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="25" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="318"/> - <Pannable> - <Controllable name="pan-azimuth" id="29" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="33" flags="" value="1.000000000000"/> - <Controllable name="pan-elevation" id="31" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="35" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="37" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="40" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="42" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="43" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="44" name="master" active="yes" user-latency="0" own-input="yes" own-output="no" output="master" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Equal Power Stereo"/> - </PannerShell> - </Processor> - </Route> - <Route id="88" name="MIDI 1" default-type="midi" active="yes" phase-invert="" denormal-protection="no" meter-point="MeterPostFader" order-keys="signal=2" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" note-mode="Sustained" step-editing="no" input-active="yes"> - <IO name="MIDI 1" id="105" direction="Input" default-type="midi" user-latency="0"> - <Port type="midi" name="MIDI 1/midi_in 1"/> - </IO> - <IO name="MIDI 1" id="106" direction="Output" default-type="midi" user-latency="0"> - <Port type="midi" name="MIDI 1/midi_out 1"/> - </IO> - <Controllable name="solo" id="90" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="92" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="2"/> - <Pannable> - <Controllable name="pan-azimuth" id="96" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="100" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="98" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="102" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="104" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="107" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="109" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="110" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="111" name="MIDI 1" active="yes" user-latency="0" own-input="yes" own-output="no" output="MIDI 1" type="main-outs" role="Main"> - <PannerShell bypassed="no"/> - </Processor> - <Controllable name="recenable" id="113" flags="Toggle" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="MIDI 1.1" name="MIDI 1" id="115" speed="1.000000" capture-alignment="Automatic" channel-mode="AllChannels" channel-mask="0xffff"/> - </Route> - </Routes> - <Playlists> - <Playlist id="116" name="MIDI 1.1" type="midi" orig-track-id="88" frozen="no" combine-ops="0"/> - </Playlists> - <UnusedPlaylists/> - <RouteGroups/> - <Click> - <IO name="click" id="46" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="click/audio_out 1"> - <Connection other="system:playback_1"/> - </Port> - <Port type="audio" name="click/audio_out 2"> - <Connection other="system:playback_2"/> - </Port> - </IO> - <Processor id="47" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="49" flags="GainLike" value="1.000000000000"/> - </Processor> - </Click> - <NamedSelections/> - <Speakers> - <Speaker azimuth="0" elevation="0" distance="1"/> - <Speaker azimuth="180" elevation="0" distance="0"/> - </Speakers> - <TempoMap> - <Tempo start="1|1|0" beats-per-minute="120.000000" note-type="4.000000" movable="no"/> - <Meter start="1|1|0" note-type="4.000000" divisions-per-bar="4.000000" movable="no"/> - </TempoMap> - <ControlProtocols> - <Protocol name="Open Sound Control (OSC)" active="no"/> - <Protocol name="Generic MIDI" feedback="0" feedback-interval="10000" active="yes"> - <Controls/> - </Protocol> - <Protocol name="Mackie" bank="0" ipmidi-base="21928" device-profile="" device-name="Mackie Control Universal Pro" active="yes"/> - </ControlProtocols> -</Session> diff --git a/libs/ardour/test/profiling/sessions/1region/1region.history.bak b/libs/ardour/test/profiling/sessions/1region/1region.history.bak deleted file mode 100644 index 6dd2506a89..0000000000 --- a/libs/ardour/test/profiling/sessions/1region/1region.history.bak +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<UndoHistory/> diff --git a/libs/ardour/test/profiling/sessions/32tracks/32tracks.ardour.bak b/libs/ardour/test/profiling/sessions/32tracks/32tracks.ardour.bak deleted file mode 100644 index 6794c67bc9..0000000000 --- a/libs/ardour/test/profiling/sessions/32tracks/32tracks.ardour.bak +++ /dev/null @@ -1,1716 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Session version="3001" name="32tracks" sample-rate="44100" id-counter="2430" event-counter="0"> - <Config> - <Option name="xfade-model" value="FullCrossfade"/> - <Option name="xfade-choice" value="ConstantPowerMinus3dB"/> - <Option name="auto-xfade" value="1"/> - <Option name="short-xfade-seconds" value="0.015"/> - <Option name="destructive-xfade-msecs" value="2"/> - <Option name="use-region-fades" value="1"/> - <Option name="show-region-fades" value="1"/> - <Option name="native-file-data-format" value="FormatFloat"/> - <Option name="native-file-header-format" value="WAVE"/> - <Option name="auto-play" value="0"/> - <Option name="auto-return" value="0"/> - <Option name="auto-input" value="1"/> - <Option name="punch-in" value="0"/> - <Option name="punch-out" value="0"/> - <Option name="subframes-per-frame" value="100"/> - <Option name="timecode-format" value="timecode_30"/> - <Option name="raid-path" value=""/> - <Option name="audio-search-path" value=""/> - <Option name="midi-search-path" value=""/> - <Option name="auditioner-output-left" value="default"/> - <Option name="auditioner-output-right" value="default"/> - <Option name="timecode-source-is-synced" value="1"/> - <Option name="jack-time-master" value="1"/> - <Option name="use-video-sync" value="0"/> - <Option name="video-pullup" value="0"/> - <Option name="show-summary" value="1"/> - <Option name="show-group-tabs" value="1"/> - <Option name="external-sync" value="0"/> - <Option name="sync-source" value="JACK"/> - <Option name="insert-merge-policy" value="InsertMergeRelax"/> - <Option name="timecode-offset" value="0"/> - <Option name="timecode-offset-negative" value="1"/> - <Option name="glue-new-markers-to-bars-and-beats" value="0"/> - <Option name="midi-copy-is-fork" value="0"/> - <Option name="glue-new-regions-to-bars-and-beats" value="0"/> - </Config> - <Metadata/> - <Sources/> - <Regions/> - <Locations> - <Location id="81" name="Loop" start="0" end="1" flags="IsAutoLoop,IsHidden" locked="no" position-lock-style="AudioTime"/> - <Location id="82" name="Punch" start="0" end="1" flags="IsAutoPunch,IsHidden" locked="no" position-lock-style="AudioTime"/> - </Locations> - <Bundles/> - <Routes> - <Route id="22" name="master" default-type="audio" flags="MasterOut" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=0:signal=0" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no"> - <IO name="master" id="39" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="master/audio_in 1"> - <Connection other="Audio 1/audio_out 1"/> - <Connection other="Audio 2/audio_out 1"/> - <Connection other="Audio 3/audio_out 1"/> - <Connection other="Audio 4/audio_out 1"/> - <Connection other="Audio 5/audio_out 1"/> - <Connection other="Audio 6/audio_out 1"/> - <Connection other="Audio 7/audio_out 1"/> - <Connection other="Audio 8/audio_out 1"/> - <Connection other="Audio 9/audio_out 1"/> - <Connection other="Audio 10/audio_out 1"/> - <Connection other="Audio 11/audio_out 1"/> - <Connection other="Audio 12/audio_out 1"/> - <Connection other="Audio 13/audio_out 1"/> - <Connection other="Audio 14/audio_out 1"/> - <Connection other="Audio 15/audio_out 1"/> - <Connection other="Audio 16/audio_out 1"/> - <Connection other="Audio 17/audio_out 1"/> - <Connection other="Audio 18/audio_out 1"/> - <Connection other="Audio 19/audio_out 1"/> - <Connection other="Audio 20/audio_out 1"/> - <Connection other="Audio 21/audio_out 1"/> - <Connection other="Audio 22/audio_out 1"/> - <Connection other="Audio 23/audio_out 1"/> - <Connection other="Audio 24/audio_out 1"/> - <Connection other="Audio 25/audio_out 1"/> - <Connection other="Audio 26/audio_out 1"/> - <Connection other="Audio 27/audio_out 1"/> - <Connection other="Audio 28/audio_out 1"/> - <Connection other="Audio 29/audio_out 1"/> - <Connection other="Audio 30/audio_out 1"/> - <Connection other="Audio 31/audio_out 1"/> - <Connection other="Audio 32/audio_out 1"/> - </Port> - <Port type="audio" name="master/audio_in 2"> - <Connection other="Audio 1/audio_out 2"/> - <Connection other="Audio 2/audio_out 2"/> - <Connection other="Audio 3/audio_out 2"/> - <Connection other="Audio 4/audio_out 2"/> - <Connection other="Audio 5/audio_out 2"/> - <Connection other="Audio 6/audio_out 2"/> - <Connection other="Audio 7/audio_out 2"/> - <Connection other="Audio 8/audio_out 2"/> - <Connection other="Audio 9/audio_out 2"/> - <Connection other="Audio 10/audio_out 2"/> - <Connection other="Audio 11/audio_out 2"/> - <Connection other="Audio 12/audio_out 2"/> - <Connection other="Audio 13/audio_out 2"/> - <Connection other="Audio 14/audio_out 2"/> - <Connection other="Audio 15/audio_out 2"/> - <Connection other="Audio 16/audio_out 2"/> - <Connection other="Audio 17/audio_out 2"/> - <Connection other="Audio 18/audio_out 2"/> - <Connection other="Audio 19/audio_out 2"/> - <Connection other="Audio 20/audio_out 2"/> - <Connection other="Audio 21/audio_out 2"/> - <Connection other="Audio 22/audio_out 2"/> - <Connection other="Audio 23/audio_out 2"/> - <Connection other="Audio 24/audio_out 2"/> - <Connection other="Audio 25/audio_out 2"/> - <Connection other="Audio 26/audio_out 2"/> - <Connection other="Audio 27/audio_out 2"/> - <Connection other="Audio 28/audio_out 2"/> - <Connection other="Audio 29/audio_out 2"/> - <Connection other="Audio 30/audio_out 2"/> - <Connection other="Audio 31/audio_out 2"/> - <Connection other="Audio 32/audio_out 2"/> - </Port> - </IO> - <IO name="master" id="40" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="master/audio_out 1"> - <Connection other="system:playback_1"/> - </Port> - <Port type="audio" name="master/audio_out 2"> - <Connection other="system:playback_2"/> - </Port> - </IO> - <Controllable name="solo" id="24" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="26" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="318"/> - <Pannable> - <Controllable name="pan-azimuth" id="30" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="34" flags="" value="1.000000000000"/> - <Controllable name="pan-elevation" id="32" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="36" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="38" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="41" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="43" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="44" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="45" name="master" active="yes" user-latency="0" own-input="yes" own-output="no" output="master" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Equal Power Stereo"/> - </PannerShell> - </Processor> - </Route> - <Route id="83" name="Audio 1" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=1:signal=1" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 1" id="101" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 1/audio_in 1"> - <Connection other="system:capture_1"/> - </Port> - </IO> - <IO name="Audio 1" id="102" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 1/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 1/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="86" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="88" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="2"/> - <Pannable> - <Controllable name="pan-azimuth" id="92" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="96" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="94" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="98" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="100" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="103" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="105" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="106" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="107" name="Audio 1" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 1" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="85" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 1.1" name="Audio 1" id="109" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="115" name="Audio 2" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=2:signal=2" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 2" id="133" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 2/audio_in 1"> - <Connection other="system:capture_2"/> - </Port> - </IO> - <IO name="Audio 2" id="134" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 2/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 2/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="118" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="120" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="3"/> - <Pannable> - <Controllable name="pan-azimuth" id="124" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="128" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="126" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="130" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="132" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="135" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="137" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="138" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="139" name="Audio 2" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 2" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="117" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 2.1" name="Audio 2" id="141" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="147" name="Audio 3" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=3:signal=3" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 3" id="165" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 3/audio_in 1"/> - </IO> - <IO name="Audio 3" id="166" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 3/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 3/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="150" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="152" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="4"/> - <Pannable> - <Controllable name="pan-azimuth" id="156" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="160" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="158" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="162" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="164" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="167" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="169" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="170" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="171" name="Audio 3" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 3" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="149" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 3.1" name="Audio 3" id="173" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="179" name="Audio 4" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=4:signal=4" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 4" id="197" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 4/audio_in 1"/> - </IO> - <IO name="Audio 4" id="198" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 4/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 4/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="182" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="184" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="5"/> - <Pannable> - <Controllable name="pan-azimuth" id="188" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="192" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="190" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="194" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="196" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="199" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="201" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="202" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="203" name="Audio 4" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 4" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="181" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 4.1" name="Audio 4" id="205" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="211" name="Audio 5" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=5:signal=5" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 5" id="229" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 5/audio_in 1"/> - </IO> - <IO name="Audio 5" id="230" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 5/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 5/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="214" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="216" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="6"/> - <Pannable> - <Controllable name="pan-azimuth" id="220" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="224" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="222" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="226" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="228" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="231" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="233" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="234" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="235" name="Audio 5" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 5" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="213" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 5.1" name="Audio 5" id="237" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="243" name="Audio 6" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=6:signal=6" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 6" id="261" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 6/audio_in 1"/> - </IO> - <IO name="Audio 6" id="262" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 6/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 6/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="246" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="248" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="7"/> - <Pannable> - <Controllable name="pan-azimuth" id="252" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="256" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="254" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="258" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="260" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="263" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="265" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="266" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="267" name="Audio 6" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 6" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="245" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 6.1" name="Audio 6" id="269" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="275" name="Audio 7" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=7:signal=7" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 7" id="293" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 7/audio_in 1"/> - </IO> - <IO name="Audio 7" id="294" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 7/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 7/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="278" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="280" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="8"/> - <Pannable> - <Controllable name="pan-azimuth" id="284" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="288" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="286" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="290" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="292" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="295" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="297" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="298" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="299" name="Audio 7" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 7" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="277" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 7.1" name="Audio 7" id="301" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="307" name="Audio 8" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=8:signal=8" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 8" id="325" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 8/audio_in 1"/> - </IO> - <IO name="Audio 8" id="326" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 8/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 8/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="310" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="312" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="9"/> - <Pannable> - <Controllable name="pan-azimuth" id="316" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="320" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="318" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="322" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="324" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="327" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="329" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="330" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="331" name="Audio 8" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 8" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="309" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 8.1" name="Audio 8" id="333" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="339" name="Audio 9" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=9:signal=9" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 9" id="357" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 9/audio_in 1"/> - </IO> - <IO name="Audio 9" id="358" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 9/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 9/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="342" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="344" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="10"/> - <Pannable> - <Controllable name="pan-azimuth" id="348" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="352" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="350" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="354" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="356" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="359" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="361" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="362" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="363" name="Audio 9" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 9" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="341" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 9.1" name="Audio 9" id="365" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="371" name="Audio 10" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=10:signal=10" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 10" id="389" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 10/audio_in 1"/> - </IO> - <IO name="Audio 10" id="390" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 10/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 10/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="374" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="376" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="11"/> - <Pannable> - <Controllable name="pan-azimuth" id="380" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="384" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="382" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="386" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="388" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="391" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="393" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="394" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="395" name="Audio 10" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 10" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="373" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 10.1" name="Audio 10" id="397" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="403" name="Audio 11" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=11:signal=11" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 11" id="421" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 11/audio_in 1"/> - </IO> - <IO name="Audio 11" id="422" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 11/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 11/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="406" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="408" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="12"/> - <Pannable> - <Controllable name="pan-azimuth" id="412" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="416" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="414" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="418" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="420" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="423" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="425" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="426" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="427" name="Audio 11" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 11" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="405" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 11.1" name="Audio 11" id="429" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="435" name="Audio 12" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=12:signal=12" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 12" id="453" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 12/audio_in 1"/> - </IO> - <IO name="Audio 12" id="454" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 12/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 12/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="438" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="440" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="13"/> - <Pannable> - <Controllable name="pan-azimuth" id="444" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="448" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="446" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="450" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="452" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="455" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="457" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="458" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="459" name="Audio 12" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 12" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="437" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 12.1" name="Audio 12" id="461" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="467" name="Audio 13" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=13:signal=13" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 13" id="485" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 13/audio_in 1"/> - </IO> - <IO name="Audio 13" id="486" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 13/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 13/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="470" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="472" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="14"/> - <Pannable> - <Controllable name="pan-azimuth" id="476" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="480" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="478" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="482" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="484" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="487" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="489" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="490" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="491" name="Audio 13" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 13" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="469" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 13.1" name="Audio 13" id="493" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="499" name="Audio 14" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=14:signal=14" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 14" id="517" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 14/audio_in 1"/> - </IO> - <IO name="Audio 14" id="518" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 14/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 14/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="502" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="504" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="15"/> - <Pannable> - <Controllable name="pan-azimuth" id="508" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="512" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="510" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="514" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="516" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="519" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="521" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="522" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="523" name="Audio 14" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 14" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="501" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 14.1" name="Audio 14" id="525" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="531" name="Audio 15" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=15:signal=15" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 15" id="549" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 15/audio_in 1"/> - </IO> - <IO name="Audio 15" id="550" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 15/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 15/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="534" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="536" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="16"/> - <Pannable> - <Controllable name="pan-azimuth" id="540" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="544" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="542" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="546" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="548" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="551" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="553" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="554" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="555" name="Audio 15" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 15" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="533" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 15.1" name="Audio 15" id="557" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="563" name="Audio 16" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=16:signal=16" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 16" id="581" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 16/audio_in 1"/> - </IO> - <IO name="Audio 16" id="582" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 16/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 16/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="566" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="568" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="17"/> - <Pannable> - <Controllable name="pan-azimuth" id="572" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="576" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="574" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="578" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="580" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="583" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="585" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="586" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="587" name="Audio 16" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 16" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="565" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 16.1" name="Audio 16" id="589" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="595" name="Audio 17" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=17:signal=17" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 17" id="613" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 17/audio_in 1"/> - </IO> - <IO name="Audio 17" id="614" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 17/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 17/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="598" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="600" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="18"/> - <Pannable> - <Controllable name="pan-azimuth" id="604" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="608" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="606" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="610" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="612" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="615" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="617" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="618" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="619" name="Audio 17" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 17" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="597" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 17.1" name="Audio 17" id="621" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="627" name="Audio 18" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=18:signal=18" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 18" id="645" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 18/audio_in 1"/> - </IO> - <IO name="Audio 18" id="646" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 18/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 18/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="630" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="632" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="19"/> - <Pannable> - <Controllable name="pan-azimuth" id="636" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="640" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="638" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="642" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="644" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="647" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="649" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="650" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="651" name="Audio 18" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 18" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="629" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 18.1" name="Audio 18" id="653" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="659" name="Audio 19" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=19:signal=19" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 19" id="677" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 19/audio_in 1"/> - </IO> - <IO name="Audio 19" id="678" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 19/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 19/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="662" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="664" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="20"/> - <Pannable> - <Controllable name="pan-azimuth" id="668" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="672" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="670" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="674" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="676" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="679" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="681" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="682" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="683" name="Audio 19" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 19" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="661" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 19.1" name="Audio 19" id="685" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="691" name="Audio 20" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=20:signal=20" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 20" id="709" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 20/audio_in 1"/> - </IO> - <IO name="Audio 20" id="710" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 20/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 20/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="694" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="696" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="21"/> - <Pannable> - <Controllable name="pan-azimuth" id="700" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="704" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="702" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="706" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="708" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="711" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="713" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="714" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="715" name="Audio 20" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 20" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="693" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 20.1" name="Audio 20" id="717" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="723" name="Audio 21" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=21:signal=21" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 21" id="741" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 21/audio_in 1"/> - </IO> - <IO name="Audio 21" id="742" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 21/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 21/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="726" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="728" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="22"/> - <Pannable> - <Controllable name="pan-azimuth" id="732" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="736" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="734" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="738" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="740" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="743" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="745" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="746" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="747" name="Audio 21" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 21" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="725" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 21.1" name="Audio 21" id="749" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="755" name="Audio 22" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=22:signal=22" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 22" id="773" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 22/audio_in 1"/> - </IO> - <IO name="Audio 22" id="774" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 22/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 22/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="758" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="760" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="23"/> - <Pannable> - <Controllable name="pan-azimuth" id="764" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="768" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="766" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="770" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="772" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="775" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="777" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="778" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="779" name="Audio 22" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 22" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="757" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 22.1" name="Audio 22" id="781" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="787" name="Audio 23" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=23:signal=23" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 23" id="805" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 23/audio_in 1"/> - </IO> - <IO name="Audio 23" id="806" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 23/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 23/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="790" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="792" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="24"/> - <Pannable> - <Controllable name="pan-azimuth" id="796" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="800" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="798" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="802" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="804" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="807" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="809" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="810" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="811" name="Audio 23" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 23" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="789" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 23.1" name="Audio 23" id="813" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="819" name="Audio 24" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=24:signal=24" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 24" id="837" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 24/audio_in 1"/> - </IO> - <IO name="Audio 24" id="838" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 24/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 24/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="822" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="824" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="25"/> - <Pannable> - <Controllable name="pan-azimuth" id="828" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="832" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="830" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="834" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="836" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="839" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="841" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="842" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="843" name="Audio 24" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 24" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="821" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 24.1" name="Audio 24" id="845" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="851" name="Audio 25" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=25:signal=25" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 25" id="869" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 25/audio_in 1"/> - </IO> - <IO name="Audio 25" id="870" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 25/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 25/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="854" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="856" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="26"/> - <Pannable> - <Controllable name="pan-azimuth" id="860" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="864" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="862" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="866" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="868" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="871" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="873" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="874" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="875" name="Audio 25" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 25" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="853" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 25.1" name="Audio 25" id="877" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="883" name="Audio 26" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=26:signal=26" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 26" id="901" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 26/audio_in 1"/> - </IO> - <IO name="Audio 26" id="902" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 26/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 26/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="886" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="888" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="27"/> - <Pannable> - <Controllable name="pan-azimuth" id="892" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="896" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="894" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="898" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="900" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="903" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="905" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="906" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="907" name="Audio 26" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 26" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="885" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 26.1" name="Audio 26" id="909" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="915" name="Audio 27" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=27:signal=27" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 27" id="933" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 27/audio_in 1"> - <Connection other="system:capture_1"/> - </Port> - </IO> - <IO name="Audio 27" id="934" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 27/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 27/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="918" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="920" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="28"/> - <Pannable> - <Controllable name="pan-azimuth" id="924" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="928" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="926" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="930" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="932" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="935" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="937" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="938" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="939" name="Audio 27" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 27" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="917" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 27.1" name="Audio 27" id="941" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="947" name="Audio 28" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=28:signal=28" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 28" id="965" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 28/audio_in 1"> - <Connection other="system:capture_2"/> - </Port> - </IO> - <IO name="Audio 28" id="966" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 28/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 28/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="950" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="952" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="29"/> - <Pannable> - <Controllable name="pan-azimuth" id="956" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="960" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="958" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="962" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="964" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="967" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="969" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="970" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="971" name="Audio 28" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 28" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="949" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 28.1" name="Audio 28" id="973" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="979" name="Audio 29" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=29:signal=29" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 29" id="997" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 29/audio_in 1"/> - </IO> - <IO name="Audio 29" id="998" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 29/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 29/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="982" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="984" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="30"/> - <Pannable> - <Controllable name="pan-azimuth" id="988" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="992" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="990" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="994" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="996" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="999" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="1001" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="1002" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="1003" name="Audio 29" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 29" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="981" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 29.1" name="Audio 29" id="1005" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="1011" name="Audio 30" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=30:signal=30" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 30" id="1029" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 30/audio_in 1"/> - </IO> - <IO name="Audio 30" id="1030" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 30/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 30/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="1014" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="1016" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="31"/> - <Pannable> - <Controllable name="pan-azimuth" id="1020" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="1024" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="1022" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="1026" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="1028" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="1031" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="1033" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="1034" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="1035" name="Audio 30" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 30" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="1013" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 30.1" name="Audio 30" id="1037" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="1043" name="Audio 31" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=31:signal=31" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 31" id="1061" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 31/audio_in 1"/> - </IO> - <IO name="Audio 31" id="1062" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 31/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 31/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="1046" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="1048" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="32"/> - <Pannable> - <Controllable name="pan-azimuth" id="1052" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="1056" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="1054" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="1058" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="1060" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="1063" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="1065" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="1066" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="1067" name="Audio 31" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 31" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="1045" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 31.1" name="Audio 31" id="1069" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - <Route id="1075" name="Audio 32" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="editor=32:signal=32" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal"> - <IO name="Audio 32" id="1093" direction="Input" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 32/audio_in 1"/> - </IO> - <IO name="Audio 32" id="1094" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="Audio 32/audio_out 1"> - <Connection other="master/audio_in 1"/> - </Port> - <Port type="audio" name="Audio 32/audio_out 2"> - <Connection other="master/audio_in 2"/> - </Port> - </IO> - <Controllable name="solo" id="1078" flags="Toggle" value="0.000000000000"/> - <Controllable name="mute" id="1080" flags="Toggle" value="0.000000000000"/> - <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/> - <RemoteControl id="33"/> - <Pannable> - <Controllable name="pan-azimuth" id="1084" flags="" value="0.500000000000"/> - <Controllable name="pan-width" id="1088" flags="" value="0.000000000000"/> - <Controllable name="pan-elevation" id="1086" flags="" value="0.000000000000"/> - <Controllable name="pan-frontback" id="1090" flags="" value="0.000000000000"/> - <Controllable name="pan-lfe" id="1092" flags="" value="0.000000000000"/> - <Automation/> - </Pannable> - <Processor id="1095" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="1097" flags="GainLike" value="1.000000000000"/> - </Processor> - <Processor id="1098" name="Meter" active="yes" user-latency="0" type="meter"/> - <Processor id="1099" name="Audio 32" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 32" type="main-outs" role="Main"> - <PannerShell bypassed="no"> - <Panner type="Mono to Stereo Panner"/> - </PannerShell> - </Processor> - <Controllable name="recenable" id="1077" flags="" value="0.000000000000"/> - <Diskstream flags="Recordable" playlist="Audio 32.1" name="Audio 32" id="1101" speed="1.000000" capture-alignment="Automatic" channels="1"/> - </Route> - </Routes> - <Playlists> - <Playlist id="142" name="Audio 2.1" type="audio" orig-track-id="115" frozen="no" combine-ops="0"/> - <Playlist id="110" name="Audio 1.1" type="audio" orig-track-id="83" frozen="no" combine-ops="0"/> - <Playlist id="206" name="Audio 4.1" type="audio" orig-track-id="179" frozen="no" combine-ops="0"/> - <Playlist id="174" name="Audio 3.1" type="audio" orig-track-id="147" frozen="no" combine-ops="0"/> - <Playlist id="270" name="Audio 6.1" type="audio" orig-track-id="243" frozen="no" combine-ops="0"/> - <Playlist id="238" name="Audio 5.1" type="audio" orig-track-id="211" frozen="no" combine-ops="0"/> - <Playlist id="334" name="Audio 8.1" type="audio" orig-track-id="307" frozen="no" combine-ops="0"/> - <Playlist id="302" name="Audio 7.1" type="audio" orig-track-id="275" frozen="no" combine-ops="0"/> - <Playlist id="398" name="Audio 10.1" type="audio" orig-track-id="371" frozen="no" combine-ops="0"/> - <Playlist id="366" name="Audio 9.1" type="audio" orig-track-id="339" frozen="no" combine-ops="0"/> - <Playlist id="462" name="Audio 12.1" type="audio" orig-track-id="435" frozen="no" combine-ops="0"/> - <Playlist id="430" name="Audio 11.1" type="audio" orig-track-id="403" frozen="no" combine-ops="0"/> - <Playlist id="526" name="Audio 14.1" type="audio" orig-track-id="499" frozen="no" combine-ops="0"/> - <Playlist id="494" name="Audio 13.1" type="audio" orig-track-id="467" frozen="no" combine-ops="0"/> - <Playlist id="590" name="Audio 16.1" type="audio" orig-track-id="563" frozen="no" combine-ops="0"/> - <Playlist id="558" name="Audio 15.1" type="audio" orig-track-id="531" frozen="no" combine-ops="0"/> - <Playlist id="654" name="Audio 18.1" type="audio" orig-track-id="627" frozen="no" combine-ops="0"/> - <Playlist id="622" name="Audio 17.1" type="audio" orig-track-id="595" frozen="no" combine-ops="0"/> - <Playlist id="718" name="Audio 20.1" type="audio" orig-track-id="691" frozen="no" combine-ops="0"/> - <Playlist id="686" name="Audio 19.1" type="audio" orig-track-id="659" frozen="no" combine-ops="0"/> - <Playlist id="782" name="Audio 22.1" type="audio" orig-track-id="755" frozen="no" combine-ops="0"/> - <Playlist id="750" name="Audio 21.1" type="audio" orig-track-id="723" frozen="no" combine-ops="0"/> - <Playlist id="846" name="Audio 24.1" type="audio" orig-track-id="819" frozen="no" combine-ops="0"/> - <Playlist id="814" name="Audio 23.1" type="audio" orig-track-id="787" frozen="no" combine-ops="0"/> - <Playlist id="910" name="Audio 26.1" type="audio" orig-track-id="883" frozen="no" combine-ops="0"/> - <Playlist id="878" name="Audio 25.1" type="audio" orig-track-id="851" frozen="no" combine-ops="0"/> - <Playlist id="974" name="Audio 28.1" type="audio" orig-track-id="947" frozen="no" combine-ops="0"/> - <Playlist id="942" name="Audio 27.1" type="audio" orig-track-id="915" frozen="no" combine-ops="0"/> - <Playlist id="1038" name="Audio 30.1" type="audio" orig-track-id="1011" frozen="no" combine-ops="0"/> - <Playlist id="1006" name="Audio 29.1" type="audio" orig-track-id="979" frozen="no" combine-ops="0"/> - <Playlist id="1102" name="Audio 32.1" type="audio" orig-track-id="1075" frozen="no" combine-ops="0"/> - <Playlist id="1070" name="Audio 31.1" type="audio" orig-track-id="1043" frozen="no" combine-ops="0"/> - </Playlists> - <UnusedPlaylists/> - <RouteGroups/> - <Click> - <IO name="click" id="47" direction="Output" default-type="audio" user-latency="0"> - <Port type="audio" name="click/audio_out 1"> - <Connection other="system:playback_1"/> - </Port> - <Port type="audio" name="click/audio_out 2"> - <Connection other="system:playback_2"/> - </Port> - </IO> - <Processor id="2320" name="Amp" active="yes" user-latency="0" type="amp"> - <Controllable name="gaincontrol" id="2322" flags="GainLike" value="1.000000000000"/> - </Processor> - </Click> - <NamedSelections/> - <Speakers> - <Speaker azimuth="0" elevation="0" distance="1"/> - <Speaker azimuth="180" elevation="0" distance="0"/> - </Speakers> - <TempoMap> - <Tempo start="1|1|0" beats-per-minute="120.000000" note-type="4.000000" movable="no"/> - <Meter start="1|1|0" note-type="4.000000" divisions-per-bar="4.000000" movable="no"/> - </TempoMap> - <ControlProtocols> - <Protocol name="Open Sound Control (OSC)" active="no"/> - <Protocol name="Generic MIDI" feedback="0" feedback-interval="10000" active="yes"> - <Controls/> - </Protocol> - <Protocol name="Mackie" bank="0" ipmidi-base="21928" device-profile="" device-name="Mackie Control Universal Pro" active="yes"/> - </ControlProtocols> - <Extra> - <UI> - <Window name="R-22-41" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="R-22-44" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="R-22-45" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-22-41" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-22-44" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-22-45" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-83-103" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-83-106" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-83-107" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-115-135" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-115-138" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-115-139" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-147-167" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-147-170" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-147-171" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-179-199" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-179-202" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-179-203" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-211-231" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-211-234" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-211-235" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-243-263" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-243-266" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-243-267" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-275-295" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-275-298" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-275-299" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-307-327" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-307-330" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-307-331" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-339-359" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-339-362" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-339-363" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-371-391" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-371-394" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-371-395" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-403-423" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-403-426" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-403-427" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-435-455" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-435-458" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-435-459" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-467-487" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-467-490" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-467-491" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-499-519" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-499-522" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-499-523" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-531-551" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-531-554" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-531-555" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-563-583" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-563-586" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-563-587" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-595-615" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-595-618" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-595-619" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-627-647" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-627-650" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-627-651" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-659-679" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-659-682" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-659-683" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-691-711" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-691-714" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-691-715" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-723-743" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-723-746" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-723-747" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-755-775" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-755-778" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-755-779" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-787-807" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-787-810" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-787-811" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-819-839" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-819-842" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-819-843" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-851-871" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-851-874" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-851-875" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-883-903" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-883-906" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-883-907" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-915-935" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-915-938" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-915-939" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-947-967" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-947-970" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-947-971" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-979-999" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-979-1002" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-979-1003" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1011-1031" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1011-1034" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1011-1035" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1043-1063" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1043-1066" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1043-1067" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1075-1095" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1075-1098" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <Window name="M-1075-1099" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/> - <GUIObjectState> - <Object id="route 22" color="28156:3060:40485"/> - <Object id="rtav 22" height="60" visible="1"/> - <Object id="automation 43" height="60" visible="0"/> - <Object id="automation 30" height="60" visible="0"/> - <Object id="automation 34" height="60" visible="0"/> - <Object id="strip 22" visible="1" strip-width="Wide"> - <Object id="processor 41"/> - </Object> - <Object id="route 83" color="41214:6238:37268"/> - <Object id="rtav 83" height="60" visible="1"/> - <Object id="automation 105" height="60" visible="0"/> - <Object id="automation 92" height="60" visible="0"/> - <Object id="route 115" color="30107:2538:43272"/> - <Object id="rtav 115" height="60" visible="1"/> - <Object id="automation 137" height="60" visible="0"/> - <Object id="automation 124" height="60" visible="0"/> - <Object id="route 147" color="45907:43976:29990"/> - <Object id="rtav 147" height="60" visible="1"/> - <Object id="automation 169" height="60" visible="0"/> - <Object id="automation 156" height="60" visible="0"/> - <Object id="route 179" color="28824:2764:526"/> - <Object id="rtav 179" height="60" visible="1"/> - <Object id="automation 201" height="60" visible="0"/> - <Object id="automation 188" height="60" visible="0"/> - <Object id="route 211" color="3188:10144:2761"/> - <Object id="rtav 211" height="60" visible="1"/> - <Object id="automation 233" height="60" visible="0"/> - <Object id="automation 220" height="60" visible="0"/> - <Object id="route 243" color="8803:25061:18421"/> - <Object id="rtav 243" height="60" visible="1"/> - <Object id="automation 265" height="60" visible="0"/> - <Object id="automation 252" height="60" visible="0"/> - <Object id="route 275" color="45836:4494:3812"/> - <Object id="rtav 275" height="60" visible="1"/> - <Object id="automation 297" height="60" visible="0"/> - <Object id="automation 284" height="60" visible="0"/> - <Object id="route 307" color="45754:9969:15307"/> - <Object id="rtav 307" height="60" visible="1"/> - <Object id="automation 329" height="60" visible="0"/> - <Object id="automation 316" height="60" visible="0"/> - <Object id="route 339" color="34367:13830:24287"/> - <Object id="rtav 339" height="60" visible="1"/> - <Object id="automation 361" height="60" visible="0"/> - <Object id="automation 348" height="60" visible="0"/> - <Object id="route 371" color="37491:9780:8407"/> - <Object id="rtav 371" height="60" visible="1"/> - <Object id="automation 393" height="60" visible="0"/> - <Object id="automation 380" height="60" visible="0"/> - <Object id="route 403" color="12158:35400:1621"/> - <Object id="rtav 403" height="60" visible="1"/> - <Object id="automation 425" height="60" visible="0"/> - <Object id="automation 412" height="60" visible="0"/> - <Object id="route 435" color="6748:19025:20080"/> - <Object id="rtav 435" height="60" visible="1"/> - <Object id="automation 457" height="60" visible="0"/> - <Object id="automation 444" height="60" visible="0"/> - <Object id="route 467" color="45639:1015:17987"/> - <Object id="rtav 467" height="60" visible="1"/> - <Object id="automation 489" height="60" visible="0"/> - <Object id="automation 476" height="60" visible="0"/> - <Object id="route 499" color="41615:1541:46811"/> - <Object id="rtav 499" height="60" visible="1"/> - <Object id="automation 521" height="60" visible="0"/> - <Object id="automation 508" height="60" visible="0"/> - <Object id="route 531" color="44379:40654:38351"/> - <Object id="rtav 531" height="60" visible="1"/> - <Object id="automation 553" height="60" visible="0"/> - <Object id="automation 540" height="60" visible="0"/> - <Object id="route 563" color="42876:47427:47155"/> - <Object id="rtav 563" height="60" visible="1"/> - <Object id="automation 585" height="60" visible="0"/> - <Object id="automation 572" height="60" visible="0"/> - <Object id="route 595" color="8289:3239:44991"/> - <Object id="rtav 595" height="60" visible="1"/> - <Object id="automation 617" height="60" visible="0"/> - <Object id="automation 604" height="60" visible="0"/> - <Object id="route 627" color="12783:18546:42745"/> - <Object id="rtav 627" height="60" visible="1"/> - <Object id="automation 649" height="60" visible="0"/> - <Object id="automation 636" height="60" visible="0"/> - <Object id="route 659" color="11104:31186:29113"/> - <Object id="rtav 659" height="60" visible="1"/> - <Object id="automation 681" height="60" visible="0"/> - <Object id="automation 668" height="60" visible="0"/> - <Object id="route 691" color="24934:39593:18604"/> - <Object id="rtav 691" height="60" visible="1"/> - <Object id="automation 713" height="60" visible="0"/> - <Object id="automation 700" height="60" visible="0"/> - <Object id="route 723" color="23066:29567:19114"/> - <Object id="rtav 723" height="60" visible="1"/> - <Object id="automation 745" height="60" visible="0"/> - <Object id="automation 732" height="60" visible="0"/> - <Object id="route 755" color="10467:1647:25863"/> - <Object id="rtav 755" height="60" visible="1"/> - <Object id="automation 777" height="60" visible="0"/> - <Object id="automation 764" height="60" visible="0"/> - <Object id="route 787" color="29492:19635:23502"/> - <Object id="rtav 787" height="60" visible="1"/> - <Object id="automation 809" height="60" visible="0"/> - <Object id="automation 796" height="60" visible="0"/> - <Object id="route 819" color="30507:6798:5469"/> - <Object id="rtav 819" height="60" visible="1"/> - <Object id="automation 841" height="60" visible="0"/> - <Object id="automation 828" height="60" visible="0"/> - <Object id="route 851" color="20400:45150:38201"/> - <Object id="rtav 851" height="60" visible="1"/> - <Object id="automation 873" height="60" visible="0"/> - <Object id="automation 860" height="60" visible="0"/> - <Object id="route 883" color="1406:32657:33077"/> - <Object id="rtav 883" height="60" visible="1"/> - <Object id="automation 905" height="60" visible="0"/> - <Object id="automation 892" height="60" visible="0"/> - <Object id="route 915" color="833:18000:29718"/> - <Object id="rtav 915" height="60" visible="1"/> - <Object id="automation 937" height="60" visible="0"/> - <Object id="automation 924" height="60" visible="0"/> - <Object id="route 947" color="4072:12746:42501"/> - <Object id="rtav 947" height="60" visible="1"/> - <Object id="automation 969" height="60" visible="0"/> - <Object id="automation 956" height="60" visible="0"/> - <Object id="route 979" color="22618:30211:41958"/> - <Object id="rtav 979" height="60" visible="1"/> - <Object id="automation 1001" height="60" visible="0"/> - <Object id="automation 988" height="60" visible="0"/> - <Object id="route 1011" color="5804:37167:7244"/> - <Object id="rtav 1011" height="60" visible="1"/> - <Object id="automation 1033" height="60" visible="0"/> - <Object id="automation 1020" height="60" visible="0"/> - <Object id="route 1043" color="33750:44634:30311"/> - <Object id="rtav 1043" height="60" visible="1"/> - <Object id="automation 1065" height="60" visible="0"/> - <Object id="automation 1052" height="60" visible="0"/> - <Object id="route 1075" color="15317:22497:40778"/> - <Object id="rtav 1075" height="60" visible="1"/> - <Object id="automation 1097" height="60" visible="0"/> - <Object id="automation 1084" height="60" visible="0"/> - <Object id="strip 83" visible="1"> - <Object id="processor 103"/> - </Object> - <Object id="strip 115" visible="1"> - <Object id="processor 135"/> - </Object> - <Object id="strip 147" visible="1"> - <Object id="processor 167"/> - </Object> - <Object id="strip 179" visible="1"> - <Object id="processor 199"/> - </Object> - <Object id="strip 211" visible="1"> - <Object id="processor 231"/> - </Object> - <Object id="strip 243" visible="1"> - <Object id="processor 263"/> - </Object> - <Object id="strip 275" visible="1"> - <Object id="processor 295"/> - </Object> - <Object id="strip 307" visible="1"> - <Object id="processor 327"/> - </Object> - <Object id="strip 339" visible="1"> - <Object id="processor 359"/> - </Object> - <Object id="strip 371" visible="1"> - <Object id="processor 391"/> - </Object> - <Object id="strip 403" visible="1"> - <Object id="processor 423"/> - </Object> - <Object id="strip 435" visible="1"> - <Object id="processor 455"/> - </Object> - <Object id="strip 467" visible="1"> - <Object id="processor 487"/> - </Object> - <Object id="strip 499" visible="1"> - <Object id="processor 519"/> - </Object> - <Object id="strip 531" visible="1"> - <Object id="processor 551"/> - </Object> - <Object id="strip 563" visible="1"> - <Object id="processor 583"/> - </Object> - <Object id="strip 595" visible="1"> - <Object id="processor 615"/> - </Object> - <Object id="strip 627" visible="1"> - <Object id="processor 647"/> - </Object> - <Object id="strip 659" visible="1"> - <Object id="processor 679"/> - </Object> - <Object id="strip 691" visible="1"> - <Object id="processor 711"/> - </Object> - <Object id="strip 723" visible="1"> - <Object id="processor 743"/> - </Object> - <Object id="strip 755" visible="1"> - <Object id="processor 775"/> - </Object> - <Object id="strip 787" visible="1"> - <Object id="processor 807"/> - </Object> - <Object id="strip 819" visible="1"> - <Object id="processor 839"/> - </Object> - <Object id="strip 851" visible="1"> - <Object id="processor 871"/> - </Object> - <Object id="strip 883" visible="1"> - <Object id="processor 903"/> - </Object> - <Object id="strip 915" visible="1"> - <Object id="processor 935"/> - </Object> - <Object id="strip 947" visible="1"> - <Object id="processor 967"/> - </Object> - <Object id="strip 979" visible="1"> - <Object id="processor 999"/> - </Object> - <Object id="strip 1011" visible="1"> - <Object id="processor 1031"/> - </Object> - <Object id="strip 1043" visible="1"> - <Object id="processor 1063"/> - </Object> - <Object id="strip 1075" visible="1"> - <Object id="processor 1095"/> - </Object> - </GUIObjectState> - </UI> - </Extra> -</Session> diff --git a/libs/ardour/test/profiling/sessions/32tracks/32tracks.history.bak b/libs/ardour/test/profiling/sessions/32tracks/32tracks.history.bak deleted file mode 100644 index 6dd2506a89..0000000000 --- a/libs/ardour/test/profiling/sessions/32tracks/32tracks.history.bak +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<UndoHistory/> diff --git a/libs/evoral/src/Sequence.cpp b/libs/evoral/src/Sequence.cpp index 738d5a19c9..b56c234d75 100644 --- a/libs/evoral/src/Sequence.cpp +++ b/libs/evoral/src/Sequence.cpp @@ -257,7 +257,6 @@ Sequence<Time>::const_iterator::operator++() throw std::logic_error("Attempt to iterate past end of Sequence"); } - DEBUG_TRACE(DEBUG::Sequence, "Sequence::const_iterator++\n"); assert(_event && _event->buffer() && _event->size() > 0); const MIDIEvent<Time>& ev = *((MIDIEvent<Time>*)_event.get()); @@ -378,30 +377,30 @@ Sequence<Time>::const_iterator::operator++() // Set event to reflect new position switch (_type) { case NOTE_ON: - DEBUG_TRACE(DEBUG::Sequence, "iterator = note on\n"); + // DEBUG_TRACE(DEBUG::Sequence, "iterator = note on\n"); *_event = (*_note_iter)->on_event(); _active_notes.push(*_note_iter); break; case NOTE_OFF: - DEBUG_TRACE(DEBUG::Sequence, "iterator = note off\n"); + // DEBUG_TRACE(DEBUG::Sequence, "iterator = note off\n"); assert(!_active_notes.empty()); *_event = _active_notes.top()->off_event(); _active_notes.pop(); break; case CONTROL: - DEBUG_TRACE(DEBUG::Sequence, "iterator = control\n"); + //DEBUG_TRACE(DEBUG::Sequence, "iterator = control\n"); _seq->control_to_midi_event(_event, *_control_iter); break; case SYSEX: - DEBUG_TRACE(DEBUG::Sequence, "iterator = sysex\n"); + //DEBUG_TRACE(DEBUG::Sequence, "iterator = sysex\n"); *_event = *(*_sysex_iter); break; case PATCH_CHANGE: - DEBUG_TRACE(DEBUG::Sequence, "iterator = patch change\n"); + //DEBUG_TRACE(DEBUG::Sequence, "iterator = patch change\n"); *_event = (*_patch_change_iter)->message (_active_patch_change_message); break; default: - DEBUG_TRACE(DEBUG::Sequence, "iterator = end\n"); + //DEBUG_TRACE(DEBUG::Sequence, "iterator = end\n"); _is_end = true; } @@ -1025,12 +1024,12 @@ Sequence<Time>::append_note_off_unlocked (NotePtr note) _edited = true; - #ifdef PERCUSSIVE_IGNORE_NOTE_OFFS +#ifdef PERCUSSIVE_IGNORE_NOTE_OFFS if (_percussive) { DEBUG_TRACE(DEBUG::Sequence, "Sequence Ignoring note off (percussive mode)\n"); return; } - #endif +#endif bool resolved = false; @@ -1073,7 +1072,7 @@ template<typename Time> void Sequence<Time>::append_control_unlocked(const Parameter& param, Time time, double value, event_id_t /* evid */) { - DEBUG_TRACE (DEBUG::Sequence, string_compose ("%1 %2 @ %3\t=\t%4 # controls: %5\n", + DEBUG_TRACE (DEBUG::Sequence, string_compose ("%1 %2 @ %3 = %4 # controls: %5\n", this, _type_map.to_symbol(param), time, value, _controls.size())); boost::shared_ptr<Control> c = control(param, true); c->list()->add (time, value); diff --git a/libs/pbd/dmalloc.cc b/libs/pbd/dmalloc.cc deleted file mode 100644 index 0e730946c8..0000000000 --- a/libs/pbd/dmalloc.cc +++ /dev/null @@ -1,102 +0,0 @@ -/* - * file that facilitates C++ program debugging. - * - * Copyright 1995 by Gray Watson - * - * This file is part of the dmalloc package. - * - * Permission to use, copy, modify, and distribute this software for any - * NON-COMMERCIAL purpose and without fee is hereby granted, provided - * that the above copyright notice and this permission notice appear - * in all copies, and that the name of Gray Watson not be used in - * advertising or publicity pertaining to distribution of the document - * or software without specific, written prior permission. - * - * Please see the PERMISSIONS file or contact the author for information - * about commercial licenses. - * - * Gray Watson makes no representations about the suitability of the - * software described herein for any purpose. It is provided "as is" - * without express or implied warranty. - * - * The author may be contacted via http://www.letters.com/~gray/ - * - * $Id$ - */ - -/* - * This file is used to effectively redirect new to the more familiar - * malloc and delete to the more familiar free so they can be debugged - * with the debug malloc library.. They also give the known error - * behavior, too. - * - * Compile and link this in with the C++ program you want to debug. - * - * NOTE: I am not a C++ hacker so feedback in the form of other hints - * and ideas for C++ users would be much appreciated. - */ - -#ifdef DEBUG_MALLOC - -extern "C" { -#include <stdlib.h> -#include <dmalloc.h> -#include "/usr/local/src/dmalloc-4.1.2/return.h" -} - -/* - * An overload function for the C++ new. - */ -void * -operator new(size_t size) -{ - char *file; - GET_RET_ADDR(file); - - /* handle correct C++ semantics for an alloc of size 0 */ - - if (size == 0) size = 1; - - return _malloc_leap(file, 0, size); -} - -/* - * An overload function for the C++ new[]. - */ -void * -operator new[](size_t size) -{ - char *file; - GET_RET_ADDR(file); - - /* handle correct C++ semantics for an alloc of size 0 */ - - if (size == 0) size = 1; - - return _malloc_leap(file, 0, size); -} - -/* - * An overload function for the C++ delete. - */ -void -operator delete(void *pnt) -{ - char *file; - GET_RET_ADDR(file); - _free_leap(file, 0, pnt); -} - -/* - * An overload function for the C++ delete[]. Thanks to Jens Krinke - * <j.krinke@gmx.de> - */ -void -operator delete[](void *pnt) -{ - char *file; - GET_RET_ADDR(file); - _free_leap(file, 0, pnt); -} - -#endif diff --git a/libs/pbd/pbd/fastlog.h b/libs/pbd/pbd/fastlog.h index 9897da773a..f64ad996cf 100644 --- a/libs/pbd/pbd/fastlog.h +++ b/libs/pbd/pbd/fastlog.h @@ -1,6 +1,10 @@ -/* Copyright unknown. Code by Laurent de Soras <laurent@ohmforce.com>. - */ +/* +Copyright © 2013 Laurent de Soras <laurent.de.soras@free.fr> +This work is free. You can redistribute it and/or modify it under the +terms of the Do What The Fuck You Want To Public License, Version 2, +as published by Sam Hocevar. See http://www.wtfpl.net/ for more details. +*/ #ifndef __pbd_fastlog_h__ #define __pbd_fastlog_h__ diff --git a/libs/pbd/wscript b/libs/pbd/wscript index 4d0c09f410..64dd2a332f 100644 --- a/libs/pbd/wscript +++ b/libs/pbd/wscript @@ -43,7 +43,6 @@ libpbd_sources = [ 'debug.cc', 'enumwriter.cc', 'event_loop.cc', - 'dmalloc.cc', 'enums.cc', 'epa.cc', 'error.cc', diff --git a/libs/surfaces/powermate/README b/libs/surfaces/powermate/README deleted file mode 100644 index d786b1d898..0000000000 --- a/libs/surfaces/powermate/README +++ /dev/null @@ -1,21 +0,0 @@ - -This module works with the Griffin Powermate and allows some basic transport control. - -It autodetects the Powermate on any input device of the form "/dev/input/event*". This means you must have the powermate module in your kernel. It works out-of-the-box with 64Studio and presumably lots of other modern distributions. - -Turning the wheel left and right will act as a "Shuttle" wheel, adjusting playback speed up and down -Pushing the knob will switch between play and stop -Pushing the knob while turning will jump to the next or previous markers - - -In order for the powermate to work, you have to have permission to open the input device for reading. -In debian, I changed /etc/udev/rules.d/0_permissions.rules to have the line: -KERNEL=="event[0-9]*", MODE="0666" -but there are other ways to achieve this - - -Feedback, tweaks, bug fixes and feature ideas are encouraged - --Ben Loftis, ben@benloftis.com - -
\ No newline at end of file diff --git a/libs/surfaces/powermate/i18n.h b/libs/surfaces/powermate/i18n.h deleted file mode 100644 index dcbbfcf52e..0000000000 --- a/libs/surfaces/powermate/i18n.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __i18n_h__ -#define __i18n_h__ - -#include "pbd/compose.h" -#include "pbd/convert.h" -#include "gettext.h" - -#include <vector> -#include <string> - -#define _(Text) dgettext (PACKAGE,Text) -#define N_(Text) gettext_noop (Text) -#define X_(Text) Text -#define I18N(Array) PBD::internationalize (PACKAGE, Array) - -#endif // __i18n_h__ diff --git a/libs/surfaces/powermate/interface.cc b/libs/surfaces/powermate/interface.cc deleted file mode 100644 index 02ddf97722..0000000000 --- a/libs/surfaces/powermate/interface.cc +++ /dev/null @@ -1,57 +0,0 @@ -/* - Ardour9pin interface file - Ben Loftis - Created: 05/18/06 11:07:56 - Copyright Harrison Audio, LLC, 2007 -*/ - -#include "powermate.h" - -using namespace ARDOUR; - -ControlProtocol* -new_powermate_protocol (ControlProtocolDescriptor* /*descriptor*/, Session* s) -{ - PowermateControlProtocol* pcp = new PowermateControlProtocol (*s); - - if (pcp->set_active (true)) { - delete pcp; - return 0; - } - - return pcp; - -} - -void -delete_powermate_protocol (ControlProtocolDescriptor* /*descriptor*/, ControlProtocol* cp) -{ - delete cp; -} - -bool -probe_powermate_protocol (ControlProtocolDescriptor* /*descriptor*/) -{ - return PowermateControlProtocol::probe (); -} - -static ControlProtocolDescriptor powermate_descriptor = { - name : "powermate", - id : "uri://ardour.org/ardour/powermate:0", - ptr : 0, - module : 0, - mandatory : 0, - supports_feedback : false, - probe : probe_powermate_protocol, - initialize : new_powermate_protocol, - destroy : delete_powermate_protocol -}; - - -extern "C" { -ControlProtocolDescriptor* -protocol_descriptor () { - return &powermate_descriptor; -} -} - diff --git a/libs/surfaces/powermate/powermate.cc b/libs/surfaces/powermate/powermate.cc deleted file mode 100644 index 0475603a51..0000000000 --- a/libs/surfaces/powermate/powermate.cc +++ /dev/null @@ -1,258 +0,0 @@ -/* - powermate.cc - Ben Loftis - Created: 03/26/07 20:07:56 -*/ - - -#include <linux/input.h> -#include <cstring> -#include <cerrno> -#include <cstdio> -#include <unistd.h> -#include <fcntl.h> - -#include <glibmm.h> - -#include "pbd/pthread_utils.h" -#include "pbd/xml++.h" -#include "pbd/error.h" - -#include "ardour/debug.h" - -#include "powermate.h" -#include "i18n.h" - -using namespace ARDOUR; -using namespace std; -using namespace sigc; -using namespace PBD; - -#define NUM_VALID_PREFIXES 2 - -static const char *valid_prefix[NUM_VALID_PREFIXES] = { - "Griffin PowerMate", - "Griffin SoundKnob" -}; - -#define NUM_EVENT_DEVICES 16 - -int open_powermate (const char *dev, int mode) -{ - if (!Glib::file_test (dev, Glib::FILE_TEST_EXISTS)) { - return -1; - } - - int fd = open(dev, mode); - int i; - char name[255]; - - if (fd < 0) { - if (errno != EACCES) { - error << string_compose ("Unable to open \"%1\": %2", dev, strerror(errno)) << endmsg; - } - return -1; - } - - /* placate valgrind */ - name[0] = '\0'; - - if (ioctl (fd, EVIOCGNAME (sizeof(name)), name) < 0) { - error << string_compose ("\"%1\": EVIOCGNAME failed: %2", dev, strerror(errno)) << endmsg; - close (fd); - return -1; - } - - // it's the correct device if the prefix matches what we expect it to be: - for (i = 0; i < NUM_VALID_PREFIXES; ++i) { - if (!strncasecmp (name, valid_prefix[i], strlen (valid_prefix[i]))) { - return fd; - } - } - - close (fd); - return -1; -} - -int find_powermate(int mode) -{ - char devname[256]; - int i, r; - - for (i = 0; i < NUM_EVENT_DEVICES; i++) { - sprintf (devname, "/dev/input/event%d", i); - r = open_powermate (devname, mode); - if (r >= 0) { - return r; - } - } - - return -1; -} - -PowermateControlProtocol::PowermateControlProtocol (Session& s) - : ControlProtocol (s, "powermate") -{ -} - -PowermateControlProtocol::~PowermateControlProtocol () -{ - set_active (false); -} - -bool -PowermateControlProtocol::probe () -{ - int port = find_powermate( O_RDONLY ); - - if (port < 0) { - if (errno == ENOENT) { - DEBUG_TRACE (DEBUG::ControlProtocols, "Powermate device not found; perhaps you have no powermate connected"); - } else { - DEBUG_TRACE (DEBUG::ControlProtocols, string_compose ("powermate: Opening of powermate failed - %1\n", strerror(errno))); - } - return false; - } - - close (port); - return true; -} - -int -PowermateControlProtocol::set_active (bool inActivate) -{ - if (inActivate != _active) { - - if (inActivate) { - - mPort = find_powermate(O_RDONLY); - - if ( mPort < 0 ) { - return -1; - } - - if (pthread_create_and_store ("Powermate", &mThread, SerialThreadEntry, this) == 0) { - _active = true; - } else { - return -1; - } - - printf("Powermate Control Protocol activated\n"); - - } else { - pthread_cancel (mThread); - close (mPort); - _active = false; - printf("Powermate Control Protocol deactivated\n"); - } - } - - return 0; -} - -XMLNode& -PowermateControlProtocol::get_state () -{ - XMLNode* node = new XMLNode (X_("Protocol")); - node->add_property (X_("name"), _name); - return *node; -} - -int -PowermateControlProtocol::set_state (const XMLNode& /*node*/, int /*version*/) -{ - return 0; -} - - -void* -PowermateControlProtocol::SerialThreadEntry (void* arg) -{ - static_cast<PowermateControlProtocol*>(arg)->register_thread ("Powermate"); - return static_cast<PowermateControlProtocol*>(arg)->SerialThread (); -} - -#define BUFFER_SIZE 32 - -bool held = false; -bool skippingMarkers = false; - -void -PowermateControlProtocol::ProcessEvent(struct input_event *ev) -{ -#ifdef VERBOSE - fprintf(stderr, "type=0x%04x, code=0x%04x, value=%d\n", - ev->type, ev->code, (int)ev->value); -#endif - - switch(ev->type){ - case EV_MSC: - printf("The LED pulse settings were changed; code=0x%04x, value=0x%08x\n", ev->code, ev->value); - break; - case EV_REL: - if(ev->code != REL_DIAL) - fprintf(stderr, "Warning: unexpected rotation event; ev->code = 0x%04x\n", ev->code); - else{ - if (held) { - //click and hold to skip forward and back by markers - skippingMarkers = true;; - if (ev->value > 0) - next_marker(); - else - prev_marker(); - } else { - //scale the range so that we can go from +/-8x within 180 degrees, with less precision at the higher speeds - float speed = get_transport_speed(); - speed += (float)ev->value * 0.05; - if (speed > 1.5 || speed < -1.5 ) - speed += ev->value; - set_transport_speed( speed ); - } - } - break; - case EV_KEY: - if(ev->code != BTN_0) - fprintf(stderr, "Warning: unexpected key event; ev->code = 0x%04x\n", ev->code); - else - if (ev->value) - held = true; - else { - held = false; - if (skippingMarkers) { - skippingMarkers = false; - } else { - if (get_transport_speed() == 0.0) { - set_transport_speed(1.0); - } else { - set_transport_speed(0.0); - } - } - } - break; - } - - fflush(stdout); -} - -void* -PowermateControlProtocol::SerialThread () -{ - struct input_event ibuffer[BUFFER_SIZE]; - int r, events, i; - - while(1){ - r = read(mPort, ibuffer, sizeof(struct input_event) * BUFFER_SIZE); - if( r > 0 ){ - events = r / sizeof(struct input_event); - for(i=0; i<events; i++) - ProcessEvent(&ibuffer[i]); - }else{ - fprintf(stderr, "read() failed: %s\n", strerror(errno)); - return (void*) 0; - } - } - - return (void*) 0; -} - - diff --git a/libs/surfaces/powermate/powermate.h b/libs/surfaces/powermate/powermate.h deleted file mode 100644 index b8fd2b5789..0000000000 --- a/libs/surfaces/powermate/powermate.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef ardour_powermate_h -#define ardour_powermate_h - -#include <sys/time.h> -#include <pthread.h> - -#include "control_protocol/control_protocol.h" - -class PowermateControlProtocol : public ARDOUR::ControlProtocol -{ - public: - PowermateControlProtocol (ARDOUR::Session&); - virtual ~PowermateControlProtocol(); - - int set_active (bool yn); - static bool probe (); - - XMLNode& get_state (); - int set_state (const XMLNode&, int version); - - private: - - static void* SerialThreadEntry (void* arg); - void* SerialThread (); - - void ProcessEvent(struct input_event *ev); - - int mPort; - pthread_t mThread; - -}; - - -#endif diff --git a/libs/surfaces/powermate/wscript b/libs/surfaces/powermate/wscript deleted file mode 100644 index fb97607169..0000000000 --- a/libs/surfaces/powermate/wscript +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import os - -# Library version (UNIX style major, minor, micro) -# major increment <=> incompatible changes -# minor increment <=> compatible changes (additions) -# micro increment <=> no interface changes -LIBARDOUR_POWERMATE_LIB_VERSION = '4.1.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - autowaf.set_options(opt) - -def configure(conf): - autowaf.configure(conf) - -def build(bld): - obj = bld(features = 'cxx cxxshlib') - obj.source = ''' - interface.cc - powermate.cc - ''' - obj.export_includes = ['.'] - obj.cxxflags = '-DPACKAGE="ardour_powermate"' - obj.includes = ['.' ] - obj.name = 'libpowermate' - obj.target = 'powermate' - obj.use = 'libardour libardour_cp' - obj.vnum = LIBARDOUR_POWERMATE_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') - -def shutdown(): - autowaf.shutdown() diff --git a/libs/surfaces/wscript b/libs/surfaces/wscript index 20ad07d60f..3a4b562629 100644 --- a/libs/surfaces/wscript +++ b/libs/surfaces/wscript @@ -25,7 +25,6 @@ children = [ 'generic_midi', 'mackie', 'osc', - 'powermate', 'tranzport', 'wiimote' ] @@ -48,7 +47,6 @@ def configure(conf): #if Options.options.tranzport and conf.is_defined('HAVE_USB'): # conf.define('BUILD_TRANZPORT', 1) - conf.check_cc (header_name='linux/input.h', define_name='BUILD_POWERMATE',mandatory=False) autowaf.check_pkg (conf, 'liblo', mandatory=False, uselib_store="LO", atleast_version="0.24") conf.check_cc (header_name='cwiid.h', define_name='HAVE_CWIID_H',mandatory=False) @@ -68,8 +66,6 @@ def build(bld): bld.recurse('mackie') if bld.is_defined ('HAVE_LO'): bld.recurse('osc') - if bld.is_defined('BUILD_POWERMATE'): - bld.recurse('powermate') if bld.is_defined('BUILD_WIIMOTE'): bld.recurse('wiimote') if bld.is_defined('BUILD_TRANZPORT'): diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build index d750674d36..af582ff3bf 100755 --- a/tools/osx_packaging/osx_build +++ b/tools/osx_packaging/osx_build @@ -62,9 +62,13 @@ while [ $# -gt 0 ] ; do esac done -#release_version=`grep -m 1 '[^A-Za-z_]OSX_VERSION = ' ../../wscript | cut -d' ' -f 3 | sed "s/'//g"` -release_version=3.0 -revision=`grep -m 1 'revision =' ../../libs/ardour/revision.cc | cut -d' ' -f 8 | sed 's/[^0-9]//g'` +if test -z "$PRODUCT_PKG_DIR" -o -z "$APPNAME"; then + echo "application or product-name was not specified" + exit 1 +fi + +release_version=`grep -m 1 '[^A-Za-z_]OSX_VERSION = ' ../../wscript | cut -d"'" -f2` +revision=`grep -m 1 'revision =' ../../libs/ardour/revision.cc | cut -d'"' -f 2 | sed 's/^.*-//g'` echo "Version is $release_version / $revision" info_string="$release_version/$revision built on `hostname` by `whoami` on `date`" echo "Info string is $info_string" |