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.
spice_plugin.c File Reference

Go to the source code of this file.

Enumerations

enum  {
  REMMINA_PLUGIN_SPICE_FEATURE_PREF_VIEWONLY = 1, REMMINA_PLUGIN_SPICE_FEATURE_DYNRESUPDATE, REMMINA_PLUGIN_SPICE_FEATURE_PREF_DISABLECLIPBOARD, REMMINA_PLUGIN_SPICE_FEATURE_TOOL_SENDCTRLALTDEL,
  REMMINA_PLUGIN_SPICE_FEATURE_TOOL_USBREDIR, REMMINA_PLUGIN_SPICE_FEATURE_SCALE
}
 

Functions

static void remmina_plugin_spice_channel_new_cb (SpiceSession *, SpiceChannel *, RemminaProtocolWidget *)
 
static void remmina_plugin_spice_main_channel_event_cb (SpiceChannel *, SpiceChannelEvent, RemminaProtocolWidget *)
 
static void remmina_plugin_spice_agent_connected_event_cb (SpiceChannel *, RemminaProtocolWidget *)
 
static void remmina_plugin_spice_display_ready_cb (GObject *, GParamSpec *, RemminaProtocolWidget *)
 
static void remmina_plugin_spice_update_scale_mode (RemminaProtocolWidget *)
 
static void remmina_plugin_spice_session_open_fd (RemminaProtocolWidget *)
 
static void remmina_plugin_spice_channel_open_fd (RemminaProtocolWidget *, SpiceChannel *)
 
void remmina_plugin_spice_select_usb_devices (RemminaProtocolWidget *)
 
void remmina_plugin_spice_file_transfer_new_cb (SpiceMainChannel *, SpiceFileTransferTask *, RemminaProtocolWidget *)
 
gchar * str_replace (const gchar *string, const gchar *search, const gchar *replacement)
 
static void remmina_plugin_spice_init (RemminaProtocolWidget *gp)
 
static gboolean remmina_plugin_spice_open_connection (RemminaProtocolWidget *gp)
 
static gboolean remmina_plugin_spice_close_connection (RemminaProtocolWidget *gp)
 
static gboolean remmina_plugin_spice_disable_gst_overlay (SpiceChannel *channel, void *pipeline_ptr, RemminaProtocolWidget *gp)
 
static gboolean remmina_plugin_spice_ask_auth (RemminaProtocolWidget *gp)
 
static void remmina_plugin_spice_keystroke (RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)
 
static void remmina_plugin_spice_send_ctrlaltdel (RemminaProtocolWidget *gp)
 
static gboolean remmina_plugin_spice_query_feature (RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)
 
static void remmina_plugin_spice_call_feature (RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)
 
void remmina_plugin_spice_remove_list_option (gpointer *option_list, const gchar *option_to_remove)
 
gboolean remmina_plugin_spice_is_lz4_supported ()
 
G_MODULE_EXPORT gboolean remmina_plugin_entry (RemminaPluginService *service)
 

Variables

RemminaPluginServiceremmina_plugin_service = NULL
 
static gpointer videocodec_list []
 
static gpointer imagecompression_list []
 
static gchar disablegstvideooverlay_tooltip []
 
static const RemminaProtocolSetting remmina_plugin_spice_basic_settings []
 
static const RemminaProtocolSetting remmina_plugin_spice_advanced_settings []
 
static const RemminaProtocolFeature remmina_plugin_spice_features []
 
static RemminaProtocolPlugin remmina_plugin_spice
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
REMMINA_PLUGIN_SPICE_FEATURE_PREF_VIEWONLY 
REMMINA_PLUGIN_SPICE_FEATURE_DYNRESUPDATE 
REMMINA_PLUGIN_SPICE_FEATURE_PREF_DISABLECLIPBOARD 
REMMINA_PLUGIN_SPICE_FEATURE_TOOL_SENDCTRLALTDEL 
REMMINA_PLUGIN_SPICE_FEATURE_TOOL_USBREDIR 
REMMINA_PLUGIN_SPICE_FEATURE_SCALE 

Definition at line 39 of file spice_plugin.c.

Function Documentation

◆ remmina_plugin_entry()

G_MODULE_EXPORT gboolean remmina_plugin_entry ( RemminaPluginService service)

Definition at line 818 of file spice_plugin.c.

◆ remmina_plugin_spice_agent_connected_event_cb()

void remmina_plugin_spice_agent_connected_event_cb ( SpiceChannel *  channel,
RemminaProtocolWidget gp 
)
static

Definition at line 428 of file spice_plugin.c.

◆ remmina_plugin_spice_ask_auth()

static gboolean remmina_plugin_spice_ask_auth ( RemminaProtocolWidget gp)
static

Definition at line 331 of file spice_plugin.c.

◆ remmina_plugin_spice_call_feature()

static void remmina_plugin_spice_call_feature ( RemminaProtocolWidget gp,
const RemminaProtocolFeature feature 
)
static

Definition at line 586 of file spice_plugin.c.

◆ remmina_plugin_spice_channel_new_cb()

