RDK Documentation (Open Sourced RDK Components)
CECFrame.hpp
1 /*
2  * If not stated otherwise in this file or this component's Licenses.txt file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 
21 
22 /**
23 * @defgroup hdmicec
24 * @{
25 * @defgroup ccec
26 * @{
27 **/
28 
29 
30 #ifndef HDMI_CCEC_FRAME_
31 #define HDMI_CCEC_FRAME_
32 
33 #include <stdint.h>
34 #include <stddef.h>
35 #include <stdexcept>
36 #include "CCEC.hpp"
37 
38 CCEC_BEGIN_NAMESPACE
39 
40 class CECFrame {
41  public:
42  CECFrame(const uint8_t *buf = NULL, size_t len = 0);
43  void reset(void);
44  CECFrame subFrame(size_t start, size_t len = 0) const;
45  void append(uint8_t byte);
46  void append(const uint8_t *buf, size_t len);
47  void append(const CECFrame &frame);
48  void getBuffer(const uint8_t **buf, size_t *len) const;
49  const uint8_t * getBuffer(void) const;
50  const uint8_t at(size_t i) const;
51  const size_t length(void) const;
52  void hexDump(int level=6) const;
53  uint8_t & operator[](size_t i);
54 
55  enum {
56  MAX_LENGTH = 128,
57  };
58  private:
59  uint8_t buf_[MAX_LENGTH];
60  size_t len_;
61 };
62 
63 CCEC_END_NAMESPACE
64 
65 #endif
66 
67 
68 
69 /** @} */
70 /** @} */
CECFrame
Definition: CECFrame.hpp:40