diff options
author | Daniel Friesel <derf@finalrewind.org> | 2016-01-20 12:34:56 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2016-01-20 12:34:56 +0100 |
commit | b0285847fc295b0034aa7e7d3b90d6b70ba37b8e (patch) | |
tree | 4d245dc8c86f2ca32c6707252a7348b2f969c289 /src/modem.cc | |
parent | c8f52f8271c5f2a048d8849efe656c5391da29ba (diff) |
excapsulate display and modem state in their respective classes
Diffstat (limited to 'src/modem.cc')
-rw-r--r-- | src/modem.cc | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/modem.cc b/src/modem.cc index 0a89586..e9cddb7 100644 --- a/src/modem.cc +++ b/src/modem.cc @@ -11,26 +11,22 @@ #include <stdlib.h> #include "modem.h" -/* Ring buffer global variables */ -static volatile uint8_t modem_buffer_head = 0, modem_buffer_tail = 0; -static volatile uint8_t modem_buffer[MODEM_BUFFER_SIZE]; - Modem modem; /* * Returns number of available bytes in ringbuffer or 0 if empty */ uint8_t Modem::buffer_available() { - return modem_buffer_head - modem_buffer_tail; + return buffer_head - buffer_tail; } /* * Store 1 byte in ringbuffer */ -static inline void modem_buffer_put(const uint8_t c) { +inline void Modem::buffer_put(const uint8_t c) { if (modem.buffer_available() != MODEM_BUFFER_SIZE) { - modem_buffer[modem_buffer_head++ % MODEM_BUFFER_SIZE] = c; - } + buffer[buffer_head++ % MODEM_BUFFER_SIZE] = c; + } } /* @@ -39,7 +35,7 @@ static inline void modem_buffer_put(const uint8_t c) { uint8_t Modem::buffer_get() { uint8_t b = 0; if (buffer_available() != 0) { - b = modem_buffer[modem_buffer_tail++ % MODEM_BUFFER_SIZE]; + b = buffer[buffer_tail++ % MODEM_BUFFER_SIZE]; } return b; } @@ -98,7 +94,7 @@ void Modem::receive() { /* Check if we received complete byte and store it in ring buffer */ if (!(++modem_bit % 0x08)) { - modem_buffer_put(modem_byte); + buffer_put(modem_byte); } } |