Stefan Schuermans commited on 2014-01-03 14:57:20
Showing 6 changed files, with 158 additions and 0 deletions.
... | ... |
@@ -109,6 +109,7 @@ |
109 | 109 |
<li><a href="ratelimiter.html">Rate Limiter</a></li> |
110 | 110 |
<li><a href="resizer.html">Resizer</a></li> |
111 | 111 |
<li><a href="scaler.html">Scaler</a></li> |
112 |
+ <li><a href="syncprinter.html">Synchronization Printer</a></li> |
|
112 | 113 |
<li><a href="transformer.html">Transformer</a></li> |
113 | 114 |
<li><a href="udp4phone.html">UDP4 Phone Connector</a></li> |
114 | 115 |
<li><a href="udp4receiver.html">UDP4 Receiver</a></li> |
... | ... |
@@ -0,0 +1,28 @@ |
1 |
+<html> |
|
2 |
+ <head> |
|
3 |
+ <title>Blinker - Synchronization Printer</title> |
|
4 |
+ </head> |
|
5 |
+ <body> |
|
6 |
+ <h1>Blinker - Synchronization Printer</h1> |
|
7 |
+ <p> |
|
8 |
+ The synchronization printer module is primary intended for debugging |
|
9 |
+ purposes. |
|
10 |
+ It receives a synchronization stream and prints received information |
|
11 |
+ to standard output. |
|
12 |
+ </p> |
|
13 |
+ <h2>Configuration</h2> |
|
14 |
+ <p> |
|
15 |
+ The configuration of the synchronization printer module with name |
|
16 |
+ <code>NAME</code> is located in the <code>syncprinters/NAME</code> |
|
17 |
+ subdirectory. |
|
18 |
+ </p> |
|
19 |
+ <h3>Input Synchronization Stream</h3> |
|
20 |
+ <p> |
|
21 |
+ The file <code>insync</code> contains the name of the synchronization |
|
22 |
+ stream to read. |
|
23 |
+ The information received from this synchronization stream is written |
|
24 |
+ to standard output. |
|
25 |
+ </p> |
|
26 |
+ </body> |
|
27 |
+</html> |
|
28 |
+ |
... | ... |
@@ -0,0 +1 @@ |
1 |
+test |
... | ... |
@@ -0,0 +1,66 @@ |
1 |
+/* Blinker |
|
2 |
+ Copyright 2011-2014 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 |
+#include <string.h> |
|
10 |
+ |
|
11 |
+#include "Directory.h" |
|
12 |
+#include "File.h" |
|
13 |
+#include "InSyncFile.h" |
|
14 |
+#include "Mgrs.h" |
|
15 |
+#include "Module.h" |
|
16 |
+#include "SyncPrinter.h" |
|
17 |
+#include "SyncRecv.h" |
|
18 |
+ |
|
19 |
+namespace Blinker { |
|
20 |
+ |
|
21 |
+/** |
|
22 |
+ * @brief constructor |
|
23 |
+ * @param[in] name module name |
|
24 |
+ * @param[in] mgrs managers |
|
25 |
+ * @param[in] dirBase base directory |
|
26 |
+ */ |
|
27 |
+SyncPrinter::SyncPrinter(const std::string &name, Mgrs &mgrs, |
|
28 |
+ const Directory &dirBase): |
|
29 |
+ Module(name, mgrs, dirBase), |
|
30 |
+ m_fileInSync(dirBase.getFile("insync"), mgrs.m_syncMgr) |
|
31 |
+{ |
|
32 |
+ // set up |
|
33 |
+ m_fileInSync.setSyncRecv(this); |
|
34 |
+} |
|
35 |
+ |
|
36 |
+/// virtual destructor |
|
37 |
+SyncPrinter::~SyncPrinter() |
|
38 |
+{ |
|
39 |
+ // clean up |
|
40 |
+ m_fileInSync.setSyncRecv(NULL); |
|
41 |
+} |
|
42 |
+ |
|
43 |
+/// check for update of configuration |
|
44 |
+void SyncPrinter::updateConfig() |
|
45 |
+{ |
|
46 |
+ // input sync stream name file was modified -> re-get input sync stream |
|
47 |
+ if (m_fileInSync.checkModified()) |
|
48 |
+ m_fileInSync.update(); |
|
49 |
+} |
|
50 |
+ |
|
51 |
+/** |
|
52 |
+ * @brief send synchronization information |
|
53 |
+ * @param[in] sync sync stream name |
|
54 |
+ * @param[in] pInfo synchronization information |
|
55 |
+ */ |
|
56 |
+void SyncPrinter::sendInfo(const std::string &sync, Info &info) |
|
57 |
+{ |
|
58 |
+ std::cout << "sync pause=" << (info.pause ? "true" : "false") << |
|
59 |
+ " name=\"" << info.name << "\"" << |
|
60 |
+ " pos=" << info.pos_ms << "ms" << |
|
61 |
+ std::endl; |
|
62 |
+ (void)sync; // unused |
|
63 |
+} |
|
64 |
+ |
|
65 |
+} // namespace Blinker |
|
66 |
+ |
... | ... |
@@ -0,0 +1,60 @@ |
1 |
+/* Blinker |
|
2 |
+ Copyright 2011-2014 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 BLINKER_SYNCPRINTER_H |
|
7 |
+#define BLINKER_SYNCPRINTER_H |
|
8 |
+ |
|
9 |
+#include <string> |
|
10 |
+ |
|
11 |
+#include "Directory.h" |
|
12 |
+#include "File.h" |
|
13 |
+#include "InSyncFile.h" |
|
14 |
+#include "Mgrs.h" |
|
15 |
+#include "Module.h" |
|
16 |
+#include "SyncRecv.h" |
|
17 |
+ |
|
18 |
+namespace Blinker { |
|
19 |
+ |
|
20 |
+/// a sync stream printer |
|
21 |
+class SyncPrinter: public Module, public SyncRecv |
|
22 |
+{ |
|
23 |
+public: |
|
24 |
+ /** |
|
25 |
+ * @brief constructor |
|
26 |
+ * @param[in] name module name |
|
27 |
+ * @param[in] mgrs managers |
|
28 |
+ * @param[in] dirBase base directory |
|
29 |
+ */ |
|
30 |
+ SyncPrinter(const std::string &name, Mgrs &mgrs, const Directory &dirBase); |
|
31 |
+ |
|
32 |
+ /// virtual destructor |
|
33 |
+ virtual ~SyncPrinter(); |
|
34 |
+ |
|
35 |
+private: |
|
36 |
+ /// copy constructor disabled |
|
37 |
+ SyncPrinter(const SyncPrinter &that); |
|
38 |
+ |
|
39 |
+ /// assignment operator disabled |
|
40 |
+ const SyncPrinter & operator=(const SyncPrinter &that); |
|
41 |
+ |
|
42 |
+public: |
|
43 |
+ /// check for update of configuration |
|
44 |
+ virtual void updateConfig(); |
|
45 |
+ |
|
46 |
+ /** |
|
47 |
+ * @brief send synchronization information |
|
48 |
+ * @param[in] sync sync stream name |
|
49 |
+ * @param[in] pInfo synchronization information |
|
50 |
+ */ |
|
51 |
+ virtual void sendInfo(const std::string &sync, Info &info); |
|
52 |
+ |
|
53 |
+protected: |
|
54 |
+ InSyncFile m_fileInSync; ///< input sync stream name file |
|
55 |
+}; // class SyncPrinter |
|
56 |
+ |
|
57 |
+} // namespace Blinker |
|
58 |
+ |
|
59 |
+#endif // #ifndef BLINKER_SYNCPRINTER_H |
|
60 |
+ |
... | ... |
@@ -22,6 +22,7 @@ |
22 | 22 |
#include "RateLimiter.h" |
23 | 23 |
#include "Resizer.h" |
24 | 24 |
#include "Scaler.h" |
25 |
+#include "SyncPrinter.h" |
|
25 | 26 |
#include "Transformer.h" |
26 | 27 |
#include "Udp4Phone.h" |
27 | 28 |
#include "Udp4Receiver.h" |
... | ... |
@@ -53,6 +54,7 @@ void run(const std::string &dirConfig) |
53 | 54 |
MODULEMGR(Resizer, resizers); |
54 | 55 |
MODULEMGR(RateLimiter, ratelimiters); |
55 | 56 |
MODULEMGR(Scaler, scalers); |
57 |
+ MODULEMGR(SyncPrinter, syncprinters); |
|
56 | 58 |
MODULEMGR(Transformer, transformers); |
57 | 59 |
MODULEMGR(Udp4Phone, udp4phones); |
58 | 60 |
MODULEMGR(Udp4Receiver, udp4receivers); |
59 | 61 |