From ff122d0fe8fde6a8a4edc71f9dbba5d161036300 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 8 Nov 2009 16:28:21 +0000 Subject: monster commit: transport mgmt changes from 2.X (omnibus edition); make slave use nframes64_t ; avoid crashes in Drags when commiting reversible transactions that do not exist git-svn-id: svn://localhost/ardour2/branches/3.0@6034 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/session_events.cc | 40 +++++++--------------------------------- 1 file changed, 7 insertions(+), 33 deletions(-) (limited to 'libs/ardour/session_events.cc') diff --git a/libs/ardour/session_events.cc b/libs/ardour/session_events.cc index 65635b773f..fb993faa68 100644 --- a/libs/ardour/session_events.cc +++ b/libs/ardour/session_events.cc @@ -23,6 +23,7 @@ #include "ardour/timestamps.h" #include "pbd/error.h" +#include "pbd/enumwriter.h" #include #include "ardour/ardour.h" @@ -38,28 +39,6 @@ using namespace PBD; MultiAllocSingleReleasePool Session::Event::pool ("event", sizeof (Session::Event), 512); -static const char* event_names[] = { - "SetTransportSpeed", - "SetDiskstreamSpeed", - "Locate", - "LocateRoll", - "LocateRollLocate", - "SetLoop", - "PunchIn", - "PunchOut", - "RangeStop", - "RangeLocate", - "Overwrite", - "SetSlaveSource", - "Audition", - "InputConfigurationChange", - "SetAudioRange", - "SetMusicRange", - "SetPlayRange", - "StopOnce", - "AutoLoop" -}; - void Session::add_event (nframes_t frame, Event::Type type, nframes_t target_frame) { @@ -161,7 +140,7 @@ Session::merge_event (Event* ev) for (Events::iterator i = events.begin(); i != events.end(); ++i) { if ((*i)->type == ev->type && (*i)->action_frame == ev->action_frame) { error << string_compose(_("Session: cannot have two events of type %1 at the same frame (%2)."), - event_names[ev->type], ev->action_frame) << endmsg; + enum_2_string (ev->type), ev->action_frame) << endmsg; return; } } @@ -321,7 +300,7 @@ Session::process_event (Event* ev) switch (ev->type) { case Event::SetLoop: - set_play_loop (ev->yes_or_no, (ev->speed == 1.0f)); + set_play_loop (ev->yes_or_no); break; case Event::AutoLoop: @@ -362,7 +341,7 @@ Session::process_event (Event* ev) case Event::SetTransportSpeed: - set_transport_speed (ev->speed, ev->yes_or_no); + set_transport_speed (ev->speed, ev->yes_or_no, ev->second_yes_or_no); break; case Event::PunchIn: @@ -425,17 +404,12 @@ Session::process_event (Event* ev) break; case Event::InputConfigurationChange: - post_transport_work = PostTransportWork (post_transport_work | PostTransportInputChange); + add_post_transport_work (PostTransportInputChange); _butler->schedule_transport_work (); break; - case Event::SetAudioRange: - current_audio_range = ev->audio_range; - setup_auto_play (); - break; - - case Event::SetPlayRange: - set_play_range (ev->yes_or_no, (ev->speed == 1.0f)); + case Event::SetPlayAudioRange: + set_play_range (ev->audio_range, (ev->speed == 1.0f)); break; default: -- cgit v1.2.3