Update rdpsnd_negotiate() to new information.

git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@1339 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
Pierre Ossman 2006-12-06 13:11:35 +00:00
parent 7f088cbabf
commit 838f43b3b7

View File

@ -95,16 +95,20 @@ rdpsnd_send_completion(uint16 tick, uint8 packet_index)
static void static void
rdpsnd_process_negotiate(STREAM in) rdpsnd_process_negotiate(STREAM in)
{ {
unsigned int in_format_count, i; uint16 in_format_count, i;
uint8 pad;
uint16 version;
WAVEFORMATEX *format; WAVEFORMATEX *format;
STREAM out; STREAM out;
BOOL device_available = False; BOOL device_available = False;
int readcnt; int readcnt;
int discardcnt; int discardcnt;
in_uint8s(in, 14); /* flags, volume, pitch, UDP port */ in_uint8s(in, 14); /* initial bytes not valid from server */
in_uint16_le(in, in_format_count); in_uint16_le(in, in_format_count);
in_uint8s(in, 4); /* pad, status, pad */ in_uint8(in, pad);
in_uint16_le(in, version);
in_uint8s(in, 1); /* padding */
if (current_driver->wave_out_open()) if (current_driver->wave_out_open())
{ {
@ -155,9 +159,9 @@ rdpsnd_process_negotiate(STREAM in)
out_uint16(out, 0); /* UDP port */ out_uint16(out, 0); /* UDP port */
out_uint16_le(out, format_count); out_uint16_le(out, format_count);
out_uint8(out, 0x95); /* pad? */ out_uint8(out, 0); /* padding */
out_uint16_le(out, 2); /* status */ out_uint16_le(out, 2); /* version */
out_uint8(out, 0x77); /* pad? */ out_uint8(out, 0); /* padding */
for (i = 0; i < format_count; i++) for (i = 0; i < format_count; i++)
{ {