Always enable rdpsnd channel and use flags to control use
of streamed audio or not. This is a fix for driveredirection which requires rdpsnd channel to work as mentioned in the following post. http://social.msdn.microsoft.com/Forums/en-US/75024a3d-458f-4ed9-b55d-7852d0113bd7/rdpbcgrpdf-2-minors-problems-with-server-2012 git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk@1791 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
e21475f3dc
commit
b8557c42ea
@ -442,6 +442,9 @@ enum RDP_INPUT_DEVICE
|
||||
#define RD_STATUS_CANCELLED 0xc0000120
|
||||
#define RD_STATUS_DIRECTORY_NOT_EMPTY 0xc0000101
|
||||
|
||||
/* RDPSND constants */
|
||||
#define TSSNDCAPS_ALIVE 0x00000001
|
||||
#define TSSNDCAPS_VOLUME 0x00000002
|
||||
|
||||
/* RDPDR constants */
|
||||
#define RDPDR_MAX_DEVICES 0x10
|
||||
|
@ -1098,11 +1098,8 @@ main(int argc, char *argv[])
|
||||
return EX_OSERR;
|
||||
|
||||
#ifdef WITH_RDPSND
|
||||
if (g_rdpsnd)
|
||||
{
|
||||
if (!rdpsnd_init(rdpsnd_optarg))
|
||||
warning("Initializing sound-support failed!\n");
|
||||
}
|
||||
if (!rdpsnd_init(rdpsnd_optarg))
|
||||
warning("Initializing sound-support failed!\n");
|
||||
#endif
|
||||
|
||||
if (g_lspci_enabled)
|
||||
|
14
rdpsnd.c
14
rdpsnd.c
@ -45,6 +45,8 @@
|
||||
#define MAX_FORMATS 10
|
||||
#define MAX_QUEUE 50
|
||||
|
||||
extern RD_BOOL g_rdpsnd;
|
||||
|
||||
static VCHANNEL *rdpsnd_channel;
|
||||
static VCHANNEL *rdpsnddbg_channel;
|
||||
static struct audio_driver *drivers = NULL;
|
||||
@ -255,7 +257,7 @@ rdpsnd_process_negotiate(STREAM in)
|
||||
rdpsnd_reset_state();
|
||||
}
|
||||
|
||||
if (!current_driver)
|
||||
if (!current_driver && g_rdpsnd)
|
||||
device_available = rdpsnd_auto_select();
|
||||
|
||||
if (current_driver && !device_available && current_driver->wave_out_open())
|
||||
@ -301,7 +303,15 @@ rdpsnd_process_negotiate(STREAM in)
|
||||
}
|
||||
|
||||
out = rdpsnd_init_packet(RDPSND_NEGOTIATE | 0x200, 20 + 18 * format_count);
|
||||
out_uint32_le(out, 0x00800003); /* flags */
|
||||
|
||||
uint32 flags = TSSNDCAPS_VOLUME;
|
||||
|
||||
/* if sound is enabled, set snd caps to alive to enable
|
||||
transmision of audio from server */
|
||||
if (g_rdpsnd)
|
||||
flags |= TSSNDCAPS_ALIVE;
|
||||
out_uint32_le(out, flags); /* TSSNDCAPS flags */
|
||||
|
||||
out_uint32(out, 0xffffffff); /* volume */
|
||||
out_uint32(out, 0); /* pitch */
|
||||
out_uint16(out, 0); /* UDP port */
|
||||
|
Loading…
Reference in New Issue
Block a user