Mercurial > repos > blastem
comparison event_log.c @ 1967:bd70f1e15684
Make netplay remote sync to network rather than audio or video so it doesn't drift out of sync with the host
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 08 May 2020 00:22:54 -0700 |
parents | 9c01945b5d20 |
children | 80920c21bb52 |
comparison
equal
deleted
inserted
replaced
1966:b3c2dcae7dfc | 1967:bd70f1e15684 |
---|---|
549 reader->input_stream.avail_out = reader->storage - init_msg_len; | 549 reader->input_stream.avail_out = reader->storage - init_msg_len; |
550 res = inflate(&reader->input_stream, Z_NO_FLUSH); | 550 res = inflate(&reader->input_stream, Z_NO_FLUSH); |
551 if (Z_OK != res && Z_BUF_ERROR != res) { | 551 if (Z_OK != res && Z_BUF_ERROR != res) { |
552 fatal_error("inflate returned %d in init_event_reader_tcp\n", res); | 552 fatal_error("inflate returned %d in init_event_reader_tcp\n", res); |
553 } | 553 } |
554 socket_blocking(reader->socket, 0); | |
555 int flag = 1; | 554 int flag = 1; |
556 setsockopt(reader->socket, IPPROTO_TCP, TCP_NODELAY, (const char *)&flag, sizeof(flag)); | 555 setsockopt(reader->socket, IPPROTO_TCP, TCP_NODELAY, (const char *)&flag, sizeof(flag)); |
557 } | 556 } |
558 | 557 |
559 static void read_from_socket(event_reader *reader) | 558 static void read_from_socket(event_reader *reader) |
606 } | 605 } |
607 | 606 |
608 void reader_ensure_data(event_reader *reader, size_t bytes) | 607 void reader_ensure_data(event_reader *reader, size_t bytes) |
609 { | 608 { |
610 if (reader->buffer.size - reader->buffer.cur_pos < bytes) { | 609 if (reader->buffer.size - reader->buffer.cur_pos < bytes) { |
611 if (reader->socket) { | |
612 read_from_socket(reader); | |
613 } | |
614 if (reader->input_stream.avail_in) { | 610 if (reader->input_stream.avail_in) { |
615 inflate_flush(reader); | 611 inflate_flush(reader); |
616 } | 612 } |
617 if (reader->socket && reader->buffer.size - reader->buffer.cur_pos < bytes) { | 613 if (reader->socket) { |
618 socket_blocking(reader->socket, 1); | |
619 while (reader->buffer.size - reader->buffer.cur_pos < bytes) { | 614 while (reader->buffer.size - reader->buffer.cur_pos < bytes) { |
620 read_from_socket(reader); | 615 read_from_socket(reader); |
621 inflate_flush(reader); | 616 inflate_flush(reader); |
622 } | 617 } |
623 socket_blocking(reader->socket, 0); | |
624 } | 618 } |
625 } | 619 } |
626 } | 620 } |
627 | 621 |
628 uint8_t reader_next_event(event_reader *reader, uint32_t *cycle_out) | 622 uint8_t reader_next_event(event_reader *reader, uint32_t *cycle_out) |