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:
authorllyzs <llyzs.vic@gmail.com>2011-03-15 19:07:45 +0300
committerVic Lee (llyzs) <llyzs@b6cfa94a-2857-405c-b0d6-536ef9fc39e1>2011-03-15 19:07:45 +0300
commit28b17bf398fe31a2e20acd4ee5fa3b30f5596b56 (patch)
treec93ed4ca77b5a9555345535b64d6264c77f0a769 /remmina-plugins
parent71bfe9b751c67a31c1dedc2f322d0c346653e284 (diff)
RDP: provide sound quality options
Diffstat (limited to 'remmina-plugins')
-rw-r--r--remmina-plugins/rdp/remminapluginrdp.c34
-rw-r--r--remmina-plugins/rdp/remminapluginrdp.h2
2 files changed, 33 insertions, 3 deletions
diff --git a/remmina-plugins/rdp/remminapluginrdp.c b/remmina-plugins/rdp/remminapluginrdp.c
index 80a1ca4f1..b7ec4d3b6 100644
--- a/remmina-plugins/rdp/remminapluginrdp.c
+++ b/remmina-plugins/rdp/remminapluginrdp.c
@@ -130,6 +130,7 @@ remmina_plugin_rdp_main (RemminaProtocolWidget *gp)
gchar *value;
gint rdpdr_num;
gint drdynvc_num;
+ gint rdpsnd_num;
const gchar *cs;
gpdata = GET_DATA (gp);
@@ -251,13 +252,37 @@ remmina_plugin_rdp_main (RemminaProtocolWidget *gp)
}
drdynvc_num = 0;
- if (g_strcmp0 (remmina_plugin_service->file_get_string (remminafile, "sound"), "remote") == 0)
+ rdpsnd_num = 0;
+ cs = remmina_plugin_service->file_get_string (remminafile, "sound");
+ if (g_strcmp0 (cs, "remote") == 0)
{
gpdata->settings->console_audio = 1;
}
- else if (g_strcmp0 (remmina_plugin_service->file_get_string (remminafile, "sound"), "local") == 0)
+ else if (g_str_has_prefix (cs, "local"))
{
- freerdp_chanman_load_plugin (gpdata->chan_man, gpdata->settings, "rdpsnd", NULL);
+ cs = strchr (cs, ',');
+ if (cs)
+ {
+ snprintf (gpdata->rdpsnd_options, sizeof (gpdata->rdpsnd_options), "%s", cs + 1);
+ s = strchr (gpdata->rdpsnd_options, ',');
+ if (s) *s++ = '\0';
+
+ gpdata->rdpsnd_data[rdpsnd_num].size = sizeof(RD_PLUGIN_DATA);
+ gpdata->rdpsnd_data[rdpsnd_num].data[0] = "rate";
+ gpdata->rdpsnd_data[rdpsnd_num].data[1] = gpdata->rdpsnd_options;
+ rdpsnd_num++;
+
+ if (s)
+ {
+ gpdata->rdpsnd_data[rdpsnd_num].size = sizeof(RD_PLUGIN_DATA);
+ gpdata->rdpsnd_data[rdpsnd_num].data[0] = "channel";
+ gpdata->rdpsnd_data[rdpsnd_num].data[1] = s;
+ rdpsnd_num++;
+ }
+ }
+
+ freerdp_chanman_load_plugin (gpdata->chan_man, gpdata->settings, "rdpsnd", gpdata->rdpsnd_data);
+
gpdata->drdynvc_data[drdynvc_num].size = sizeof(RD_PLUGIN_DATA);
gpdata->drdynvc_data[drdynvc_num].data[0] = "audin";
drdynvc_num++;
@@ -506,6 +531,9 @@ static gpointer sound_list[] =
{
"off", N_("Off"),
"local", N_("Local"),
+ "local,11025,1", N_("Local - low quality"),
+ "local,22050,2", N_("Local - medium quality"),
+ "local,44100,2", N_("Local - high quality"),
"remote", N_("Remote"),
NULL
};
diff --git a/remmina-plugins/rdp/remminapluginrdp.h b/remmina-plugins/rdp/remminapluginrdp.h
index 3d749334a..50252425c 100644
--- a/remmina-plugins/rdp/remminapluginrdp.h
+++ b/remmina-plugins/rdp/remminapluginrdp.h
@@ -53,6 +53,8 @@ typedef struct _RemminaPluginRdpData
RD_PLUGIN_DATA rdpdr_data[5];
RD_PLUGIN_DATA drdynvc_data[5];
+ RD_PLUGIN_DATA rdpsnd_data[5];
+ gchar rdpsnd_options[20];
GtkWidget *drawing_area;
gint scale_width;