bd3558966d9c087638d52dfe1e5987c969717522
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 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) #include <iostream>
7) #include <stdlib.h>
8) #include <string>
9) 
10) #include <BlinkenLib/BlinkenFrame.h>
11) 
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

12) #include "CallMgr.h"
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

13) #include "Directory.h"
14) #include "File.h"
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

15) #include "Module.h"
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

16) #include "Printer.h"
17) #include "SettingFile.h"
18) #include "StreamMgr.h"
19) #include "StreamRecv.h"
20) 
21) namespace Blinker {
22) 
23) /**
24)  * @brief constructor
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

25)  * @param[in] callMgr callback manager
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

26)  * @param[in] streamMgr stream manager
27)  * @param[in] dirBase base directory
28)  */
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

29) Printer::Printer(CallMgr &callMgr, StreamMgr &streamMgr,
30)                  const Directory &dirBase):
31)   Module(callMgr, streamMgr, dirBase),
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

32)   m_fileInStream(dirBase.getFile("instream")),
33)   m_pInStream(NULL)
34) {
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

35)   // get input stream and attach to it
36)   getInStream();
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

37) }
38) 
39) /// virtual destructor
40) Printer::~Printer()
41) {
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

42)   // detach from input stream and release it
43)   releaseInStream();
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

44) }
45) 
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

46) /// check for update of configuration
47) void Printer::updateConfig()
48) {
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

49)   // input stream name file was modified -> re-get input stream
50)   if (m_fileInStream.checkModified()) {
51)     releaseInStream();
52)     getInStream();
53)   }
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

54) }
55) 
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

56) /**
57)  * @brief set current frame
58)  * @param[in] pFrame current frame
59)  */
60) void Printer::setFrame(stBlinkenFrame *pFrame)
61) {
62)   char *str = BlinkenFrameToString(pFrame);
63)   std::cout << str;
64)   free(str);
65) }
66) 
67) /// set current frame to none
68) void Printer::setNoFrame()
69) {
70)   std::cout << "no frame" << std::endl;
71) }
72) 
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

73) /// get input stream and attach to it
74) void Printer::getInStream()
75) {
76)   // get input stream
77)   m_fileInStream.getStr(m_nameInStream);
78)   m_pInStream = &m_streamMgr.refStream(m_nameInStream);
79) 
80)   // attach to input stream
81)   if (m_pInStream)
82)     m_pInStream->attach(this);
83) }
84) 
85) /// detach from input stream and release it
86) void Printer::releaseInStream()
87) {
88)   // detach from input stream
89)   if (m_pInStream)
90)     m_pInStream->detach(this);
91) 
92)   // unreference stream
93)   m_pInStream = NULL;
94)   m_streamMgr.unrefStream(m_nameInStream);
95) }
96)