summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-08-08 02:19:20 +0000
committerCarl Hetherington <carl@carlh.net>2010-08-08 02:19:20 +0000
commit606a65321d72fe354db49f0c74a5c6968eb87a53 (patch)
tree00dd95a5d8d6dc92f215bb456fbc3bf6ddb99c76
parent9a539fd347543ee2f1ba14507570085e2e7b4ea7 (diff)
Label panner automation sliders the same as panners.
git-svn-id: svn://localhost/ardour2/branches/3.0@7563 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/automation_controller.cc3
-rw-r--r--gtk2_ardour/panner.cc28
-rw-r--r--gtk2_ardour/panner.h1
-rw-r--r--libs/ardour/ardour/panner.h2
-rw-r--r--libs/ardour/panner.cc23
5 files changed, 31 insertions, 26 deletions
diff --git a/gtk2_ardour/automation_controller.cc b/gtk2_ardour/automation_controller.cc
index ae727cd98f..f63f2ed70c 100644
--- a/gtk2_ardour/automation_controller.cc
+++ b/gtk2_ardour/automation_controller.cc
@@ -24,6 +24,7 @@
#include "ardour/automation_control.h"
#include "ardour/event_type_map.h"
#include "ardour/automatable.h"
+#include "ardour/panner.h"
#include "ardour_ui.h"
#include "utils.h"
#include "automation_controller.h"
@@ -85,6 +86,8 @@ AutomationController::get_label (int&)
// Hack to display CC rounded to int
if (_controllable->parameter().type() == MidiCCAutomation) {
s << (int)_controllable->get_value();
+ } else if (_controllable->parameter().type() == PanAutomation) {
+ s << Panner::value_as_string (_controllable->get_value ());
} else {
s << std::fixed << std::setprecision(3) << _controllable->get_value();
}
diff --git a/gtk2_ardour/panner.cc b/gtk2_ardour/panner.cc
index 8c5524b414..145ef020e3 100644
--- a/gtk2_ardour/panner.cc
+++ b/gtk2_ardour/panner.cc
@@ -164,32 +164,10 @@ bool
PannerBar::entry_output ()
{
Entry* e = dynamic_cast<Entry*> (&spinner);
- e->set_text (value_as_string (spinner.get_adjustment()->get_value()));
+ e->set_text (ARDOUR::Panner::value_as_string (spinner.get_adjustment()->get_value()));
return true;
}
-string
-PannerBar::value_as_string (double v) const
-{
- if (ARDOUR::Panner::equivalent (v, 0.5)) {
- return _("C");
- } else if (ARDOUR::Panner::equivalent (v, 0)) {
- return _("L");
- } else if (ARDOUR::Panner::equivalent (v, 1)) {
- return _("R");
- } else if (v < 0.5) {
- std::stringstream s;
- s << fixed << setprecision (0) << _("L") << ((0.5 - v) * 200) << "%";
- return s.str();
- } else if (v > 0.5) {
- std::stringstream s;
- s << fixed << setprecision (0) << _("R") << ((v -0.5) * 200) << "%";
- return s.str ();
- }
-
- return "";
-}
-
std::string
PannerBar::get_label (int& x)
{
@@ -209,7 +187,7 @@ PannerBar::get_label (int& x)
Glib::RefPtr<Pango::Context> p = get_pango_context ();
Glib::RefPtr<Pango::Layout> l = Pango::Layout::create (p);
- l->set_text (value_as_string (value));
+ l->set_text (ARDOUR::Panner::value_as_string (value));
Pango::Rectangle const ext = l->get_ink_extents ();
@@ -220,5 +198,5 @@ PannerBar::get_label (int& x)
}
}
- return value_as_string (value);
+ return ARDOUR::Panner::value_as_string (value);
}
diff --git a/gtk2_ardour/panner.h b/gtk2_ardour/panner.h
index 61d63dd762..298e866c3d 100644
--- a/gtk2_ardour/panner.h
+++ b/gtk2_ardour/panner.h
@@ -38,7 +38,6 @@ class PannerBar : public Gtkmm2ext::BarController
private:
std::string get_label (int&);
- std::string value_as_string (double v) const;
};
#endif /* __gtk_ardour_panner_h__ */
diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h
index abee3431ce..62512f6181 100644
--- a/libs/ardour/ardour/panner.h
+++ b/libs/ardour/ardour/panner.h
@@ -303,6 +303,8 @@ public:
return automation_control (Evoral::Parameter (PanAutomation, chan, id));
}
+ static std::string value_as_string (double);
+
private:
/* disallow copy construction */
Panner (Panner const &);
diff --git a/libs/ardour/panner.cc b/libs/ardour/panner.cc
index b224bf558e..c400199943 100644
--- a/libs/ardour/panner.cc
+++ b/libs/ardour/panner.cc
@@ -29,6 +29,7 @@
#include <locale.h>
#include <unistd.h>
#include <float.h>
+#include <iomanip>
#include <glibmm.h>
@@ -1640,3 +1641,25 @@ Panner::set_mono (bool yn)
(*i)->set_mono (yn);
}
}
+
+string
+Panner::value_as_string (double v)
+{
+ if (Panner::equivalent (v, 0.5)) {
+ return _("C");
+ } else if (equivalent (v, 0)) {
+ return _("L");
+ } else if (equivalent (v, 1)) {
+ return _("R");
+ } else if (v < 0.5) {
+ stringstream s;
+ s << fixed << setprecision (0) << _("L") << ((0.5 - v) * 200) << "%";
+ return s.str();
+ } else {
+ stringstream s;
+ s << fixed << setprecision (0) << _("R") << ((v -0.5) * 200) << "%";
+ return s.str ();
+ }
+
+ return "";
+}