summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r--gtk2_ardour/editor.cc348
1 files changed, 172 insertions, 176 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index dd9cdf9582..bf0b2124bb 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -268,7 +268,6 @@ Editor::Editor ()
PublicEditor::_instance = this;
- session = 0;
_have_idled = false;
selection = new Selection (this);
@@ -628,7 +627,7 @@ Editor::Editor ()
_playlist_selector = new PlaylistSelector();
_playlist_selector->signal_delete_event().connect (sigc::bind (sigc::ptr_fun (just_hide_it), static_cast<Window *> (_playlist_selector)));
- RegionView::RegionViewGoingAway.connect (sigc::mem_fun(*this, &Editor::catch_vanishing_regionview));
+ scoped_connect (RegionView::RegionViewGoingAway, boost::bind (&Editor::catch_vanishing_regionview, this, _1));
/* nudge stuff */
@@ -805,8 +804,8 @@ Editor::instant_save ()
return;
}
- if (session) {
- session->add_instant_xml(get_state());
+ if (_session) {
+ _session->add_instant_xml(get_state());
} else {
Config->add_instant_xml(get_state());
}
@@ -815,7 +814,7 @@ Editor::instant_save ()
void
Editor::zoom_adjustment_changed ()
{
- if (session == 0) {
+ if (_session == 0) {
return;
}
@@ -824,8 +823,8 @@ Editor::zoom_adjustment_changed ()
if (fpu < 1.0) {
fpu = 1.0;
zoom_range_clock.set ((nframes64_t) floor (fpu * _canvas_width));
- } else if (fpu > session->current_end_frame() / _canvas_width) {
- fpu = session->current_end_frame() / _canvas_width;
+ } else if (fpu > _session->current_end_frame() / _canvas_width) {
+ fpu = _session->current_end_frame() / _canvas_width;
zoom_range_clock.set ((nframes64_t) floor (fpu * _canvas_width));
}
@@ -837,7 +836,7 @@ Editor::control_scroll (float fraction)
{
ENSURE_GUI_THREAD (*this, &Editor::control_scroll, fraction)
- if (!session) {
+ if (!_session) {
return;
}
@@ -855,7 +854,7 @@ Editor::control_scroll (float fraction)
*/
if (!_control_scroll_target) {
- _control_scroll_target = session->transport_frame();
+ _control_scroll_target = _session->transport_frame();
_dragging_playhead = true;
}
@@ -897,7 +896,7 @@ Editor::control_scroll (float fraction)
bool
Editor::deferred_control_scroll (nframes64_t /*target*/)
{
- session->request_locate (*_control_scroll_target, session->transport_rolling());
+ _session->request_locate (*_control_scroll_target, _session->transport_rolling());
// reset for next stream
_control_scroll_target = boost::none;
_dragging_playhead = false;
@@ -907,7 +906,7 @@ Editor::deferred_control_scroll (nframes64_t /*target*/)
void
Editor::access_action (std::string action_group, std::string action_item)
{
- if (!session) {
+ if (!_session) {
return;
}
@@ -949,7 +948,7 @@ Editor::map_position_change (nframes64_t frame)
{
ENSURE_GUI_THREAD (*this, &Editor::map_position_change, frame)
- if (session == 0 || !_follow_playhead) {
+ if (_session == 0 || !_follow_playhead) {
return;
}
@@ -987,12 +986,12 @@ Editor::center_screen_internal (nframes64_t frame, float page)
void
Editor::handle_new_duration ()
{
- if (!session) {
+ if (!_session) {
return;
}
ENSURE_GUI_THREAD (*this, &Editor::handle_new_duration)
- nframes64_t new_end = session->current_end_frame() + (nframes64_t) floorf (current_page_frames() * 0.10f);
+ nframes64_t new_end = _session->current_end_frame() + (nframes64_t) floorf (current_page_frames() * 0.10f);
horizontal_adjustment.set_upper (new_end / frames_per_unit);
horizontal_adjustment.set_page_size (current_page_frames()/frames_per_unit);
@@ -1004,27 +1003,19 @@ Editor::handle_new_duration ()
}
void
-Editor::update_title_s (const string & snap_name)
-{
- ENSURE_GUI_THREAD (*this, &Editor::update_title_s, snap_name)
-
- update_title ();
-}
-
-void
Editor::update_title ()
{
ENSURE_GUI_THREAD (*this, &Editor::update_title)
- if (session) {
- bool dirty = session->dirty();
+ if (_session) {
+ bool dirty = _session->dirty();
string session_name;
- if (session->snap_name() != session->name()) {
- session_name = session->snap_name();
+ if (_session->snap_name() != _session->name()) {
+ session_name = _session->snap_name();
} else {
- session_name = session->name();
+ session_name = _session->name();
}
if (dirty) {
@@ -1038,9 +1029,36 @@ Editor::update_title ()
}
void
-Editor::connect_to_session (Session *t)
+Editor::set_session (Session *t)
{
- session = t;
+ SessionHandlePtr::set_session (t);
+
+ zoom_range_clock.set_session (_session);
+ _playlist_selector->set_session (_session);
+ nudge_clock.set_session (_session);
+ _summary->set_session (_session);
+ _group_tabs->set_session (_session);
+ _route_groups->set_session (_session);
+ _regions->set_session (_session);
+ _snapshots->set_session (_session);
+ _routes->set_session (_session);
+ _locations->set_session (_session);
+
+ if (rhythm_ferret) {
+ rhythm_ferret->set_session (_session);
+ }
+
+ if (analysis_window) {
+ analysis_window->set_session (_session);
+ }
+
+ if (sfbrowser) {
+ sfbrowser->set_session (_session);
+ }
+
+ if (!_session) {
+ return;
+ }
compute_fixed_ruler_scale ();
@@ -1053,79 +1071,65 @@ Editor::connect_to_session (Session *t)
/* catch up with the playhead */
- session->request_locate (playhead_cursor->current_frame);
+ _session->request_locate (playhead_cursor->current_frame);
update_title ();
- session->GoingAway.connect (sigc::mem_fun(*this, &Editor::session_going_away));
- session->history().Changed.connect (sigc::mem_fun (*this, &Editor::history_changed));
+ _session_connections.add_connection (_session->history().Changed.connect (boost::bind (&Editor::history_changed, this)));
/* These signals can all be emitted by a non-GUI thread. Therefore the
handlers for them must not attempt to directly interact with the GUI,
but use Gtkmm2ext::UI::instance()->call_slot();
*/
- session_connections.push_back (session->TransportStateChange.connect (sigc::mem_fun(*this, &Editor::map_transport_state)));
- session_connections.push_back (session->PositionChanged.connect (sigc::mem_fun(*this, &Editor::map_position_change)));
- session_connections.push_back (session->RouteAdded.connect (sigc::mem_fun(*this, &Editor::handle_new_route)));
- session_connections.push_back (session->DurationChanged.connect (sigc::mem_fun(*this, &Editor::handle_new_duration)));
- session_connections.push_back (session->DirtyChanged.connect (sigc::mem_fun(*this, &Editor::update_title)));
- session_connections.push_back (session->StateSaved.connect (sigc::mem_fun(*this, &Editor::update_title_s)));
- session_connections.push_back (session->AskAboutPlaylistDeletion.connect (sigc::mem_fun(*this, &Editor::playlist_deletion_dialog)));
-
- session_connections.push_back (session->TimecodeOffsetChanged.connect (sigc::mem_fun(*this, &Editor::update_just_timecode)));
+ _session_connections.add_connection (_session->TransportStateChange.connect (boost::bind (&Editor::map_transport_state, this)));
+ _session_connections.add_connection (_session->PositionChanged.connect (boost::bind (&Editor::map_position_change, this, _1)));
+ _session_connections.add_connection (_session->RouteAdded.connect (boost::bind (&Editor::handle_new_route, this, _1)));
+ _session_connections.add_connection (_session->DurationChanged.connect (boost::bind (&Editor::handle_new_duration, this)));
+ _session_connections.add_connection (_session->DirtyChanged.connect (boost::bind (&Editor::update_title, this)));
+ _session_connections.add_connection (_session->StateSaved.connect (boost::bind (&Editor::update_title, this)));
+ _session_connections.add_connection (_session->AskAboutPlaylistDeletion.connect (boost::bind (&Editor::playlist_deletion_dialog, this, _1)));
+ _session_connections.add_connection (_session->TimecodeOffsetChanged.connect (boost::bind (&Editor::update_just_timecode, this)));
+ _session_connections.add_connection (_session->tempo_map().StateChanged.connect (boost::bind (&Editor::tempo_map_changed, this, _1)));
+ _session_connections.add_connection (_session->Located.connect (boost::bind (&Editor::located, this)));
+ _session_connections.add_connection (_session->config.ParameterChanged.connect (boost::bind (&Editor::parameter_changed, this, _1)));
- session_connections.push_back (session->tempo_map().StateChanged.connect (sigc::mem_fun(*this, &Editor::tempo_map_changed)));
-
- session_connections.push_back (session->Located.connect (sigc::mem_fun (*this, &Editor::located)));
- session_connections.push_back (session->config.ParameterChanged.connect (sigc::mem_fun (*this, &Editor::parameter_changed)));
-
- zoom_range_clock.set_session (session);
- _playlist_selector->set_session (session);
- nudge_clock.set_session (session);
if (Profile->get_sae()) {
BBT_Time bbt;
bbt.bars = 0;
bbt.beats = 0;
bbt.ticks = 120;
- nframes_t pos = session->tempo_map().bbt_duration_at (0, bbt, 1);
+ nframes_t pos = _session->tempo_map().bbt_duration_at (0, bbt, 1);
nudge_clock.set_mode(AudioClock::BBT);
nudge_clock.set (pos, true, 0, AudioClock::BBT);
} else {
- nudge_clock.set (session->frame_rate() * 5, true, 0, AudioClock::Timecode); // default of 5 seconds
+ nudge_clock.set (_session->frame_rate() * 5, true, 0, AudioClock::Timecode); // default of 5 seconds
}
playhead_cursor->canvas_item.show ();
- if (rhythm_ferret) {
- rhythm_ferret->set_session (session);
- }
-
- if (analysis_window != 0)
- analysis_window->set_session (session);
-
- Location* loc = session->locations()->auto_loop_location();
+ Location* loc = _session->locations()->auto_loop_location();
if (loc == 0) {
- loc = new Location (0, session->current_end_frame(), _("Loop"),(Location::Flags) (Location::IsAutoLoop | Location::IsHidden));
+ loc = new Location (0, _session->current_end_frame(), _("Loop"),(Location::Flags) (Location::IsAutoLoop | Location::IsHidden));
if (loc->start() == loc->end()) {
loc->set_end (loc->start() + 1);
}
- session->locations()->add (loc, false);
- session->set_auto_loop_location (loc);
+ _session->locations()->add (loc, false);
+ _session->set_auto_loop_location (loc);
} else {
// force name
loc->set_name (_("Loop"));
}
- loc = session->locations()->auto_punch_location();
+ loc = _session->locations()->auto_punch_location();
if (loc == 0) {
- loc = new Location (0, session->current_end_frame(), _("Punch"), (Location::Flags) (Location::IsAutoPunch | Location::IsHidden));
+ loc = new Location (0, _session->current_end_frame(), _("Punch"), (Location::Flags) (Location::IsAutoPunch | Location::IsHidden));
if (loc->start() == loc->end()) {
loc->set_end (loc->start() + 1);
}
- session->locations()->add (loc, false);
- session->set_auto_punch_location (loc);
+ _session->locations()->add (loc, false);
+ _session->set_auto_punch_location (loc);
} else {
// force name
loc->set_name (_("Punch"));
@@ -1133,26 +1137,26 @@ Editor::connect_to_session (Session *t)
boost::function<void (string)> pc (boost::bind (&Editor::parameter_changed, this, _1));
Config->map_parameters (pc);
- session->config.map_parameters (pc);
+ _session->config.map_parameters (pc);
- session->StateSaved.connect (sigc::mem_fun(*this, &Editor::session_state_saved));
refresh_location_display ();
- session->locations()->added.connect (sigc::mem_fun(*this, &Editor::add_new_location));
- session->locations()->removed.connect (sigc::mem_fun(*this, &Editor::location_gone));
- session->locations()->changed.connect (sigc::mem_fun(*this, &Editor::refresh_location_display));
- session->locations()->StateChanged.connect (sigc::mem_fun(*this, &Editor::refresh_location_display_s));
- session->locations()->end_location()->changed.connect (sigc::mem_fun(*this, &Editor::end_location_changed));
- if (sfbrowser) {
- sfbrowser->set_session (session);
- }
+ /* static signal - no need to drop connection when session is deleted (XXX or we are?)*/
+
+ _session->StateSaved.connect (sigc::mem_fun(*this, &Editor::session_state_saved));
+
+ _session_connections.add_connection (_session->locations()->added.connect (sigc::mem_fun(*this, &Editor::add_new_location)));
+ _session_connections.add_connection (_session->locations()->removed.connect (sigc::mem_fun(*this, &Editor::location_gone)));
+ _session_connections.add_connection (_session->locations()->changed.connect (sigc::mem_fun(*this, &Editor::refresh_location_display)));
+ _session_connections.add_connection (_session->locations()->StateChanged.connect (sigc::mem_fun(*this, &Editor::refresh_location_display_s)));
+ _session_connections.add_connection (_session->locations()->end_location()->changed.connect (sigc::mem_fun(*this, &Editor::end_location_changed)));
handle_new_duration ();
restore_ruler_visibility ();
//tempo_map_changed (Change (0));
- session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks);
+ _session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks);
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(static_cast<TimeAxisView*>(*i))->set_samples_per_unit (frames_per_unit);
@@ -1173,15 +1177,7 @@ Editor::connect_to_session (Session *t)
}
/* register for undo history */
- session->register_with_memento_command_factory(_id, this);
-
- _summary->connect_to_session (session);
- _group_tabs->connect_to_session (session);
- _route_groups->connect_to_session (session);
- _regions->connect_to_session (session);
- _snapshots->connect_to_session (session);
- _routes->connect_to_session (session);
- _locations->connect_to_session (session);
+ _session->register_with_memento_command_factory(_id, this);
start_updating ();
}
@@ -1561,8 +1557,8 @@ Editor::analyze_region_selection()
if (analysis_window == 0) {
analysis_window = new AnalysisWindow();
- if (session != 0)
- analysis_window->set_session(session);
+ if (_session != 0)
+ analysis_window->set_session(_session);
analysis_window->show_all();
}
@@ -1579,8 +1575,8 @@ Editor::analyze_range_selection()
if (analysis_window == 0) {
analysis_window = new AnalysisWindow();
- if (session != 0)
- analysis_window->set_session(session);
+ if (_session != 0)
+ analysis_window->set_session(_session);
analysis_window->show_all();
}
@@ -2268,7 +2264,7 @@ Editor::set_state (const XMLNode& node, int /*version*/)
set_default_size (g.base_width, g.base_height);
move (x, y);
- if (session && (prop = node.property ("playhead"))) {
+ if (_session && (prop = node.property ("playhead"))) {
nframes64_t pos = atol (prop->value().c_str());
playhead_cursor->set_position (pos);
} else {
@@ -2515,7 +2511,7 @@ Editor::trackview_by_y_position (double y)
void
Editor::snap_to_with_modifier (nframes64_t& start, GdkEvent const * event, int32_t direction, bool for_mark)
{
- if (!session) {
+ if (!_session) {
return;
}
@@ -2533,7 +2529,7 @@ Editor::snap_to_with_modifier (nframes64_t& start, GdkEvent const * event, int32
void
Editor::snap_to (nframes64_t& start, int32_t direction, bool for_mark)
{
- if (!session || _snap_mode == SnapOff) {
+ if (!_session || _snap_mode == SnapOff) {
return;
}
@@ -2543,24 +2539,24 @@ Editor::snap_to (nframes64_t& start, int32_t direction, bool for_mark)
void
Editor::timecode_snap_to_internal (nframes64_t& start, int32_t direction, bool /*for_mark*/)
{
- const nframes64_t one_timecode_second = (nframes64_t)(rint(session->timecode_frames_per_second()) * session->frames_per_timecode_frame());
- nframes64_t one_timecode_minute = (nframes64_t)(rint(session->timecode_frames_per_second()) * session->frames_per_timecode_frame() * 60);
+ const nframes64_t one_timecode_second = (nframes64_t)(rint(_session->timecode_frames_per_second()) * _session->frames_per_timecode_frame());
+ nframes64_t one_timecode_minute = (nframes64_t)(rint(_session->timecode_frames_per_second()) * _session->frames_per_timecode_frame() * 60);
switch (_snap_type) {
case SnapToTimecodeFrame:
- if (((direction == 0) && (fmod((double)start, (double)session->frames_per_timecode_frame()) > (session->frames_per_timecode_frame() / 2))) || (direction > 0)) {
- start = (nframes64_t) (ceil ((double) start / session->frames_per_timecode_frame()) * session->frames_per_timecode_frame());
+ if (((direction == 0) && (fmod((double)start, (double)_session->frames_per_timecode_frame()) > (_session->frames_per_timecode_frame() / 2))) || (direction > 0)) {
+ start = (nframes64_t) (ceil ((double) start / _session->frames_per_timecode_frame()) * _session->frames_per_timecode_frame());
} else {
- start = (nframes64_t) (floor ((double) start / session->frames_per_timecode_frame()) * session->frames_per_timecode_frame());
+ start = (nframes64_t) (floor ((double) start / _session->frames_per_timecode_frame()) * _session->frames_per_timecode_frame());
}
break;
case SnapToTimecodeSeconds:
- if (session->timecode_offset_negative())
+ if (_session->timecode_offset_negative())
{
- start += session->timecode_offset ();
+ start += _session->timecode_offset ();
} else {
- start -= session->timecode_offset ();
+ start -= _session->timecode_offset ();
}
if (((direction == 0) && (start % one_timecode_second > one_timecode_second / 2)) || direction > 0) {
start = (nframes64_t) ceil ((double) start / one_timecode_second) * one_timecode_second;
@@ -2568,31 +2564,31 @@ Editor::timecode_snap_to_internal (nframes64_t& start, int32_t direction, bool /
start = (nframes64_t) floor ((double) start / one_timecode_second) * one_timecode_second;
}
- if (session->timecode_offset_negative())
+ if (_session->timecode_offset_negative())
{
- start -= session->timecode_offset ();
+ start -= _session->timecode_offset ();
} else {
- start += session->timecode_offset ();
+ start += _session->timecode_offset ();
}
break;
case SnapToTimecodeMinutes:
- if (session->timecode_offset_negative())
+ if (_session->timecode_offset_negative())
{
- start += session->timecode_offset ();
+ start += _session->timecode_offset ();
} else {
- start -= session->timecode_offset ();
+ start -= _session->timecode_offset ();
}
if (((direction == 0) && (start % one_timecode_minute > one_timecode_minute / 2)) || direction > 0) {
start = (nframes64_t) ceil ((double) start / one_timecode_minute) * one_timecode_minute;
} else {
start = (nframes64_t) floor ((double) start / one_timecode_minute) * one_timecode_minute;
}
- if (session->timecode_offset_negative())
+ if (_session->timecode_offset_negative())
{
- start -= session->timecode_offset ();
+ start -= _session->timecode_offset ();
} else {
- start += session->timecode_offset ();
+ start += _session->timecode_offset ();
}
break;
default:
@@ -2604,8 +2600,8 @@ Editor::timecode_snap_to_internal (nframes64_t& start, int32_t direction, bool /
void
Editor::snap_to_internal (nframes64_t& start, int32_t direction, bool for_mark)
{
- const nframes64_t one_second = session->frame_rate();
- const nframes64_t one_minute = session->frame_rate() * 60;
+ const nframes64_t one_second = _session->frame_rate();
+ const nframes64_t one_minute = _session->frame_rate() * 60;
nframes64_t presnap = start;
nframes64_t before;
nframes64_t after;
@@ -2641,31 +2637,31 @@ Editor::snap_to_internal (nframes64_t& start, int32_t direction, bool for_mark)
break;
case SnapToBar:
- start = session->tempo_map().round_to_bar (start, direction);
+ start = _session->tempo_map().round_to_bar (start, direction);
break;
case SnapToBeat:
- start = session->tempo_map().round_to_beat (start, direction);
+ start = _session->tempo_map().round_to_beat (start, direction);
break;
case SnapToAThirtysecondBeat:
- start = session->tempo_map().round_to_beat_subdivision (start, 32, direction);
+ start = _session->tempo_map().round_to_beat_subdivision (start, 32, direction);
break;
case SnapToASixteenthBeat:
- start = session->tempo_map().round_to_beat_subdivision (start, 16, direction);
+ start = _session->tempo_map().round_to_beat_subdivision (start, 16, direction);
break;
case SnapToAEighthBeat:
- start = session->tempo_map().round_to_beat_subdivision (start, 8, direction);
+ start = _session->tempo_map().round_to_beat_subdivision (start, 8, direction);
break;
case SnapToAQuarterBeat:
- start = session->tempo_map().round_to_beat_subdivision (start, 4, direction);
+ start = _session->tempo_map().round_to_beat_subdivision (start, 4, direction);
break;
case SnapToAThirdBeat:
- start = session->tempo_map().round_to_beat_subdivision (start, 3, direction);
+ start = _session->tempo_map().round_to_beat_subdivision (start, 3, direction);
break;
case SnapToMark:
@@ -2673,7 +2669,7 @@ Editor::snap_to_internal (nframes64_t& start, int32_t direction, bool for_mark)
return;
}
- session->locations()->marks_either_side (start, before, after);
+ _session->locations()->marks_either_side (start, before, after);
if (before == max_frames) {
start = after;
@@ -2971,8 +2967,8 @@ Editor::midi_panic ()
{
cerr << "MIDI panic\n";
- if (session) {
- session->midi_panic();
+ if (_session) {
+ _session->midi_panic();
}
}
@@ -3008,7 +3004,7 @@ Editor::convert_drop_to_paths (
guint /*info*/,
guint /*time*/)
{
- if (session == 0) {
+ if (_session == 0) {
return -1;
}
@@ -3120,7 +3116,7 @@ Editor::map_transport_state ()
{
ENSURE_GUI_THREAD (*this, &Editor::map_transport_state)
- if (session->transport_stopped()) {
+ if (_session->transport_stopped()) {
have_pending_keyboard_selection = false;
}
@@ -3162,17 +3158,17 @@ Editor::restore_state (State *state)
void
Editor::begin_reversible_command (string name)
{
- if (session) {
+ if (_session) {
before = &get_state();
- session->begin_reversible_command (name);
+ _session->begin_reversible_command (name);
}
}
void
Editor::commit_reversible_command ()
{
- if (session) {
- session->commit_reversible_command (new MementoCommand<Editor>(*this, before, &get_state()));
+ if (_session) {
+ _session->commit_reversible_command (new MementoCommand<Editor>(*this, before, &get_state()));
}
}
@@ -3205,20 +3201,20 @@ Editor::history_changed ()
{
string label;
- if (undo_action && session) {
- if (session->undo_depth() == 0) {
+ if (undo_action && _session) {
+ if (_session->undo_depth() == 0) {
label = _("Undo");
} else {
- label = string_compose(_("Undo (%1)"), session->next_undo());
+ label = string_compose(_("Undo (%1)"), _session->next_undo());
}
undo_action->property_label() = label;
}
- if (redo_action && session) {
- if (session->redo_depth() == 0) {
+ if (redo_action && _session) {
+ if (_session->redo_depth() == 0) {
label = _("Redo");
} else {
- label = string_compose(_("Redo (%1)"), session->next_redo());
+ label = string_compose(_("Redo (%1)"), _session->next_redo());
}
redo_action->property_label() = label;
}
@@ -3394,7 +3390,7 @@ Editor::cycle_edit_mode ()
void
Editor::edit_mode_selection_done ()
{
- if (session == 0) {
+ if (_session == 0) {
return;
}
@@ -3735,7 +3731,7 @@ Editor::edit_xfade (boost::weak_ptr<Crossfade> wxfade)
return;
}
- CrossfadeEditor cew (*session, xfade, xfade->fade_in().get_min_y(), 1.0);
+ CrossfadeEditor cew (_session, xfade, xfade->fade_in().get_min_y(), 1.0);
ensure_float (cew);
@@ -3787,8 +3783,8 @@ Editor::get_grid_type_as_beats (bool& success, nframes64_t position)
break;
case SnapToBar:
- if (session) {
- return session->tempo_map().meter_at (position).beats_per_bar();
+ if (_session) {
+ return _session->tempo_map().meter_at (position).beats_per_bar();
}
break;
@@ -3899,8 +3895,8 @@ Editor::finish_cleanup ()
Location*
Editor::transport_loop_location()
{
- if (session) {
- return session->locations()->auto_loop_location();
+ if (_session) {
+ return _session->locations()->auto_loop_location();
} else {
return 0;
}
@@ -3909,8 +3905,8 @@ Editor::transport_loop_location()
Location*
Editor::transport_punch_location()
{
- if (session) {
- return session->locations()->auto_punch_location();
+ if (_session) {
+ return _session->locations()->auto_punch_location();
} else {
return 0;
}
@@ -4001,7 +3997,7 @@ Editor::new_playlists (TimeAxisView* v)
{
begin_reversible_command (_("new playlists"));
vector<boost::shared_ptr<ARDOUR::Playlist> > playlists;
- session->playlists->get (playlists);
+ _session->playlists->get (playlists);
mapover_tracks (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), playlists), v, RouteGroup::Edit);
commit_reversible_command ();
}
@@ -4017,7 +4013,7 @@ Editor::copy_playlists (TimeAxisView* v)
{
begin_reversible_command (_("copy playlists"));
vector<boost::shared_ptr<ARDOUR::Playlist> > playlists;
- session->playlists->get (playlists);
+ _session->playlists->get (playlists);
mapover_tracks (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_copy_playlist), playlists), v, RouteGroup::Edit);
commit_reversible_command ();
}
@@ -4032,7 +4028,7 @@ Editor::clear_playlists (TimeAxisView* v)
{
begin_reversible_command (_("clear playlists"));
vector<boost::shared_ptr<ARDOUR::Playlist> > playlists;
- session->playlists->get (playlists);
+ _session->playlists->get (playlists);
mapover_tracks (sigc::mem_fun (*this, &Editor::mapped_clear_playlist), v, RouteGroup::Edit);
commit_reversible_command ();
}
@@ -4239,8 +4235,8 @@ Editor::post_zoom ()
ZoomChanged (); /* EMIT_SIGNAL */
- if (session) {
- cef = session->current_end_frame() + (current_page_frames() / 10);// Add a little extra so we can see the end marker
+ if (_session) {
+ cef = _session->current_end_frame() + (current_page_frames() / 10);// Add a little extra so we can see the end marker
}
horizontal_adjustment.set_upper (cef / frames_per_unit);
@@ -4265,7 +4261,7 @@ Editor::queue_visual_change (nframes64_t where)
can reach.
*/
- if (session && (where > session->current_end_frame())) {
+ if (_session && (where > _session->current_end_frame())) {
horizontal_adjustment.set_upper ((where + current_page_frames()) / frames_per_unit);
}
@@ -4332,9 +4328,9 @@ Editor::idle_visual_changer ()
nframes64_t csf=0, cef=0;
nframes64_t current_time_origin = (nframes64_t) floor (horizontal_adjustment.get_value() * frames_per_unit);
- if (session) {
- csf = session->current_start_frame();
- cef = session->current_end_frame();
+ if (_session) {
+ csf = _session->current_start_frame();
+ cef = _session->current_end_frame();
}
/* if we seek beyond the current end of the canvas, move the end */
@@ -4397,7 +4393,7 @@ Editor::get_preferred_edit_position (bool ignore_playhead)
switch (ep) {
case EditAtPlayhead:
- where = session->audible_frame();
+ where = _session->audible_frame();
break;
case EditAtSelectedMarker:
@@ -4431,7 +4427,7 @@ Editor::get_preferred_edit_position (bool ignore_playhead)
void
Editor::set_loop_range (nframes64_t start, nframes64_t end, string cmd)
{
- if (!session) return;
+ if (!_session) return;
begin_reversible_command (cmd);
@@ -4439,17 +4435,17 @@ Editor::set_loop_range (nframes64_t start, nframes64_t end, string cmd)
if ((tll = transport_loop_location()) == 0) {
Location* loc = new Location (start, end, _("Loop"), Location::IsAutoLoop);
- XMLNode &before = session->locations()->get_state();
- session->locations()->add (loc, true);
- session->set_auto_loop_location (loc);
- XMLNode &after = session->locations()->get_state();
- session->add_command (new MementoCommand<Locations>(*(session->locations()), &before, &after));
+ XMLNode &before = _session->locations()->get_state();
+ _session->locations()->add (loc, true);
+ _session->set_auto_loop_location (loc);
+ XMLNode &after = _session->locations()->get_state();
+ _session->add_command (new MementoCommand<Locations>(*(_session->locations()), &before, &after));
} else {
XMLNode &before = tll->get_state();
tll->set_hidden (false, this);
tll->set (start, end);
XMLNode &after = tll->get_state();
- session->add_command (new MementoCommand<Location>(*tll, &before, &after));
+ _session->add_command (new MementoCommand<Location>(*tll, &before, &after));
}
commit_reversible_command ();
@@ -4458,7 +4454,7 @@ Editor::set_loop_range (nframes64_t start, nframes64_t end, string cmd)
void
Editor::set_punch_range (nframes64_t start, nframes64_t end, string cmd)
{
- if (!session) return;
+ if (!_session) return;
begin_reversible_command (cmd);
@@ -4466,18 +4462,18 @@ Editor::set_punch_range (nframes64_t start, nframes64_t end, string cmd)
if ((tpl = transport_punch_location()) == 0) {
Location* loc = new Location (start, end, _("Loop"), Location::IsAutoPunch);
- XMLNode &before = session->locations()->get_state();
- session->locations()->add (loc, true);
- session->set_auto_loop_location (loc);
- XMLNode &after = session->locations()->get_state();
- session->add_command (new MementoCommand<Locations>(*(session->locations()), &before, &after));
+ XMLNode &before = _session->locations()->get_state();
+ _session->locations()->add (loc, true);
+ _session->set_auto_loop_location (loc);
+ XMLNode &after = _session->locations()->get_state();
+ _session->add_command (new MementoCommand<Locations>(*(_session->locations()), &before, &after));
}
else {
XMLNode &before = tpl->get_state();
tpl->set_hidden (false, this);
tpl->set (start, end);
XMLNode &after = tpl->get_state();
- session->add_command (new MementoCommand<Location>(*tpl, &before, &after));
+ _session->add_command (new MementoCommand<Location>(*tpl, &before, &after));
}
commit_reversible_command ();
@@ -4643,7 +4639,7 @@ Editor::show_rhythm_ferret ()
rhythm_ferret = new RhythmFerret(*this);
}
- rhythm_ferret->set_session (session);
+ rhythm_ferret->set_session (_session);
rhythm_ferret->show ();
rhythm_ferret->present ();
}
@@ -4652,7 +4648,7 @@ void
Editor::show_global_port_matrix (ARDOUR::DataType t)
{
if (_global_port_matrix[t] == 0) {
- _global_port_matrix[t] = new GlobalPortMatrixWindow (session, t);
+ _global_port_matrix[t] = new GlobalPortMatrixWindow (_session, t);
}
_global_port_matrix[t]->show ();
@@ -4818,9 +4814,9 @@ Editor::handle_new_route (RouteList& routes)
DataType dt = route->input()->default_type();
if (dt == ARDOUR::DataType::AUDIO) {
- rtv = new AudioTimeAxisView (*this, *session, route, *track_canvas);
+ rtv = new AudioTimeAxisView (*this, _session, route, *track_canvas);
} else if (dt == ARDOUR::DataType::MIDI) {
- rtv = new MidiTimeAxisView (*this, *session, route, *track_canvas);
+ rtv = new MidiTimeAxisView (*this, _session, route, *track_canvas);
} else {
throw unknown_type();
}
@@ -4833,7 +4829,7 @@ Editor::handle_new_route (RouteList& routes)
rtv->view()->RegionViewAdded.connect (sigc::mem_fun (*this, &Editor::region_view_added));
rtv->view()->HeightChanged.connect (sigc::mem_fun (*this, &Editor::streamview_height_changed));
- rtv->GoingAway.connect (sigc::bind (sigc::mem_fun(*this, &Editor::remove_route), rtv));
+ scoped_connect (rtv->GoingAway, boost::bind (&Editor::remove_route, this, rtv));
}
_routes->routes_added (new_views);
@@ -4954,18 +4950,18 @@ Editor::consider_auditioning (boost::shared_ptr<Region> region)
boost::shared_ptr<AudioRegion> r = boost::dynamic_pointer_cast<AudioRegion> (region);
if (r == 0) {
- session->cancel_audition ();
+ _session->cancel_audition ();
return;
}
- if (session->is_auditioning()) {
- session->cancel_audition ();
+ if (_session->is_auditioning()) {
+ _session->cancel_audition ();
if (r == last_audition_region) {
return;
}
}
- session->audition_region (r);
+ _session->audition_region (r);
last_audition_region = r;
}
@@ -4979,7 +4975,7 @@ Editor::hide_a_region (boost::shared_ptr<Region> r)
void
Editor::remove_a_region (boost::shared_ptr<Region> r)
{
- session->remove_region_from_region_list (r);
+ _session->remove_region_from_region_list (r);
}
void