mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 15:54:57 +01:00
MCP: share add-marker code with BasicUI; don't allow route locking if the strip has no current route
git-svn-id: svn://localhost/ardour2/branches/3.0@11916 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
b2cd8b004c
commit
5ae258e23b
4 changed files with 22 additions and 16 deletions
|
|
@ -19,6 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "pbd/pthread_utils.h"
|
#include "pbd/pthread_utils.h"
|
||||||
|
#include "pbd/memento_command.h"
|
||||||
|
|
||||||
#include "ardour/session.h"
|
#include "ardour/session.h"
|
||||||
#include "ardour/location.h"
|
#include "ardour/location.h"
|
||||||
|
|
@ -91,10 +92,16 @@ BasicUI::goto_end ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
BasicUI::add_marker ()
|
BasicUI::add_marker (const std::string& markername)
|
||||||
{
|
{
|
||||||
framepos_t when = session->audible_frame();
|
framepos_t where = session->audible_frame();
|
||||||
session->locations()->add (new Location (*session, when, when, _("unnamed"), Location::IsMark));
|
Location *location = new Location (*session, where, where, markername, Location::IsMark);
|
||||||
|
session->begin_reversible_command (_("add marker"));
|
||||||
|
XMLNode &before = session->locations()->get_state();
|
||||||
|
session->locations()->add (location, true);
|
||||||
|
XMLNode &after = session->locations()->get_state();
|
||||||
|
session->add_command (new MementoCommand<Locations>(*(session->locations()), &before, &after));
|
||||||
|
session->commit_reversible_command ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class BasicUI {
|
||||||
BasicUI (ARDOUR::Session&);
|
BasicUI (ARDOUR::Session&);
|
||||||
virtual ~BasicUI ();
|
virtual ~BasicUI ();
|
||||||
|
|
||||||
void add_marker ();
|
void add_marker (const std::string& = std::string());
|
||||||
|
|
||||||
void register_thread (std::string name);
|
void register_thread (std::string name);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -386,17 +386,11 @@ MackieControlProtocol::timecode_beats_release (Button &)
|
||||||
LedState
|
LedState
|
||||||
MackieControlProtocol::marker_press (Button &)
|
MackieControlProtocol::marker_press (Button &)
|
||||||
{
|
{
|
||||||
// cut'n'paste from LocationUI::add_new_location()
|
|
||||||
string markername;
|
string markername;
|
||||||
framepos_t where = session->audible_frame();
|
|
||||||
session->locations()->next_available_name(markername,"mcu");
|
session->locations()->next_available_name (markername,"mcu");
|
||||||
Location *location = new Location (*session, where, where, markername, Location::IsMark);
|
add_marker (markername);
|
||||||
session->begin_reversible_command (_("add marker"));
|
|
||||||
XMLNode &before = session->locations()->get_state();
|
|
||||||
session->locations()->add (location, true);
|
|
||||||
XMLNode &after = session->locations()->get_state();
|
|
||||||
session->add_command (new MementoCommand<Locations>(*(session->locations()), &before, &after));
|
|
||||||
session->commit_reversible_command ();
|
|
||||||
return on;
|
return on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -474,7 +474,9 @@ Strip::handle_button (Button& button, ButtonState bs)
|
||||||
int lock_mod = (MackieControlProtocol::MODIFIER_CONTROL|MackieControlProtocol::MODIFIER_SHIFT);
|
int lock_mod = (MackieControlProtocol::MODIFIER_CONTROL|MackieControlProtocol::MODIFIER_SHIFT);
|
||||||
|
|
||||||
if ((_surface->mcp().modifier_state() & lock_mod) == lock_mod) {
|
if ((_surface->mcp().modifier_state() & lock_mod) == lock_mod) {
|
||||||
|
if (_route) {
|
||||||
_route_locked = !_route_locked;
|
_route_locked = !_route_locked;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
_surface->mcp().select_track (_route);
|
_surface->mcp().select_track (_route);
|
||||||
}
|
}
|
||||||
|
|
@ -666,7 +668,10 @@ Strip::display (uint32_t line_number, const std::string& line)
|
||||||
void
|
void
|
||||||
Strip::lock_route ()
|
Strip::lock_route ()
|
||||||
{
|
{
|
||||||
|
/* don't lock unless we have a route */
|
||||||
|
if (_route) {
|
||||||
_route_locked = true;
|
_route_locked = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue