summaryrefslogtreecommitdiff
path: root/interfaces01.h
blob: 00971fc41ed49787119f4ad82755bc216dbac8a0 (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
/*
Native linux applicatioon with no graphic interface
runs as a daemon and is managed remotely via socket etc

debian - -any problems with proprietary codecs etc?

is it called from ruby on rails?
is the best way a RESTful interface?

what's the best library to create a native server that implements http RESTful server
??boost++??

rendering- begins a thread
eventually - manage threads and create new servers on EC2

eventually - detailed memory management
"rendering engine will probably be completely rewritten"

the part that WON'T be rewritten is the meta-language that templates are written in

renderGraph is a graph of loaded objects
method to traverse graph, get preview image etc
node knows where it sits on the canvas **here** - GUI doesn't keep its own state
properties of a node - connections + time
nodes are timeline based as well as flow- timeline is created when the song is analysed-

node-time interface
1- timeless node - applies equally to all frames
2- node with in and out points - mainly for footage 
3- node with absolute keyframes - added manually to relate to an actual song
4- node with meta-keyframes - belonging to a template, these relate to instantiable music feature cues

2 types of graphs - instanced and abstract - distinct?

build it up from the smallest interface or down from the top?
try and make the simplest interface that can support the described features

==> for now, no distinction between instanced and abstract graph except filling in filenames etc

using POCO application framework seems good
what remains to be defined?

*/

class rotor_renderer {
	startRender(rotor_renderSettings *settings);
	rotor_renderStatus getRenderStatus(rotor_threadID id);
	rotor_renderProcess *activeRenders;
};

class rotor_renderSettings {
	vector<string> inputFiles;
	rotor_renderGraphDescription graph;
	string outputFile;
	rotor_format renderFormat;
};

class rotor_format{
	//describes the output format of a video render
	string vcodec;
	string acodec;
	int w,h;	
}

class rotor_renderProcess {
};

class rotor_managerInterface {
	TCPserver server;
}

class rotor_graphManager {
	rotor_renderGraph renderGraph;
	
};

class rotor_graph {
};

class rotor_node {
};