mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-20 21:56:30 +01:00
do not start transport on first locate if auto-play is on; wait till GUI says its OK
git-svn-id: svn://localhost/ardour2/trunk@1630 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
82b4c84e1d
commit
a13d2196c8
4 changed files with 14 additions and 2 deletions
|
|
@ -2583,6 +2583,9 @@ ARDOUR_UI::save_keybindings ()
|
|||
bool
|
||||
ARDOUR_UI::first_idle ()
|
||||
{
|
||||
if (session) {
|
||||
session->allow_auto_play (true);
|
||||
}
|
||||
can_save_keybindings = true;
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -358,6 +358,7 @@ class Session : public PBD::StatefulDestructible
|
|||
void set_session_start (nframes_t start) { start_location->set_start(start); }
|
||||
void set_session_end (nframes_t end) { end_location->set_start(end); _end_location_is_free = false; }
|
||||
void use_rf_shuttle_speed ();
|
||||
void allow_auto_play (bool yn);
|
||||
void request_transport_speed (float speed);
|
||||
void request_overwrite_buffer (Diskstream*);
|
||||
void request_diskstream_speed (Diskstream&, float speed);
|
||||
|
|
@ -984,6 +985,7 @@ class Session : public PBD::StatefulDestructible
|
|||
volatile float _transport_speed;
|
||||
volatile float _desired_transport_speed;
|
||||
float _last_transport_speed;
|
||||
bool auto_play_legal;
|
||||
nframes_t _last_slave_transport_frame;
|
||||
nframes_t maximum_output_latency;
|
||||
nframes_t last_stop_frame;
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ Session::first_stage_init (string fullpath, string snapshot_name)
|
|||
insert_cnt = 0;
|
||||
_transport_speed = 0;
|
||||
_last_transport_speed = 0;
|
||||
auto_play_legal = false;
|
||||
transport_sub_state = 0;
|
||||
_transport_frame = 0;
|
||||
last_stop_frame = 0;
|
||||
|
|
|
|||
|
|
@ -639,7 +639,7 @@ Session::locate (nframes_t target_frame, bool with_roll, bool with_flush, bool w
|
|||
}
|
||||
}
|
||||
|
||||
if (transport_rolling() && !Config->get_auto_play() && !with_roll && !(synced_to_jack() && play_loop)) {
|
||||
if (transport_rolling() && (!auto_play_legal || Config->get_auto_play()) && !with_roll && !(synced_to_jack() && play_loop)) {
|
||||
realtime_stop (false);
|
||||
}
|
||||
|
||||
|
|
@ -924,7 +924,7 @@ Session::post_transport ()
|
|||
|
||||
if (post_transport_work & PostTransportLocate) {
|
||||
|
||||
if (((Config->get_slave_source() == None && Config->get_auto_play()) && !_exporting) || (post_transport_work & PostTransportRoll)) {
|
||||
if (((Config->get_slave_source() == None && (auto_play_legal && Config->get_auto_play())) && !_exporting) || (post_transport_work & PostTransportRoll)) {
|
||||
start_transport ();
|
||||
|
||||
} else {
|
||||
|
|
@ -1249,3 +1249,9 @@ Session::update_latency_compensation_proxy (void* ignored)
|
|||
{
|
||||
update_latency_compensation (false, false);
|
||||
}
|
||||
|
||||
void
|
||||
Session::allow_auto_play (bool yn)
|
||||
{
|
||||
auto_play_legal = yn;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue