diff options
author | Nick Mainsbridge <beatroute@iprimus.com.au> | 2006-08-30 20:48:16 +0000 |
---|---|---|
committer | Nick Mainsbridge <beatroute@iprimus.com.au> | 2006-08-30 20:48:16 +0000 |
commit | a61f25dfe9dcf1f29852d917779529d26e762ea5 (patch) | |
tree | c4e13a95f78c22ae705234ad8deda6cea4fa1973 /gtk2_ardour/mixer_ui.cc | |
parent | 6535cd1b1dbab7cc59a356c81d92dbc2cf25333b (diff) |
** requires svn jack ** Hardware monitoring should work, some canvas scrolling speed improvement, don't disconcertingly churn the disk if jack auto-start fails, mixer visibility state is saved per session, slow down meters a bit (too much?), zoom cleanups, remove some unused variables, use rwlock for tempo state for no reason other than that it might be useful one day, fix compiler warning.
git-svn-id: svn://localhost/ardour2/trunk@873 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 9bc5f3d1a0..1ba1be445e 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -67,9 +67,7 @@ Mixer_UI::Mixer_UI (AudioEngine& eng) mix_group_context_menu = 0; no_track_list_redisplay = false; in_group_row_change = false; - - XMLNode* node = ARDOUR_UI::instance()->mixer_settings(); - set_state (*node); + _visible = false; scroller_base.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); scroller_base.set_name ("MixerWindow"); @@ -213,7 +211,7 @@ Mixer_UI::Mixer_UI (AudioEngine& eng) add_accel_group (ActionManager::ui_manager->get_accel_group()); - signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), static_cast<Gtk::Window *>(this))); + signal_delete_event().connect (mem_fun (*this, &Mixer_UI::hide_window)); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK); _plugin_selector = new PluginSelector (PluginManager::the_manager()); @@ -248,8 +246,17 @@ Mixer_UI::show_window () ms = (*ri)[track_columns.strip]; ms->set_width (ms->get_width()); } + _visible = true; +} + +bool +Mixer_UI::hide_window (GdkEventAny *ev) +{ + _visible = false; + return just_hide_it(ev, static_cast<Gtk::Window *>(this)); } + void Mixer_UI::add_strip (Session::RouteList& routes) { @@ -345,8 +352,12 @@ Mixer_UI::strip_button_release_event (GdkEventButton *ev, MixerStrip *strip) void Mixer_UI::connect_to_session (Session* sess) { + session = sess; + XMLNode* node = ARDOUR_UI::instance()->mixer_settings(); + set_state (*node); + string wintitle = _("ardour: mixer: "); wintitle += session->name(); set_title (wintitle); @@ -362,6 +373,10 @@ Mixer_UI::connect_to_session (Session* sess) _plugin_selector->set_session (session); + if (_visible) { + show_window(); + } + start_updating (); } @@ -1048,6 +1063,12 @@ Mixer_UI::set_state (const XMLNode& node) } } + if ((prop = node.property ("show-mixer"))) { + if (prop->value() == "yes") { + _visible = true; + } + } + return 0; } @@ -1089,6 +1110,8 @@ Mixer_UI::get_state (void) node->add_property ("narrow-strips", _strip_width == Narrow ? "yes" : "no"); + node->add_property ("show-mixer", _visible ? "yes" : "no"); + return *node; } |