From ba2831c3a456e860761978cb848f38d825b4c128 Mon Sep 17 00:00:00 2001 From: Comment Date: Mon, 7 Oct 2013 06:19:14 -0700 Subject: refacoring --- rotord/src/nodes_source.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 rotord/src/nodes_source.h (limited to 'rotord/src/nodes_source.h') diff --git a/rotord/src/nodes_source.h b/rotord/src/nodes_source.h new file mode 100644 index 0000000..3ce9fdd --- /dev/null +++ b/rotord/src/nodes_source.h @@ -0,0 +1,74 @@ +#ifndef ROTOR_NODES_SOURCE +#define ROTOR_NODES_SOURCE + +#include "rotor.h" + +namespace Rotor { + class Signal_colour: public Image_node { + public: + Signal_colour(){ + create_signal_input("Selector","Selector input"); + create_attribute("palette","palette list of web colours","Colour palette","000000"); + title="Signal colour"; + description="Cycles through a palette of background colours according to selector signal"; + UID="a2183fe0-2d09-11e3-9a64-538ee2cf40bc"; + }; + Signal_colour(map &settings):Signal_colour() { + base_settings(settings); + for (int i=0;ivalue.size()/6;i++){ + palette.push_back(Colour(attributes["palette"]->value.substr(i*6,6))); + } + prevcol=-1; + }; + ~Signal_colour(){}; + Image *output(const Frame_spec &frame){ + if (palette.size()) { + int col=((int)inputs[0]->get((Time_spec)frame))%palette.size(); + //if (col!=prevcol){ //how about when starting a new render? + for (int i=0;i &_settings) { return new Signal_colour(_settings);}; + private: + vector palette; + int prevcol; + }; + class Signal_greyscale: public Image_node { + //Draws signal bars in greyscale + public: + Signal_greyscale(){ + create_signal_input("Signal","Signal input"); + title="Signal greyscale"; + description="Renders signal level as greyscale background"; + UID="ae91b8a0-2d09-11e3-aa7d-8b7f1ef1a439"; + }; + Signal_greyscale(map &settings):Signal_greyscale() { + base_settings(settings); + prevcol=-1; + }; + ~Signal_greyscale(){}; + Image *output(const Frame_spec &frame){ + uint8_t col=((uint8_t)(inputs[0]->get((Time_spec)frame)*255.0f)); + if (col!=prevcol){ //how about when starting a new render? + for (int i=0;i &_settings) { return new Signal_greyscale(_settings);}; + private: + uint8_t prevcol; + }; +} +#endif -- cgit v1.2.3