projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
First stage of options rework.
[ardour.git]
/
libs
/
ardour
/
session_events.cc
diff --git
a/libs/ardour/session_events.cc
b/libs/ardour/session_events.cc
index e93a7a5f17a01ca0ec58a0a098321f8b769f596c..d631eda710a8a0bd34d49e0baf7f78e0c1f5bef0 100644
(file)
--- a/
libs/ardour/session_events.cc
+++ b/
libs/ardour/session_events.cc
@@
-20,17
+20,18
@@
#include <cmath>
#include <unistd.h>
#include <cmath>
#include <unistd.h>
-#include
<ardour/timestamps.h>
+#include
"ardour/timestamps.h"
-#include
<pbd/error.h>
+#include
"pbd/error.h"
#include <glibmm/thread.h>
#include <glibmm/thread.h>
-#include
<ardour/ardour.h>
-#include
<ardour/session.h>
-#include
<ardour/audio_diskstream.h>
+#include
"ardour/ardour.h"
+#include
"ardour/session.h"
+#include
"ardour/audio_diskstream.h"
#include "i18n.h"
#include "i18n.h"
+using namespace std;
using namespace ARDOUR;
using namespace PBD;
using namespace ARDOUR;
using namespace PBD;
@@
-41,6
+42,7
@@
static const char* event_names[] = {
"SetDiskstreamSpeed",
"Locate",
"LocateRoll",
"SetDiskstreamSpeed",
"Locate",
"LocateRoll",
+ "LocateRollLocate",
"SetLoop",
"PunchIn",
"PunchOut",
"SetLoop",
"PunchIn",
"PunchOut",
@@
-170,10
+172,10
@@
Session::merge_event (Event* ev)
set_next_event ();
}
set_next_event ();
}
+/** @return true when @a ev is deleted. */
bool
Session::_replace_event (Event* ev)
{
bool
Session::_replace_event (Event* ev)
{
- // returns true when we deleted the passed in event
bool ret = false;
Events::iterator i;
bool ret = false;
Events::iterator i;
@@
-202,10
+204,10
@@
Session::_replace_event (Event* ev)
return ret;
}
return ret;
}
+/** @return true when @a ev is deleted. */
bool
Session::_remove_event (Session::Event* ev)
{
bool
Session::_remove_event (Session::Event* ev)
{
- // returns true when we deleted the passed in event
bool ret = false;
Events::iterator i;
bool ret = false;
Events::iterator i;
@@
-314,6
+316,8
@@
Session::process_event (Event* ev)
}
}
}
}
+ //printf("Processing event: %s\n", event_names[ev->type]);
+
switch (ev->type) {
case Event::SetLoop:
set_play_loop (ev->yes_or_no);
switch (ev->type) {
case Event::SetLoop:
set_play_loop (ev->yes_or_no);
@@
-335,6
+339,7
@@
Session::process_event (Event* ev)
// cerr << "soft locate to " << ev->target_frame << endl;
start_locate (ev->target_frame, false, true, false);
}
// cerr << "soft locate to " << ev->target_frame << endl;
start_locate (ev->target_frame, false, true, false);
}
+ _send_smpte_update = true;
break;
case Event::LocateRoll:
break;
case Event::LocateRoll:
@@
-345,15
+350,23
@@
Session::process_event (Event* ev)
// cerr << "soft locate to+roll " << ev->target_frame << endl;
start_locate (ev->target_frame, true, true, false);
}
// cerr << "soft locate to+roll " << ev->target_frame << endl;
start_locate (ev->target_frame, true, true, false);
}
+ _send_smpte_update = true;
+ break;
+
+ case Event::LocateRollLocate:
+ // locate is handled by ::request_roll_at_and_return()
+ _requested_return_frame = ev->target_frame;
+ request_locate (ev->target2_frame, true);
break;
break;
+
case Event::SetTransportSpeed:
set_transport_speed (ev->speed, ev->yes_or_no);
break;
case Event::PunchIn:
// cerr << "PunchIN at " << transport_frame() << endl;
case Event::SetTransportSpeed:
set_transport_speed (ev->speed, ev->yes_or_no);
break;
case Event::PunchIn:
// cerr << "PunchIN at " << transport_frame() << endl;
- if (
Config->
get_punch_in() && record_status() == Enabled) {
+ if (
config.
get_punch_in() && record_status() == Enabled) {
enable_record ();
}
remove = false;
enable_record ();
}
remove = false;
@@
-362,7
+375,7
@@
Session::process_event (Event* ev)
case Event::PunchOut:
// cerr << "PunchOUT at " << transport_frame() << endl;
case Event::PunchOut:
// cerr << "PunchOUT at " << transport_frame() << endl;
- if (
Config->
get_punch_out()) {
+ if (
config.
get_punch_out()) {
step_back_from_record ();
}
remove = false;
step_back_from_record ();
}
remove = false;
@@
-393,11
+406,11
@@
Session::process_event (Event* ev)
break;
case Event::Overwrite:
break;
case Event::Overwrite:
- overwrite_some_buffers (static_cast<
Audio
Diskstream*>(ev->ptr));
+ overwrite_some_buffers (static_cast<Diskstream*>(ev->ptr));
break;
case Event::SetDiskstreamSpeed:
break;
case Event::SetDiskstreamSpeed:
- set_diskstream_speed (static_cast<
Audio
Diskstream*> (ev->ptr), ev->speed);
+ set_diskstream_speed (static_cast<Diskstream*> (ev->ptr), ev->speed);
break;
case Event::SetSlaveSource:
break;
case Event::SetSlaveSource:
@@
-406,6
+419,8
@@
Session::process_event (Event* ev)
case Event::Audition:
set_audition (ev->region);
case Event::Audition:
set_audition (ev->region);
+ // drop reference to region
+ ev->region.reset ();
break;
case Event::InputConfigurationChange:
break;
case Event::InputConfigurationChange: