diff options
| author | Comment <tim@gray.(none)> | 2013-09-24 14:49:29 +0100 |
|---|---|---|
| committer | Comment <tim@gray.(none)> | 2013-09-24 14:49:29 +0100 |
| commit | f40d511775eb8dfae9a28870c5e0125b5e55b305 (patch) | |
| tree | 1f26641cbfd4a9515f999cd03b5a73675ee75656 /rotord/src/rotor.cpp | |
| parent | 6e615b00dbb54f33b928e0de0695087709fbc073 (diff) | |
category list XML/json
Diffstat (limited to 'rotord/src/rotor.cpp')
| -rw-r--r-- | rotord/src/rotor.cpp | 95 |
1 files changed, 56 insertions, 39 deletions
diff --git a/rotord/src/rotor.cpp b/rotord/src/rotor.cpp index 6c1c61e..77d6d0f 100644 --- a/rotord/src/rotor.cpp +++ b/rotord/src/rotor.cpp @@ -9,47 +9,64 @@ using namespace Rotor; using Poco::Logger; Node_factory::Node_factory(){ //for now, statically load prototype map in constructor - add_type("time",new Time()); - add_type("track_time",new Track_time()); - add_type("at_track_time",new At_track_time()); + + //how to deal with categories + //have an associative array of arrays of pointers to nodes, "categories" + //this can be hard coded also + + // + categories["signals"]=vector<Rotor::Node*>(); + add_type("time",new Time(),categories["signals"]); + add_type("track_time",new Track_time(),categories["signals"]); + add_type("at_track_time",new At_track_time(),categories["signals"]); + // add_type("signal_output",new Signal_output()); add_type("testcard",new Testcard()); - add_type("invert",new Invert()); - add_type("video_cycler",new Video_cycler()); - add_type("signal_colour",new Signal_colour()); - add_type("signal_greyscale",new Signal_greyscale()); - add_type("image_arithmetic",new Image_arithmetic()); - add_type("blend",new Blend()); - add_type("mirror",new Mirror()); - add_type("monochrome",new Monochrome()); - add_type("alpha_merge",new Alpha_merge()); - add_type("difference_matte",new Difference_matte()); - //nodes_audio_analysis.h - add_type("audio_analysis",new Audio_analysis()); - add_type("act_segmenter",new Act_segmenter()); - //nodes_maths.h - add_type("comparison",new Comparison()); //TODO: alias to symbols - add_type("arithmetic",new Arithmetic()); //TODO: alias to symbols - add_type("bang",new Is_new_integer()); - add_type("on_off",new On_off()); - add_type("random",new Random()); - //nodes_drawing.h - add_type("shape",new Shape()); - add_type("text",new Text()); - add_type("waves",new Waves()); - //nodes_filters.h - add_type("blur",new Blur()); - add_type("vhs",new VHS()); - add_type("luma_levels",new Luma_levels()); - add_type("echo_trails",new Echo_trails()); - add_type("rgb_levels",new RGB_levels()); - //nodes_transform.h - add_type("transform",new Transform()); - add_type("still_image",new Still_image()); - //video nodes - add_type("video_loader",new Video_loader()); - add_type("video_output",new Video_output()); - add_type("video_feedback",new Video_feedback()); + // + categories["channels"]=vector<Rotor::Node*>(); + add_type("invert",new Invert(),categories["channels"]); + add_type("monochrome",new Monochrome(),categories["channels"]); + add_type("blend",new Blend(),categories["channels"]); + add_type("image_arithmetic",new Image_arithmetic(),categories["channels"]); + add_type("alpha_merge",new Alpha_merge(),categories["channels"]); + add_type("difference_matte",new Difference_matte(),categories["channels"]); + add_type("rgb_levels",new RGB_levels(),categories["channels"]); + add_type("luma_levels",new Luma_levels(),categories["channels"]); + + categories["source"]=vector<Rotor::Node*>(); + add_type("signal_colour",new Signal_colour(),categories["source"]); + add_type("signal_greyscale",new Signal_greyscale(),categories["source"]); + add_type("shape",new Shape(),categories["source"]); + add_type("text",new Text(),categories["source"]); + add_type("waves",new Waves(),categories["source"]); + add_type("still_image",new Still_image(),categories["source"]); + add_type("video_loader",new Video_loader(),categories["source"]); + + categories["distort"]=vector<Rotor::Node*>(); + add_type("mirror",new Mirror(),categories["distort"]); + add_type("transform",new Transform(),categories["distort"]); + + categories["editing"]=vector<Rotor::Node*>(); + add_type("video_cycler",new Video_cycler(),categories["editing"]); + add_type("video_output",new Video_output(),categories["editing"]); + add_type("act_segmenter",new Act_segmenter(),categories["editing"]); + + categories["audio"]=vector<Rotor::Node*>(); + add_type("audio_analysis",new Audio_analysis(),categories["audio"]); + + categories["maths"]=vector<Rotor::Node*>(); + add_type("comparison",new Comparison(),categories["maths"]); //TODO: alias to symbols + add_type("arithmetic",new Arithmetic(),categories["maths"]); //TODO: alias to symbols + add_type("bang",new Is_new_integer(),categories["maths"]); + add_type("on_off",new On_off(),categories["maths"]); + add_type("random",new Random(),categories["maths"]); + + categories["fx"]=vector<Rotor::Node*>(); + add_type("blur",new Blur(),categories["fx"]); + add_type("vhs",new VHS(),categories["fx"]); + add_type("echo_trails",new Echo_trails(),categories["fx"]); + add_type("video_feedback",new Video_feedback(),categories["fx"]); + } bool Signal_input::connect(Node* source) { connection=dynamic_cast<Signal_node*>(source); |
