1 #pragma once
2 
3 #ifndef T32MOVMSG_H
4 #define T32MOVMSG_H
5 
6 #include "tipcmsg.h"
7 
8 //------------------------------------------------------------------
9 
10 //  Forward declarations
11 namespace tipc {
12 class Server;
13 }
14 
15 //------------------------------------------------------------------
16 
17 using namespace tipc;
18 
19 namespace mov_io {
20 
21 void addParsers(tipc::Server *srv);
22 
23 //************************************************************************************
24 //    Generic messages
25 //************************************************************************************
26 
27 class IsQTInstalledParser : public tipc::MessageParser {
28   // Syntax : $isQTInstalled
29   // Reply: yes | no
30 
31 public:
header()32   QString header() const override { return "$isQTInstalled"; }
33   void operator()(Message &stream) override;
34 };
35 
36 //------------------------------------------------------------------------------
37 
38 class DefaultMovPropsParser : public tipc::MessageParser {
39   // Syntax : $defaultMovProps <props fp>\n
40   // Reply: ok | err
41 
42 public:
header()43   QString header() const override { return "$defaultMovProps"; }
44   void operator()(Message &stream) override;
45 };
46 
47 //------------------------------------------------------------------------------
48 
49 class OpenMovSettingsPopupParser : public tipc::MessageParser {
50   // Syntax : $openMovPopup <props fp>\n
51   // Reply: ok
52 
53 public:
header()54   QString header() const override { return "$openMovSettingsPopup"; }
55   void operator()(Message &stream) override;
56 };
57 
58 //************************************************************************************
59 //    Write messages
60 //************************************************************************************
61 
62 class InitLWMovParser : public tipc::MessageParser {
63   // Syntax: $initLWMov <id> <fp> <props fp>
64   // Reply: ok | err
65 
66 public:
header()67   QString header() const override { return "$initLWMov"; }
68   void operator()(Message &stream) override;
69 };
70 
71 //------------------------------------------------------------------------------
72 
73 class LWSetFrameRateParser : public tipc::MessageParser {
74   // Syntax: $LWMovSetFrameRate <id> <fps>
75   // Reply: ok | err
76 
77 public:
header()78   QString header() const override { return "$LWMovSetFrameRate"; }
79   void operator()(Message &stream) override;
80 };
81 
82 //------------------------------------------------------------------------------
83 
84 class LWImageWriteParser : public tipc::MessageParser {
85   // Syntax: [$LWMovImageWrite <id> <frameIdx> <lx> <ly>] [data writer]
86   // Reply: ok | err
87 
88 public:
header()89   QString header() const override { return "$LWMovImageWrite"; }
90   void operator()(Message &stream) override;
91 };
92 
93 //------------------------------------------------------------------------------
94 
95 class LWSaveSoundTrackParser : public tipc::MessageParser {
96   // Syntax: [$LWMovSaveSoundTrack <id> <sampleRate> <bps> <chanCount> <sCount>
97   // <signedSample>] [data writer]
98   // Reply: ok | err
99 
100 public:
header()101   QString header() const override { return "$LWMovSaveSoundTrack"; }
102   void operator()(Message &stream) override;
103 };
104 
105 //------------------------------------------------------------------------------
106 
107 class CloseLWMovParser : public tipc::MessageParser {
108   // Syntax: $closeLWMov <id>
109   // Reply: ok | err
110 
111 public:
header()112   QString header() const override { return "$closeLWMov"; }
113   void operator()(Message &stream) override;
114 };
115 
116 //************************************************************************************
117 //    Read messages
118 //************************************************************************************
119 
120 class InitLRMovParser : public tipc::MessageParser {
121   // Syntax: $initLRMov <id> <fp>
122   // Reply: ok <lx> <ly> <framerate> | err
123 
124 public:
header()125   QString header() const override { return "$initLRMov"; }
126   void operator()(Message &stream) override;
127 };
128 
129 //------------------------------------------------------------------------------
130 
131 class LRLoadInfoParser : public tipc::MessageParser {
132   // Syntax: $LRMovLoadInfo <id> <shmem id>
133   // Reply: ok <frameCount> | err
134 
135   // NOTE: Expects an external call to $shmem_release <shmem_id> after data is
136   // dealt with.
137   //      If the shmem_id is empty, the level infos are not returned.
138 
139 public:
header()140   QString header() const override { return "$LRMovLoadInfo"; }
141   void operator()(Message &stream) override;
142 };
143 
144 //------------------------------------------------------------------------------
145 
146 class LREnableRandomAccessReadParser : public tipc::MessageParser {
147   // Syntax: $LRMovEnableRandomAccessRead <id> <"true" | "false">
148   // Reply: ok | err
149 
150 public:
header()151   QString header() const override { return "$LRMovEnableRandomAccessRead"; }
152   void operator()(Message &stream) override;
153 };
154 
155 //------------------------------------------------------------------------------
156 
157 #ifdef WIN32  // The following commands are used only from Digital Dailies Lab -
158               // Windows only
159 
160 class LRSetYMirrorParser : public tipc::MessageParser {
161   // Syntax: $LRMovSetYMirror <id> <"true" | "false">
162   // Reply: ok | err
163 
164 public:
header()165   QString header() const override { return "$LRMovSetYMirror"; }
166   void operator()(Message &stream) override;
167 };
168 
169 //------------------------------------------------------------------------------
170 
171 class LRSetLoadTimecodeParser : public tipc::MessageParser {
172   // Syntax: $LRMovSetLoadTimecode <id> <"true" | "false">
173   // Reply: ok | err
174 
175 public:
header()176   QString header() const override { return "$LRMovSetLoadTimecode"; }
177   void operator()(Message &stream) override;
178 };
179 
180 //------------------------------------------------------------------------------
181 
182 class LRTimecodeParser : public tipc::MessageParser {
183   // Syntax: $LRMovTimecode <id> <frame>
184   // Reply: ok <hh> <mm> <ss> <ff> | err
185 
186 public:
header()187   QString header() const override { return "$LRMovTimecode"; }
188   void operator()(Message &stream) override;
189 };
190 
191 #endif
192 
193 //------------------------------------------------------------------------------
194 
195 class LRImageReadParser : public tipc::MessageParser {
196   // Syntax: $LRMovImageRead <id> <lx> <ly> <bypp> <frameIdx> <x> <y> <shrinkX>
197   // <shrinkY>
198   // Reply: [data reader]
199 
200 public:
header()201   QString header() const override { return "$LRMovImageRead"; }
202   void operator()(Message &stream) override;
203 };
204 
205 //------------------------------------------------------------------------------
206 
207 class LRImageReadSHMParser : public tipc::MessageParser {
208   // Syntax: $LRMovImageReadSHM <id> <lx> <ly> <frameIdx> <shmem id>
209   // Reply: ok <hh> <mm> <ss> <ff> | err
210 
211 public:
header()212   QString header() const override { return "$LRMovImageReadSHM"; }
213   void operator()(Message &stream) override;
214 };
215 
216 //------------------------------------------------------------------------------
217 
218 class CloseLRMovParser : public tipc::MessageParser {
219   // Syntax: $closeLRMov <id>
220   // Reply: ok | err
221 
222 public:
header()223   QString header() const override { return "$closeLRMov"; }
224   void operator()(Message &stream) override;
225 };
226 
227 }  // namespace tlevelwriter_mov
228 
229 #endif  // T32MOVMSG_H
230