Cosmetics
[opentx.git] / radio / src / gui / 480x272 / rle.cpp
blobe4be583a52521be02036803e900461c05c5229c3
1 #include "rle.h"
2 #include "debug.h"
4 #include <string.h>
6 int rle_decode_8bit(unsigned char* dest, unsigned int dest_size, const unsigned char* src)
8 //unsigned char count = 0;
9 unsigned char prev_byte = 0;
10 bool prev_byte_valid = false;
12 const unsigned char* dest_end = dest + dest_size;
13 unsigned char* d = dest;
15 while(d < dest_end) {
17 *d++ = *src;
18 if (prev_byte_valid && (*src == prev_byte)) {
20 src++;
22 if (d + *src > dest + dest_size) {
23 TRACE("rle_decode_8bit: destination overflow!\n");
24 return -1;
27 memset(d, prev_byte, *src);
28 d += *src++;
29 prev_byte_valid = false;
31 else {
32 prev_byte = *src++;
33 prev_byte_valid = true;
37 return d - dest;