You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libtdevnc/zrleoutstream.h

63 lines
2.0 KiB

/*
* Copyright (C) 2002 RealVNC Ltd. All Rights Reserved.
* Copyright (C) 2003 Sun Microsystems, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#ifndef __ZRLE_OUT_STREAM_H__
#define __ZRLE_OUT_STREAM_H__
#include <zlib.h>
#include "zrletypes.h"
#include "rfb/rfb.h"
typedef struct {
zrle_U8 *start;
zrle_U8 *ptr;
zrle_U8 *end;
} zrleBuffer;
typedef struct {
zrleBuffer in;
zrleBuffer out;
z_stream zs;
} zrleOutStream;
#define ZRLE_BUFFER_LENGTH(b) ((b)->ptr - (b)->start)
zrleOutStream *zrleOutStreamNew (void);
void zrleOutStreamFree (zrleOutStream *os);
rfbBool zrleOutStreamFlush (zrleOutStream *os);
void zrleOutStreamWriteBytes (zrleOutStream *os,
const zrle_U8 *data,
int length);
void zrleOutStreamWriteU8 (zrleOutStream *os,
zrle_U8 u);
void zrleOutStreamWriteOpaque8 (zrleOutStream *os,
zrle_U8 u);
void zrleOutStreamWriteOpaque16 (zrleOutStream *os,
zrle_U16 u);
void zrleOutStreamWriteOpaque32 (zrleOutStream *os,
zrle_U32 u);
void zrleOutStreamWriteOpaque24A(zrleOutStream *os,
zrle_U32 u);
void zrleOutStreamWriteOpaque24B(zrleOutStream *os,
zrle_U32 u);
#endif /* __ZRLE_OUT_STREAM_H__ */