diff options
| author | Comment <tim@gray.(none)> | 2013-10-07 06:19:14 -0700 |
|---|---|---|
| committer | Comment <tim@gray.(none)> | 2013-10-07 06:19:14 -0700 |
| commit | ba2831c3a456e860761978cb848f38d825b4c128 (patch) | |
| tree | 7ced990051d059fae90fd55cea40ef3f3cbdb333 /rotord/src/nodes_signals.h | |
| parent | 3252e78c0a43613e2a48d39a8dec74ffaf5ee100 (diff) | |
refacoring
Diffstat (limited to 'rotord/src/nodes_signals.h')
| -rw-r--r-- | rotord/src/nodes_signals.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/rotord/src/nodes_signals.h b/rotord/src/nodes_signals.h new file mode 100644 index 0000000..bcc2769 --- /dev/null +++ b/rotord/src/nodes_signals.h @@ -0,0 +1,103 @@ +#ifndef ROTOR_NODES_SIGNALS +#define ROTOR_NODES_SIGNALS + +#include "rotor.h" + +namespace Rotor { + class Time: public Signal_node { + public: + Time(){ + title="Time"; + description="Outputs the time in seconds as a signal"; + UID="432b0d1e-2d09-11e3-a8b9-e3affcfd2b31"; + }; + Time(map<string,string> &settings): Time() { + base_settings(settings); + }; + Time* clone(map<string,string> &_settings) { return new Time(_settings);}; + const float output(const Time_spec &time) { + return time.time; + } + }; + class Track_time: public Signal_node { + public: + Track_time(){ + title="Track time"; + description="Outputs the fraction of the track as a signal"; + UID="5892933e-2d09-11e3-8f2e-47c1defdb1d7"; + }; + Track_time(map<string,string> &settings): Track_time() { + base_settings(settings); + }; + Track_time* clone(map<string,string> &_settings) { return new Track_time(_settings);}; + const float output(const Time_spec &time) { + return time.time/time.duration; + } + }; + class At_track_time: public Signal_node { + public: + At_track_time(){ + create_signal_input("signal","Signal Input"); + create_parameter("time","number","Track time to evaluate","Time",0.0f); + title="@Track time"; + description="Gets input from a different point in the track"; + UID="6a3edb9c-2d09-11e3-975c-df9df6d19f0a"; + }; + At_track_time(map<string,string> &settings): At_track_time() { + base_settings(settings); + }; + At_track_time* clone(map<string,string> &_settings) { return new At_track_time(_settings);}; + const float output(const Time_spec &time) { + Time_spec t=Time_spec(parameters["time"]->value*time.duration,time.framerate,time.duration); + return inputs[0]->get(t); + } + }; + class Signal_output: public Signal_node { + public: + Signal_output(){ + create_signal_input("signal","Signal Input"); + title="Signal output"; + description="Outputs a signal to xml for testing"; + UID="74773190-2d09-11e3-ae26-7f2bb9af632c"; + }; + Signal_output(map<string,string> &settings): Signal_output() { + base_settings(settings); + }; + Signal_output* clone(map<string,string> &_settings) { return new Signal_output(_settings);}; + bool render(const float duration, const float framerate,string &xml_out){ + //lost this somewhere + return true; + } + const float output(const Time_spec &time) { + return inputs[0]->get(time); + } + }; + class Testcard: public Image_node { + public: + Testcard(){ + //internal testing node only + }; + Testcard(map<string,string> &settings): Testcard() { + base_settings(settings); + }; + ~Testcard(){}; + Testcard* clone(map<string,string> &_settings) { return new Testcard(_settings);}; + Image *output(const Frame_spec &frame){ + float hs=(255.0f/frame.h); + for (int i=0;i<frame.h;i++){ + for (int j=0;j<frame.w;j++){ + image.RGBdata[(i*frame.w+j)*3]=(uint8_t)((int)((i+(frame.time*25.0f)*hs))%255); + image.RGBdata[((i*frame.w+j)*3)+1]=(uint8_t)((int)((j+(frame.time*100.0f)*hs))%255); + image.RGBdata[((i*frame.w+j)*3)+2]=(uint8_t)(0); + //image->Adata[i*frame.w+j]=(uint8_t)255; + //image->Zdata[i*frame.w+j]=(uint16_t)512; //1.0 in fixed point 8.8 bits + } + } + return ℑ + } + private: + + }; +} + +#endif |
