put the issue of using a monitor section into ~/.config/ardour.rc, not the session file. probably not totally right yet. provide startup dialog choice page to let first time users make the decision when first trying ardour (needs rewording)
git-svn-id: svn://localhost/ardour2/branches/3.0@6780 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
814f2fbd8f
commit
7689d72875
|
@ -2321,7 +2321,6 @@ ARDOUR_UI::build_session_from_nsd (const Glib::ustring& session_path, const Glib
|
|||
|
||||
if (build_session (session_path,
|
||||
session_name,
|
||||
_startup->create_control_bus(),
|
||||
mchns,
|
||||
iconnect,
|
||||
oconnect,
|
||||
|
@ -2634,7 +2633,6 @@ ARDOUR_UI::load_session (const Glib::ustring& path, const Glib::ustring& snap_na
|
|||
|
||||
int
|
||||
ARDOUR_UI::build_session (const Glib::ustring& path, const Glib::ustring& snap_name,
|
||||
bool with_monitor,
|
||||
uint32_t master_channels,
|
||||
AutoConnectOption input_connect,
|
||||
AutoConnectOption output_connect,
|
||||
|
@ -2663,7 +2661,7 @@ ARDOUR_UI::build_session (const Glib::ustring& path, const Glib::ustring& snap_n
|
|||
|
||||
try {
|
||||
new_session = new Session (*engine, path, snap_name, input_connect, output_connect,
|
||||
with_monitor, master_channels, nphysin, nphysout, initial_length);
|
||||
master_channels, nphysin, nphysout, initial_length);
|
||||
}
|
||||
|
||||
catch (...) {
|
||||
|
|
|
@ -125,7 +125,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
|||
int load_session (const Glib::ustring& path, const Glib::ustring& snapshot, Glib::ustring mix_template = Glib::ustring());
|
||||
bool session_loaded;
|
||||
int build_session (const Glib::ustring& path, const Glib::ustring& snapshot,
|
||||
bool with_monitor,
|
||||
uint32_t master_chns,
|
||||
ARDOUR::AutoConnectOption input_connect,
|
||||
ARDOUR::AutoConnectOption output_connect,
|
||||
|
|
|
@ -44,11 +44,12 @@ ArdourStartup::ArdourStartup ()
|
|||
, monitor_via_hardware_button (_("Use an external mixer or the hardware mixer of your audio interface.\n\
|
||||
Ardour will play NO role in monitoring"))
|
||||
, monitor_via_ardour_button (string_compose (_("Ask %1 to playback material as it is being recorded"), PROGRAM_NAME))
|
||||
, use_monitor_section_button (_("Use a monitor bus in new sessions (more complex, more control)"))
|
||||
, no_monitor_section_button (_("Just use the master out bus (simpler, less control)"))
|
||||
, new_folder_chooser (FILE_CHOOSER_ACTION_SELECT_FOLDER)
|
||||
, more_new_session_options_button (_("I'd like more options for this session"))
|
||||
, _output_limit_count_adj (1, 0, 100, 1, 10, 0)
|
||||
, _input_limit_count_adj (1, 0, 100, 1, 10, 0)
|
||||
, _control_bus_channel_count_adj (2, 0, 100, 1, 10, 0)
|
||||
, _master_bus_channel_count_adj (2, 0, 100, 1, 10, 0)
|
||||
|
||||
{
|
||||
|
@ -100,6 +101,7 @@ Ardour will play NO role in monitoring"))
|
|||
setup_new_user_page ();
|
||||
setup_first_time_config_page ();
|
||||
setup_monitoring_choice_page ();
|
||||
setup_monitor_section_choice_page ();
|
||||
|
||||
if (need_audio_setup) {
|
||||
setup_audio_page ();
|
||||
|
@ -319,7 +321,7 @@ signal as well as record it. This is called \"monitoring\". There are\n\
|
|||
different ways to do this depending on the equipment you have and the\n\
|
||||
configuration of that equipment. The two most common are presented here.\n\
|
||||
Please choose whichever one is right for your setup.\n\n\
|
||||
<i>(You can change this preference at any time, via the Options menu)</i>");
|
||||
<i>(You can change this preference at any time, via the Preferences dialog)</i>");
|
||||
monitor_label.set_alignment (0.0, 0.0);
|
||||
|
||||
vbox->set_spacing (6);
|
||||
|
@ -343,6 +345,48 @@ Please choose whichever one is right for your setup.\n\n\
|
|||
set_page_complete (mon_vbox, true);
|
||||
}
|
||||
|
||||
void
|
||||
ArdourStartup::setup_monitor_section_choice_page ()
|
||||
{
|
||||
mon_sec_vbox.set_spacing (18);
|
||||
mon_sec_vbox.set_border_width (24);
|
||||
|
||||
HBox* hbox = manage (new HBox);
|
||||
VBox* vbox = manage (new VBox);
|
||||
RadioButton::Group g (use_monitor_section_button.get_group());
|
||||
no_monitor_section_button.set_group (g);
|
||||
|
||||
monitor_section_label.set_markup("\
|
||||
When connecting speakers to Ardour, would you prefer to use a monitor bus,\n\
|
||||
which will offer various kinds of control at the last stage of output\n\
|
||||
or would you prefer to just connect directly to the master outs?\n\n\
|
||||
Most home studio users will probably want to start <i>without</i> a monitor bus.\n\
|
||||
Those with experience of traditional mixing consoles may prefer to use one.\n\
|
||||
Please choose whichever one is right for your setup.\n\n\
|
||||
<i>(You can change this preference at any time, via the Preferences dialog)</i>");
|
||||
monitor_section_label.set_alignment (0.0, 0.0);
|
||||
|
||||
vbox->set_spacing (6);
|
||||
|
||||
vbox->pack_start (no_monitor_section_button, false, true);
|
||||
vbox->pack_start (use_monitor_section_button, false, true);
|
||||
hbox->pack_start (*vbox, true, true, 8);
|
||||
mon_sec_vbox.pack_start (monitor_section_label, false, false);
|
||||
mon_sec_vbox.pack_start (*hbox, false, false);
|
||||
|
||||
mon_sec_vbox.show_all ();
|
||||
|
||||
monitor_section_page_index = append_page (mon_sec_vbox);
|
||||
set_page_title (mon_sec_vbox, _("Monitor Section"));
|
||||
set_page_header_image (mon_sec_vbox, icon_pixbuf);
|
||||
|
||||
/* user could just click on "Forward" if default
|
||||
* choice is correct.
|
||||
*/
|
||||
|
||||
set_page_complete (mon_sec_vbox, true);
|
||||
}
|
||||
|
||||
void
|
||||
ArdourStartup::setup_initial_choice_page ()
|
||||
{
|
||||
|
@ -834,13 +878,6 @@ ArdourStartup::setup_more_options_page ()
|
|||
input_label.set_markup (_("<b>Inputs</b>"));
|
||||
output_label.set_markup (_("<b>Outputs</b>"));
|
||||
|
||||
_create_control_bus.set_label (_("Create monitor bus"));
|
||||
_create_control_bus.set_flags(Gtk::CAN_FOCUS);
|
||||
_create_control_bus.set_relief(Gtk::RELIEF_NORMAL);
|
||||
_create_control_bus.set_mode(true);
|
||||
_create_control_bus.set_active(false);
|
||||
_create_control_bus.set_border_width(0);
|
||||
|
||||
_master_bus_channel_count.set_flags(Gtk::CAN_FOCUS);
|
||||
_master_bus_channel_count.set_update_policy(Gtk::UPDATE_ALWAYS);
|
||||
_master_bus_channel_count.set_numeric(true);
|
||||
|
@ -895,7 +932,6 @@ ArdourStartup::setup_more_options_page ()
|
|||
bus_table.attach (_create_master_bus, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
|
||||
bus_table.attach (_master_bus_channel_count, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
|
||||
bus_table.attach (chan_count_label_1, 2, 3, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 6, 0);
|
||||
bus_table.attach (_create_control_bus, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
|
||||
|
||||
input_port_limit_hbox.pack_start(_limit_input_ports, Gtk::PACK_SHRINK, 6);
|
||||
input_port_limit_hbox.pack_start(_input_limit_count, Gtk::PACK_SHRINK, 0);
|
||||
|
@ -992,7 +1028,6 @@ ArdourStartup::setup_more_options_page ()
|
|||
_limit_input_ports.signal_clicked().connect (sigc::mem_fun (*this, &ArdourStartup::limit_inputs_clicked));
|
||||
_limit_output_ports.signal_clicked().connect (sigc::mem_fun (*this, &ArdourStartup::limit_outputs_clicked));
|
||||
_create_master_bus.signal_clicked().connect (sigc::mem_fun (*this, &ArdourStartup::master_bus_button_clicked));
|
||||
_create_control_bus.signal_clicked().connect (sigc::mem_fun (*this, &ArdourStartup::monitor_bus_button_clicked));
|
||||
|
||||
/* note that more_options_vbox is NOT visible by
|
||||
* default. this is entirely by design - this page
|
||||
|
@ -1016,12 +1051,6 @@ ArdourStartup::master_channel_count() const
|
|||
return _master_bus_channel_count.get_value_as_int();
|
||||
}
|
||||
|
||||
bool
|
||||
ArdourStartup::create_control_bus() const
|
||||
{
|
||||
return _create_control_bus.get_active();
|
||||
}
|
||||
|
||||
bool
|
||||
ArdourStartup::connect_inputs() const
|
||||
{
|
||||
|
@ -1112,13 +1141,6 @@ ArdourStartup::master_bus_button_clicked ()
|
|||
bool yn = _create_master_bus.get_active();
|
||||
|
||||
_master_bus_channel_count.set_sensitive(yn);
|
||||
_create_control_bus.set_sensitive (yn);
|
||||
}
|
||||
|
||||
void
|
||||
ArdourStartup::monitor_bus_button_clicked ()
|
||||
{
|
||||
/* relax */
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -44,8 +44,6 @@ class ArdourStartup : public Gtk::Assistant {
|
|||
bool create_master_bus() const;
|
||||
int master_channel_count() const;
|
||||
|
||||
bool create_control_bus() const;
|
||||
|
||||
bool connect_inputs() const;
|
||||
bool limit_inputs_used_for_connection() const;
|
||||
int input_limit_count() const;
|
||||
|
@ -105,6 +103,14 @@ class ArdourStartup : public Gtk::Assistant {
|
|||
Gtk::RadioButton monitor_via_ardour_button;
|
||||
void setup_monitoring_choice_page ();
|
||||
|
||||
/* monitor section choices */
|
||||
|
||||
Gtk::VBox mon_sec_vbox;
|
||||
Gtk::Label monitor_section_label;
|
||||
Gtk::RadioButton use_monitor_section_button;
|
||||
Gtk::RadioButton no_monitor_section_button;
|
||||
void setup_monitor_section_choice_page ();
|
||||
|
||||
/* session page (could be new or existing) */
|
||||
|
||||
void setup_session_page ();
|
||||
|
@ -208,8 +214,6 @@ class ArdourStartup : public Gtk::Assistant {
|
|||
Gtk::CheckButton _create_master_bus;
|
||||
Gtk::SpinButton _master_bus_channel_count;
|
||||
|
||||
Gtk::CheckButton _create_control_bus;
|
||||
|
||||
Gtk::CheckButton _connect_inputs;
|
||||
Gtk::CheckButton _limit_input_ports;
|
||||
Gtk::SpinButton _input_limit_count;
|
||||
|
@ -224,7 +228,6 @@ class ArdourStartup : public Gtk::Assistant {
|
|||
|
||||
Gtk::Adjustment _output_limit_count_adj;
|
||||
Gtk::Adjustment _input_limit_count_adj;
|
||||
Gtk::Adjustment _control_bus_channel_count_adj;
|
||||
Gtk::Adjustment _master_bus_channel_count_adj;
|
||||
|
||||
void connect_inputs_clicked ();
|
||||
|
@ -232,7 +235,6 @@ class ArdourStartup : public Gtk::Assistant {
|
|||
void limit_inputs_clicked ();
|
||||
void limit_outputs_clicked ();
|
||||
void master_bus_button_clicked ();
|
||||
void monitor_bus_button_clicked ();
|
||||
void setup_more_options_page ();
|
||||
|
||||
/* final page */
|
||||
|
@ -250,6 +252,7 @@ class ArdourStartup : public Gtk::Assistant {
|
|||
gint new_user_page_index;
|
||||
gint default_folder_page_index;
|
||||
gint monitoring_page_index;
|
||||
gint monitor_section_page_index;
|
||||
gint session_page_index;
|
||||
gint initial_choice_index;
|
||||
gint final_page_index;
|
||||
|
|
|
@ -79,6 +79,7 @@ CONFIG_VARIABLE (bool, mute_affects_control_outs, "mute-affects-control-outs", t
|
|||
CONFIG_VARIABLE (bool, mute_affects_main_outs, "mute-affects-main-outs", true)
|
||||
CONFIG_VARIABLE (MonitorModel, monitoring_model, "monitoring-model", ExternalMonitoring)
|
||||
CONFIG_VARIABLE (ListenPosition, listen_position, "listen-position", AfterFaderListen)
|
||||
CONFIG_VARIABLE (bool, use_monitor_bus, "use-monitor-bus", false)
|
||||
|
||||
CONFIG_VARIABLE (bool, solo_control_is_listen_control, "solo-control-is-listen-control", false)
|
||||
CONFIG_VARIABLE (bool, solo_latched, "solo-latched", true)
|
||||
|
|
|
@ -142,7 +142,6 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
|
|||
std::string snapshot_name,
|
||||
AutoConnectOption input_auto_connect,
|
||||
AutoConnectOption output_auto_connect,
|
||||
bool with_monitor,
|
||||
uint32_t master_out_channels,
|
||||
uint32_t n_physical_in,
|
||||
uint32_t n_physical_out,
|
||||
|
|
|
@ -206,7 +206,6 @@ Session::Session (AudioEngine &eng,
|
|||
string snapshot_name,
|
||||
AutoConnectOption input_ac,
|
||||
AutoConnectOption output_ac,
|
||||
bool with_monitor,
|
||||
uint32_t master_out_channels,
|
||||
uint32_t requested_physical_in,
|
||||
uint32_t requested_physical_out,
|
||||
|
@ -295,7 +294,7 @@ Session::Session (AudioEngine &eng,
|
|||
output_ac = AutoConnectOption (output_ac & ~AutoConnectMaster);
|
||||
}
|
||||
|
||||
if (with_monitor) {
|
||||
if (Config->get_use_monitor_bus()) {
|
||||
ChanCount count(DataType::AUDIO, master_out_channels);
|
||||
Route* rt = new Route (*this, _("monitor"), Route::ControlOut, DataType::AUDIO);
|
||||
boost_debug_shared_ptr_mark_interesting (rt, "Route");
|
||||
|
@ -814,8 +813,6 @@ Session::hookup_io (bool new_session)
|
|||
|
||||
} else {
|
||||
|
||||
cerr << "Connecting route " << (*x)->name() << " to control outs\n";
|
||||
|
||||
(*x)->listen_via (_control_out,
|
||||
(Config->get_listen_position() == AfterFaderListen ? PostFader : PreFader),
|
||||
false, false);
|
||||
|
|
Loading…
Reference in New Issue