static void remmina_plugin_spice_channel_new_cb ( SpiceSession *  session,
SpiceChannel *  channel,
RemminaProtocolWidget gp 
)
static

g_signal_connect(channel, "open-fd", G_CALLBACK(remmina_plugin_spice_channel_open_fd), gp);

Definition at line 248 of file spice_plugin.c.

◆ remmina_plugin_spice_channel_open_fd()

static void remmina_plugin_spice_channel_open_fd ( RemminaProtocolWidget gp,
SpiceChannel *  channel 
)
static

Definition at line 97 of file spice_plugin.c.

◆ remmina_plugin_spice_close_connection()

static gboolean remmina_plugin_spice_close_connection ( RemminaProtocolWidget gp)
static

Definition at line 210 of file spice_plugin.c.

◆ remmina_plugin_spice_disable_gst_overlay()

static gboolean remmina_plugin_spice_disable_gst_overlay ( SpiceChannel *  channel,
void *  pipeline_ptr,
RemminaProtocolWidget gp 
)
static

Definition at line 242 of file spice_plugin.c.

◆ remmina_plugin_spice_display_ready_cb()

static void remmina_plugin_spice_display_ready_cb ( GObject *  display,
GParamSpec *  param_spec,
RemminaProtocolWidget gp 
)
static

Definition at line 444 of file spice_plugin.c.

◆ remmina_plugin_spice_file_transfer_new_cb()

void remmina_plugin_spice_file_transfer_new_cb ( SpiceMainChannel *  ,
SpiceFileTransferTask *  ,
RemminaProtocolWidget  
)

Definition at line 56 of file spice_plugin_file_transfer.c.

◆ remmina_plugin_spice_init()

static void remmina_plugin_spice_init ( RemminaProtocolWidget gp)
static

Definition at line 109 of file spice_plugin.c.

◆ remmina_plugin_spice_is_lz4_supported()

gboolean remmina_plugin_spice_is_lz4_supported ( )

Definition at line 780 of file spice_plugin.c.

◆ remmina_plugin_spice_keystroke()

static void remmina_plugin_spice_keystroke ( RemminaProtocolWidget gp,
const guint  keystrokes[],
const gint  keylen 
)
static

Definition at line 530 of file spice_plugin.c.

◆ remmina_plugin_spice_main_channel_event_cb()

static void remmina_plugin_spice_main_channel_event_cb ( SpiceChannel *  channel,
SpiceChannelEvent  event,
RemminaProtocolWidget gp 
)
static

Definition at line 368 of file spice_plugin.c.

◆ remmina_plugin_spice_open_connection()

static gboolean remmina_plugin_spice_open_connection ( RemminaProtocolWidget gp)
static

-START- UNIX socket

-END- UNIX socket

Definition at line 141 of file spice_plugin.c.

◆ remmina_plugin_spice_query_feature()

static gboolean remmina_plugin_spice_query_feature ( RemminaProtocolWidget gp,
const RemminaProtocolFeature feature 
)
static

Definition at line 579 of file spice_plugin.c.

◆ remmina_plugin_spice_remove_list_option()

void remmina_plugin_spice_remove_list_option ( gpointer *  option_list,
const gchar *  option_to_remove 
)

Definition at line 759 of file spice_plugin.c.

◆ remmina_plugin_spice_select_usb_devices()

void remmina_plugin_spice_select_usb_devices ( RemminaProtocolWidget )

Definition at line 39 of file spice_plugin_usb.c.

◆ remmina_plugin_spice_send_ctrlaltdel()

static void remmina_plugin_spice_send_ctrlaltdel ( RemminaProtocolWidget gp)
static

Definition at line 544 of file spice_plugin.c.

◆ remmina_plugin_spice_session_open_fd()

static void remmina_plugin_spice_session_open_fd ( RemminaProtocolWidget gp)
static

Definition at line 87 of file spice_plugin.c.

◆ remmina_plugin_spice_update_scale_mode()

static void remmina_plugin_spice_update_scale_mode ( RemminaProtocolWidget gp)
static

Definition at line 553 of file spice_plugin.c.

◆ str_replace()

gchar* str_replace ( const gchar *  string,
const gchar *  search,
const gchar *  replacement 
)

Definition at line 65 of file spice_plugin.c.

Variable Documentation

◆ disablegstvideooverlay_tooltip

gchar disablegstvideooverlay_tooltip[]
static
Initial value:
=
N_("Disable video overlay if videos are not displayed properly.\n")
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953

Definition at line 661 of file spice_plugin.c.

◆ imagecompression_list

gpointer imagecompression_list[]
static
Initial value:
=
{
"0", N_("Default"),
"1", N_("Off"),
"2", N_("Auto GLZ"),
"3", N_("Auto LZ"),
"4", "Quic",
"5", "GLZ",
"6", "LZ",
"7", "LZ4",
NULL
}
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953

Definition at line 644 of file spice_plugin.c.

◆ remmina_plugin_service

RemminaPluginService* remmina_plugin_service = NULL

Definition at line 48 of file spice_plugin.c.

◆ remmina_plugin_spice

