summaryrefslogtreecommitdiff
path: root/NT/src/graph.h
blob: 0a20ffe7f34a0f2487128d628fffb5e0cb8a1b6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef GRAPH_H
#define GRAPH_H

/* 
Graph object manages a collection of nodes and provides the interface for rendering frames


*/

#include "rotor.h"

/*
namespace Rotor {
	class Graph{
		public:
			Graph(){duration=20.0;loaded = false;audio_loaded=false;bitRate=0;outW=640;outH=360;audio_thumb=new Audio_thumbnailer();use_fragmentation=false;analysis_seed=0;Log_name="";};
			Graph(const string& _uid,const string& _desc){
				Graph();
				init(_uid,_desc);
			};
			void init(const string& _uid,const string& _desc){
				uid=_uid;
				description=_desc;
				duration=20.0;
				framerate=25.0;
				loaded=false;
				cancelled=false;
			};
			~Graph(){ clear(); delete audio_thumb;};
			void clear(){
				for (auto n: nodes) {
					delete n.second;
				}
				nodes.clear();
				loaded=false;
			}
			string uid;								//every version of a graph has a UUID, no particular need to actually read its data(?)
													//?? is it faster than using strings??
			string description;
			std::unordered_map<string,Node*> nodes;
			vector<Node*> find_nodes(const string &type); //could be a way of finding a set based on capabilities?
			Node* find_node(const string &type);
			bool signal_render(xmlIO &XML,const string &node,const double framerate);
			bool video_render(const string &output_filename,const double framerate,int start, int end);
			bool load(string data,string media_path);
			bool loadFile(string &filename,string media_path);
			bool parseXml(string media_path);
			bool parseJson(string &data,string &media_path);
			bool set_resolution(int w,int h);
			bool preview(xmlIO &XML,string &node,string &format,int frame,int w,int h);
			bool check_audio(string audio,string path);
			bool print_features(xmlIO &XML,string &node);
			bool load_audio(const string &filename,vector<Audio_processor*> processors);
			bool load_video(const string &nodeID,const string &filename);//can be performance or clip
			bool set_bitrate(int b){
				if (b>1000){
					bitRate=b;
					return true;
				}
				else return false;
			}
			bool set_fragmentation(bool f){
				use_fragmentation=f;
				return true;
			}
			bool loaded;
			double duration;
			double framerate;
			const string graphToString();
			xmlIO xml;
			bool audio_loaded;
			string audio_filename;
			bool cancelled;
			double progress;
			int bitRate;
			void set_log_name(string _Log_name){
				Log_name=_Log_name;
			}

			Audio_thumbnailer *audio_thumb;
		private:
			int outW,outH;
			bool use_fragmentation;
			int analysis_seed;
			string Log_name;

	};
}
*/

#endif //GRAPH_H