summaryrefslogtreecommitdiffstats
path: root/xrdp
diff options
context:
space:
mode:
authorNicola Ruggero <nicola@nxnt.org>2010-10-26 13:08:28 +0200
committerNicola Ruggero <nicola@nxnt.org>2010-10-26 13:08:28 +0200
commit104f762e5d3dcd659415632f442e745cef5a3bf2 (patch)
tree3fd40b9dfc46904d6e0cb3896f936cf7e0596352 /xrdp
parent36ef046e3c5be09798b0f6e7f3492f712d194972 (diff)
downloadxrdp-proprietary-104f762e5d3dcd659415632f442e745cef5a3bf2.tar.gz
xrdp-proprietary-104f762e5d3dcd659415632f442e745cef5a3bf2.zip
Added bell (pcspeaker) support
Diffstat (limited to 'xrdp')
-rw-r--r--xrdp/xrdp.h4
-rw-r--r--xrdp/xrdp_mm.c14
-rw-r--r--xrdp/xrdp_types.h1
-rw-r--r--xrdp/xrdp_wm.c7
4 files changed, 26 insertions, 0 deletions
diff --git a/xrdp/xrdp.h b/xrdp/xrdp.h
index 36e6dc59..0c91f52a 100644
--- a/xrdp/xrdp.h
+++ b/xrdp/xrdp.h
@@ -89,6 +89,8 @@ xrdp_wm_delete(struct xrdp_wm* self);
int APP_CC
xrdp_wm_send_palette(struct xrdp_wm* self);
int APP_CC
+xrdp_wm_send_bell(struct xrdp_wm* self);
+int APP_CC
xrdp_wm_load_static_colors(struct xrdp_wm* self);
int APP_CC
xrdp_wm_load_static_pointers(struct xrdp_wm* self);
@@ -352,6 +354,8 @@ server_begin_update(struct xrdp_mod* mod);
int DEFAULT_CC
server_end_update(struct xrdp_mod* mod);
int DEFAULT_CC
+server_bell_trigger(struct xrdp_mod* mod);
+int DEFAULT_CC
server_fill_rect(struct xrdp_mod* mod, int x, int y, int cx, int cy);
int DEFAULT_CC
server_screen_blt(struct xrdp_mod* mod, int x, int y, int cx, int cy,
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
index 5dd76e25..d9fe0431 100644
--- a/xrdp/xrdp_mm.c
+++ b/xrdp/xrdp_mm.c
@@ -297,6 +297,7 @@ xrdp_mm_setup_mod1(struct xrdp_mm* self)
self->mod->wm = (long)(self->wm);
self->mod->server_begin_update = server_begin_update;
self->mod->server_end_update = server_end_update;
+ self->mod->server_bell_trigger = server_bell_trigger;
self->mod->server_fill_rect = server_fill_rect;
self->mod->server_screen_blt = server_screen_blt;
self->mod->server_paint_rect = server_paint_rect;
@@ -1061,6 +1062,19 @@ server_end_update(struct xrdp_mod* mod)
}
/*****************************************************************************/
+/* got bell signal... try to send to client */
+int DEFAULT_CC
+server_bell_trigger(struct xrdp_mod* mod)
+{
+ struct xrdp_wm* wm;
+ wm = (struct xrdp_wm*)(mod->wm);
+
+ xrdp_wm_send_bell(wm);
+ return 0;
+}
+
+
+/*****************************************************************************/
int DEFAULT_CC
server_fill_rect(struct xrdp_mod* mod, int x, int y, int cx, int cy)
{
diff --git a/xrdp/xrdp_types.h b/xrdp/xrdp_types.h
index d4e6caa9..8ecc945c 100644
--- a/xrdp/xrdp_types.h
+++ b/xrdp/xrdp_types.h
@@ -42,6 +42,7 @@ struct xrdp_mod
/* server functions */
int (*server_begin_update)(struct xrdp_mod* v);
int (*server_end_update)(struct xrdp_mod* v);
+ int (*server_bell_trigger)(struct xrdp_mod* v);
int (*server_fill_rect)(struct xrdp_mod* v, int x, int y, int cx, int cy);
int (*server_screen_blt)(struct xrdp_mod* v, int x, int y, int cx, int cy,
int srcx, int srcy);
diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c
index 2b7a030f..bae6c494 100644
--- a/xrdp/xrdp_wm.c
+++ b/xrdp/xrdp_wm.c
@@ -86,6 +86,13 @@ xrdp_wm_send_palette(struct xrdp_wm* self)
/*****************************************************************************/
int APP_CC
+xrdp_wm_send_bell(struct xrdp_wm* self)
+{
+ return libxrdp_send_bell(self->session);
+}
+
+/*****************************************************************************/
+int APP_CC
xrdp_wm_send_bitmap(struct xrdp_wm* self, struct xrdp_bitmap* bitmap,
int x, int y, int cx, int cy)
{