Remmina - The GTK+ Remote Desktop Client  v1.4.33
Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.
gvnc_plugin.h
Go to the documentation of this file.
1 /*
2  * Remmina - The GTK+ Remote Desktop Client
3  * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  *
20  * In addition, as a special exception, the copyright holders give
21  * permission to link the code of portions of this program with the
22  * OpenSSL library under certain conditions as described in each
23  * individual source file, and distribute linked combinations
24  * including the two.
25  * You must obey the GNU General Public License in all respects
26  * for all of the code used other than OpenSSL. * If you modify
27  * file(s) with this exception, you may extend this exception to your
28  * version of the file(s), but you are not obligated to do so. * If you
29  * do not wish to do so, delete this exception statement from your
30  * version. * If you delete this exception statement from all source
31  * files in the program, then also delete it here.
32  *
33  */
34 
35 #include "common/remmina_plugin.h"
36 
37 #include <gdk/gdkkeysyms.h>
38 #include <vncdisplay.h>
39 #include <vncutil.h>
40 #include <vncaudiopulse.h>
41 
42 
43 #ifndef GDK_Return
44 #define GDK_Return GDK_KEY_Return
45 #endif
46 #ifndef GDK_Escape
47 #define GDK_Escape GDK_KEY_Escape
48 #endif
49 #ifndef GDK_BackSpace
50 #define GDK_BackSpace GDK_KEY_BackSpace
51 #endif
52 #ifndef GDK_Delete
53 #define GDK_Delete GDK_KEY_Delete
54 #endif
55 #ifndef GDK_Control_L
56 #define GDK_Control_L GDK_KEY_Control_L
57 #endif
58 #ifndef GDK_Alt_L
59 #define GDK_Alt_L GDK_KEY_Alt_L
60 #endif
61 #ifndef GDK_F1
62 #define GDK_F1 GDK_KEY_F1
63 #endif
64 #ifndef GDK_F2
65 #define GDK_F2 GDK_KEY_F2
66 #endif
67 #ifndef GDK_F3
68 #define GDK_F3 GDK_KEY_F3
69 #endif
70 #ifndef GDK_F4
71 #define GDK_F4 GDK_KEY_F4
72 #endif
73 #ifndef GDK_F5
74 #define GDK_F5 GDK_KEY_F5
75 #endif
76 #ifndef GDK_F6
77 #define GDK_F6 GDK_KEY_F6
78 #endif
79 #ifndef GDK_F7
80 #define GDK_F7 GDK_KEY_F7
81 #endif
82 #ifndef GDK_F8
83 #define GDK_F8 GDK_KEY_F8
84 #endif
85 #ifndef GDK_F11
86 #define GDK_F11 GDK_KEY_F11
87 #endif
88 
89 #define GET_PLUGIN_DATA(gp) (GVncPluginData *)g_object_get_data(G_OBJECT(gp), "plugin-data")
90 
91 #define REMMINA_PLUGIN_INFO(fmt, ...) \
92  remmina_plugin_service->_remmina_info(__func__, fmt, ##__VA_ARGS__)
93 
94 #define REMMINA_PLUGIN_MESSAGE(fmt, ...) \
95  remmina_plugin_service->_remmina_message(__func, fmt, ##__VA_ARGS__)
96 
97 #define REMMINA_PLUGIN_DEBUG(fmt, ...) \
98  remmina_plugin_service->_remmina_debug(__func__, fmt, ##__VA_ARGS__)
99 
100 #define REMMINA_PLUGIN_WARNING(fmt, ...) \
101  remmina_plugin_service->_remmina_warning(__func__, fmt, ##__VA_ARGS__)
102 
103 /* This will intentionally crash Remmina */
104 #define REMMINA_PLUGIN_ERROR(fmt, ...) \
105  remmina_plugin_service->_remmina_error(__func__, fmt, ##__VA_ARGS__)
106 
107 #define REMMINA_PLUGIN_CRITICAL(fmt, ...) \
108  remmina_plugin_service->_remmina_critical(__func__, fmt, ##__VA_ARGS__)
109 #define REMMINA_PLUGIN_AUDIT(fmt, ...) \
110  remmina_plugin_service->_remmina_audit(__func__, fmt, ##__VA_ARGS__)
111 
112 typedef struct _GVncPluginData {
113  GtkWidget * box;
114  GtkWidget * vnc;
115  VncConnection * conn;
116  VncAudioPulse * pa;
117  gchar * error_msg;
118  gchar * clipstr;
121  gint shared;
122  gboolean lossy_encoding;
123  gboolean viewonly;
124  gint width;
125  gint height;
126  gint fd;
127  gchar * addr;
129 
130 G_BEGIN_DECLS
131 G_END_DECLS
struct _GVncPluginData GVncPluginData
gchar * error_msg
Definition: gvnc_plugin.h:117
VncAudioPulse * pa
Definition: gvnc_plugin.h:116
gboolean viewonly
Definition: gvnc_plugin.h:123
VncConnection * conn
Definition: gvnc_plugin.h:115
gulong signal_clipboard
Definition: gvnc_plugin.h:119
gboolean lossy_encoding
Definition: gvnc_plugin.h:122
GtkWidget * vnc
Definition: gvnc_plugin.h:114
GtkWidget * box
Definition: gvnc_plugin.h:113