f0c104c5056a43dc4a9f4267fd08c8b521d2f660
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"
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

18) #include "FormatFile.h"
Stefan Schuermans first version of canvas mod...

Stefan Schuermans authored 12 years ago

19) #include "Module.h"
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

20) #include "OutStreamFile.h"
Stefan Schuermans first version of canvas mod...

Stefan Schuermans authored 12 years ago

21) #include "StreamMgr.h"
22) 
23) namespace Blinker {
24) 
25) /// a canvas to merge and split streams
26) class Canvas: public Module
27) {
28) protected:
29)   /// input to canvas
30)   class Input;
31) 
32)   /// input list entry
33)   struct InEntry {
34)     std::string m_name;    ///< name of input list entry
35)     Input       *m_pInput; ///< input object
36)     InEntry(const std::string &name); ///< constructor
37)   };
38) 
39)   /// input list
40)   typedef std::list<InEntry> InList;
41) 
42) public:
43)   /**
44)    * @brief constructor
45)    * @param[in] callMgr callback manager
46)    * @param[in] streamMgr stream manager
47)    * @param[in] dirBase base directory
48)    */
49)   Canvas(CallMgr &callMgr, StreamMgr &streamMgr, const Directory &dirBase);
50) 
51)   /// virtual destructor
52)   virtual ~Canvas();
53) 
54) private:
55)   /// copy constructor disabled
56)   Canvas(const Canvas &that);
57) 
58)   /// assignment operator disabled
59)   const Canvas & operator=(const Canvas &that);
60) 
61) public:
62)   /// check for update of configuration
63)   virtual void updateConfig();
64) 
65) protected:
66)   /// (re-)create canvas
67)   void createCanvas();
68) 
69)   /// tear down canvas
70)   void destroyCanvas();
71) 
72)   /// light update of input list, i.e. check all entries in current input list
73)   void updateInListLight();
74) 
75)   /// full update of input list, i.e. scan subdirs in input list directory
76)   void updateInListFull();
77) 
78)   /// notfication to redraw (called by inputs)
79)   void redraw();
80) 
81)   /// send current frame to output stream
82)   void sendFrame();
83) 
84) protected:
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

85)   FormatFile     m_fileFormat;     ///< canvas format file
Stefan Schuermans first version of canvas mod...

Stefan Schuermans authored 12 years ago

86)   Directory      m_dirInputs;      ///< input stream directory
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

87)   OutStreamFile  m_fileOutStream;  ///< output stream name file
Stefan Schuermans first version of canvas mod...

Stefan Schuermans authored 12 years ago

88)   stBlinkenFrame *m_pCanvas;       ///< canvas to put streams on
Stefan Schuermans typos in comments and docum...

Stefan Schuermans authored 12 years ago

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