/*
- 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
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>
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);
+ void set_width (Width, void* owner);
Width get_width() const { return _width; }
+ void* width_owner() const { return _width_owner; }
void fast_update ();
void set_embedded (bool);
-
+
ARDOUR::RouteGroup* mix_group() const;
protected:
bool _embedded;
bool _packed;
+ bool _mixer_owned;
Width _width;
+ void* _width_owner;
Gtk::Button hide_button;
Gtk::Button width_button;
Gtk::HBox width_hide_box;
+ Gtk::EventBox top_event_box;
void hide_clicked();
void width_clicked ();
RedirectBox pre_redirect_box;
RedirectBox post_redirect_box;
GainMeter gpm;
- PannerUI panners;
+ PannerUI panners;
Gtk::Table button_table;
Gtk::Table middle_button_table;
Gtk::TextView* comment_area;
Gtk::Button comment_button;
+ void comment_editor_done_editing();
void setup_comment_editor ();
void comment_button_clicked ();
Gtk::Menu output_menu;
void add_connection_to_output_menu (ARDOUR::Connection *);
- void stream_input_chosen (ARDOUR::AudioDiskstream*);
- 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 ();
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);
+ void hide_redirect_editors ();
bool ignore_speed_adjustment;
- string solo_button_name () const { return "MixerSoloButton"; }
- string safe_solo_button_name () const { return "MixerSafeSoloButton"; }
-
void engine_running();
void engine_stopped();
+ static int scrollbar_height;
};
#endif /* __ardour_mixer_strip__ */