f8c42ee0671276abc906af6c594d104dbed8a214
Stefan Schuermans 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
Stefan Schuermans typos in comments and docum...

Stefan Schuermans authored 12 years ago

95)   bool           m_canvasHasFrame; ///< if there is >= 1 frame on canvas