fd00bfff69220f2358b60fe44c05331c65f0d604
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
Stefan Schuermans added stream name to stream...

Stefan Schuermans authored 12 years ago

58)  * @param[in] stream stream name
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

59)  * @param[in] pFrame current frame
60)  */
Stefan Schuermans added stream name to stream...

Stefan Schuermans authored 12 years ago

61) void Printer::setFrame(const std::string &stream, stBlinkenFrame *pFrame)
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

62) {
63)   char *str = BlinkenFrameToString(pFrame);
64)   std::cout << str;
65)   free(str);
Stefan Schuermans added stream name to stream...

Stefan Schuermans authored 12 years ago

66)   (void)stream; // unused
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

67) }
68) 
Stefan Schuermans added stream name to stream...

Stefan Schuermans authored 12 years ago

69) /**
70)  * @brief set current frame to none
71)  * @param[in] stream stream name
72)  */
73) void Printer::setNoFrame(const std::string &stream)
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

74) {
75)   std::cout << "no frame" << std::endl;
Stefan Schuermans added stream name to stream...

Stefan Schuermans authored 12 years ago

76)   (void)stream; // unused
Stefan Schuermans implemented stream printer...

Stefan Schuermans authored 13 years ago

77) }
78) 
Stefan Schuermans implemented automatic check...

Stefan Schuermans authored 13 years ago

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