#include "ardour/timestamps.h"
#include "pbd/error.h"
+#include "pbd/enumwriter.h"
#include <glibmm/thread.h>
#include "ardour/ardour.h"
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)
{
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;
}
}
// cerr << "soft locate to " << ev->target_frame << endl;
start_locate (ev->target_frame, false, true, false);
}
- _send_smpte_update = true;
+ _send_timecode_update = true;
break;
case Event::LocateRoll:
// cerr << "soft locate to+roll " << ev->target_frame << endl;
start_locate (ev->target_frame, true, true, false);
}
- _send_smpte_update = true;
+ _send_timecode_update = true;
break;
case Event::LocateRollLocate:
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:
set_diskstream_speed (static_cast<Diskstream*> (ev->ptr), ev->speed);
break;
- case Event::SetSlaveSource:
- set_slave_source (ev->slave);
+ case Event::SetSyncSource:
+ use_sync_source (ev->sync_source);
break;
case Event::Audition:
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);
+ case Event::SetPlayAudioRange:
+ set_play_range (ev->audio_range, (ev->speed == 1.0f));
break;
default: