add track/bus now allows specifying aux or direct bus role; processor box menus sort of kindof allow New Aux -> Aux Bus
git-svn-id: svn://localhost/ardour2/branches/3.0@6128 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
2feede2e8c
commit
b99b507be9
|
@ -83,6 +83,7 @@ ActionManager::init ()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ui_manager->add_ui_from_file (ui_file.to_string());
|
ui_manager->add_ui_from_file (ui_file.to_string());
|
||||||
|
info << string_compose (_("Loading menus from %1"), ui_file.to_string()) << endmsg;
|
||||||
loaded = true;
|
loaded = true;
|
||||||
} catch (Glib::MarkupError& err) {
|
} catch (Glib::MarkupError& err) {
|
||||||
error << string_compose (_("badly formatted UI definition file: %1"), err.what()) << endmsg;
|
error << string_compose (_("badly formatted UI definition file: %1"), err.what()) << endmsg;
|
||||||
|
|
|
@ -52,12 +52,22 @@ static const char* track_mode_names[] = {
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char* bus_mode_names[] = {
|
||||||
|
N_("Aux"),
|
||||||
|
N_("Direct"),
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<std::string> AddRouteDialog::channel_combo_strings;
|
||||||
|
std::vector<std::string> AddRouteDialog::track_mode_strings;
|
||||||
|
std::vector<std::string> AddRouteDialog::bus_mode_strings;
|
||||||
|
|
||||||
AddRouteDialog::AddRouteDialog (Session & s)
|
AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
: ArdourDialog (X_("add route dialog"))
|
: ArdourDialog (X_("add route dialog"))
|
||||||
, _session (s)
|
, _session (s)
|
||||||
, routes_adjustment (1, 1, 128, 1, 4)
|
, routes_adjustment (1, 1, 128, 1, 4)
|
||||||
, routes_spinner (routes_adjustment)
|
, routes_spinner (routes_adjustment)
|
||||||
, track_mode_label (_("Track mode:"))
|
, mode_label (_("Track mode:"))
|
||||||
{
|
{
|
||||||
if (track_mode_strings.empty()) {
|
if (track_mode_strings.empty()) {
|
||||||
track_mode_strings = I18N (track_mode_names);
|
track_mode_strings = I18N (track_mode_names);
|
||||||
|
@ -71,6 +81,10 @@ AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (bus_mode_strings.empty()) {
|
||||||
|
bus_mode_strings = I18N (bus_mode_names);
|
||||||
|
}
|
||||||
|
|
||||||
set_name ("AddRouteDialog");
|
set_name ("AddRouteDialog");
|
||||||
set_position (Gtk::WIN_POS_MOUSE);
|
set_position (Gtk::WIN_POS_MOUSE);
|
||||||
set_modal (true);
|
set_modal (true);
|
||||||
|
@ -82,14 +96,14 @@ AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
name_template_entry.set_name (X_("AddRouteDialogNameTemplateEntry"));
|
name_template_entry.set_name (X_("AddRouteDialogNameTemplateEntry"));
|
||||||
routes_spinner.set_name (X_("AddRouteDialogSpinner"));
|
routes_spinner.set_name (X_("AddRouteDialogSpinner"));
|
||||||
channel_combo.set_name (X_("ChannelCountSelector"));
|
channel_combo.set_name (X_("ChannelCountSelector"));
|
||||||
track_mode_combo.set_name (X_("ChannelCountSelector"));
|
mode_combo.set_name (X_("ChannelCountSelector"));
|
||||||
|
|
||||||
refill_channel_setups ();
|
refill_channel_setups ();
|
||||||
refill_route_groups ();
|
refill_route_groups ();
|
||||||
set_popdown_strings (track_mode_combo, track_mode_strings, true);
|
set_popdown_strings (mode_combo, track_mode_strings, true);
|
||||||
|
|
||||||
channel_combo.set_active_text (channel_combo_strings.front());
|
channel_combo.set_active_text (channel_combo_strings.front());
|
||||||
track_mode_combo.set_active_text (track_mode_strings.front());
|
mode_combo.set_active_text (track_mode_strings.front());
|
||||||
|
|
||||||
track_bus_combo.append_text (_("tracks"));
|
track_bus_combo.append_text (_("tracks"));
|
||||||
track_bus_combo.append_text (_("busses"));
|
track_bus_combo.append_text (_("busses"));
|
||||||
|
@ -139,9 +153,9 @@ AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
|
|
||||||
/* Track mode */
|
/* Track mode */
|
||||||
|
|
||||||
track_mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
|
mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
|
||||||
table2->attach (track_mode_label, 1, 2, 1, 2, Gtk::FILL, Gtk::EXPAND, 0, 0);
|
table2->attach (mode_label, 1, 2, 1, 2, Gtk::FILL, Gtk::EXPAND, 0, 0);
|
||||||
table2->attach (track_mode_combo, 2, 3, 1, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
|
table2->attach (mode_combo, 2, 3, 1, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,8 +194,16 @@ AddRouteDialog::~AddRouteDialog ()
|
||||||
void
|
void
|
||||||
AddRouteDialog::track_type_chosen ()
|
AddRouteDialog::track_type_chosen ()
|
||||||
{
|
{
|
||||||
track_mode_label.set_sensitive (track ());
|
if (track()) {
|
||||||
track_mode_combo.set_sensitive (track ());
|
mode_label.set_text (_("Track mode:"));
|
||||||
|
set_popdown_strings (mode_combo, track_mode_strings);
|
||||||
|
mode_combo.set_active_text (track_mode_strings.front());
|
||||||
|
} else {
|
||||||
|
mode_label.set_text (_("Bus type:"));
|
||||||
|
set_popdown_strings (mode_combo, bus_mode_strings);
|
||||||
|
mode_combo.set_active_text (bus_mode_strings.front());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -190,6 +212,12 @@ AddRouteDialog::track ()
|
||||||
return track_bus_combo.get_active_row_number () == 0;
|
return track_bus_combo.get_active_row_number () == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
AddRouteDialog::aux ()
|
||||||
|
{
|
||||||
|
return !track() && mode_combo.get_active_row_number () == 0;
|
||||||
|
}
|
||||||
|
|
||||||
ARDOUR::DataType
|
ARDOUR::DataType
|
||||||
AddRouteDialog::type ()
|
AddRouteDialog::type ()
|
||||||
{
|
{
|
||||||
|
@ -217,7 +245,7 @@ AddRouteDialog::mode ()
|
||||||
return ARDOUR::Normal;
|
return ARDOUR::Normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
Glib::ustring str = track_mode_combo.get_active_text();
|
Glib::ustring str = mode_combo.get_active_text();
|
||||||
if (str == _("Normal")) {
|
if (str == _("Normal")) {
|
||||||
return ARDOUR::Normal;
|
return ARDOUR::Normal;
|
||||||
} else if (str == _("Non Layered")){
|
} else if (str == _("Non Layered")){
|
||||||
|
|
|
@ -48,6 +48,7 @@ class AddRouteDialog : public ArdourDialog
|
||||||
bool track ();
|
bool track ();
|
||||||
int channels ();
|
int channels ();
|
||||||
int count ();
|
int count ();
|
||||||
|
bool aux ();
|
||||||
|
|
||||||
std::string name_template ();
|
std::string name_template ();
|
||||||
std::string track_template ();
|
std::string track_template ();
|
||||||
|
@ -63,8 +64,8 @@ class AddRouteDialog : public ArdourDialog
|
||||||
Gtk::Adjustment routes_adjustment;
|
Gtk::Adjustment routes_adjustment;
|
||||||
Gtk::SpinButton routes_spinner;
|
Gtk::SpinButton routes_spinner;
|
||||||
Gtk::ComboBoxText channel_combo;
|
Gtk::ComboBoxText channel_combo;
|
||||||
Gtk::Label track_mode_label;
|
Gtk::Label mode_label;
|
||||||
Gtk::ComboBoxText track_mode_combo;
|
Gtk::ComboBoxText mode_combo;
|
||||||
Gtk::ComboBoxText route_group_combo;
|
Gtk::ComboBoxText route_group_combo;
|
||||||
|
|
||||||
std::vector<ARDOUR::TemplateInfo> route_templates;
|
std::vector<ARDOUR::TemplateInfo> route_templates;
|
||||||
|
@ -90,8 +91,9 @@ class AddRouteDialog : public ArdourDialog
|
||||||
typedef std::vector<ChannelSetup> ChannelSetups;
|
typedef std::vector<ChannelSetup> ChannelSetups;
|
||||||
ChannelSetups channel_setups;
|
ChannelSetups channel_setups;
|
||||||
|
|
||||||
std::vector<std::string> channel_combo_strings;
|
static std::vector<std::string> channel_combo_strings;
|
||||||
std::vector<std::string> track_mode_strings;
|
static std::vector<std::string> track_mode_strings;
|
||||||
|
static std::vector<std::string> bus_mode_strings;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* __gtk_ardour_add_route_dialog_h__ */
|
#endif /* __gtk_ardour_add_route_dialog_h__ */
|
||||||
|
|
|
@ -457,6 +457,7 @@
|
||||||
<menuitem action='newplugin'/>
|
<menuitem action='newplugin'/>
|
||||||
<menuitem action='newinsert'/>
|
<menuitem action='newinsert'/>
|
||||||
<menuitem action='newsend'/>
|
<menuitem action='newsend'/>
|
||||||
|
<menuitem action='newaux'/>
|
||||||
<menuitem action='newreturn'/>
|
<menuitem action='newreturn'/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<menuitem action='clear'/>
|
<menuitem action='clear'/>
|
||||||
|
@ -512,27 +513,4 @@
|
||||||
<separator/>
|
<separator/>
|
||||||
<menuitem action='addExternalAudioToRegionList'/>
|
<menuitem action='addExternalAudioToRegionList'/>
|
||||||
</popup>
|
</popup>
|
||||||
<popup name='processormenu'>
|
|
||||||
<menuitem action='newplugin'/>
|
|
||||||
<menuitem action='newinsert'/>
|
|
||||||
<menuitem action='newsend'/>
|
|
||||||
<menuitem action='newreturn'/>
|
|
||||||
<separator/>
|
|
||||||
<menuitem action='clear'/>
|
|
||||||
<separator/>
|
|
||||||
<menuitem action='cut'/>
|
|
||||||
<menuitem action='copy'/>
|
|
||||||
<menuitem action='paste'/>
|
|
||||||
<menuitem action='delete'/>
|
|
||||||
<separator/>
|
|
||||||
<menuitem action='rename'/>
|
|
||||||
<separator/>
|
|
||||||
<menuitem action='selectall'/>
|
|
||||||
<menuitem action='deselectall'/>
|
|
||||||
<separator/>
|
|
||||||
<menuitem action='activate_all'/>
|
|
||||||
<menuitem action='deactivate_all'/>
|
|
||||||
<separator/>
|
|
||||||
<menuitem action='edit'/>
|
|
||||||
</popup>
|
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -1295,7 +1295,7 @@ restart JACK with more ports."));
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ARDOUR_UI::session_add_audio_route (bool track, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode, RouteGroup* route_group, uint32_t how_many)
|
ARDOUR_UI::session_add_audio_route (bool track, bool aux, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode, RouteGroup* route_group, uint32_t how_many)
|
||||||
{
|
{
|
||||||
list<boost::shared_ptr<AudioTrack> > tracks;
|
list<boost::shared_ptr<AudioTrack> > tracks;
|
||||||
RouteList routes;
|
RouteList routes;
|
||||||
|
@ -1320,7 +1320,7 @@ ARDOUR_UI::session_add_audio_route (bool track, int32_t input_channels, int32_t
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
routes = session->new_audio_route (input_channels, output_channels, route_group, how_many);
|
routes = session->new_audio_route (aux, input_channels, output_channels, route_group, how_many);
|
||||||
|
|
||||||
if (routes.size() != how_many) {
|
if (routes.size() != how_many) {
|
||||||
if (how_many == 1) {
|
if (how_many == 1) {
|
||||||
|
@ -2977,6 +2977,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||||
uint32_t output_chan;
|
uint32_t output_chan;
|
||||||
string name_template = add_route_dialog->name_template ();
|
string name_template = add_route_dialog->name_template ();
|
||||||
bool track = add_route_dialog->track ();
|
bool track = add_route_dialog->track ();
|
||||||
|
bool aux = !track && add_route_dialog->aux();
|
||||||
RouteGroup* route_group = add_route_dialog->route_group ();
|
RouteGroup* route_group = add_route_dialog->route_group ();
|
||||||
|
|
||||||
AutoConnectOption oac = Config->get_output_auto_connect();
|
AutoConnectOption oac = Config->get_output_auto_connect();
|
||||||
|
@ -3002,7 +3003,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||||
if (track) {
|
if (track) {
|
||||||
session_add_audio_track (input_chan, output_chan, add_route_dialog->mode(), route_group, count);
|
session_add_audio_track (input_chan, output_chan, add_route_dialog->mode(), route_group, count);
|
||||||
} else {
|
} else {
|
||||||
session_add_audio_bus (input_chan, output_chan, route_group, count);
|
session_add_audio_bus (aux, input_chan, output_chan, route_group, count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,11 +202,11 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||||
void add_route (Gtk::Window* float_window);
|
void add_route (Gtk::Window* float_window);
|
||||||
|
|
||||||
void session_add_audio_track (int input_channels, int32_t output_channels, ARDOUR::TrackMode mode, ARDOUR::RouteGroup* route_group, uint32_t how_many) {
|
void session_add_audio_track (int input_channels, int32_t output_channels, ARDOUR::TrackMode mode, ARDOUR::RouteGroup* route_group, uint32_t how_many) {
|
||||||
session_add_audio_route (true, input_channels, output_channels, mode, route_group, how_many);
|
session_add_audio_route (true, false, input_channels, output_channels, mode, route_group, how_many);
|
||||||
}
|
}
|
||||||
|
|
||||||
void session_add_audio_bus (int input_channels, int32_t output_channels, ARDOUR::RouteGroup* route_group, uint32_t how_many) {
|
void session_add_audio_bus (bool aux, int input_channels, int32_t output_channels, ARDOUR::RouteGroup* route_group, uint32_t how_many) {
|
||||||
session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal, route_group, how_many);
|
session_add_audio_route (false, aux, input_channels, output_channels, ARDOUR::Normal, route_group, how_many);
|
||||||
}
|
}
|
||||||
|
|
||||||
void session_add_midi_track (ARDOUR::RouteGroup* route_group, uint32_t how_many) {
|
void session_add_midi_track (ARDOUR::RouteGroup* route_group, uint32_t how_many) {
|
||||||
|
@ -528,7 +528,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||||
void edit_metadata ();
|
void edit_metadata ();
|
||||||
void import_metadata ();
|
void import_metadata ();
|
||||||
|
|
||||||
void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode, ARDOUR::RouteGroup *, uint32_t how_many);
|
void session_add_audio_route (bool disk, bool aux, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode, ARDOUR::RouteGroup *, uint32_t how_many);
|
||||||
void session_add_midi_route (bool disk, ARDOUR::RouteGroup *, uint32_t how_many);
|
void session_add_midi_route (bool disk, ARDOUR::RouteGroup *, uint32_t how_many);
|
||||||
|
|
||||||
void set_transport_sensitivity (bool);
|
void set_transport_sensitivity (bool);
|
||||||
|
|
|
@ -220,6 +220,7 @@ ARDOUR_UI::install_actions ()
|
||||||
ActionManager::register_toggle_action (common_actions, X_("ToggleKeyEditor"), _("Key Bindings"), mem_fun(*this, &ARDOUR_UI::toggle_key_editor));
|
ActionManager::register_toggle_action (common_actions, X_("ToggleKeyEditor"), _("Key Bindings"), mem_fun(*this, &ARDOUR_UI::toggle_key_editor));
|
||||||
ActionManager::register_toggle_action (common_actions, X_("ToggleBundleManager"), _("Bundle Manager"), mem_fun(*this, &ARDOUR_UI::toggle_bundle_manager));
|
ActionManager::register_toggle_action (common_actions, X_("ToggleBundleManager"), _("Bundle Manager"), mem_fun(*this, &ARDOUR_UI::toggle_bundle_manager));
|
||||||
|
|
||||||
|
#if 0
|
||||||
act = ActionManager::register_action (common_actions, X_("AddAudioTrack"), _("Add Audio Track"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_track), 1, 1, ARDOUR::Normal, (ARDOUR::RouteGroup *) 0, 1));
|
act = ActionManager::register_action (common_actions, X_("AddAudioTrack"), _("Add Audio Track"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_track), 1, 1, ARDOUR::Normal, (ARDOUR::RouteGroup *) 0, 1));
|
||||||
ActionManager::session_sensitive_actions.push_back (act);
|
ActionManager::session_sensitive_actions.push_back (act);
|
||||||
act = ActionManager::register_action (common_actions, X_("AddAudioBus"), _("Add Audio Bus"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_bus), 1, 1, (ARDOUR::RouteGroup *) 0, 1));
|
act = ActionManager::register_action (common_actions, X_("AddAudioBus"), _("Add Audio Bus"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_bus), 1, 1, (ARDOUR::RouteGroup *) 0, 1));
|
||||||
|
@ -228,6 +229,7 @@ ARDOUR_UI::install_actions ()
|
||||||
ActionManager::session_sensitive_actions.push_back (act);
|
ActionManager::session_sensitive_actions.push_back (act);
|
||||||
//act = ActionManager::register_action (common_actions, X_("AddMidiBus"), _("Add Midi Bus"), mem_fun(*this, &ARDOUR_UI::session_add_midi_bus));
|
//act = ActionManager::register_action (common_actions, X_("AddMidiBus"), _("Add Midi Bus"), mem_fun(*this, &ARDOUR_UI::session_add_midi_bus));
|
||||||
//ActionManager::session_sensitive_actions.push_back (act);
|
//ActionManager::session_sensitive_actions.push_back (act);
|
||||||
|
#endif
|
||||||
act = ActionManager::register_action (common_actions, X_("Save"), _("Save"), bind (mem_fun(*this, &ARDOUR_UI::save_state), string("")));
|
act = ActionManager::register_action (common_actions, X_("Save"), _("Save"), bind (mem_fun(*this, &ARDOUR_UI::save_state), string("")));
|
||||||
ActionManager::session_sensitive_actions.push_back (act);
|
ActionManager::session_sensitive_actions.push_back (act);
|
||||||
ActionManager::write_sensitive_actions.push_back (act);
|
ActionManager::write_sensitive_actions.push_back (act);
|
||||||
|
|
|
@ -289,6 +289,28 @@ ProcessorBox::build_send_action_menu ()
|
||||||
items.push_back (MenuElem (_("Show send controls"), mem_fun(*this, &ProcessorBox::show_send_controls)));
|
items.push_back (MenuElem (_("Show send controls"), mem_fun(*this, &ProcessorBox::show_send_controls)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gtk::Menu*
|
||||||
|
ProcessorBox::build_possible_aux_menu ()
|
||||||
|
{
|
||||||
|
boost::shared_ptr<RouteList> rl = _session.get_routes_with_internal_returns();
|
||||||
|
if (rl->empty()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
using namespace Menu_Helpers;
|
||||||
|
Menu* menu = manage (new Menu);
|
||||||
|
MenuList& items = menu->items();
|
||||||
|
|
||||||
|
|
||||||
|
for (RouteList::iterator r = rl->begin(); r != rl->end(); ++r) {
|
||||||
|
if (!(*r)->internal_send_for (*r)) {
|
||||||
|
items.push_back (MenuElem ((*r)->name(), bind (sigc::ptr_fun (ProcessorBox::rb_choose_aux), boost::weak_ptr<Route>(*r))));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ProcessorBox::show_send_controls ()
|
ProcessorBox::show_send_controls ()
|
||||||
{
|
{
|
||||||
|
@ -312,6 +334,17 @@ ProcessorBox::show_processor_menu (gint arg)
|
||||||
plugin_menu_item->set_submenu (*_get_plugin_selector()->plugin_menu());
|
plugin_menu_item->set_submenu (*_get_plugin_selector()->plugin_menu());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gtk::MenuItem* aux_menu_item = dynamic_cast<Gtk::MenuItem*>(ActionManager::get_widget("/processormenu/newaux"));
|
||||||
|
|
||||||
|
if (aux_menu_item) {
|
||||||
|
Menu* m = build_possible_aux_menu();
|
||||||
|
if (m) {
|
||||||
|
aux_menu_item->set_submenu (*m);
|
||||||
|
} else {
|
||||||
|
/* XXX WHAT?*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
paste_action->set_sensitive (!_rr_selection.processors.empty());
|
paste_action->set_sensitive (!_rr_selection.processors.empty());
|
||||||
|
|
||||||
processor_menu->popup (1, arg);
|
processor_menu->popup (1, arg);
|
||||||
|
@ -779,6 +812,22 @@ ProcessorBox::return_io_finished (IOSelector::Result r, boost::weak_ptr<Processo
|
||||||
delete_when_idle (ios);
|
delete_when_idle (ios);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ProcessorBox::choose_aux (boost::weak_ptr<Route> wr)
|
||||||
|
{
|
||||||
|
if (!_route) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<Route> target = wr.lock();
|
||||||
|
|
||||||
|
if (!target) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_route->listen_via (target, PreFader, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ProcessorBox::redisplay_processors ()
|
ProcessorBox::redisplay_processors ()
|
||||||
{
|
{
|
||||||
|
@ -1485,9 +1534,10 @@ ProcessorBox::register_actions ()
|
||||||
act = ActionManager::register_action (popup_act_grp, X_("newsend"), _("New Send ..."),
|
act = ActionManager::register_action (popup_act_grp, X_("newsend"), _("New Send ..."),
|
||||||
sigc::ptr_fun (ProcessorBox::rb_choose_send));
|
sigc::ptr_fun (ProcessorBox::rb_choose_send));
|
||||||
ActionManager::jack_sensitive_actions.push_back (act);
|
ActionManager::jack_sensitive_actions.push_back (act);
|
||||||
act = ActionManager::register_action (popup_act_grp, X_("newreturn"), _("New Return ..."),
|
|
||||||
sigc::ptr_fun (ProcessorBox::rb_choose_return));
|
ActionManager::register_action (popup_act_grp, X_("newaux"), _("New Aux Send ..."));
|
||||||
ActionManager::jack_sensitive_actions.push_back (act);
|
ActionManager::register_action (popup_act_grp, X_("newreturn"), _("New Return ..."),
|
||||||
|
sigc::ptr_fun (ProcessorBox::rb_choose_return));
|
||||||
|
|
||||||
ActionManager::register_action (popup_act_grp, X_("clear"), _("Clear (all)"),
|
ActionManager::register_action (popup_act_grp, X_("clear"), _("Clear (all)"),
|
||||||
sigc::ptr_fun (ProcessorBox::rb_clear));
|
sigc::ptr_fun (ProcessorBox::rb_clear));
|
||||||
|
@ -1574,6 +1624,16 @@ ProcessorBox::rb_choose_return ()
|
||||||
_current_processor_box->choose_return ();
|
_current_processor_box->choose_return ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ProcessorBox::rb_choose_aux (boost::weak_ptr<Route> wr)
|
||||||
|
{
|
||||||
|
if (_current_processor_box == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_current_processor_box->choose_aux (wr);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ProcessorBox::rb_clear ()
|
ProcessorBox::rb_clear ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -148,7 +148,9 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
|
||||||
Gtk::Menu * build_processor_menu ();
|
Gtk::Menu * build_processor_menu ();
|
||||||
void build_processor_tooltip (Gtk::EventBox&, std::string);
|
void build_processor_tooltip (Gtk::EventBox&, std::string);
|
||||||
void show_processor_menu (gint arg);
|
void show_processor_menu (gint arg);
|
||||||
|
Gtk::Menu* build_possible_aux_menu();
|
||||||
|
|
||||||
|
void choose_aux (boost::weak_ptr<ARDOUR::Route>);
|
||||||
void choose_send ();
|
void choose_send ();
|
||||||
void send_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
|
void send_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
|
||||||
void choose_return ();
|
void choose_return ();
|
||||||
|
@ -221,6 +223,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
|
||||||
|
|
||||||
static ProcessorBox* _current_processor_box;
|
static ProcessorBox* _current_processor_box;
|
||||||
|
|
||||||
|
static void rb_choose_aux (boost::weak_ptr<ARDOUR::Route>);
|
||||||
static void rb_choose_plugin ();
|
static void rb_choose_plugin ();
|
||||||
static void rb_choose_insert ();
|
static void rb_choose_insert ();
|
||||||
static void rb_choose_send ();
|
static void rb_choose_send ();
|
||||||
|
|
|
@ -320,6 +320,8 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable
|
||||||
return routes.reader ();
|
return routes.reader ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<RouteList> get_routes_with_internal_returns() const;
|
||||||
|
|
||||||
uint32_t nroutes() const { return routes.reader()->size(); }
|
uint32_t nroutes() const { return routes.reader()->size(); }
|
||||||
uint32_t ntracks () const;
|
uint32_t ntracks () const;
|
||||||
uint32_t nbusses () const;
|
uint32_t nbusses () const;
|
||||||
|
@ -517,7 +519,7 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable
|
||||||
int input_channels, int output_channels, TrackMode mode = Normal, RouteGroup* route_group = 0, uint32_t how_many = 1
|
int input_channels, int output_channels, TrackMode mode = Normal, RouteGroup* route_group = 0, uint32_t how_many = 1
|
||||||
);
|
);
|
||||||
|
|
||||||
RouteList new_audio_route (int input_channels, int output_channels, RouteGroup* route_group, uint32_t how_many);
|
RouteList new_audio_route (bool aux, int input_channels, int output_channels, RouteGroup* route_group, uint32_t how_many);
|
||||||
|
|
||||||
std::list<boost::shared_ptr<MidiTrack> > new_midi_track (
|
std::list<boost::shared_ptr<MidiTrack> > new_midi_track (
|
||||||
TrackMode mode = Normal, RouteGroup* route_group = 0, uint32_t how_many = 1
|
TrackMode mode = Normal, RouteGroup* route_group = 0, uint32_t how_many = 1
|
||||||
|
|
|
@ -267,7 +267,7 @@ RouteGroup::make_subgroup ()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
/* use master bus etc. to determine default nouts */
|
/* use master bus etc. to determine default nouts */
|
||||||
rl = _session.new_audio_route (nin, 2, 0, 1);
|
rl = _session.new_audio_route (false, nin, 2, 0, 1);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1904,7 +1904,7 @@ Session::set_remote_control_ids ()
|
||||||
|
|
||||||
|
|
||||||
RouteList
|
RouteList
|
||||||
Session::new_audio_route (int input_channels, int output_channels, RouteGroup* route_group, uint32_t how_many)
|
Session::new_audio_route (bool aux, int input_channels, int output_channels, RouteGroup* route_group, uint32_t how_many)
|
||||||
{
|
{
|
||||||
char bus_name[32];
|
char bus_name[32];
|
||||||
uint32_t bus_id = 1;
|
uint32_t bus_id = 1;
|
||||||
|
@ -2007,6 +2007,10 @@ Session::new_audio_route (int input_channels, int output_channels, RouteGroup* r
|
||||||
bus->set_remote_control_id (control_id);
|
bus->set_remote_control_id (control_id);
|
||||||
++control_id;
|
++control_id;
|
||||||
|
|
||||||
|
if (aux) {
|
||||||
|
bus->add_internal_return ();
|
||||||
|
}
|
||||||
|
|
||||||
ret.push_back (bus);
|
ret.push_back (bus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2485,6 +2489,20 @@ Session::update_route_solo_state (boost::shared_ptr<RouteList> r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<RouteList>
|
||||||
|
Session::get_routes_with_internal_returns() const
|
||||||
|
{
|
||||||
|
shared_ptr<RouteList> r = routes.reader ();
|
||||||
|
boost::shared_ptr<RouteList> rl (new RouteList);
|
||||||
|
|
||||||
|
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
|
||||||
|
if ((*i)->internal_return ()) {
|
||||||
|
rl->push_back (*i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rl;
|
||||||
|
}
|
||||||
|
|
||||||
shared_ptr<Route>
|
shared_ptr<Route>
|
||||||
Session::route_by_name (string name)
|
Session::route_by_name (string name)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user