YARP
Yet Another Robot Platform
AudioPlayerStatus.cpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 
6 // Autogenerated by Thrift Compiler (0.14.1-yarped)
7 //
8 // This is an automatically generated file.
9 // It could get re-generated if the ALLOW_IDL_GENERATION flag is on.
10 
12 
13 namespace yarp {
14 namespace dev {
15 
16 // Default constructor
18  WirePortable(),
19  enabled(0),
20  current_buffer_size(0),
21  max_buffer_size(0)
22 {
23 }
24 
25 // Constructor with field values
27  const size_t current_buffer_size,
28  const size_t max_buffer_size) :
29  WirePortable(),
30  enabled(enabled),
31  current_buffer_size(current_buffer_size),
32  max_buffer_size(max_buffer_size)
33 {
34 }
35 
36 // Read structure on a Wire
38 {
39  if (!read_enabled(reader)) {
40  return false;
41  }
42  if (!read_current_buffer_size(reader)) {
43  return false;
44  }
45  if (!read_max_buffer_size(reader)) {
46  return false;
47  }
48  return !reader.isError();
49 }
50 
51 // Read structure on a Connection
53 {
54  yarp::os::idl::WireReader reader(connection);
55  if (!reader.readListHeader(3)) {
56  return false;
57  }
58  return read(reader);
59 }
60 
61 // Write structure on a Wire
63 {
64  if (!write_enabled(writer)) {
65  return false;
66  }
67  if (!write_current_buffer_size(writer)) {
68  return false;
69  }
70  if (!write_max_buffer_size(writer)) {
71  return false;
72  }
73  return !writer.isError();
74 }
75 
76 // Write structure on a Connection
78 {
79  yarp::os::idl::WireWriter writer(connection);
80  if (!writer.writeListHeader(3)) {
81  return false;
82  }
83  return write(writer);
84 }
85 
86 // Convert to a printable string
87 std::string AudioPlayerStatus::toString() const
88 {
90  b.read(*this);
91  return b.toString();
92 }
93 
94 // Editor: default constructor
96 {
97  group = 0;
98  obj_owned = true;
99  obj = new AudioPlayerStatus;
100  dirty_flags(false);
101  yarp().setOwner(*this);
102 }
103 
104 // Editor: constructor with base class
106 {
107  group = 0;
108  obj_owned = false;
109  edit(obj, false);
110  yarp().setOwner(*this);
111 }
112 
113 // Editor: destructor
115 {
116  if (obj_owned) {
117  delete obj;
118  }
119 }
120 
121 // Editor: edit
123 {
124  if (obj_owned) {
125  delete this->obj;
126  }
127  this->obj = &obj;
128  obj_owned = false;
129  dirty_flags(dirty);
130  return true;
131 }
132 
133 // Editor: validity check
135 {
136  return obj != nullptr;
137 }
138 
139 // Editor: state
141 {
142  return *obj;
143 }
144 
145 // Editor: grouping begin
147 {
148  group++;
149 }
150 
151 // Editor: grouping end
153 {
154  group--;
155  if (group == 0 && is_dirty) {
156  communicate();
157  }
158 }
159 // Editor: enabled setter
161 {
162  will_set_enabled();
163  obj->enabled = enabled;
164  mark_dirty_enabled();
165  communicate();
166  did_set_enabled();
167 }
168 
169 // Editor: enabled getter
171 {
172  return obj->enabled;
173 }
174 
175 // Editor: enabled will_set
177 {
178  return true;
179 }
180 
181 // Editor: enabled did_set
183 {
184  return true;
185 }
186 
187 // Editor: current_buffer_size setter
189 {
190  will_set_current_buffer_size();
191  obj->current_buffer_size = current_buffer_size;
192  mark_dirty_current_buffer_size();
193  communicate();
194  did_set_current_buffer_size();
195 }
196 
197 // Editor: current_buffer_size getter
199 {
200  return obj->current_buffer_size;
201 }
202 
203 // Editor: current_buffer_size will_set
205 {
206  return true;
207 }
208 
209 // Editor: current_buffer_size did_set
211 {
212  return true;
213 }
214 
215 // Editor: max_buffer_size setter
217 {
218  will_set_max_buffer_size();
219  obj->max_buffer_size = max_buffer_size;
220  mark_dirty_max_buffer_size();
221  communicate();
222  did_set_max_buffer_size();
223 }
224 
225 // Editor: max_buffer_size getter
227 {
228  return obj->max_buffer_size;
229 }
230 
231 // Editor: max_buffer_size will_set
233 {
234  return true;
235 }
236 
237 // Editor: max_buffer_size did_set
239 {
240  return true;
241 }
242 
243 // Editor: clean
245 {
246  dirty_flags(false);
247 }
248 
249 // Editor: read
251 {
252  if (!isValid()) {
253  return false;
254  }
255  yarp::os::idl::WireReader reader(connection);
256  reader.expectAccept();
257  if (!reader.readListHeader()) {
258  return false;
259  }
260  int len = reader.getLength();
261  if (len == 0) {
262  yarp::os::idl::WireWriter writer(reader);
263  if (writer.isNull()) {
264  return true;
265  }
266  if (!writer.writeListHeader(1)) {
267  return false;
268  }
269  writer.writeString("send: 'help' or 'patch (param1 val1) (param2 val2)'");
270  return true;
271  }
272  std::string tag;
273  if (!reader.readString(tag)) {
274  return false;
275  }
276  if (tag == "help") {
277  yarp::os::idl::WireWriter writer(reader);
278  if (writer.isNull()) {
279  return true;
280  }
281  if (!writer.writeListHeader(2)) {
282  return false;
283  }
284  if (!writer.writeTag("many", 1, 0)) {
285  return false;
286  }
287  if (reader.getLength() > 0) {
288  std::string field;
289  if (!reader.readString(field)) {
290  return false;
291  }
292  if (field == "enabled") {
293  if (!writer.writeListHeader(2)) {
294  return false;
295  }
296  if (!writer.writeString("bool enabled")) {
297  return false;
298  }
299  if (!writer.writeString("true if the playback is currently enabled")) {
300  return false;
301  }
302  }
303  if (field == "current_buffer_size") {
304  if (!writer.writeListHeader(2)) {
305  return false;
306  }
307  if (!writer.writeString("size_t current_buffer_size")) {
308  return false;
309  }
310  if (!writer.writeString("the size of the audio buffer [samples]")) {
311  return false;
312  }
313  }
314  if (field == "max_buffer_size") {
315  if (!writer.writeListHeader(2)) {
316  return false;
317  }
318  if (!writer.writeString("size_t max_buffer_size")) {
319  return false;
320  }
321  if (!writer.writeString("the max_size of the audio buffer [samples]")) {
322  return false;
323  }
324  }
325  }
326  if (!writer.writeListHeader(4)) {
327  return false;
328  }
329  writer.writeString("*** Available fields:");
330  writer.writeString("enabled");
331  writer.writeString("current_buffer_size");
332  writer.writeString("max_buffer_size");
333  return true;
334  }
335  bool nested = true;
336  bool have_act = false;
337  if (tag != "patch") {
338  if (((len - 1) % 2) != 0) {
339  return false;
340  }
341  len = 1 + ((len - 1) / 2);
342  nested = false;
343  have_act = true;
344  }
345  for (int i = 1; i < len; ++i) {
346  if (nested && !reader.readListHeader(3)) {
347  return false;
348  }
349  std::string act;
350  std::string key;
351  if (have_act) {
352  act = tag;
353  } else if (!reader.readString(act)) {
354  return false;
355  }
356  if (!reader.readString(key)) {
357  return false;
358  }
359  if (key == "enabled") {
360  will_set_enabled();
361  if (!obj->nested_read_enabled(reader)) {
362  return false;
363  }
364  did_set_enabled();
365  } else if (key == "current_buffer_size") {
366  will_set_current_buffer_size();
367  if (!obj->nested_read_current_buffer_size(reader)) {
368  return false;
369  }
370  did_set_current_buffer_size();
371  } else if (key == "max_buffer_size") {
372  will_set_max_buffer_size();
373  if (!obj->nested_read_max_buffer_size(reader)) {
374  return false;
375  }
376  did_set_max_buffer_size();
377  } else {
378  // would be useful to have a fallback here
379  }
380  }
381  reader.accept();
382  yarp::os::idl::WireWriter writer(reader);
383  if (writer.isNull()) {
384  return true;
385  }
386  writer.writeListHeader(1);
387  writer.writeVocab32('o', 'k');
388  return true;
389 }
390 
391 // Editor: write
393 {
394  if (!isValid()) {
395  return false;
396  }
397  yarp::os::idl::WireWriter writer(connection);
398  if (!writer.writeListHeader(dirty_count + 1)) {
399  return false;
400  }
401  if (!writer.writeString("patch")) {
402  return false;
403  }
404  if (is_dirty_enabled) {
405  if (!writer.writeListHeader(3)) {
406  return false;
407  }
408  if (!writer.writeString("set")) {
409  return false;
410  }
411  if (!writer.writeString("enabled")) {
412  return false;
413  }
414  if (!obj->nested_write_enabled(writer)) {
415  return false;
416  }
417  }
418  if (is_dirty_current_buffer_size) {
419  if (!writer.writeListHeader(3)) {
420  return false;
421  }
422  if (!writer.writeString("set")) {
423  return false;
424  }
425  if (!writer.writeString("current_buffer_size")) {
426  return false;
427  }
428  if (!obj->nested_write_current_buffer_size(writer)) {
429  return false;
430  }
431  }
432  if (is_dirty_max_buffer_size) {
433  if (!writer.writeListHeader(3)) {
434  return false;
435  }
436  if (!writer.writeString("set")) {
437  return false;
438  }
439  if (!writer.writeString("max_buffer_size")) {
440  return false;
441  }
442  if (!obj->nested_write_max_buffer_size(writer)) {
443  return false;
444  }
445  }
446  return !writer.isError();
447 }
448 
449 // Editor: send if possible
450 void AudioPlayerStatus::Editor::communicate()
451 {
452  if (group != 0) {
453  return;
454  }
455  if (yarp().canWrite()) {
456  yarp().write(*this);
457  clean();
458  }
459 }
460 
461 // Editor: mark dirty overall
462 void AudioPlayerStatus::Editor::mark_dirty()
463 {
464  is_dirty = true;
465 }
466 
467 // Editor: enabled mark_dirty
468 void AudioPlayerStatus::Editor::mark_dirty_enabled()
469 {
470  if (is_dirty_enabled) {
471  return;
472  }
473  dirty_count++;
474  is_dirty_enabled = true;
475  mark_dirty();
476 }
477 
478 // Editor: current_buffer_size mark_dirty
479 void AudioPlayerStatus::Editor::mark_dirty_current_buffer_size()
480 {
481  if (is_dirty_current_buffer_size) {
482  return;
483  }
484  dirty_count++;
485  is_dirty_current_buffer_size = true;
486  mark_dirty();
487 }
488 
489 // Editor: max_buffer_size mark_dirty
490 void AudioPlayerStatus::Editor::mark_dirty_max_buffer_size()
491 {
492  if (is_dirty_max_buffer_size) {
493  return;
494  }
495  dirty_count++;
496  is_dirty_max_buffer_size = true;
497  mark_dirty();
498 }
499 
500 // Editor: dirty_flags
501 void AudioPlayerStatus::Editor::dirty_flags(bool flag)
502 {
503  is_dirty = flag;
504  is_dirty_enabled = flag;
505  is_dirty_current_buffer_size = flag;
506  is_dirty_max_buffer_size = flag;
507  dirty_count = flag ? 3 : 0;
508 }
509 
510 // read enabled field
511 bool AudioPlayerStatus::read_enabled(yarp::os::idl::WireReader& reader)
512 {
513  if (!reader.readBool(enabled)) {
514  reader.fail();
515  return false;
516  }
517  return true;
518 }
519 
520 // write enabled field
521 bool AudioPlayerStatus::write_enabled(const yarp::os::idl::WireWriter& writer) const
522 {
523  if (!writer.writeBool(enabled)) {
524  return false;
525  }
526  return true;
527 }
528 
529 // read (nested) enabled field
530 bool AudioPlayerStatus::nested_read_enabled(yarp::os::idl::WireReader& reader)
531 {
532  if (!reader.readBool(enabled)) {
533  reader.fail();
534  return false;
535  }
536  return true;
537 }
538 
539 // write (nested) enabled field
540 bool AudioPlayerStatus::nested_write_enabled(const yarp::os::idl::WireWriter& writer) const
541 {
542  if (!writer.writeBool(enabled)) {
543  return false;
544  }
545  return true;
546 }
547 
548 // read current_buffer_size field
549 bool AudioPlayerStatus::read_current_buffer_size(yarp::os::idl::WireReader& reader)
550 {
551  if (!reader.readSizeT(current_buffer_size)) {
552  reader.fail();
553  return false;
554  }
555  return true;
556 }
557 
558 // write current_buffer_size field
559 bool AudioPlayerStatus::write_current_buffer_size(const yarp::os::idl::WireWriter& writer) const
560 {
561  if (!writer.writeSizeT(current_buffer_size)) {
562  return false;
563  }
564  return true;
565 }
566 
567 // read (nested) current_buffer_size field
568 bool AudioPlayerStatus::nested_read_current_buffer_size(yarp::os::idl::WireReader& reader)
569 {
570  if (!reader.readSizeT(current_buffer_size)) {
571  reader.fail();
572  return false;
573  }
574  return true;
575 }
576 
577 // write (nested) current_buffer_size field
578 bool AudioPlayerStatus::nested_write_current_buffer_size(const yarp::os::idl::WireWriter& writer) const
579 {
580  if (!writer.writeSizeT(current_buffer_size)) {
581  return false;
582  }
583  return true;
584 }
585 
586 // read max_buffer_size field
587 bool AudioPlayerStatus::read_max_buffer_size(yarp::os::idl::WireReader& reader)
588 {
589  if (!reader.readSizeT(max_buffer_size)) {
590  reader.fail();
591  return false;
592  }
593  return true;
594 }
595 
596 // write max_buffer_size field
597 bool AudioPlayerStatus::write_max_buffer_size(const yarp::os::idl::WireWriter& writer) const
598 {
599  if (!writer.writeSizeT(max_buffer_size)) {
600  return false;
601  }
602  return true;
603 }
604 
605 // read (nested) max_buffer_size field
606 bool AudioPlayerStatus::nested_read_max_buffer_size(yarp::os::idl::WireReader& reader)
607 {
608  if (!reader.readSizeT(max_buffer_size)) {
609  reader.fail();
610  return false;
611  }
612  return true;
613 }
614 
615 // write (nested) max_buffer_size field
616 bool AudioPlayerStatus::nested_write_max_buffer_size(const yarp::os::idl::WireWriter& writer) const
617 {
618  if (!writer.writeSizeT(max_buffer_size)) {
619  return false;
620  }
621  return true;
622 }
623 
624 } // namespace yarp
625 } // namespace dev
bool edit(AudioPlayerStatus &obj, bool dirty=true)
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
void set_max_buffer_size(const size_t max_buffer_size)
void set_current_buffer_size(const size_t current_buffer_size)
AudioPlayerStatus: A class used to describe the status of an audio player device.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
size_t current_buffer_size
the size of the audio buffer [samples]
size_t max_buffer_size
the max_size of the audio buffer [samples]
bool enabled
true if the playback is currently enabled
bool write(const yarp::os::idl::WireWriter &writer) const override
bool read(yarp::os::idl::WireReader &reader) override
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:74
bool read(ConnectionReader &reader) override
Set the bottle's value based on input from a network connection.
Definition: Bottle.cpp:240
std::string toString() const override
Gives a human-readable textual representation of the bottle.
Definition: Bottle.cpp:211
An interface for reading from a network connection.
An interface for writing to a network connection.
yarp::os::WireLink & yarp()
Get YARP state associated with this object.
Definition: Wire.h:29
IDL-friendly connection reader.
Definition: WireReader.h:30
bool readString(std::string &str, bool *is_vocab=nullptr)
Definition: WireReader.cpp:382
bool readSizeT(std::size_t &x)
Definition: WireReader.cpp:357
IDL-friendly connection writer.
Definition: WireWriter.h:30
bool writeVocab32(yarp::conf::vocab32_t x) const
Definition: WireWriter.cpp:141
bool writeBool(bool x) const
Definition: WireWriter.cpp:72
bool writeListHeader(int len) const
Definition: WireWriter.cpp:206
bool writeTag(const char *tag, int split, int len) const
Definition: WireWriter.cpp:164
bool writeString(const std::string &tag) const
Definition: WireWriter.cpp:189
bool writeSizeT(std::size_t x) const
Definition: WireWriter.cpp:148
bool isValid()
Check if time is valid (non-zero).
Definition: Time.cpp:314
The main, catch-all namespace for YARP.
Definition: dirs.h:16