Cosmetics
[opentx.git] / radio / src / pulses / pulses_common.h
blob83058f63582ef49ff45abbb206002c449afcd201
1 /*
2 * Copyright (C) OpenTX
4 * Based on code named
5 * th9x - http://code.google.com/p/th9x
6 * er9x - http://code.google.com/p/er9x
7 * gruvin9x - http://code.google.com/p/gruvin9x
9 * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
21 #ifndef _PULSES_COMMON_H_
22 #define _PULSES_COMMON_H_
24 #include <inttypes.h>
26 #if defined(EXTMODULE_TIMER_32BITS)
27 typedef uint32_t pulse_duration_t;
28 #else
29 typedef uint16_t pulse_duration_t;
30 #endif
32 typedef uint16_t trainer_pulse_duration_t;
34 template <class T, int SIZE>
35 class DataBuffer {
36 public:
37 const T * getData()
39 return data;
42 uint8_t getSize()
44 return ptr - data;
47 protected:
48 T data[SIZE];
49 T * ptr;
51 void initBuffer()
53 ptr = data;
57 template <class T, int SIZE>
58 class PulsesBuffer: public DataBuffer<T, SIZE> {
59 public:
60 T getLast() {
61 return *(DataBuffer<T, SIZE>::ptr - 1);
64 void setLast(T value) {
65 *(DataBuffer<T, SIZE>::ptr - 1) = value;
69 #endif