mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
remove broken loop button behaviour, and don't remove start+end markers when "clearing" the locations list
git-svn-id: svn://localhost/ardour2/trunk@1058 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
40a6f878a9
commit
7eba21ca19
9 changed files with 18 additions and 16 deletions
|
|
@ -1000,7 +1000,7 @@ ARDOUR_UI::transport_stop ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Config->get_auto_loop()) {
|
if (session->get_play_loop ()) {
|
||||||
session->request_play_loop (false);
|
session->request_play_loop (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1054,7 +1054,7 @@ ARDOUR_UI::transport_roll ()
|
||||||
|
|
||||||
rolling = session->transport_rolling ();
|
rolling = session->transport_rolling ();
|
||||||
|
|
||||||
if (Config->get_auto_loop()) {
|
if (session->get_play_loop()) {
|
||||||
session->request_play_loop (false);
|
session->request_play_loop (false);
|
||||||
auto_loop_button.set_active (false);
|
auto_loop_button.set_active (false);
|
||||||
roll_button.set_active (true);
|
roll_button.set_active (true);
|
||||||
|
|
@ -1072,7 +1072,7 @@ void
|
||||||
ARDOUR_UI::transport_loop()
|
ARDOUR_UI::transport_loop()
|
||||||
{
|
{
|
||||||
if (session) {
|
if (session) {
|
||||||
if (Config->get_auto_loop()) {
|
if (session->get_play_loop()) {
|
||||||
if (session->transport_rolling()) {
|
if (session->transport_rolling()) {
|
||||||
Location * looploc = session->locations()->auto_loop_location();
|
Location * looploc = session->locations()->auto_loop_location();
|
||||||
if (looploc) {
|
if (looploc) {
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ ARDOUR_UI::transport_rolling ()
|
||||||
roll_button.set_active (false);
|
roll_button.set_active (false);
|
||||||
auto_loop_button.set_active (false);
|
auto_loop_button.set_active (false);
|
||||||
|
|
||||||
} else if (Config->get_auto_loop ()) {
|
} else if (session->get_play_loop ()) {
|
||||||
auto_loop_button.set_active (true);
|
auto_loop_button.set_active (true);
|
||||||
play_selection_button.set_active (false);
|
play_selection_button.set_active (false);
|
||||||
roll_button.set_active (false);
|
roll_button.set_active (false);
|
||||||
|
|
|
||||||
|
|
@ -280,7 +280,7 @@ void
|
||||||
ARDOUR_UI::toggle_session_auto_loop ()
|
ARDOUR_UI::toggle_session_auto_loop ()
|
||||||
{
|
{
|
||||||
if (session) {
|
if (session) {
|
||||||
if (Config->get_auto_loop()) {
|
if (session->get_play_loop()) {
|
||||||
if (session->transport_rolling()) {
|
if (session->transport_rolling()) {
|
||||||
transport_roll();
|
transport_roll();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -769,8 +769,6 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
|
||||||
map_solo_model ();
|
map_solo_model ();
|
||||||
} else if (PARAM_IS ("auto-play")) {
|
} else if (PARAM_IS ("auto-play")) {
|
||||||
ActionManager::map_some_state ("Transport", "ToggleAutoPlay", &Configuration::get_auto_play);
|
ActionManager::map_some_state ("Transport", "ToggleAutoPlay", &Configuration::get_auto_play);
|
||||||
} else if (PARAM_IS ("auto-loop")) {
|
|
||||||
ActionManager::map_some_state ("Transport", "Loop", &Configuration::get_auto_loop);
|
|
||||||
} else if (PARAM_IS ("auto-return")) {
|
} else if (PARAM_IS ("auto-return")) {
|
||||||
ActionManager::map_some_state ("Transport", "ToggleAutoReturn", &Configuration::get_auto_return);
|
ActionManager::map_some_state ("Transport", "ToggleAutoReturn", &Configuration::get_auto_return);
|
||||||
} else if (PARAM_IS ("auto-input")) {
|
} else if (PARAM_IS ("auto-input")) {
|
||||||
|
|
|
||||||
|
|
@ -925,7 +925,7 @@ Editor::update_loop_range_view (bool visibility)
|
||||||
|
|
||||||
Location* tll;
|
Location* tll;
|
||||||
|
|
||||||
if (Config->get_auto_loop() && ((tll = transport_loop_location()) != 0)) {
|
if (session->get_play_loop() && ((tll = transport_loop_location()) != 0)) {
|
||||||
|
|
||||||
double x1 = frame_to_pixel (tll->start());
|
double x1 = frame_to_pixel (tll->start());
|
||||||
double x2 = frame_to_pixel (tll->end());
|
double x2 = frame_to_pixel (tll->end());
|
||||||
|
|
|
||||||
|
|
@ -1840,7 +1840,7 @@ Editor::toggle_playback (bool with_abort)
|
||||||
|
|
||||||
if (session->transport_rolling()) {
|
if (session->transport_rolling()) {
|
||||||
session->request_stop (with_abort);
|
session->request_stop (with_abort);
|
||||||
if (Config->get_auto_loop()) {
|
if (session->get_play_loop()) {
|
||||||
session->request_play_loop (false);
|
session->request_play_loop (false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,6 @@ CONFIG_VARIABLE (std::string, click_emphasis_sound, "click-emphasis-sound", "")
|
||||||
CONFIG_VARIABLE (bool, auto_play, "auto-play", false)
|
CONFIG_VARIABLE (bool, auto_play, "auto-play", false)
|
||||||
CONFIG_VARIABLE (bool, auto_return, "auto-return", false)
|
CONFIG_VARIABLE (bool, auto_return, "auto-return", false)
|
||||||
CONFIG_VARIABLE (bool, auto_input, "auto-input", true)
|
CONFIG_VARIABLE (bool, auto_input, "auto-input", true)
|
||||||
CONFIG_VARIABLE (bool, auto_loop, "auto-loop", false)
|
|
||||||
CONFIG_VARIABLE (bool, punch_in, "punch-in", false)
|
CONFIG_VARIABLE (bool, punch_in, "punch-in", false)
|
||||||
CONFIG_VARIABLE (bool, punch_out, "punch-out", false)
|
CONFIG_VARIABLE (bool, punch_out, "punch-out", false)
|
||||||
CONFIG_VARIABLE (bool, plugins_stop_with_transport, "plugins-stop-with-transport", false)
|
CONFIG_VARIABLE (bool, plugins_stop_with_transport, "plugins-stop-with-transport", false)
|
||||||
|
|
|
||||||
|
|
@ -346,7 +346,10 @@ class Session : public PBD::StatefulDestructible
|
||||||
void request_bounded_roll (nframes_t start, nframes_t end);
|
void request_bounded_roll (nframes_t start, nframes_t end);
|
||||||
void request_stop (bool abort = false);
|
void request_stop (bool abort = false);
|
||||||
void request_locate (nframes_t frame, bool with_roll = false);
|
void request_locate (nframes_t frame, bool with_roll = false);
|
||||||
|
|
||||||
void request_play_loop (bool yn);
|
void request_play_loop (bool yn);
|
||||||
|
bool get_play_loop () const { return play_loop; }
|
||||||
|
|
||||||
nframes_t last_transport_start() const { return _last_roll_location; }
|
nframes_t last_transport_start() const { return _last_roll_location; }
|
||||||
void goto_end () { request_locate (end_location->start(), false);}
|
void goto_end () { request_locate (end_location->start(), false);}
|
||||||
void goto_start () { request_locate (start_location->start(), false); }
|
void goto_start () { request_locate (start_location->start(), false); }
|
||||||
|
|
|
||||||
|
|
@ -420,17 +420,19 @@ Locations::clear ()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
Glib::Mutex::Lock lm (lock);
|
Glib::Mutex::Lock lm (lock);
|
||||||
LocationList::iterator tmp;
|
|
||||||
for (LocationList::iterator i = locations.begin(); i != locations.end(); ) {
|
for (LocationList::iterator i = locations.begin(); i != locations.end(); ) {
|
||||||
tmp = i;
|
|
||||||
|
LocationList::iterator tmp = i;
|
||||||
++tmp;
|
++tmp;
|
||||||
|
|
||||||
if (!(*i)->is_end() && !(*i)->is_start()) {
|
if (!(*i)->is_end() && !(*i)->is_start()) {
|
||||||
locations.erase (i);
|
locations.erase (i);
|
||||||
}
|
}
|
||||||
|
|
||||||
i = tmp;
|
i = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
locations.clear ();
|
|
||||||
current_location = 0;
|
current_location = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -579,7 +581,7 @@ Locations::set_state (const XMLNode& node)
|
||||||
|
|
||||||
nlist = node.children();
|
nlist = node.children();
|
||||||
|
|
||||||
locations.clear (); // dangerous
|
locations.clear ();
|
||||||
current_location = 0;
|
current_location = 0;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ BasicUI::register_thread (std::string name)
|
||||||
void
|
void
|
||||||
BasicUI::loop_toggle ()
|
BasicUI::loop_toggle ()
|
||||||
{
|
{
|
||||||
if (Config->get_auto_loop()) {
|
if (session->get_play_loop()) {
|
||||||
session->request_play_loop (false);
|
session->request_play_loop (false);
|
||||||
} else {
|
} else {
|
||||||
session->request_play_loop (true);
|
session->request_play_loop (true);
|
||||||
|
|
@ -106,7 +106,7 @@ BasicUI::transport_play (bool from_last_start)
|
||||||
{
|
{
|
||||||
bool rolling = session->transport_rolling ();
|
bool rolling = session->transport_rolling ();
|
||||||
|
|
||||||
if (Config->get_auto_loop()) {
|
if (session->get_play_loop()) {
|
||||||
session->request_play_loop (false);
|
session->request_play_loop (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue