30 |
#define RDPSND_SET_VOLUME 3 |
#define RDPSND_SET_VOLUME 3 |
31 |
#define RDPSND_UNKNOWN4 4 |
#define RDPSND_UNKNOWN4 4 |
32 |
#define RDPSND_COMPLETION 5 |
#define RDPSND_COMPLETION 5 |
33 |
#define RDPSND_SERVERTICK 6 |
#define RDPSND_PING 6 |
34 |
#define RDPSND_NEGOTIATE 7 |
#define RDPSND_NEGOTIATE 7 |
35 |
|
|
36 |
#define MAX_FORMATS 10 |
#define MAX_FORMATS 10 |
176 |
} |
} |
177 |
|
|
178 |
static void |
static void |
179 |
rdpsnd_process_servertick(STREAM in) |
rdpsnd_process_ping(STREAM in) |
180 |
{ |
{ |
181 |
uint16 tick1, tick2; |
uint16 tick; |
182 |
STREAM out; |
STREAM out; |
183 |
|
|
184 |
/* in_uint8s(in, 4); unknown */ |
in_uint16_le(in, tick); |
185 |
in_uint16_le(in, tick1); |
|
186 |
in_uint16_le(in, tick2); |
out = rdpsnd_init_packet(RDPSND_PING | 0x2300, 4); |
187 |
|
out_uint16_le(out, tick); |
188 |
out = rdpsnd_init_packet(RDPSND_SERVERTICK | 0x2300, 4); |
out_uint16_le(out, 0); |
|
out_uint16_le(out, tick1); |
|
|
out_uint16_le(out, tick2); |
|
189 |
s_mark_end(out); |
s_mark_end(out); |
190 |
rdpsnd_send(out); |
rdpsnd_send(out); |
191 |
} |
} |
263 |
case RDPSND_NEGOTIATE: |
case RDPSND_NEGOTIATE: |
264 |
rdpsnd_process_negotiate(s); |
rdpsnd_process_negotiate(s); |
265 |
break; |
break; |
266 |
case RDPSND_SERVERTICK: |
case RDPSND_PING: |
267 |
rdpsnd_process_servertick(s); |
rdpsnd_process_ping(s); |
268 |
break; |
break; |
269 |
case RDPSND_SET_VOLUME: |
case RDPSND_SET_VOLUME: |
270 |
in_uint32(s, volume); |
in_uint32(s, volume); |
559 |
|
|
560 |
elapsed = (packet->completion_tv.tv_sec - packet->arrive_tv.tv_sec) * 1000000 + |
elapsed = (packet->completion_tv.tv_sec - packet->arrive_tv.tv_sec) * 1000000 + |
561 |
(packet->completion_tv.tv_usec - packet->arrive_tv.tv_usec); |
(packet->completion_tv.tv_usec - packet->arrive_tv.tv_usec); |
562 |
|
elapsed /= 1000; |
563 |
|
|
564 |
xfree(packet->s.data); |
xfree(packet->s.data); |
565 |
rdpsnd_send_completion((packet->tick + elapsed) % 65536, packet->index); |
rdpsnd_send_completion((packet->tick + elapsed) % 65536, packet->index); |