session property - include busses in meterbridge
This commit is contained in:
parent
bc2ff6a554
commit
c23a537b61
|
@ -117,6 +117,7 @@ Meterbridge::Meterbridge ()
|
|||
: Window (Gtk::WINDOW_TOPLEVEL)
|
||||
, VisibilityTracker (*((Gtk::Window*) this))
|
||||
, _visible (false)
|
||||
, _show_busses (false)
|
||||
{
|
||||
set_name ("Meter Bridge");
|
||||
|
||||
|
@ -251,6 +252,7 @@ Meterbridge::set_session (Session* s)
|
|||
}
|
||||
|
||||
update_title ();
|
||||
_show_busses = _session->config.get_show_busses_in_meterbridge();
|
||||
|
||||
SignalOrderRouteSorter sorter;
|
||||
boost::shared_ptr<RouteList> routes = _session->get_routes();
|
||||
|
@ -262,6 +264,7 @@ Meterbridge::set_session (Session* s)
|
|||
_session->RouteAdded.connect (_session_connections, invalidator (*this), boost::bind (&Meterbridge::add_strips, this, _1), gui_context());
|
||||
_session->DirtyChanged.connect (_session_connections, invalidator (*this), boost::bind (&Meterbridge::update_title, this), gui_context());
|
||||
_session->StateSaved.connect (_session_connections, invalidator (*this), boost::bind (&Meterbridge::update_title, this), gui_context());
|
||||
_session->config.ParameterChanged.connect (*this, invalidator (*this), ui_bind (&Meterbridge::parameter_changed, this, _1), gui_context());
|
||||
|
||||
if (_visible) {
|
||||
show_window();
|
||||
|
@ -408,17 +411,6 @@ Meterbridge::add_strips (RouteList& routes)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (route->is_master()) {
|
||||
/* always show master */
|
||||
}
|
||||
else
|
||||
if (boost::dynamic_pointer_cast<AudioTrack>(route) == 0
|
||||
&& boost::dynamic_pointer_cast<MidiTrack>(route) == 0
|
||||
) {
|
||||
// non-master bus
|
||||
if (0) continue; // TODO allow to skip busses
|
||||
}
|
||||
|
||||
strip = new MeterStrip (*this, _session, route);
|
||||
strips.push_back (strip);
|
||||
|
||||
|
@ -451,7 +443,8 @@ Meterbridge::sync_order_keys (RouteSortOrderKey src)
|
|||
|
||||
int pos = 0;
|
||||
for (list<MeterStrip *>::iterator i = copy.begin(); i != copy.end(); ++i) {
|
||||
#if 0 // TODO subscribe to route active,inactive changes
|
||||
|
||||
#if 0 // TODO subscribe to route active,inactive changes, merge w/ bus
|
||||
if (! (*i)->route()->active()) {
|
||||
(*i)->hide();
|
||||
} else {
|
||||
|
@ -459,6 +452,27 @@ Meterbridge::sync_order_keys (RouteSortOrderKey src)
|
|||
}
|
||||
#endif
|
||||
|
||||
// TODO simplyfy, abstract ->is_bus()
|
||||
if ((*i)->route()->is_master()) {
|
||||
/* always show master */
|
||||
(*i)->show();
|
||||
}
|
||||
else if (boost::dynamic_pointer_cast<AudioTrack>((*i)->route()) == 0
|
||||
&& boost::dynamic_pointer_cast<MidiTrack>((*i)->route()) == 0
|
||||
) {
|
||||
/* non-master bus */
|
||||
if (_show_busses) {
|
||||
(*i)->show();
|
||||
} else {
|
||||
(*i)->hide();
|
||||
}
|
||||
}
|
||||
else {
|
||||
(*i)->show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (pos%8 == 0) {
|
||||
(*i)->display_metrics(true);
|
||||
} else {
|
||||
|
@ -467,3 +481,12 @@ Meterbridge::sync_order_keys (RouteSortOrderKey src)
|
|||
global_hpacker.reorder_child(*(*i), pos++);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Meterbridge::parameter_changed (std::string const & p)
|
||||
{
|
||||
if (p == "show-busses-in-meterbridge") {
|
||||
_show_busses = _session->config.get_show_busses_in_meterbridge();
|
||||
sync_order_keys(MixerSort);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,7 @@ class Meterbridge :
|
|||
static Meterbridge* _instance;
|
||||
|
||||
bool _visible;
|
||||
bool _show_busses;
|
||||
|
||||
Gtk::ScrolledWindow scroller;
|
||||
Gtk::HBox global_hpacker;
|
||||
|
@ -91,6 +92,8 @@ class Meterbridge :
|
|||
|
||||
bool on_key_press_event (GdkEventKey*);
|
||||
bool on_key_release_event (GdkEventKey*);
|
||||
|
||||
void parameter_changed (std::string const & p);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -271,6 +271,15 @@ SessionOptionEditor::SessionOptionEditor (Session* s)
|
|||
sigc::mem_fun (*_session_config, &SessionConfiguration::get_glue_new_regions_to_bars_and_beats),
|
||||
sigc::mem_fun (*_session_config, &SessionConfiguration::set_glue_new_regions_to_bars_and_beats)
|
||||
));
|
||||
|
||||
add_option (_("Misc"), new OptionEditorHeading (_("Meterbridge Options")));
|
||||
add_option (_("Misc"), new BoolOption (
|
||||
"show-busses-in-meterbridge",
|
||||
_("Include Busses on Meterbridge"),
|
||||
sigc::mem_fun (*_session_config, &SessionConfiguration::get_show_busses_in_meterbridge),
|
||||
sigc::mem_fun (*_session_config, &SessionConfiguration::set_show_busses_in_meterbridge)
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -57,3 +57,4 @@ CONFIG_VARIABLE (bool, midi_copy_is_fork, "midi-copy-is-fork", false)
|
|||
CONFIG_VARIABLE (bool, glue_new_regions_to_bars_and_beats, "glue-new-regions-to-bars-and-beats", false)
|
||||
CONFIG_VARIABLE (bool, use_video_file_fps, "use-video-file-fps", false)
|
||||
CONFIG_VARIABLE (bool, videotimeline_pullup, "videotimeline-pullup", true)
|
||||
CONFIG_VARIABLE (bool, show_busses_in_meterbridge, "show-busses-in-meterbridge", false)
|
||||
|
|
Loading…
Reference in New Issue