General SMPTE fixes mostly relating to non-integer frame rates. Please Test. Fix...
[ardour.git] / gtk2_ardour / mixer_strip.h
index 67ad30bbe7203900906957ba8b8502566683843f..430f774eb6f68abe1845c53dd98748e3abd18ef1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2000 Paul Davis
+    Copyright (C) 2000-2006 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
@@ -14,8 +14,6 @@
     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_mixer_strip__
 #include <gtkmm/adjustment.h>
 
 #include <gtkmm2ext/auto_spin.h>
-#include <gtkmm2ext/slider_controller.h>
 #include <gtkmm2ext/click_box.h>
+#include <gtkmm2ext/slider_controller.h>
+
+#include <pbd/stateful.h>
 
 #include <ardour/types.h>
 #include <ardour/ardour.h>
 #include <ardour/io.h>
 #include <ardour/insert.h>
-#include <ardour/stateful.h>
 #include <ardour/redirect.h>
 
 #include <pbd/fastlog.h>
@@ -83,7 +82,7 @@ class Mixer_UI;
 class MixerStrip : public RouteUI, public Gtk::EventBox
 {
   public:
-       MixerStrip (Mixer_UI&, ARDOUR::Session&, ARDOUR::Route &, bool in_mixer = true);
+       MixerStrip (Mixer_UI&, ARDOUR::Session&, boost::shared_ptr<ARDOUR::Route>, bool in_mixer = true);
        ~MixerStrip ();
 
        void set_width (Width);
@@ -112,6 +111,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        Gtk::Button         hide_button;
        Gtk::Button         width_button;
        Gtk::HBox           width_hide_box;
+       Gtk::EventBox       top_event_box;
 
        void hide_clicked();
        void width_clicked ();
@@ -125,8 +125,16 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
                PannerUI    panners;
        
        Gtk::Table button_table;
+       Gtk::Table middle_button_table;
        Gtk::Table bottom_button_table;
 
+       Gtk::Button                  gain_unit_button;
+       Gtk::Label                   gain_unit_label;
+       Gtk::Button                  meter_point_button;
+       Gtk::Label                   meter_point_label;
+
+       void meter_changed (void *);
+
        Gtk::Button diskstream_button;
        Gtk::Label  diskstream_label;
 
@@ -146,6 +154,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        Gtk::TextView* comment_area;
        Gtk::Button    comment_button;
 
+       void comment_editor_done_editing();
        void setup_comment_editor ();
        void comment_button_clicked ();
 
@@ -162,15 +171,13 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        Gtk::Menu output_menu;
        void add_connection_to_output_menu (ARDOUR::Connection *);
        
-       void stream_input_chosen (ARDOUR::DiskStream*);
-       void select_stream_input ();
        void connection_input_chosen (ARDOUR::Connection *);
        void connection_output_chosen (ARDOUR::Connection *);
 
        void edit_input_configuration ();
        void edit_output_configuration ();
 
-       void diskstream_changed (void *src);
+       void diskstream_changed ();
 
        Gtk::Menu *send_action_menu;
        void build_send_action_menu ();
@@ -230,7 +237,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        void name_changed (void *src);
        void update_speed_display ();
        void map_frozen ();
-       void hide_redirect_editor (ARDOUR::Redirect* redirect);
+       void hide_redirect_editor (boost::shared_ptr<ARDOUR::Redirect> redirect);
 
        bool ignore_speed_adjustment;
 
@@ -240,6 +247,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        void engine_running();
        void engine_stopped();
 
+       static int scrollbar_height;
 };
 
 #endif /* __ardour_mixer_strip__ */