f0c104c5056a43dc4a9f4267fd08c8b521d2f660
Stefan Schuermans implemented priority based...

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 PRIORITY_H
7) #define PRIORITY_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 "Module.h"
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

18) #include "OutStreamFile.h"
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

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

Stefan Schuermans authored 12 years ago

86)   Directory     m_dirInputs;      ///< input stream directory
87)   OutStreamFile m_fileOutStream;  ///< output stream name file
88)   InList        m_inList;         ///< current input list
89)   InListIt      m_itCurIn;        ///< current input