mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 00:04:56 +01:00
add -P flag blocking port connections while loading session
git-svn-id: svn://localhost/ardour2/branches/3.0@7213 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
b65fe35f67
commit
51ad790745
6 changed files with 25 additions and 1 deletions
|
|
@ -349,6 +349,8 @@ ARDOUR_UI::create_engine ()
|
||||||
|
|
||||||
engine->Halted.connect_same_thread (forever_connections, boost::bind (&ARDOUR_UI::engine_halted, this, _1, false));
|
engine->Halted.connect_same_thread (forever_connections, boost::bind (&ARDOUR_UI::engine_halted, this, _1, false));
|
||||||
|
|
||||||
|
ARDOUR::Port::set_connecting_blocked (ARDOUR_COMMAND_LINE::no_connect_ports);
|
||||||
|
|
||||||
post_engine ();
|
post_engine ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ bool ARDOUR_COMMAND_LINE::use_vst = true;
|
||||||
bool ARDOUR_COMMAND_LINE::new_session = false;
|
bool ARDOUR_COMMAND_LINE::new_session = false;
|
||||||
char* ARDOUR_COMMAND_LINE::curvetest_file = 0;
|
char* ARDOUR_COMMAND_LINE::curvetest_file = 0;
|
||||||
bool ARDOUR_COMMAND_LINE::try_hw_optimization = true;
|
bool ARDOUR_COMMAND_LINE::try_hw_optimization = true;
|
||||||
|
bool ARDOUR_COMMAND_LINE::no_connect_ports = false;
|
||||||
string ARDOUR_COMMAND_LINE::keybindings_path = ""; /* empty means use builtin default */
|
string ARDOUR_COMMAND_LINE::keybindings_path = ""; /* empty means use builtin default */
|
||||||
Glib::ustring ARDOUR_COMMAND_LINE::menus_file = "ardour.menus";
|
Glib::ustring ARDOUR_COMMAND_LINE::menus_file = "ardour.menus";
|
||||||
bool ARDOUR_COMMAND_LINE::finder_invoked_ardour = false;
|
bool ARDOUR_COMMAND_LINE::finder_invoked_ardour = false;
|
||||||
|
|
@ -79,7 +80,7 @@ print_help (const char *execname)
|
||||||
int
|
int
|
||||||
ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
|
ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
const char *optstring = "bc:C:dD:hk:E:m:N:nOp:ST:U:vV";
|
const char *optstring = "bc:C:dD:hk:E:m:N:nOp:PST:U:vV";
|
||||||
const char *execname = strrchr (argv[0], '/');
|
const char *execname = strrchr (argv[0], '/');
|
||||||
|
|
||||||
if (getenv ("ARDOUR_SAE")) {
|
if (getenv ("ARDOUR_SAE")) {
|
||||||
|
|
@ -109,6 +110,7 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
|
||||||
{ "save", 1, 0, 'E' },
|
{ "save", 1, 0, 'E' },
|
||||||
{ "uuid", 1, 0, 'U' },
|
{ "uuid", 1, 0, 'U' },
|
||||||
{ "template", 1, 0, 'T' },
|
{ "template", 1, 0, 'T' },
|
||||||
|
{ "no-connect-ports", 0, 0, 'P' },
|
||||||
{ 0, 0, 0, 0 }
|
{ 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -177,6 +179,10 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
|
||||||
try_hw_optimization = false;
|
try_hw_optimization = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'P':
|
||||||
|
no_connect_ports = true;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
#ifdef VST_SUPPORT
|
#ifdef VST_SUPPORT
|
||||||
use_vst = false;
|
use_vst = false;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ extern bool use_vst;
|
||||||
extern bool new_session;
|
extern bool new_session;
|
||||||
extern char* curvetest_file;
|
extern char* curvetest_file;
|
||||||
extern bool try_hw_optimization;
|
extern bool try_hw_optimization;
|
||||||
|
extern bool no_connect_ports;
|
||||||
extern bool use_gtk_theme;
|
extern bool use_gtk_theme;
|
||||||
extern std::string keybindings_path;
|
extern std::string keybindings_path;
|
||||||
extern Glib::ustring menus_file;
|
extern Glib::ustring menus_file;
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,13 @@ public:
|
||||||
static void set_buffer_size (nframes_t sz) {
|
static void set_buffer_size (nframes_t sz) {
|
||||||
_buffer_size = sz;
|
_buffer_size = sz;
|
||||||
}
|
}
|
||||||
|
static void set_connecting_blocked( bool yn ) {
|
||||||
|
_connecting_blocked = yn;
|
||||||
|
}
|
||||||
|
static bool connecting_blocked() {
|
||||||
|
return _connecting_blocked;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** @return Port short name */
|
/** @return Port short name */
|
||||||
std::string name () const {
|
std::string name () const {
|
||||||
|
|
@ -130,6 +137,7 @@ protected:
|
||||||
|
|
||||||
static nframes_t _port_offset;
|
static nframes_t _port_offset;
|
||||||
static nframes_t _buffer_size;
|
static nframes_t _buffer_size;
|
||||||
|
static bool _connecting_blocked;
|
||||||
|
|
||||||
static AudioEngine* _engine; ///< the AudioEngine
|
static AudioEngine* _engine; ///< the AudioEngine
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ using namespace ARDOUR;
|
||||||
AudioEngine* Port::_engine = 0;
|
AudioEngine* Port::_engine = 0;
|
||||||
nframes_t Port::_port_offset = 0;
|
nframes_t Port::_port_offset = 0;
|
||||||
nframes_t Port::_buffer_size = 0;
|
nframes_t Port::_buffer_size = 0;
|
||||||
|
bool Port::_connecting_blocked = false;
|
||||||
|
|
||||||
/** @param n Port short name */
|
/** @param n Port short name */
|
||||||
Port::Port (std::string const & n, DataType t, Flags f)
|
Port::Port (std::string const & n, DataType t, Flags f)
|
||||||
|
|
@ -116,6 +117,9 @@ Port::connect (std::string const & other)
|
||||||
|
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
|
||||||
|
if (_connecting_blocked)
|
||||||
|
return r;
|
||||||
|
|
||||||
if (sends_output ()) {
|
if (sends_output ()) {
|
||||||
r = jack_connect (_engine->jack (), this_shrt.c_str (), other_shrt.c_str ());
|
r = jack_connect (_engine->jack (), this_shrt.c_str (), other_shrt.c_str ());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@
|
||||||
#include "ardour/midi_track.h"
|
#include "ardour/midi_track.h"
|
||||||
#include "ardour/named_selection.h"
|
#include "ardour/named_selection.h"
|
||||||
#include "ardour/processor.h"
|
#include "ardour/processor.h"
|
||||||
|
#include "ardour/port.h"
|
||||||
#include "ardour/region_factory.h"
|
#include "ardour/region_factory.h"
|
||||||
#include "ardour/route_group.h"
|
#include "ardour/route_group.h"
|
||||||
#include "ardour/send.h"
|
#include "ardour/send.h"
|
||||||
|
|
@ -365,6 +366,8 @@ Session::second_stage_init ()
|
||||||
|
|
||||||
_state_of_the_state = Clean;
|
_state_of_the_state = Clean;
|
||||||
|
|
||||||
|
Port::set_connecting_blocked (false);
|
||||||
|
|
||||||
DirtyChanged (); /* EMIT SIGNAL */
|
DirtyChanged (); /* EMIT SIGNAL */
|
||||||
|
|
||||||
if (state_was_pending) {
|
if (state_was_pending) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue