Open Lighting Architecture: libs/acn/E131Inflator.h Source File

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
E131Inflator.h
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License as published by
4 * the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU Library General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * along with this program; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
15 *
16 * E131Inflator.h
17 * Interface for the E131Inflator class.
18 * Copyright (C) 2009 Simon Newton
19 *
20 * This contains two inflators a E131Inflator as per the standard and an
21 * E131InflatorRev2 which implements the revision 2 draft specification.
22 */
23
24#ifndef LIBS_ACN_E131INFLATOR_H_
25#define LIBS_ACN_E131INFLATOR_H_
26
27#include "ola/acn/ACNVectors.h"
28#include "libs/acn/BaseInflator.h"
29#include "libs/acn/E131Header.h"
30
31namespace ola {
32namespace acn {
33
34 class E131Inflator: public BaseInflator {
35 friend class E131InflatorTest;
36
37 public:
38 E131Inflator(): BaseInflator(),
39 m_last_header_valid(false) {
40 }
41 ~E131Inflator() {}
42
43 uint32_t Id() const { return ola::acn::VECTOR_ROOT_E131; }
44
45 protected:
46 bool DecodeHeader(HeaderSet *headers,
47 const uint8_t *data,
48 unsigned int len,
49 unsigned int *bytes_used);
50
51 void ResetHeaderField() {
52 m_last_header_valid = false;
53 }
54 private:
55 E131Header m_last_header;
56 bool m_last_header_valid;
57};
58
59
60/*
61 * A Revision 2 version of the inflator.
62 */
63 class E131InflatorRev2: public BaseInflator {
64 friend class E131InflatorTest;
65
66 public:
67 E131InflatorRev2(): BaseInflator(),
68 m_last_header_valid(false) {
69 }
70 ~E131InflatorRev2() {}
71
72 uint32_t Id() const { return ola::acn::VECTOR_ROOT_E131_REV2; }
73
74 protected:
75 bool DecodeHeader(HeaderSet *headers, const uint8_t *data,
76 unsigned int len, unsigned int *bytes_used);
77
78 void ResetHeaderField() {
79 m_last_header_valid = false;
80 }
81 private:
82 E131Header m_last_header;
83 bool m_last_header_valid;
84};
85} // namespace acn
86} // namespace ola
87#endif // LIBS_ACN_E131INFLATOR_H_
ACNVectors.h
ACN Vector values.
ola::acn::E131Header
Definition E131Header.h:35
ola::acn::HeaderSet
Definition HeaderSet.h:35
ola::acn::VECTOR_ROOT_E131_REV2
@ VECTOR_ROOT_E131_REV2
Definition ACNVectors.h:46
ola::acn::VECTOR_ROOT_E131
@ VECTOR_ROOT_E131
Definition ACNVectors.h:47
ola::acn
ACN related code.
ola
The namespace containing all OLA symbols.
Definition Credentials.cpp:44