aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/SMsgWriter.h
Commit message (Collapse)AuthorAgeFilesLines
* Require all SMsgWriter caller to check capabilitiesPierre Ossman2018-12-101-3/+3
| | | | | | Make the API consisitent by requiring the caller to check what the client supports before calling any of the write* functions. This avoids the confusion that the functions might not always do anything.
* Abstract sending cursor and resizing the desktopPierre Ossman2018-12-101-15/+4
| | | | | | Avoid having the callers need to know about the different variants of these functions and instead have the writer pick the most appropriate extension.
* Always send current screen layout to clientPierre Ossman2018-12-101-5/+1
| | | | | | This is what the protocol requires, rather than sending what the client specified in the request. This should be the same in practice except for failures and possibly some races.
* Make arguments explicit in all message writer methodsPierre Ossman2018-11-011-1/+3
| | | | | | Make sure all methods only write what is given as arguments, and avoid side effects by getting data from parameter objects. This keeps things readable in the calling code.
* Rename ConnParams to ClientParamsPierre Ossman2018-11-011-3/+3
| | | | | | Now that we've split out server state to ServerParams, ConnParams only contains state for a client. Rename the class and variables to reflect this.
* Merge branch 'fix-warnings'Pierre Ossman2017-09-151-1/+1
|\
| * rfb: Fix struct-vs-class warningsSteve Kondik2017-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang doesn't like when struct and class are used to refer to the same thing interchangeably. Fixes all instances of: In file included from /home/shade/dev/tigervnc/common/rfb/CConnection.cxx:29: In file included from /home/shade/dev/tigervnc/common/rfb/CConnection.h:28: /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:35:3: error: class 'Exception' was previously declared as a struct [-Werror,-Wmismatched-tags] class Exception; ^ /home/shade/dev/tigervnc/common/rdr/Exception.h:32:10: note: previous use is here struct Exception { ^ /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:35:3: note: did you mean struct here? class Exception; ^~~~~ struct /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:43:3: error: class 'Rect' was previously declared as a struct [-Werror,-Wmismatched-tags] class Rect; ^ /home/shade/dev/tigervnc/common/rfb/Rect.h:68:10: note: previous use is here struct Rect { ^ /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:43:3: note: did you mean struct here? class Rect; ^~~~~ struct
* | Remove unused needsLastRect state variablePierre Ossman2017-08-281-1/+0
| |
* | Basic support for QEMU Extended Key EventsPierre Ossman2017-08-281-0/+5
| | | | | | | | | | | | This adds the basic infrastructure and handshake for the QEMU Extended Key Events extension. No viewer or server makes use of the extra functionality yet though.
* | Send lock LED state from server to clientPierre Ossman2017-08-241-0/+5
|/
* Server support for cursor with alphaPierre Ossman2017-02-221-0/+5
|
* Change cursor API to use RGBA dataPierre Ossman2017-02-221-1/+0
| | | | | This will allow us to use better formats that preserve the entire alpha channel.
* Move encoder statistics into EncodeManager from SMsgWriterPierre Ossman2015-02-131-13/+0
| | | | It knows more details so it can track things better.
* Move image encoding logic into a central EncodeManager classPierre Ossman2014-07-141-7/+0
| | | | | | | | This allows us to apply a lot more server logic independently of which encoder is in use. Most of this class are things moved over from the Tight encoder.
* Store the mouse cursor in the ConnParams objectPierre Ossman2014-07-141-17/+13
| | | | | | Like we do for everything else. This also gets rid of the callback, which is a bit out of place compared to everything else.
* Encoders/decoders should track the connection objectPierre Ossman2014-07-071-3/+0
| | | | | | The connection object is a much more appropriate object for the decoders and encoders to keep track of. Besides the streams, it also contains state like connection parameters.
* Push encoder and decoder handling down into the connection objectsPierre Ossman2014-07-071-28/+6
| | | | | This keeps the reader and writer objects clean and simple protocol decoders/encoders.
* Remove full support for colour mapsPierre Ossman2014-07-071-4/+4
| | | | | | | | | Gets rid of a loooot of code and complexity. Colour map clients are still supported through an automatically generated map, but we lose the ability to develop a client or server that uses colour maps internally.
* Remove partial update functionalityPierre Ossman2014-07-071-10/+6
| | | | | | Get rid of the ability of encoders to only send part of the rectangle they are given as we don't want partial updates anyway.
* Move serialisation of pseudorects into separate functionsPierre Ossman2014-07-071-0/+6
| | | | Keeps the code clearer.
* Merge the "V3" message classes into the normal onesPierre Ossman2014-07-071-51/+67
| | | | We have no need for this abstraction so let's keep things simple.
* Remove unsused, commented out codePierre Ossman2014-07-071-12/+0
|
* Basic infrastructure for continuous updates.Pierre Ossman2011-11-141-0/+4
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4801 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Basic infrastructure to support fences.Pierre Ossman2011-11-141-0/+4
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4798 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Make rawBytesEquivalent an unsigned 64-bit integer. Otherwise, it will ↵DRC2011-08-191-2/+2
| | | | | | overflow in less than a minute if using a full-screen video or 3D application. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4639 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Further optimizations to the Tight encoder to eliminate getImage() overhead. ↵DRC2011-08-171-3/+3
| | | | | | The encoder now directly accesses the framebuffer for solid rectangle computation, JPEG encoding, and color counting (if pixel translation is not required.) Also moved everything in tightEncode.h into the TightEncoder class to eliminate all of the static mess (this will be important later on if we decide to multi-thread the encoder.) git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4631 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Eliminate GCC signed/unsigned warnings related to encodings: ThePeter Åstrand2010-02-101-3/+3
| | | | | | | | | | | | encoding in the RFB protocol has always been signed, and signed values are also used in the specification (ie DesktopName = -307 etc). In the code, however, unsigned types were used in a number of places, but not all, which causes warnings. This patch fixes the problem by switching to signed values everywhere. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3968 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Send desktop layout changes separatelyPierre Ossman2009-04-231-2/+11
| | | | | | | | | | Make sure we send any modifications to the desktop layout in a message that does not modify the framebuffer data. This is required to make sure we have a valid state on the client as it drops the framebuffer when it recieves a framebuffer dimension change. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3787 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Implement server side support for SetDesktopSize.Pierre Ossman2009-03-231-2/+8
| | | | | | | | It has some warts, but should be feature complete. Most of the magic happens in the desktop class though. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3713 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Minimal server side implementation of the extended desktop size protocol.Pierre Ossman2009-03-201-0/+3
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3698 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Remove the "video" feature and its associated custom JPEG handling.Pierre Ossman2009-03-051-6/+0
| | | | | | | | Having the client specifiy the video region is conceptually wrong and a problem like this should be handled by better encoding selection. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3635 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Implemented support for DesktopName pseudo encoding, which allowsPeter Åstrand2009-01-151-0/+2
| | | | | | | | | | updating the desktop name on the fly. Tested in ThinLinc since 2008-01-07. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3549 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Using JpegEncoder for video only with proper pixel formats.Constantin Kaplinsky2007-10-171-1/+2
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2361 3789f03b-4d11-0410-bbf8-ca57d06f2519
* In SMsgWriter, added the ability to send a video rectangle via JpegEncoder.Constantin Kaplinsky2007-08-311-0/+6
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2329 3789f03b-4d11-0410-bbf8-ca57d06f2519
* A typo fixed in a comment.Constantin Kaplinsky2007-08-311-1/+1
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2328 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Unused function commented out.Constantin Kaplinsky2007-08-311-0/+5
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2324 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Migrating to new directory structure adopted from the RealVNC's source tree. ↵Constantin Kaplinsky2006-05-251-0/+163
More changes will follow. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@589 3789f03b-4d11-0410-bbf8-ca57d06f2519