summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-02-03 22:29:15 +0000
committerDavid Robillard <d@drobilla.net>2013-02-03 22:29:15 +0000
commitc2f0d423f8881376b8e9642a6ab92d9506cdfb41 (patch)
tree457ded511bac9926b2855717888e23daa38dd6f0 /src/gui
parent32044a3733aab0f913c86738ebabbe63aed7f1d6 (diff)
downloadingen-c2f0d423f8881376b8e9642a6ab92d9506cdfb41.tar.gz
ingen-c2f0d423f8881376b8e9642a6ab92d9506cdfb41.tar.bz2
ingen-c2f0d423f8881376b8e9642a6ab92d9506cdfb41.zip
Port control performance improvements (further improvement for #879).
Only request a redraw, not a full update, where appropriate. Use a raw double instead of GVariant for port control-changed signal. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5045 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/Port.cpp9
-rw-r--r--src/gui/Port.hpp2
2 files changed, 3 insertions, 8 deletions
diff --git a/src/gui/Port.cpp b/src/gui/Port.cpp
index d1c0eda3..0ab079c5 100644
--- a/src/gui/Port.cpp
+++ b/src/gui/Port.cpp
@@ -152,14 +152,9 @@ Port::moved()
}
void
-Port::on_value_changed(GVariant* value)
+Port::on_value_changed(double value)
{
- if (!g_variant_is_of_type(value, G_VARIANT_TYPE_DOUBLE)) {
- _app.log().warn("TODO: Non-float port value changed\n");
- return;
- }
-
- const Raul::Atom atom = _app.forge().make(float(g_variant_get_double(value)));
+ const Raul::Atom atom = _app.forge().make(float(value));
if (atom != model()->value()) {
Ingen::World* const world = _app.world();
_app.interface()->set_property(model()->uri(),
diff --git a/src/gui/Port.hpp b/src/gui/Port.hpp
index 67862e17..7d95009a 100644
--- a/src/gui/Port.hpp
+++ b/src/gui/Port.hpp
@@ -80,7 +80,7 @@ private:
void property_changed(const Raul::URI& key, const Raul::Atom& value);
void moved();
- void on_value_changed(GVariant* value);
+ void on_value_changed(double value);
void on_scale_point_activated(float f);
void on_uri_activated(const Raul::URI& uri);
bool on_event(GdkEvent* ev);