Move VNC pointers to common.
This commit is contained in:
parent
50bb5d132f
commit
93639cbf12
@ -32,8 +32,8 @@ DIST_SUBDIRS = \
|
|||||||
tests
|
tests
|
||||||
|
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
src/common \
|
|
||||||
src/libguac \
|
src/libguac \
|
||||||
|
src/common \
|
||||||
src/guacd \
|
src/guacd \
|
||||||
tests
|
tests
|
||||||
|
|
||||||
|
@ -92,6 +92,8 @@ AC_TYPE_SSIZE_T
|
|||||||
# Bundled libguac
|
# Bundled libguac
|
||||||
AC_SUBST([LIBGUAC_LTLIB], '$(top_builddir)/src/libguac/libguac.la')
|
AC_SUBST([LIBGUAC_LTLIB], '$(top_builddir)/src/libguac/libguac.la')
|
||||||
AC_SUBST([LIBGUAC_INCLUDE], '-I$(top_srcdir)/src/libguac')
|
AC_SUBST([LIBGUAC_INCLUDE], '-I$(top_srcdir)/src/libguac')
|
||||||
|
AC_SUBST([COMMON_LTLIB], '$(top_builddir)/src/common/libguac_common.la')
|
||||||
|
AC_SUBST([COMMON_INCLUDE], '-I$(top_builddir)/src/common')
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
AC_ARG_WITH(init_dir,
|
AC_ARG_WITH(init_dir,
|
||||||
|
@ -22,15 +22,21 @@
|
|||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
AM_CFLAGS = -Werror -Wall -pedantic
|
AM_CFLAGS = -Werror -Wall -pedantic @LIBGUAC_INCLUDE@
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libguac_common.la
|
noinst_LTLIBRARIES = libguac_common.la
|
||||||
|
|
||||||
noinst_HEADERS = \
|
noinst_HEADERS = \
|
||||||
guac_io.h \
|
guac_io.h \
|
||||||
guac_list.h
|
guac_dot_cursor.c \
|
||||||
|
guac_list.h \
|
||||||
|
guac_pointer_cursor.c
|
||||||
|
|
||||||
libguac_common_la_SOURCES = \
|
libguac_common_la_SOURCES = \
|
||||||
guac_io.c \
|
guac_io.c \
|
||||||
guac_list.c
|
guac_dot_cursor.c \
|
||||||
|
guac_list.c \
|
||||||
|
guac_pointer_cursor.c
|
||||||
|
|
||||||
|
libguac_common_la_LIBADD = @LIBGUAC_LTLIB@
|
||||||
|
|
||||||
|
@ -33,15 +33,15 @@
|
|||||||
#define _ 0x00,0x00,0x00,0x00
|
#define _ 0x00,0x00,0x00,0x00
|
||||||
|
|
||||||
/* Dimensions */
|
/* Dimensions */
|
||||||
const int guac_vnc_dot_cursor_width = 5;
|
const int guac_common_dot_cursor_width = 5;
|
||||||
const int guac_vnc_dot_cursor_height = 5;
|
const int guac_common_dot_cursor_height = 5;
|
||||||
|
|
||||||
/* Format */
|
/* Format */
|
||||||
const cairo_format_t guac_vnc_dot_cursor_format = CAIRO_FORMAT_ARGB32;
|
const cairo_format_t guac_common_dot_cursor_format = CAIRO_FORMAT_ARGB32;
|
||||||
const int guac_vnc_dot_cursor_stride = 20;
|
const int guac_common_dot_cursor_stride = 20;
|
||||||
|
|
||||||
/* Embedded pointer graphic */
|
/* Embedded pointer graphic */
|
||||||
unsigned char guac_vnc_dot_cursor[] = {
|
unsigned char guac_common_dot_cursor[] = {
|
||||||
|
|
||||||
_,O,O,O,_,
|
_,O,O,O,_,
|
||||||
O,X,X,X,O,
|
O,X,X,X,O,
|
||||||
@ -51,7 +51,7 @@ unsigned char guac_vnc_dot_cursor[] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void guac_vnc_set_dot_cursor(guac_client* client) {
|
void guac_common_set_dot_cursor(guac_client* client) {
|
||||||
|
|
||||||
guac_socket* socket = client->socket;
|
guac_socket* socket = client->socket;
|
||||||
|
|
||||||
@ -59,11 +59,11 @@ void guac_vnc_set_dot_cursor(guac_client* client) {
|
|||||||
guac_layer* cursor = guac_client_alloc_buffer(client);
|
guac_layer* cursor = guac_client_alloc_buffer(client);
|
||||||
|
|
||||||
cairo_surface_t* graphic = cairo_image_surface_create_for_data(
|
cairo_surface_t* graphic = cairo_image_surface_create_for_data(
|
||||||
guac_vnc_dot_cursor,
|
guac_common_dot_cursor,
|
||||||
guac_vnc_dot_cursor_format,
|
guac_common_dot_cursor_format,
|
||||||
guac_vnc_dot_cursor_width,
|
guac_common_dot_cursor_width,
|
||||||
guac_vnc_dot_cursor_height,
|
guac_common_dot_cursor_height,
|
||||||
guac_vnc_dot_cursor_stride);
|
guac_common_dot_cursor_stride);
|
||||||
|
|
||||||
guac_protocol_send_png(socket, GUAC_COMP_SRC, cursor, 0, 0, graphic);
|
guac_protocol_send_png(socket, GUAC_COMP_SRC, cursor, 0, 0, graphic);
|
||||||
cairo_surface_destroy(graphic);
|
cairo_surface_destroy(graphic);
|
||||||
@ -71,8 +71,8 @@ void guac_vnc_set_dot_cursor(guac_client* client) {
|
|||||||
/* Set cursor */
|
/* Set cursor */
|
||||||
guac_protocol_send_cursor(socket, 2, 2, cursor,
|
guac_protocol_send_cursor(socket, 2, 2, cursor,
|
||||||
0, 0,
|
0, 0,
|
||||||
guac_vnc_dot_cursor_width,
|
guac_common_dot_cursor_width,
|
||||||
guac_vnc_dot_cursor_height);
|
guac_common_dot_cursor_height);
|
||||||
|
|
||||||
/* Free buffer */
|
/* Free buffer */
|
||||||
guac_client_free_buffer(client, cursor);
|
guac_client_free_buffer(client, cursor);
|
@ -21,8 +21,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef _GUAC_VNC_DOT_CURSOR_H
|
#ifndef _GUAC_COMMON_DOT_CURSOR_H
|
||||||
#define _GUAC_VNC_DOT_CURSOR_H
|
#define _GUAC_COMMON_DOT_CURSOR_H
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
@ -32,33 +32,33 @@
|
|||||||
/**
|
/**
|
||||||
* Width of the embedded mouse cursor graphic.
|
* Width of the embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const int guac_vnc_dot_cursor_width;
|
extern const int guac_common_dot_cursor_width;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Height of the embedded mouse cursor graphic.
|
* Height of the embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const int guac_vnc_dot_cursor_height;
|
extern const int guac_common_dot_cursor_height;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of bytes in each row of the embedded mouse cursor graphic.
|
* Number of bytes in each row of the embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const int guac_vnc_dot_cursor_stride;
|
extern const int guac_common_dot_cursor_stride;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Cairo grapic format of the mouse cursor graphic.
|
* The Cairo grapic format of the mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const cairo_format_t guac_vnc_dot_cursor_format;
|
extern const cairo_format_t guac_common_dot_cursor_format;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Embedded mouse cursor graphic.
|
* Embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern unsigned char guac_vnc_dot_cursor[];
|
extern unsigned char guac_common_dot_cursor[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the cursor of the remote display to the embedded cursor graphic.
|
* Set the cursor of the remote display to the embedded cursor graphic.
|
||||||
*
|
*
|
||||||
* @param client The guac_client to send the cursor to.
|
* @param client The guac_client to send the cursor to.
|
||||||
*/
|
*/
|
||||||
void guac_vnc_set_dot_cursor(guac_client* client);
|
void guac_common_set_dot_cursor(guac_client* client);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -33,15 +33,15 @@
|
|||||||
#define _ 0x00,0x00,0x00,0x00
|
#define _ 0x00,0x00,0x00,0x00
|
||||||
|
|
||||||
/* Dimensions */
|
/* Dimensions */
|
||||||
const int guac_vnc_pointer_cursor_width = 11;
|
const int guac_common_pointer_cursor_width = 11;
|
||||||
const int guac_vnc_pointer_cursor_height = 16;
|
const int guac_common_pointer_cursor_height = 16;
|
||||||
|
|
||||||
/* Format */
|
/* Format */
|
||||||
const cairo_format_t guac_vnc_pointer_cursor_format = CAIRO_FORMAT_ARGB32;
|
const cairo_format_t guac_common_pointer_cursor_format = CAIRO_FORMAT_ARGB32;
|
||||||
const int guac_vnc_pointer_cursor_stride = 44;
|
const int guac_common_pointer_cursor_stride = 44;
|
||||||
|
|
||||||
/* Embedded pointer graphic */
|
/* Embedded pointer graphic */
|
||||||
unsigned char guac_vnc_pointer_cursor[] = {
|
unsigned char guac_common_pointer_cursor[] = {
|
||||||
|
|
||||||
O,_,_,_,_,_,_,_,_,_,_,
|
O,_,_,_,_,_,_,_,_,_,_,
|
||||||
O,O,_,_,_,_,_,_,_,_,_,
|
O,O,_,_,_,_,_,_,_,_,_,
|
||||||
@ -62,7 +62,7 @@ unsigned char guac_vnc_pointer_cursor[] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void guac_vnc_set_pointer_cursor(guac_client* client) {
|
void guac_common_set_pointer_cursor(guac_client* client) {
|
||||||
|
|
||||||
guac_socket* socket = client->socket;
|
guac_socket* socket = client->socket;
|
||||||
|
|
||||||
@ -70,11 +70,11 @@ void guac_vnc_set_pointer_cursor(guac_client* client) {
|
|||||||
guac_layer* cursor = guac_client_alloc_buffer(client);
|
guac_layer* cursor = guac_client_alloc_buffer(client);
|
||||||
|
|
||||||
cairo_surface_t* graphic = cairo_image_surface_create_for_data(
|
cairo_surface_t* graphic = cairo_image_surface_create_for_data(
|
||||||
guac_vnc_pointer_cursor,
|
guac_common_pointer_cursor,
|
||||||
guac_vnc_pointer_cursor_format,
|
guac_common_pointer_cursor_format,
|
||||||
guac_vnc_pointer_cursor_width,
|
guac_common_pointer_cursor_width,
|
||||||
guac_vnc_pointer_cursor_height,
|
guac_common_pointer_cursor_height,
|
||||||
guac_vnc_pointer_cursor_stride);
|
guac_common_pointer_cursor_stride);
|
||||||
|
|
||||||
guac_protocol_send_png(socket, GUAC_COMP_SRC, cursor, 0, 0, graphic);
|
guac_protocol_send_png(socket, GUAC_COMP_SRC, cursor, 0, 0, graphic);
|
||||||
cairo_surface_destroy(graphic);
|
cairo_surface_destroy(graphic);
|
||||||
@ -82,8 +82,8 @@ void guac_vnc_set_pointer_cursor(guac_client* client) {
|
|||||||
/* Set cursor */
|
/* Set cursor */
|
||||||
guac_protocol_send_cursor(socket, 0, 0, cursor,
|
guac_protocol_send_cursor(socket, 0, 0, cursor,
|
||||||
0, 0,
|
0, 0,
|
||||||
guac_vnc_pointer_cursor_width,
|
guac_common_pointer_cursor_width,
|
||||||
guac_vnc_pointer_cursor_height);
|
guac_common_pointer_cursor_height);
|
||||||
|
|
||||||
/* Free buffer */
|
/* Free buffer */
|
||||||
guac_client_free_buffer(client, cursor);
|
guac_client_free_buffer(client, cursor);
|
@ -21,8 +21,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef _GUAC_VNC_POINTER_CURSOR_H
|
#ifndef _GUAC_COMMON_POINTER_CURSOR_H
|
||||||
#define _GUAC_VNC_POINTER_CURSOR_H
|
#define _GUAC_COMMON_POINTER_CURSOR_H
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
@ -32,33 +32,33 @@
|
|||||||
/**
|
/**
|
||||||
* Width of the embedded mouse cursor graphic.
|
* Width of the embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const int guac_vnc_pointer_cursor_width;
|
extern const int guac_common_pointer_cursor_width;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Height of the embedded mouse cursor graphic.
|
* Height of the embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const int guac_vnc_pointer_cursor_height;
|
extern const int guac_common_pointer_cursor_height;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of bytes in each row of the embedded mouse cursor graphic.
|
* Number of bytes in each row of the embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const int guac_vnc_pointer_cursor_stride;
|
extern const int guac_common_pointer_cursor_stride;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Cairo grapic format of the mouse cursor graphic.
|
* The Cairo grapic format of the mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern const cairo_format_t guac_vnc_pointer_cursor_format;
|
extern const cairo_format_t guac_common_pointer_cursor_format;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Embedded mouse cursor graphic.
|
* Embedded mouse cursor graphic.
|
||||||
*/
|
*/
|
||||||
extern unsigned char guac_vnc_pointer_cursor[];
|
extern unsigned char guac_common_pointer_cursor[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the cursor of the remote display to the embedded cursor graphic.
|
* Set the cursor of the remote display to the embedded cursor graphic.
|
||||||
*
|
*
|
||||||
* @param client The guac_client to send the cursor to.
|
* @param client The guac_client to send the cursor to.
|
||||||
*/
|
*/
|
||||||
void guac_vnc_set_pointer_cursor(guac_client* client);
|
void guac_common_set_pointer_cursor(guac_client* client);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -23,24 +23,22 @@
|
|||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
AM_CFLAGS = -Werror -Wall -pedantic -Iinclude @LIBGUAC_INCLUDE@
|
AM_CFLAGS = -Werror -Wall -pedantic -Iinclude \
|
||||||
|
@COMMON_INCLUDE@ \
|
||||||
|
@LIBGUAC_INCLUDE@
|
||||||
|
|
||||||
lib_LTLIBRARIES = libguac-client-vnc.la
|
lib_LTLIBRARIES = libguac-client-vnc.la
|
||||||
|
|
||||||
libguac_client_vnc_la_SOURCES = \
|
libguac_client_vnc_la_SOURCES = \
|
||||||
client.c \
|
client.c \
|
||||||
convert.c \
|
convert.c \
|
||||||
dot_cursor.c \
|
|
||||||
guac_handlers.c \
|
guac_handlers.c \
|
||||||
pointer_cursor.c \
|
|
||||||
vnc_handlers.c
|
vnc_handlers.c
|
||||||
|
|
||||||
noinst_HEADERS = \
|
noinst_HEADERS = \
|
||||||
client.h \
|
client.h \
|
||||||
convert.h \
|
convert.h \
|
||||||
dot_cursor.h \
|
|
||||||
guac_handlers.h \
|
guac_handlers.h \
|
||||||
pointer_cursor.h \
|
|
||||||
vnc_handlers.h
|
vnc_handlers.h
|
||||||
|
|
||||||
# Optional PulseAudio support
|
# Optional PulseAudio support
|
||||||
@ -49,6 +47,10 @@ libguac_client_vnc_la_SOURCES += pulse.c
|
|||||||
noinst_HEADERS += pulse.h
|
noinst_HEADERS += pulse.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libguac_client_vnc_la_LDFLAGS = -version-info 0:0:0 @VNC_LIBS@ @CAIRO_LIBS@ @PULSE_LIBS@
|
libguac_client_vnc_la_LDFLAGS = -version-info 0:0:0 \
|
||||||
|
@CAIRO_LIBS@ \
|
||||||
|
@PULSE_LIBS@ \
|
||||||
|
@VNC_LIBS@
|
||||||
|
|
||||||
libguac_client_vnc_la_LIBADD = @LIBGUAC_LTLIB@
|
libguac_client_vnc_la_LIBADD = @LIBGUAC_LTLIB@
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
#include "dot_cursor.h"
|
#include "guac_dot_cursor.h"
|
||||||
#include "guac_handlers.h"
|
#include "guac_handlers.h"
|
||||||
#include "pointer_cursor.h"
|
#include "guac_pointer_cursor.h"
|
||||||
#include "vnc_handlers.h"
|
#include "vnc_handlers.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -356,11 +356,11 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
|
|||||||
|
|
||||||
/* If not read-only but cursor is remote, set a dot cursor */
|
/* If not read-only but cursor is remote, set a dot cursor */
|
||||||
if (guac_client_data->remote_cursor)
|
if (guac_client_data->remote_cursor)
|
||||||
guac_vnc_set_dot_cursor(client);
|
guac_common_set_dot_cursor(client);
|
||||||
|
|
||||||
/* Otherwise, set pointer until explicitly requested otherwise */
|
/* Otherwise, set pointer until explicitly requested otherwise */
|
||||||
else
|
else
|
||||||
guac_vnc_set_pointer_cursor(client);
|
guac_common_set_pointer_cursor(client);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user