summaryrefslogtreecommitdiff
path: root/rotord/src/rotor.cpp
diff options
context:
space:
mode:
authorComment <tim@gray.(none)>2013-09-24 14:49:29 +0100
committerComment <tim@gray.(none)>2013-09-24 14:49:29 +0100
commitf40d511775eb8dfae9a28870c5e0125b5e55b305 (patch)
tree1f26641cbfd4a9515f999cd03b5a73675ee75656 /rotord/src/rotor.cpp
parent6e615b00dbb54f33b928e0de0695087709fbc073 (diff)
category list XML/json
Diffstat (limited to 'rotord/src/rotor.cpp')
-rw-r--r--rotord/src/rotor.cpp95
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);