summaryrefslogtreecommitdiff
path: root/rotord/src/graph.cpp
diff options
context:
space:
mode:
authorComment <tim@gray.(none)>2013-12-05 01:36:58 +0000
committerComment <tim@gray.(none)>2013-12-05 01:36:58 +0000
commit674173fb17ca25b1b35d6482de6f603cc3d8209c (patch)
treefb651966aa14b4acc92d1355938575c10e2090f0 /rotord/src/graph.cpp
parent8cfc0a3581cad5da07da69b70c71e67256739166 (diff)
signal output
Diffstat (limited to 'rotord/src/graph.cpp')
-rw-r--r--rotord/src/graph.cpp45
1 files changed, 26 insertions, 19 deletions
diff --git a/rotord/src/graph.cpp b/rotord/src/graph.cpp
index 7afb92e..f26db6a 100644
--- a/rotord/src/graph.cpp
+++ b/rotord/src/graph.cpp
@@ -24,23 +24,30 @@ Node* Graph::find_node(const string &type){
}
return nullptr; //can be tested against
};
-bool Graph::signal_render(xmlIO &XML,const float framerate) {
- if (find_node("signal_output")) {
- Signal_output *signal_output=dynamic_cast<Signal_output*>(find_node("signal_output"));
- //return signal_output->render(duration,framerate,signal_xml);
- float sig=0.0f;
- string val="";
- for (float i=0;i<duration;i+=1.0f/framerate){
- float s=(signal_output->get_output(Time_spec(i,framerate,duration))+1.0f)/10.0f;
- if (!fequal(sig,s)){
- val+=toString(i)+":"+toString(s)+" ";
- sig=s;
+bool Graph::signal_render(xmlIO &XML,const string &node,const float framerate) {
+ if (nodes.find(node)!=nodes.end()){
+ Signal_node *signal_output=dynamic_cast<Signal_node*>(nodes[node]);
+ if (signal_output) {
+ //return signal_output->render(duration,framerate,signal_xml);
+ XML.addValue("signal_duration",duration);
+ XML.addValue("signal_framerate",framerate);
+ float sig=0.0f;
+ string val="";
+ for (float i=0;i<duration;i+=1.0f/framerate){
+ float s=(signal_output->get_output(Time_spec(i,framerate,duration))+1.0f)/10.0f;
+ if (!fequal(sig,s)){
+ val+=toString(i)+","+toString(s)+" ";
+ sig=s;
+ }
}
+ XML.addValue("signal",val);
+ return true;
}
- XML.addValue("signal",val);
- return true;
+ cerr<<"Error: /"<<node<<"/ is not a signal node"<<endl;
+
+ return false;
}
- cerr<<"Rotor: signal output node not found"<<endl;
+ cerr<<"Error: signal output node not found"<<endl;
return false;
}
@@ -145,7 +152,7 @@ bool Graph::video_render(const string &output_filename,const float framerate,int
uint16_t *audio=nullptr;
int samples_in_frame;
- for (auto n:nodes) n.second->reset_timer();
+ for (auto n:nodes) n.second->reset();
if (usingaudio){
samples_in_frame=(audioloader.get_sample_rate())/framerate;
@@ -400,10 +407,10 @@ bool Graph::parseJson(string &data,string &media_path){
//handle expandable inputs
- if ((((Image_node*)nodes[nodeID])->image_inputs.size()<=jnodes[i]["image_inputs"].size())&&((Image_node*)nodes[nodeID])->duplicate_inputs){
+ if ((((Image_node*)nodes[nodeID])->image_inputs.size()<jnodes[i]["image_inputs"].size())&&((Image_node*)nodes[nodeID])->duplicate_inputs){
string desc=((Image_node*)nodes[nodeID])->image_inputs[0]->description;
string title=((Image_node*)nodes[nodeID])->image_inputs[0]->title;
- while(((Image_node*)nodes[nodeID])->image_inputs.size()<=jnodes[i]["image_inputs"].size()){
+ while(((Image_node*)nodes[nodeID])->image_inputs.size()<jnodes[i]["image_inputs"].size()){
((Image_node*)nodes[nodeID])->create_image_input(desc,title);
cerr<<"creating an image input"<<endl;
}
@@ -519,10 +526,10 @@ bool Graph::parseXml(string media_path){
uint32_t n3=xml.getNumTags("image_input");
for (uint32_t i3=0;i3<n3;i3++){
//handle expandable inputs
- if ((((Image_node*)nodes[nodeID])->image_inputs.size()<=i3)&&((Image_node*)nodes[nodeID])->duplicate_inputs){
+ if ((((Image_node*)nodes[nodeID])->image_inputs.size()<i3)&&((Image_node*)nodes[nodeID])->duplicate_inputs){
string desc=((Image_node*)nodes[nodeID])->image_inputs[0]->description;
string title=((Image_node*)nodes[nodeID])->image_inputs[0]->title;
- while(((Image_node*)nodes[nodeID])->image_inputs.size()<=i3){
+ while(((Image_node*)nodes[nodeID])->image_inputs.size()<i3){
((Image_node*)nodes[nodeID])->create_image_input(desc,title);
}
}