Commit Graph

22 Commits

Author SHA1 Message Date
Stephen Heumann a11e065a35 Adjust the mode-switching code to provide smoother transitions.
This leaves the SHR screen active throughout the mode switch.
2016-09-28 23:22:16 -05:00
Stephen Heumann b97dcb39e8 Make sure connection is closed and ipid is logged out in error cases. 2016-09-21 23:52:25 -05:00
Stephen Heumann e15038f3ec Avoid long hangs on disconnect if the connection is disrupted. 2016-09-21 21:23:06 -05:00
Stephen Heumann aa868d6ff6 Move TCP read routines to a separate file.
Also, clean up some of the includes in various files.
2016-09-17 17:06:53 -05:00
Stephen Heumann ceeaeb7767 Access data in read buffer using pointer instead of handle.
This is a prelude to revamping the read routines.
2016-09-15 21:40:39 -05:00
Stephen Heumann 462b351425 Report zero-length reads as successful.
I've encountered a server that sometimes sends zero-size cursor updates, which can trigger this case.
2016-09-05 21:52:24 -05:00
Stephen Heumann af7b5b8119 Do raw drawing incrementally while data is being received.
This currently disables the support for skipping invisible pixels. It is generally not very important, since raw drawing speed usually is not the bottleneck.
2016-09-05 17:22:10 -05:00
Stephen Heumann ec3cbc6748 Implement option to tune Marinetti for high throughput.
This sets the tcpTUNEIPUSERPOLLCT and tcpTUNEIPRUNQCT tuning parameters to 10 (the maximum) instead of the default of 2. This makes Marinetti process more incoming data at once and significantly increases throughput. (Actually, current versions of Marinetti only seem to use tcpTUNEIPUSERPOLLCT, but we set both for compatibility with any future versions that actually use tcpTUNEIPRUNQCT.)
2016-09-02 19:08:45 -05:00
Stephen Heumann aa15c60672 Have Marinetti return a new handle in ReadFixup.
This should be faster, as in DoReadTCP, and it simplifies the code a little.

Also, check for returned data size of 0 in DoReadTCP. I don't think this should happen, but in case it did, the returned handle could be invalid.
2016-05-28 23:19:13 -05:00
Stephen Heumann e1288f7e1b Small refactoring to reduce boilerplate code
DoReadTCP automatically disposes the old read buffer handle before doing the read, and then locks the new read buffer handle before returning. This removes the need for most explicit locking/unlocking of the handle. A macro is provided to dispose of the handle earlier (useful in a few cases where it may be big, and another read isn't immediately performed).

Also, set displayInProgress to FALSE in NextRect, rather than in code for each encoding.
2016-05-28 21:59:35 -05:00
Stephen Heumann 3a175f9b02 Have Marinetti return read data in a new handle.
This should be faster than the other options (reusing an existing handle or using a pointer) because it avoids an extra copy of the data inside Marinetti. For the other options, Marinetti will create a new handle and copy the data to it anyway, but then copy it again into the requested destination.
2016-05-28 20:41:43 -05:00
Stephen Heumann d1b2e10489 Don't duplicatively regenerate color table entries.
The logic for making sure the color table was complete before connecting was slightly broken due to wraparound, so it would cause all entries to be generated, re-generating any that already had been. This fixes it, which should make the initial connection process slightly faster on slow systems.
2016-05-21 00:23:48 -05:00
Stephen Heumann 12999358b5 Use a static (instead of dynamically allocated) buffer for SHR pixels generated from raw decoding.
The program code is moved to a separate segment to make room for the buffer.
2016-05-13 21:44:12 -05:00
Stephen Heumann 141739c985 Clean up headers and make things static where appropriate.
Also include a few missing prototypes, which could possibly fix bugs.
2016-05-13 20:19:27 -05:00
Stephen Heumann e0044468e3 Fix a memory leak in ReadFixup.
The buffer from the last read is still left around until the next one, but this should usually be fairly small, and it's the same behavior as the main DoReadTCP routine.
2015-09-29 17:21:37 -05:00
Stephen Heumann 8cdef04732 Terminate blocking reads on TCP errors, instead of waiting for timer to expire.
This should avoid most cases where the program seems to hang for 15 seconds.
2015-09-25 19:02:52 -05:00
Stephen Heumann ebf5297779 Switch to standard indentation of closing braces 2015-09-23 20:56:33 -05:00
Stephen Heumann ab3210adb0 Consistently use spaces for indentation 2015-09-23 20:26:03 -05:00
Stephen Heumann 31ff375570 Post-1.0b1 work in progress from 2004.
This contains partial code for displaying the cursor locally.
2015-09-23 19:40:17 -05:00
Stephen Heumann fb43622db7 VNCview GS 1.0b1 sources 2015-09-23 19:06:46 -05:00
Stephen Heumann 48972d5a9c VNCview GS 1.0a2 sources 2015-09-23 19:02:23 -05:00
Stephen Heumann 16f792352e VNCview GS 1.0a1 sources 2015-09-23 18:46:47 -05:00