]> git.sesse.net Git - casparcg/blob - common/diagnostics/graph.h
-
[casparcg] / common / diagnostics / graph.h
1 #pragma once\r
2 \r
3 #include "../memory/safe_ptr.h"\r
4 \r
5 #include "../utility/printable.h"\r
6 \r
7 #include <string>\r
8 \r
9 namespace caspar { namespace diagnostics {\r
10         \r
11 struct color\r
12 {\r
13         float red;\r
14         float green;\r
15         float blue;\r
16         float alpha;\r
17         \r
18         color(float r = 0.0f, float g = 0.0f, float b = 0.0f, float a = 1.0f)\r
19                 : red(r)\r
20                 , green(g)\r
21                 , blue(b)\r
22                 , alpha(a){}\r
23 };\r
24 \r
25 class graph\r
26 {\r
27         friend safe_ptr<graph> create_graph(const std::string& name);\r
28         friend safe_ptr<graph> create_graph(const printer& parent_printer);\r
29         graph(const std::string& name);\r
30         graph(const printer& parent_printer);\r
31 public:\r
32         void update(const std::string& name, float value);\r
33         void set(const std::string& name, float value);\r
34         void tag(const std::string& name);\r
35         void guide(const std::string& name, float value);\r
36         void set_color(const std::string& name, color c);\r
37 private:\r
38         struct implementation;\r
39         std::shared_ptr<implementation> impl_;\r
40 };\r
41 \r
42 safe_ptr<graph> create_graph(const std::string& name);\r
43 safe_ptr<graph> create_graph(const printer& parent_printer);\r
44         \r
45 }}