Fixed loading of sound channel

Ensure sound channel is loaded if settings require it in freerdp_client_load_addins
This commit is contained in:
Armin Novak 2019-07-30 09:39:45 +02:00
parent 4128c6741d
commit fe6a4c5648
2 changed files with 31 additions and 14 deletions

View File

@ -3114,6 +3114,17 @@ BOOL freerdp_client_load_addins(rdpChannels* channels, rdpSettings* settings)
UINT32 index;
ADDIN_ARGV* args;
if (settings->AudioPlayback)
{
char* p[] =
{
"rdpsnd"
};
if (!freerdp_client_add_static_channel(settings, ARRAYSIZE(p), p))
return FALSE;
}
if ((freerdp_static_channel_collection_find(settings, "rdpsnd")) ||
(freerdp_dynamic_channel_collection_find(settings, "tsmf")))
{

View File

@ -1218,21 +1218,27 @@ BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings*
if (~file->AudioMode)
{
if (file->AudioMode == AUDIO_MODE_REDIRECT)
switch(file->AudioMode)
{
if (!freerdp_settings_set_bool(settings, FreeRDP_AudioPlayback, TRUE))
return FALSE;
}
else if (file->AudioMode == AUDIO_MODE_PLAY_ON_SERVER)
{
if (!freerdp_settings_set_bool(settings, FreeRDP_RemoteConsoleAudio, TRUE))
return FALSE;
}
else if (file->AudioMode == AUDIO_MODE_NONE)
{
if (!freerdp_settings_set_bool(settings, FreeRDP_AudioPlayback, FALSE) ||
!freerdp_settings_set_bool(settings, FreeRDP_RemoteConsoleAudio, FALSE))
return FALSE;
case AUDIO_MODE_REDIRECT:
if (!freerdp_settings_set_bool(settings, FreeRDP_RemoteConsoleAudio, FALSE))
return FALSE;
if (!freerdp_settings_set_bool(settings, FreeRDP_AudioPlayback, TRUE))
return FALSE;
break;
case AUDIO_MODE_PLAY_ON_SERVER:
if (!freerdp_settings_set_bool(settings, FreeRDP_RemoteConsoleAudio, TRUE))
return FALSE;
if (!freerdp_settings_set_bool(settings, FreeRDP_AudioPlayback, FALSE))
return FALSE;
break;
case AUDIO_MODE_NONE:
default:
if (!freerdp_settings_set_bool(settings, FreeRDP_AudioPlayback, FALSE))
return FALSE;
if (!freerdp_settings_set_bool(settings, FreeRDP_RemoteConsoleAudio, FALSE))
return FALSE;
break;
}
}