RemminaProtocolPlugin remmina_plugin_spice
static
Initial value:
=
{
"SPICE",
N_("SPICE - Simple Protocol for Independent Computing Environments"),
GETTEXT_PACKAGE,
VERSION,
"org.remmina.Remmina-spice-symbolic",
"org.remmina.Remmina-spice-ssh-symbolic",
NULL,
NULL,
NULL
}
static const RemminaProtocolFeature remmina_plugin_spice_features[]
Definition: spice_plugin.c:723
static void remmina_plugin_spice_keystroke(RemminaProtocolWidget *gp, const guint keystrokes[], const gint keylen)
Definition: spice_plugin.c:530
static gboolean remmina_plugin_spice_query_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)
Definition: spice_plugin.c:579
static gboolean remmina_plugin_spice_open_connection(RemminaProtocolWidget *gp)
Definition: spice_plugin.c:141
static const RemminaProtocolSetting remmina_plugin_spice_basic_settings[]
Definition: spice_plugin.c:683
static void remmina_plugin_spice_call_feature(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)
Definition: spice_plugin.c:586
static const RemminaProtocolSetting remmina_plugin_spice_advanced_settings[]
Definition: spice_plugin.c:702
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953
static void remmina_plugin_spice_init(RemminaProtocolWidget *gp)
Definition: spice_plugin.c:109
static gboolean remmina_plugin_spice_close_connection(RemminaProtocolWidget *gp)
Definition: spice_plugin.c:210

Definition at line 735 of file spice_plugin.c.

◆ remmina_plugin_spice_advanced_settings

const RemminaProtocolSetting remmina_plugin_spice_advanced_settings[]
static
Initial value:
=
{
#ifdef SPICE_GTK_CHECK_VERSION
# if SPICE_GTK_CHECK_VERSION(0, 35, 0)
{ REMMINA_PROTOCOL_SETTING_TYPE_SELECT, "videocodec", N_("Preferred video codec"), FALSE, videocodec_list, NULL},
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "disablegstvideooverlay", N_("Turn off GStreamer overlay"), FALSE, NULL, disablegstvideooverlay_tooltip},
# endif
# if SPICE_GTK_CHECK_VERSION(0, 31, 0)
{ REMMINA_PROTOCOL_SETTING_TYPE_SELECT, "imagecompression", N_("Preferred image compression"), FALSE, imagecompression_list, NULL},
# endif
#endif
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "disableclipboard", N_("No clipboard sync"), TRUE, NULL, NULL},
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "disablepasswordstoring", N_("Forget passwords after use"), TRUE, NULL, NULL},
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "enableaudio", N_("Enable audio channel"), TRUE, NULL, NULL},
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "sharesmartcard", N_("Share smart card"), TRUE, NULL, NULL},
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "viewonly", N_("View only"), TRUE, NULL, NULL},
{ REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, TRUE, NULL, NULL}
}
static gpointer imagecompression_list[]
Definition: spice_plugin.c:644
static gchar disablegstvideooverlay_tooltip[]
Definition: spice_plugin.c:661
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953
static gpointer videocodec_list[]
Definition: spice_plugin.c:626

Definition at line 702 of file spice_plugin.c.

◆ remmina_plugin_spice_basic_settings

const RemminaProtocolSetting remmina_plugin_spice_basic_settings[]
static
Initial value:
=
{
{ REMMINA_PROTOCOL_SETTING_TYPE_SERVER, "server", NULL, FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD, "password", N_("User password"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "usetls", N_("Use TLS encryption"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_FILE, "cacert", N_("Server CA certificate"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "sharefolder", N_("Share folder"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }
}
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953

Definition at line 683 of file spice_plugin.c.

◆ remmina_plugin_spice_features

const RemminaProtocolFeature remmina_plugin_spice_features[]
static
Initial value:
=
{
{ REMMINA_PROTOCOL_FEATURE_TYPE_PREF, REMMINA_PLUGIN_SPICE_FEATURE_PREF_VIEWONLY, GINT_TO_POINTER(REMMINA_PROTOCOL_FEATURE_PREF_CHECK), "viewonly", N_("View only")},
{ REMMINA_PROTOCOL_FEATURE_TYPE_PREF, REMMINA_PLUGIN_SPICE_FEATURE_PREF_DISABLECLIPBOARD, GINT_TO_POINTER(REMMINA_PROTOCOL_FEATURE_PREF_CHECK), "disableclipboard", N_("No clipboard sync")},
{ REMMINA_PROTOCOL_FEATURE_TYPE_TOOL, REMMINA_PLUGIN_SPICE_FEATURE_TOOL_USBREDIR, N_("Select USB devices for redirection"), NULL, NULL},
{ REMMINA_PROTOCOL_FEATURE_TYPE_END, 0, NULL, NULL, NULL}
}
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953

Definition at line 723 of file spice_plugin.c.

◆ videocodec_list

gpointer videocodec_list[]
static
Initial value:
=
{
"0", N_("Default"),
"1", "mjpeg",
"2", "vp8",
"3", "h264",
"4", "vp9",
"5", "h265",
NULL
}
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953

Definition at line 626 of file spice_plugin.c.