3fc21e2edcd508f41a1891b542b0154556f4b6ae
Stefan Schuermans implement operator connecti...

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) #include <iostream>
7) #include <string>
8) 
9) #include "Directory.h"
10) #include "File.h"
11) #include "Mgrs.h"
12) #include "Module.h"
13) #include "OpConn.h"
14) #include "OpConnIf.h"
15) #include "OpMgr.h"
16) #include "OpPrinter.h"
17) #include "OpReqIf.h"
18) 
19) namespace Blinker {
20) 
21) /**
22)  * @brief constructor
Stefan Schuermans make modules know their name

Stefan Schuermans authored 12 years ago

23)  * @param[in] name module name
Stefan Schuermans implement operator connecti...

Stefan Schuermans authored 12 years ago

24)  * @param[in] mgrs managers
25)  * @param[in] dirBase base directory
26)  */
Stefan Schuermans make modules know their name

Stefan Schuermans authored 12 years ago

27) OpPrinter::OpPrinter(const std::string &name, Mgrs &mgrs,
28)                      const Directory &dirBase):
29)   Module(name, mgrs, dirBase)
Stefan Schuermans implement operator connecti...

Stefan Schuermans authored 12 years ago

30) {
Stefan Schuermans accepting EBIP calls works now

Stefan Schuermans authored 12 years ago

31)   m_mgrs.m_opMgr.open(m_name, this);
Stefan Schuermans implement operator connecti...

Stefan Schuermans authored 12 years ago

32) }
33) 
34) /// virtual destructor
35) OpPrinter::~OpPrinter()
36) {
Stefan Schuermans accepting EBIP calls works now

Stefan Schuermans authored 12 years ago

37)   m_mgrs.m_opMgr.close(m_name);
Stefan Schuermans implement operator connecti...

Stefan Schuermans authored 12 years ago

38) }
39) 
40) /// check for update of configuration
41) void OpPrinter::updateConfig()
42) {
43)   // nothing to do here for this module
44) }
45) 
46) /**
47)  * @brief check if accepting new operator connction is possible
48)  * @param[in] name operator interface name
49)  * @return if accepting new connection is possible
50)  */
51) bool OpPrinter::acceptNewOpConn(const std::string &name)
52) {
53)   return true; // accept all connections
54)   (void)name; // unused
55) }
56) 
57) /**
58)  * @brief new operator connection
59)  * @param[in] name operator interface name
60)  * @param[in] pConn operator connection object
61)  */
62) void OpPrinter::newOpConn(const std::string &name, OpConn *pConn)
63) {
64)   std::cout << "new connection " << pConn << std::endl;
65)   (void)name; // unused
66) }
67) 
Stefan Schuermans implemented play and key me...

Stefan Schuermans authored 12 years ago

68) /**
69)  * @brief key command received on operator connection
70)  * @param[in] pConn operator connection object
71)  * @param[in] key key that was pressed
72)  */
73) void OpPrinter::opConnRecvKey(OpConn *pConn, char key)
74) {
75)   std::cout << "key \"" << key << "\" on connection " << pConn << std::endl;
76) 
77)   // reply to some keys with play command for sounds
78)   switch (key) {
79)     case '7': pConn->sendPlay("ueber_7_bruecken"); break;
80)     case '9': pConn->sendPlay("99_luftballons"); break;
81)   }
82) }
83) 
84) /**
85)  * @brief play command received on operator connection
86)  * @param[in] pConn operator connection object
87)  * @param[in] sound name of sound to play
88)  */
89) void OpPrinter::opConnRecvPlay(OpConn *pConn, const std::string &sound)
90) {
91)   // this interface is usually not called for incoming connections
92)   std::cout << "play sound \"" << sound << "\" on connection " << pConn
93)             << std::endl;
94) }
95)