2010-03-31 20:13:12 +00:00
|
|
|
|
2010-08-08 11:42:28 +00:00
|
|
|
#include <time.h>
|
|
|
|
|
2010-03-31 20:13:12 +00:00
|
|
|
#ifndef _SSDV_RX_H
|
|
|
|
#define _SSDV_RX_H
|
|
|
|
|
2010-10-03 00:19:41 +00:00
|
|
|
#include "ssdv.h"
|
|
|
|
|
2010-03-31 20:13:12 +00:00
|
|
|
class ssdv_rx : public Fl_Double_Window
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
/* UI */
|
|
|
|
|
|
|
|
Fl_Box *box;
|
|
|
|
Fl_RGB_Image *flrgb;
|
|
|
|
|
|
|
|
Fl_Box *flimageid; /* Current Image ID */
|
2010-10-03 00:19:41 +00:00
|
|
|
Fl_Box *flpacket; /* Last Block ID */
|
2010-03-31 20:13:12 +00:00
|
|
|
Fl_Box *flsize;
|
|
|
|
Fl_Box *flmissing;
|
|
|
|
Fl_Box *fltodo;
|
|
|
|
Fl_Box *flfixes;
|
|
|
|
|
|
|
|
Fl_Progress *flprogress;
|
2010-10-03 00:19:41 +00:00
|
|
|
|
2010-03-31 20:13:12 +00:00
|
|
|
/* RX buffer */
|
2010-10-03 00:19:41 +00:00
|
|
|
static const int BUFFER_SIZE = SSDV_PKT_SIZE * 2;
|
2010-08-05 08:47:54 +00:00
|
|
|
|
2010-03-31 20:13:12 +00:00
|
|
|
uint8_t *buffer;
|
|
|
|
int bc;
|
|
|
|
int bl;
|
|
|
|
|
2010-10-03 00:19:41 +00:00
|
|
|
/* Packet and RGB image buffer */
|
|
|
|
uint8_t *packets;
|
|
|
|
int packets_len;
|
2010-03-31 20:13:12 +00:00
|
|
|
uint8_t *image;
|
|
|
|
|
|
|
|
/* Last packet details */
|
2010-10-03 00:19:41 +00:00
|
|
|
ssdv_packet_info_t pkt_info;
|
2010-03-31 20:13:12 +00:00
|
|
|
|
2010-10-03 00:19:41 +00:00
|
|
|
/* Image details */
|
|
|
|
time_t image_timestamp;
|
|
|
|
int image_id;
|
|
|
|
int image_width;
|
|
|
|
int image_height;
|
|
|
|
int image_lost_packets;
|
2010-10-04 18:59:42 +00:00
|
|
|
int image_errors;
|
2010-03-31 20:13:12 +00:00
|
|
|
|
|
|
|
/* Private functions */
|
|
|
|
void feed_buffer(uint8_t byte);
|
2010-04-23 21:44:00 +00:00
|
|
|
void clear_buffer();
|
2010-07-15 20:42:16 +00:00
|
|
|
void upload_packet();
|
2010-10-03 00:19:41 +00:00
|
|
|
void save_image(uint8_t *jpeg, size_t length);
|
|
|
|
void render_image(uint8_t *jpeg, size_t length);
|
2010-03-31 20:13:12 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
ssdv_rx(int w, int h, const char *title);
|
|
|
|
~ssdv_rx();
|
|
|
|
|
2010-04-23 21:44:00 +00:00
|
|
|
void put_byte(uint8_t byte, int lost);
|
2010-03-31 20:13:12 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|