summaryrefslogtreecommitdiffstats
path: root/src/server/PortImpl.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-10-23 16:42:17 +0000
committerDavid Robillard <d@drobilla.net>2015-10-23 16:42:17 +0000
commit626ec62aab67c136c405cc88213d7b92325c01d7 (patch)
tree01a94497d665daa90ba754f44cf2bc8b25ad92d0 /src/server/PortImpl.hpp
parent425786b0c41be41c50675815df51ed8927160865 (diff)
downloadingen-626ec62aab67c136c405cc88213d7b92325c01d7.tar.gz
ingen-626ec62aab67c136c405cc88213d7b92325c01d7.tar.bz2
ingen-626ec62aab67c136c405cc88213d7b92325c01d7.zip
Reduce overhead
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5770 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/PortImpl.hpp')
-rw-r--r--src/server/PortImpl.hpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/PortImpl.hpp b/src/server/PortImpl.hpp
index 98a9d81e..3eb33e6d 100644
--- a/src/server/PortImpl.hpp
+++ b/src/server/PortImpl.hpp
@@ -44,7 +44,19 @@ class PortImpl : public NodeImpl
{
public:
struct SetState {
- enum class State { SET, HALF_SET_CYCLE_1, HALF_SET_CYCLE_2 };
+ enum class State {
+ /// Partially set, first cycle: AAAAA => AAABB.
+ HALF_SET_CYCLE_1,
+
+ /// Partially set, second cycle: AAABB => BBBBB.
+ HALF_SET_CYCLE_2,
+
+ /// Fully set, first cycle (clear events if necessary).
+ SET_CYCLE_1,
+
+ /// Fully set, second cycle and onwards (done).
+ SET
+ };
SetState() : state(State::SET), value(0), time(0) {}
@@ -128,6 +140,9 @@ public:
FrameTime time,
Sample value);
+ void set_is_driver_port(bool b) { _is_driver_port = b; }
+ bool is_driver_port() const { return _is_driver_port; }
+
/** Called once per process cycle */
virtual void pre_process(Context& context) = 0;
virtual void pre_run(Context& context) {}
@@ -264,6 +279,7 @@ protected:
bool _is_logarithmic;
bool _is_sample_rate;
bool _is_toggled;
+ bool _is_driver_port;
};
} // namespace Server