#include <limits.h>
-#include "ardour/io.h"
-#include "ardour/dB.h"
#include <gtkmm2ext/utils.h>
#include <gtkmm2ext/barcontroller.h>
-#include "midi++/manager.h"
+
#include "pbd/fastlog.h"
+#include "ardour/pannable.h"
+#include "ardour/panner.h"
+#include "ardour/panner_shell.h"
+#include "ardour/session.h"
+
#include "ardour_ui.h"
#include "panner_ui.h"
#include "panner2d.h"
#include "stereo_panner.h"
#include "mono_panner.h"
-#include "ardour/delivery.h"
-#include "ardour/session.h"
-#include "ardour/panner.h"
-#include "ardour/pannable.h"
-#include "ardour/panner_shell.h"
-#include "ardour/route.h"
-
#include "i18n.h"
using namespace std;
delete _stereo_panner;
_stereo_panner = 0;
+ delete _mono_panner;
+ _mono_panner = 0;
+
if (!_panner) {
return;
}
pan_astyle_menu->items().push_back (MenuElem (_("Abs")));
}
-boost::shared_ptr<PBD::Controllable>
-PannerUI::get_controllable()
-{
- assert (!pan_bars.empty());
- return pan_bars[0]->get_controllable();
-}
-
void
PannerUI::on_size_allocate (Allocation& a)
{
PannerUI::~PannerUI ()
{
- for (vector<MonoPanner*>::iterator i = pan_bars.begin(); i != pan_bars.end(); ++i) {
- delete (*i);
- }
-
delete twod_panner;
delete big_window;
delete pan_menu;
items.clear ();
items.push_back (CheckMenuElem (_("Bypass"), sigc::mem_fun(*this, &PannerUI::pan_bypass_toggle)));
- bypass_menu_item = static_cast<CheckMenuItem*> (&items.back());
+ bypass_menu_item = static_cast<Gtk::CheckMenuItem*> (&items.back());
/* set state first, connect second */
bypass_menu_item->signal_toggled().connect (sigc::mem_fun(*this, &PannerUI::pan_bypass_toggle));
items.push_back (MenuElem (_("Reset"), sigc::mem_fun (*this, &PannerUI::pan_reset)));
+ items.push_back (MenuElem (_("Edit..."), sigc::mem_fun (*this, &PannerUI::pan_edit)));
}
void
}
}
+void
+PannerUI::pan_edit ()
+{
+ if (_mono_panner) {
+ _mono_panner->edit ();
+ } else if (_stereo_panner) {
+ _stereo_panner->edit ();
+ }
+}
+
void
PannerUI::pan_reset ()
{
{
if (_stereo_panner) {
_stereo_panner->queue_draw ();
+ } else if (_mono_panner) {
+ _mono_panner->queue_draw ();
} else if (twod_panner) {
twod_panner->queue_draw ();
- } else {
- for (vector<MonoPanner*>::iterator i = pan_bars.begin(); i != pan_bars.end(); ++i) {
- (*i)->queue_draw ();
- }
- }
+ }
}
void