95 |
static void |
static void |
96 |
rdpsnd_process_negotiate(STREAM in) |
rdpsnd_process_negotiate(STREAM in) |
97 |
{ |
{ |
98 |
unsigned int in_format_count, i; |
uint16 in_format_count, i; |
99 |
|
uint8 pad; |
100 |
|
uint16 version; |
101 |
WAVEFORMATEX *format; |
WAVEFORMATEX *format; |
102 |
STREAM out; |
STREAM out; |
103 |
BOOL device_available = False; |
BOOL device_available = False; |
104 |
int readcnt; |
int readcnt; |
105 |
int discardcnt; |
int discardcnt; |
106 |
|
|
107 |
in_uint8s(in, 14); /* flags, volume, pitch, UDP port */ |
in_uint8s(in, 14); /* initial bytes not valid from server */ |
108 |
in_uint16_le(in, in_format_count); |
in_uint16_le(in, in_format_count); |
109 |
in_uint8s(in, 4); /* pad, status, pad */ |
in_uint8(in, pad); |
110 |
|
in_uint16_le(in, version); |
111 |
|
in_uint8s(in, 1); /* padding */ |
112 |
|
|
113 |
if (current_driver->wave_out_open()) |
if (current_driver->wave_out_open()) |
114 |
{ |
{ |
159 |
out_uint16(out, 0); /* UDP port */ |
out_uint16(out, 0); /* UDP port */ |
160 |
|
|
161 |
out_uint16_le(out, format_count); |
out_uint16_le(out, format_count); |
162 |
out_uint8(out, 0x95); /* pad? */ |
out_uint8(out, 0); /* padding */ |
163 |
out_uint16_le(out, 2); /* status */ |
out_uint16_le(out, 2); /* version */ |
164 |
out_uint8(out, 0x77); /* pad? */ |
out_uint8(out, 0); /* padding */ |
165 |
|
|
166 |
for (i = 0; i < format_count; i++) |
for (i = 0; i < format_count; i++) |
167 |
{ |
{ |