diff options
author | Taybin Rutkin <taybin@taybin.com> | 2005-09-25 18:42:24 +0000 |
---|---|---|
committer | Taybin Rutkin <taybin@taybin.com> | 2005-09-25 18:42:24 +0000 |
commit | 209d967b1bb80a9735d690d8f4f0455ecb9970ca (patch) | |
tree | 9d76ddcd7c1ac9d91bb2b1a33d31b66ce4ded5de /gtk2_ardour/meter_bridge_strip.h | |
parent | e4b9aed743fc765219ac775905a221c017c88fba (diff) |
Initial import of gtk2_ardour.
git-svn-id: svn://localhost/trunk/ardour2@24 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/meter_bridge_strip.h')
-rw-r--r-- | gtk2_ardour/meter_bridge_strip.h | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/gtk2_ardour/meter_bridge_strip.h b/gtk2_ardour/meter_bridge_strip.h new file mode 100644 index 0000000000..932c2de925 --- /dev/null +++ b/gtk2_ardour/meter_bridge_strip.h @@ -0,0 +1,104 @@ +/* + Copyright (C) 1999 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + $Id$ +*/ + +#ifndef __ardour_meterbridgestrip_h__ +#define __ardour_meterbridgestrip_h__ + +#include <sigc++/signal_system.h> +#include <gtk--.h> +#include <gtkmmext/fastmeter.h> + +namespace ARDOUR { + class AudioEngine; + class Session; + class Route; +} + +namespace Gtkmmext { + class Selector; + struct SelectionResult; +} + +class MeterBridgeStrip : public SigC::Object + +{ + public: + MeterBridgeStrip (ARDOUR::AudioEngine &, + ARDOUR::Session&, + ARDOUR::Route&, + string label, + jack_nframes_t long_over, + jack_nframes_t short_over, + jack_nframes_t meter_hold); + + void update (); /* called by meter timeout handler from ARDOUR_UI */ + + Gtk::Box &above_box() { return above_meter_vbox; } + Gtk::Box &below_box() { return below_meter_vbox; } + Gtk::Widget &meter_widget() { return meter; } + + guint32 meter_width() const { return 8; } + + void clear_meter (); + void clear_overs (); + + void set_meter_on (bool yn); + bool get_meter_on () const { return meter_on; } + + ARDOUR::Route& route() const { return _route; } + + private: + ARDOUR::AudioEngine& engine; + ARDOUR::Session& session; + ARDOUR::Route& _route; + + Gtk::EventBox label_ebox; + Gtk::Label label; + bool meter_clear_pending; + bool over_clear_pending; + + Gtkmmext::FastMeter meter; + bool meter_on; + + Gtk::VBox above_meter_vbox; + Gtk::VBox below_meter_vbox; + + Gtk::HBox over_long_hbox; + Gtk::HBox over_long_vbox; + Gtk::EventBox over_long_button; + Gtk::Frame over_long_frame; + Gtk::Label over_long_label; + + Gtk::HBox over_short_hbox; + Gtk::HBox over_short_vbox; + Gtk::EventBox over_short_button; + Gtk::Frame over_short_frame; + Gtk::Label over_short_label; + + guint32 last_over_short; + guint32 last_over_long; + + gint gui_clear_overs (GdkEventButton *); + gint label_button_press_release (GdkEventButton *); +}; + +#endif /* __ardour_meterbridgestrip_h__ */ + + |