first version of canvas mod...
Stefan Schuermans authored 12 years ago
|
1) /* Blinker
2) Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3) Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4) a blinkenarea.org project */
5)
6) #ifndef CANVAS_H
7) #define CANVAS_H
8)
9) #include <list>
10) #include <string>
11)
12) #include <BlinkenLib/BlinkenFrame.h>
13)
14) #include "CallMgr.h"
15) #include "Directory.h"
16) #include "File.h"
17) #include "Format.h"
18) #include "Module.h"
19) #include "SettingFile.h"
20) #include "StreamMgr.h"
21)
22) namespace Blinker {
23)
24) /// a canvas to merge and split streams
25) class Canvas: public Module
26) {
27) protected:
28) /// input to canvas
29) class Input;
30)
31) /// input list entry
32) struct InEntry {
33) std::string m_name; ///< name of input list entry
34) Input *m_pInput; ///< input object
35) InEntry(const std::string &name); ///< constructor
36) };
37)
38) /// input list
39) typedef std::list<InEntry> InList;
40)
41) public:
42) /**
43) * @brief constructor
44) * @param[in] callMgr callback manager
45) * @param[in] streamMgr stream manager
46) * @param[in] dirBase base directory
47) */
48) Canvas(CallMgr &callMgr, StreamMgr &streamMgr, const Directory &dirBase);
49)
50) /// virtual destructor
51) virtual ~Canvas();
52)
53) private:
54) /// copy constructor disabled
55) Canvas(const Canvas &that);
56)
57) /// assignment operator disabled
58) const Canvas & operator=(const Canvas &that);
59)
60) public:
61) /// check for update of configuration
62) virtual void updateConfig();
63)
64) protected:
65) /// (re-)create canvas
66) void createCanvas();
67)
68) /// tear down canvas
69) void destroyCanvas();
70)
71) /// light update of input list, i.e. check all entries in current input list
72) void updateInListLight();
73)
74) /// full update of input list, i.e. scan subdirs in input list directory
75) void updateInListFull();
76)
77) /// get output stream
78) void getOutStream();
79)
80) /// release output stream
81) void releaseOutStream();
82)
83) /// notfication to redraw (called by inputs)
84) void redraw();
85)
86) /// send current frame to output stream
87) void sendFrame();
88)
89) protected:
90) SettingFile m_fileFormat; ///< canvas format file
91) Directory m_dirInputs; ///< input stream directory
92) SettingFile m_fileOutStream; ///< output stream name file
93) Format m_format; ///< canvas format
94) stBlinkenFrame *m_pCanvas; ///< canvas to put streams on
|