gstreamer/gst/librfb/rfbdecoder.h

88 lines
2 KiB
C
Raw Normal View History

#ifndef _LIBRFB_DECODER_H_
#define _LIBRFB_DECODER_H_
#include <glib.h>
#include <librfb/rfbbytestream.h>
G_BEGIN_DECLS
typedef struct _RfbDecoder RfbDecoder;
struct _RfbDecoder
{
int (*send_data) (guint8 *buffer, int length, gpointer user_data);
gpointer buffer_handler_data;
RfbBytestream *bytestream;
gpointer decoder_private;
void (*paint_rect) (RfbDecoder *decoder, int x, int y, int w, int h,
guint8 *data);
void (*copy_rect) (RfbDecoder *decoder, int x, int y, int w, int h,
int src_x, int src_y);
/* settable properties */
gboolean shared_flag;
/* readable properties */
gboolean inited;
int protocol_major;
int protocol_minor;
unsigned int security_type;
unsigned int width;
unsigned int height;
unsigned int bpp;
unsigned int depth;
gboolean big_endian;
gboolean true_colour;
unsigned int red_max;
unsigned int green_max;
unsigned int blue_max;
unsigned int red_shift;
unsigned int green_shift;
unsigned int blue_shift;
char *name;
/* state information */
gboolean (*state) (RfbDecoder *decoder);
int n_rects;
};
#if 0
typedef struct _RfbRect
{
RfbConnection *connection;
unsigned int x_pos;
unsigned int y_pos;
unsigned int width;
unsigned int height;
unsigned int encoding_type;
char *data;
} RfbRect;
#endif
RfbDecoder *rfb_decoder_new (void);
void rfb_decoder_use_file_descriptor (RfbDecoder * decoder, int fd);
void rfb_decoder_connect_tcp (RfbDecoder *decoder, char * addr, unsigned int port);
void rfb_decoder_set_peer (RfbDecoder * decoder);
gboolean rfb_decoder_iterate (RfbDecoder * decoder);
int rfb_decoder_send (RfbDecoder * decoder, guint8 *data, int len);
void rfb_decoder_send_update_request (RfbDecoder * decoder,
gboolean incremental, int x, int y, int width, int height);
void rfb_decoder_send_key_event (RfbDecoder * decoder, unsigned int key,
gboolean down_flag);
void rfb_decoder_send_pointer_event (RfbDecoder * decoder,
int button_mask, int x, int y);
G_END_DECLS
#endif