The SMC problem was solved in following manner:
- Every trace linked to another remembers when it was linked (a special timestamp value called traceLinkTimeStamp)
- When true SMC happens it incremements the traceLinkTimeStamp
- Jump to the linked trace won't be allowed if traceLinkTimeStamp in the link doesn't match traceLinkTimeStamp
So SMC effectively breaks all trace links and therefore I should not care for them anymore
5%-10% speedup on OS boot benchamarks observed
- added 'sound' option to select the driver and the wave output device
(see bochsrc sample for details)
- the wave device option of sb16 and es1370 is now only used to set up the
wave input device (if necessary)
- cleaned up the speaker code to initialize the 'sound' case correctly
- use LibVNCServer macros for pthread mutex support in the keyboard / mouse code
- workaround for WIN32: use critical section stuff instead (not yet present in
LibVNCServer)
- don't quit simulation on client disconnect (reverted to original behavior)
- don't wait for client connection on startup if timeout is set to 0
- RFB color handling rewritten to fix headerbar and statusbar colors in 8 bpp
graphics modes (they no longer depend on VGA palette)
- set maximum resolution to 1280x1024 (same as vncsrv)
- minor other changes
- vncsrv: noclient mode: simulation run even without client connected
- vncsrv / rfb: parse specific options before starting server thread
- vncsrv / rfb: panic on invalid timeout value
- vncsrv: don't wait for client connection if timeout value is 0
- vncsrv / rfb: removed unnecessary newlines
- quit simulation if the client has disconnected
- moved update region checks to new function rfbAddUpdateRegion
- changed the order of methods and function in the file
- use the CXXFLAGS and link options provided by the libvncserver-config script
- added Windows support for MinGW/MSYS (compiles fine, but crashes sometimes)
higher resolutions and > 8 bpp graphics modes. The RFB gui with limited
capabilities is still available.
TODO:
- fix random segfaults in dimension_update()
- Windows (MinGW) support
- fixes for clients not supporting 'rfbEncodingNewFBSize'
- fix cursor shape after dimension update()