mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-18 12:46:32 +01:00
Fix roll after locate from the audio clock context menu. Restore Go buttons in the location window. Fixes #3521.
git-svn-id: svn://localhost/ardour2/branches/3.0@7962 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
3903bc0cb2
commit
f0d2fec29d
4 changed files with 12 additions and 10 deletions
|
|
@ -1403,7 +1403,7 @@ restart JACK with more ports."), PROGRAM_NAME));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ARDOUR_UI::do_transport_locate (nframes_t new_position)
|
ARDOUR_UI::do_transport_locate (nframes_t new_position, bool with_roll)
|
||||||
{
|
{
|
||||||
nframes_t _preroll = 0;
|
nframes_t _preroll = 0;
|
||||||
|
|
||||||
|
|
@ -1417,7 +1417,7 @@ ARDOUR_UI::do_transport_locate (nframes_t new_position)
|
||||||
new_position = 0;
|
new_position = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
_session->request_locate (new_position);
|
_session->request_locate (new_position, with_roll);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||||
void save_ardour_state ();
|
void save_ardour_state ();
|
||||||
gboolean configure_handler (GdkEventConfigure* conf);
|
gboolean configure_handler (GdkEventConfigure* conf);
|
||||||
|
|
||||||
void do_transport_locate (nframes_t position);
|
void do_transport_locate (nframes_t, bool);
|
||||||
void halt_on_xrun_message ();
|
void halt_on_xrun_message ();
|
||||||
void xrun_handler (nframes_t);
|
void xrun_handler (nframes_t);
|
||||||
void create_xrun_marker (nframes_t);
|
void create_xrun_marker (nframes_t);
|
||||||
|
|
|
||||||
|
|
@ -1963,7 +1963,7 @@ AudioClock::build_ops_menu ()
|
||||||
if (editable && !is_duration && !_follows_playhead) {
|
if (editable && !is_duration && !_follows_playhead) {
|
||||||
ops_items.push_back (SeparatorElem());
|
ops_items.push_back (SeparatorElem());
|
||||||
ops_items.push_back (MenuElem (_("Set From Playhead"), sigc::mem_fun(*this, &AudioClock::set_from_playhead)));
|
ops_items.push_back (MenuElem (_("Set From Playhead"), sigc::mem_fun(*this, &AudioClock::set_from_playhead)));
|
||||||
ops_items.push_back (MenuElem (_("Locate to this time"), sigc::mem_fun(*this, &AudioClock::locate)));
|
ops_items.push_back (MenuElem (_("Locate to This Time"), sigc::mem_fun(*this, &AudioClock::locate)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1984,7 +1984,7 @@ AudioClock::locate ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_session->request_locate (current_time(), false);
|
_session->request_locate (current_time(), _session->transport_rolling ());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ LocationEditRow::LocationEditRow(Session * sess, Location * loc, int32_t num)
|
||||||
|
|
||||||
set_session (sess);
|
set_session (sess);
|
||||||
|
|
||||||
// start_hbox.pack_start (start_go_button, false, false);
|
start_hbox.pack_start (start_go_button, false, false);
|
||||||
start_hbox.pack_start (start_clock, false, false);
|
start_hbox.pack_start (start_clock, false, false);
|
||||||
|
|
||||||
/* this is always in this location, no matter what the location is */
|
/* this is always in this location, no matter what the location is */
|
||||||
|
|
@ -129,7 +129,7 @@ LocationEditRow::LocationEditRow(Session * sess, Location * loc, int32_t num)
|
||||||
start_clock.ValueChanged.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::clock_changed), LocStart));
|
start_clock.ValueChanged.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::clock_changed), LocStart));
|
||||||
start_clock.ChangeAborted.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::change_aborted), LocStart));
|
start_clock.ChangeAborted.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::change_aborted), LocStart));
|
||||||
|
|
||||||
// end_hbox.pack_start (end_go_button, false, false);
|
end_hbox.pack_start (end_go_button, false, false);
|
||||||
end_hbox.pack_start (end_clock, false, false);
|
end_hbox.pack_start (end_clock, false, false);
|
||||||
|
|
||||||
end_go_button.signal_clicked().connect(sigc::bind (sigc::mem_fun (*this, &LocationEditRow::go_button_pressed), LocEnd));
|
end_go_button.signal_clicked().connect(sigc::bind (sigc::mem_fun (*this, &LocationEditRow::go_button_pressed), LocEnd));
|
||||||
|
|
@ -364,14 +364,16 @@ LocationEditRow::composer_entry_changed ()
|
||||||
void
|
void
|
||||||
LocationEditRow::go_button_pressed (LocationPart part)
|
LocationEditRow::go_button_pressed (LocationPart part)
|
||||||
{
|
{
|
||||||
if (!location) return;
|
if (!location) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (part) {
|
switch (part) {
|
||||||
case LocStart:
|
case LocStart:
|
||||||
ARDOUR_UI::instance()->do_transport_locate (location->start());
|
ARDOUR_UI::instance()->do_transport_locate (location->start(), _session->transport_rolling ());
|
||||||
break;
|
break;
|
||||||
case LocEnd:
|
case LocEnd:
|
||||||
ARDOUR_UI::instance()->do_transport_locate (location->end());
|
ARDOUR_UI::instance()->do_transport_locate (location->end(), _session->transport_rolling ());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue