Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacek Szafarkiewicz <szafar@linux.pl>2021-02-07 01:52:15 +0300
committerJacek Szafarkiewicz <szafar@linux.pl>2021-02-07 01:52:15 +0300
commit93709309fe7da80d3bbab4e138d01291d14b3b05 (patch)
tree2252207ea9c1c98964dd61799d816a5c9afc9e3d /plugins/spice
parent6ac358a095c3f9a31bd6ef751a60d1d4083d8d62 (diff)
Add ifdefs for spice version less then 0.38 (fix #2408)
Diffstat (limited to 'plugins/spice')
-rw-r--r--plugins/spice/spice_plugin.c54
1 files changed, 50 insertions, 4 deletions
diff --git a/plugins/spice/spice_plugin.c b/plugins/spice/spice_plugin.c
index 0c91fe821..f03247c16 100644
--- a/plugins/spice/spice_plugin.c
+++ b/plugins/spice/spice_plugin.c
@@ -348,8 +348,6 @@ static void remmina_plugin_spice_display_ready_cb(GObject *display, GParamSpec *
g_object_get(display, "ready", &ready, NULL);
if (ready) {
- SpiceVideoCodecType videocodec;
- SpiceImageCompression imagecompression;
RemminaPluginSpiceData *gpdata = GET_PLUGIN_DATA(gp);
RemminaFile *remminafile = remmina_plugin_service->protocol_plugin_get_file(gp);
@@ -363,8 +361,11 @@ static void remmina_plugin_spice_display_ready_cb(GObject *display, GParamSpec *
"resize-guest", (scaleMode == REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES),
NULL);
- videocodec = remmina_plugin_service->file_get_int(remminafile, "videocodec", 0);
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 34, 0)
+ SpiceVideoCodecType videocodec = remmina_plugin_service->file_get_int(remminafile, "videocodec", 0);
if (videocodec) {
+# if SPICE_GTK_CHECK_VERSION(0, 38, 0)
GError *err = NULL;
guint i;
@@ -388,13 +389,32 @@ static void remmina_plugin_spice_display_ready_cb(GObject *display, GParamSpec *
}
g_clear_pointer(&preferred_codecs, g_array_unref);
+
+# elif SPICE_GTK_CHECK_VERSION(0, 35, 0)
+ spice_display_channel_change_preferred_video_codec_type(SPICE_CHANNEL(gpdata->display_channel),
+ videocodec);
+# else
+ spice_display_change_preferred_video_codec_type(SPICE_CHANNEL(gpdata->display_channel),
+ videocodec);
+# endif
}
+# endif
+#endif
- imagecompression = remmina_plugin_service->file_get_int(remminafile, "imagecompression", 0);
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 31, 0)
+ SpiceImageCompression imagecompression = remmina_plugin_service->file_get_int(remminafile, "imagecompression", 0);
if (imagecompression) {
+# if SPICE_GTK_CHECK_VERSION(0, 35, 0)
spice_display_channel_change_preferred_compression(SPICE_CHANNEL(gpdata->display_channel),
imagecompression);
+# else
+ spice_display_change_preferred_compression(SPICE_CHANNEL(gpdata->display_channel),
+ imagecompression);
+# endif
}
+# endif
+#endif
gtk_container_add(GTK_CONTAINER(gp), GTK_WIDGET(display));
gtk_widget_show(GTK_WIDGET(display));
@@ -496,6 +516,8 @@ static void remmina_plugin_spice_call_feature(RemminaProtocolWidget *gp, const R
}
}
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 34, 0)
/* Array of key/value pairs for prefered video codec
* Key - SpiceVideoCodecType (spice/enums.h)
*/
@@ -509,7 +531,11 @@ static gpointer videocodec_list[] =
"5", "h265",
NULL
};
+# endif
+#endif
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 31, 0)
/* Array of key/value pairs for prefered video codec
* Key - SpiceImageCompression (spice/enums.h)
*/
@@ -525,9 +551,15 @@ static gpointer imagecompression_list[] =
"7", "LZ4",
NULL
};
+# endif
+#endif
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 34, 0)
static gchar disablegstvideooverlay_tooltip[] =
N_("Disable video overlay if videos are not displayed properly.\n");
+# endif
+#endif
/* Array of RemminaProtocolSetting for basic settings.
* Each item is composed by:
@@ -559,9 +591,15 @@ static const RemminaProtocolSetting remmina_plugin_spice_basic_settings[] =
*/
static const RemminaProtocolSetting remmina_plugin_spice_advanced_settings[] =
{
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 35, 0)
{ REMMINA_PROTOCOL_SETTING_TYPE_SELECT, "videocodec", N_("Prefered 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_("Prefered 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},
@@ -625,6 +663,8 @@ void remmina_plugin_spice_remove_list_option(gpointer *option_list, const gchar
*dst = NULL;
}
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 31, 0)
gboolean remmina_plugin_spice_is_lz4_supported() {
gboolean result = FALSE;
GOptionContext *context;
@@ -659,6 +699,8 @@ gboolean remmina_plugin_spice_is_lz4_supported() {
return result;
}
+# endif
+#endif
G_MODULE_EXPORT gboolean
remmina_plugin_entry(RemminaPluginService *service)
@@ -669,11 +711,15 @@ remmina_plugin_entry(RemminaPluginService *service)
bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+#ifdef SPICE_GTK_CHECK_VERSION
+# if SPICE_GTK_CHECK_VERSION(0, 31, 0)
if (!remmina_plugin_spice_is_lz4_supported()) {
char key_str[10];
sprintf(key_str, "%d", SPICE_IMAGE_COMPRESSION_LZ4);
remmina_plugin_spice_remove_list_option(imagecompression_list, key_str);
}
+# endif
+#endif
if (!service->register_plugin((RemminaPlugin*)&remmina_plugin_spice)) {
return FALSE;