summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/MidiNoteNode.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-09-19 16:17:57 +0000
committerDavid Robillard <d@drobilla.net>2007-09-19 16:17:57 +0000
commit43c41a34f043adda734ce44b19951c9e14fe496e (patch)
tree3bc19edc4891311d46571cfa9dcf04f98d411724 /src/libs/engine/MidiNoteNode.hpp
parentcfbcb812e96b740e16510bf736cef688d8ebe986 (diff)
downloadingen-43c41a34f043adda734ce44b19951c9e14fe496e.tar.gz
ingen-43c41a34f043adda734ce44b19951c9e14fe496e.tar.bz2
ingen-43c41a34f043adda734ce44b19951c9e14fe496e.zip
Note node dynamic poly.
git-svn-id: http://svn.drobilla.net/lad/ingen@727 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/MidiNoteNode.hpp')
-rw-r--r--src/libs/engine/MidiNoteNode.hpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/libs/engine/MidiNoteNode.hpp b/src/libs/engine/MidiNoteNode.hpp
index e67df8a7..c7110f91 100644
--- a/src/libs/engine/MidiNoteNode.hpp
+++ b/src/libs/engine/MidiNoteNode.hpp
@@ -42,6 +42,9 @@ class MidiNoteNode : public InternalNode
public:
MidiNoteNode(const string& path, uint32_t poly, Patch* parent, SampleRate srate, size_t buffer_size);
~MidiNoteNode();
+
+ bool prepare_poly(uint32_t poly);
+ bool apply_poly(Raul::Maid& maid, uint32_t poly);
void process(SampleCount nframes, FrameTime start, FrameTime end);
@@ -70,9 +73,11 @@ private:
float note_to_freq(int num);
void free_voice(size_t voice, FrameTime time, SampleCount nframes, FrameTime start, FrameTime end);
- Voice* _voices;
- Key _keys[128];
- bool _sustain; ///< Whether or not hold pedal is depressed
+ Raul::Array<Voice>* _voices;
+ Raul::Array<Voice>* _prepared_voices;
+ uint32_t _prepared_poly;
+ Key _keys[128];
+ bool _sustain; ///< Whether or not hold pedal is depressed
InputPort* _midi_in_port;
OutputPort* _freq_port;