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"
18) #include "SettingFile.h"
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) /// get output stream
74) void getOutStream();
75)
76) /// release output stream
77) void releaseOutStream();
78)
79) /**
80) * @brief select specific input (called by inputs)
81) * @param[in] input input to select
82) */
83) void select(const Input *pInput);
84)
85) /// select lower priority input (called by inputs)
86) void selectLower();
87)
88) /// send current frame to output stream
89) void curFrame();
90)
91) /**
92) * @brief set current frame (also called by inputs)
|