summaryrefslogtreecommitdiff
path: root/spice.proto
AgeCommit message (Collapse)AuthorFilesLines
2014-03-12spice-common: start adding egl protocolHEADmasterDave Airlie1-0/+13
2014-01-02Add support for the Opus codec.Jeremy White1-0/+1
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
2013-09-12proto: add fake last message in base channelMarc-André Lureau1-0/+2
Make it explicit that 100 is the last value of the base channel messages. This allows clients to use the generated enum value too.
2013-09-12proto: comment future surface flags usageMarc-André Lureau1-0/+2
2013-04-22add SPICE_MSG_PLAYBACK_LATENCYYonit Halperin1-0/+4
SPICE_MSG_PLAYBACK_LATENCY is intended for adjusting the latency of the audio playback. It is used for synchronizing the audio and video playback. The corresponding capability is SPICE_PLAYBACK_CAP_LATENCY.
2013-04-22add stream report messagesYonit Halperin1-0/+18
If the server & client support SPICE_DISPLAY_CAP_STREAM_REPORT, the server first sends SPICE_MSG_DISPLAY_STREAM_ACTIVATE_REPORT. Then, the client periodically sends SPICE_MSGC_DISPLAY_STREAM_REPORT messages that supply the server details about the current quality of the video streaming on the client side. The server analyses the report and adjust the stream parameters accordingly.
2012-12-05Add a "port" channelMarc-André Lureau1-0/+17
A Spice port channel carry arbitrary data between the Spice client and the Spice server. It may be used to provide additional services on top of a Spice connection. For example, a channel can be associated with the qemu monitor for the client to interact with it, just like any qemu chardev. Or it may be used with various protocols, such as the Spice Controller. A port kind is identified simply by its fqdn, such as org.qemu.monitor, org.spice.spicy.test or org.ovirt.controller... The channel is based on Spicevmc which simply tunnels data between client and server. A few messages have been added: SPICE_MSG_PORT_INIT: Describes the port state and fqdn name, should be sent only once when the client connects. SPICE_MSG_PORT_EVENT: Server port event. SPICE_PORT_EVENT_OPENED and SPICE_PORT_EVENT_CLOSED are typical values when the chardev is opened or closed. SPICE_MSGC_PORT_EVENT: Client port event.
2012-08-27inputs: add a INPUTS_KEY_SCANCODE messageMarc-André Lureau1-0/+2
Add a new arbitrary keyboard scancodes message. For now, it will be used to avoid unwanted key repeatition when there is jitter in the network and too much time between DOWN and UP messages, instead the client will send the press & release scancode in a sequence. See also: https://bugzilla.redhat.com/show_bug.cgi?id=812347
2012-08-27support seamless migrationYonit Halperin1-3/+21
see spice-protocol for more details commit 3838ad140a046c4ddf42fef58c9727ecfdc09f9f
2012-08-27add SPICE_MSG_MAIN_AGENT_CONNECTED_TOKENSYonit Halperin1-0/+4
The msg is used for setting the number of allocated client tokens when we notify the client that the agent is attached.
2012-08-24Add support for A8 images to the LZ routinesSøren Sandmann Pedersen1-1/+55
This format is needed to add Render support to the X driver, so we need the ability to compress and decompress it.
2012-07-12support multiple monitors in single display channelAlon Levy1-0/+16
See spice-protocol commit for details: da908f89b581fd4725da997fdaea209f8e6548f6 support multiple monitors on a single display channel
2012-06-14smartcard: build fixes for spice serverAlon Levy1-3/+3
Define different enums that have a SPICE_ prefix to not conflict with same value enums from libcacard/vsccard_common.h, and continue to use the same SPICE_MSG_SMARTCARD_DATA and SPICE_MSGC_SMARTCARD_DATA enum that is used by the server and clients (spice-gtk, spicec) alike.
2012-05-02video streaming: add support for frames of different sizesYonit Halperin1-3/+16
rhbz #813826, #815426 Add SPICE_MSG_DISPLAY_STREAM_DATA_SIZED, for stream_data message that also contains the size and destination box of the data. The server can send such messages only to clients with SPICE_DISPLAY_CAP_SIZED_STREAM.
2012-03-21spice.proto: fix demarshaller crash with name messageMarc-André Lureau1-1/+1
It turned out the demarshaller wasn't allocating enough space to memcpy the name. In order to take into account the size of a variable array, it needs to be marked with the @end tag so that the "extra_size" is added to the allocated memory. It would be nice if the demarshaller would somehow fail if this wasn't set explicitly, or do the right thing by default. @end the name so that demarshaller
2012-03-20use new @ifdef directive for smartcard messagesChristophe Fergeau1-1/+1
We don't want to conditionally compile the smartcard messages depending on whether USE_SMARTCARD is set or not, we can now use the @ifdef attribute for that.
2012-03-20add smartcard bits to spice.protoChristophe Fergeau1-4/+73
2012-03-20Send name & uuid to capable clientsbefore-split2Marc-André Lureau1-0/+10
Add spice_server_set_name() and spice_server_set_uuid() that allows the client to identify a Spice server (useful to associate settings with a particular server) The SPICE_MSG_MAIN_NAME and SPICE_MSG_MAIN_UUID messages are only sent to capable clients, announcing SPICE_MAIN_CAP_NAME_AND_UUID.
2012-03-20spice.proto: add SPICE_MSG_LIST to base channelYonit Halperin1-0/+1
2012-03-20codegen: Fix enums.h generationHans de Goede1-1/+4
With the new usbredir code we have the new concept of the abstract / generic spicevmc channel type (which just tunnels data from a qemu chardev), and we've the usbredir channel, which is the only current user of this. This was reflected in the protocols enum in spice-protocol.h by a manual edit done by me, my bad. This patch teaches spice.proto about the relation between the abstract spicevmc channel and the usbredir channel and modifies codegen to deal with this. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2012-03-20spice.proto: add SPICE_MSG_MAIN_MIGRATE_END & SPICE_MSGC_MAIN_MIGRATE_ENDYonit Halperin1-0/+4
(cherry picked from commit cfbd07710562e522179ae5a7085a789489a821bb branch 0.8)
2012-03-20server,proto: tell the clients to connect to the migration target before ↵Yonit Halperin1-3/+2
migraton starts (1) send SPICE_MSG_MAIN_MIGRATE_BEGIN upon spice_server_migrate_connect (to all the clients that support it) (2) wait for SPICE_MSGC_MAIN_MIGRATE_(CONNECTED|CONNECT_ERROR) from all the relevant clients, or a timeout, in order to complete client_migrate_info monitor command (cherry picked from commit 5560c56ef05c74da5e0e0825dc1f134019593cad branch 0.8; Was modified to support the separation of main channel from reds, and multiple clients) Conflicts: server/reds.c
2012-03-20spice.proto: add comment for origin of STYLED and START_WITH_GAPAlon Levy1-0/+5
2012-03-20server: Add a usbredir channelHans de Goede1-0/+8
2012-03-20sndworker: add AudioVolume/AudioMute messagesMarc-André Lureau1-0/+13
These messages allow the guest to send the audio device volume to the client. It uses an arbitrary scale of 16bits, which works good enough for now. Save VolumeState in {Playback,Record}State, so that we can send the current volume on channel connection. Note about future improvements: - add exact dB support - add client to guest volume change Updated since v2: - bumped record and playback interface minor version to allow conditional compilation Updated since v1: - sync record volume on connection too
2012-03-20spice.proto: Fill.rop_descriptor type s/uint16/ropd (10x atiti)Alon Levy1-1/+1
2012-03-20smartcard: add to spice.protoAlon Levy1-0/+8
2012-03-20Don't send padding over the network with video dataAlexander Larsson1-2/+0
2012-03-20Don't send CursorHeader if cursor_flags is NONEAlexander Larsson1-1/+4
2012-03-20Send Clip.rects inline rather than using a pointerAlexander Larsson1-1/+1
2012-03-20codegen: Various cleanupsAlexander Larsson1-12/+7
Remove all uses of @end in the marshaller, instead just using the C struct array-at-end-of-struct. To make this work we also remove all use of @end for switches (making them C unions). We drop the zero member of the notify message so that we can avoid this use of @end for a primitive in the marshaller (plus its useless to send over the wire). We change the offsets and stuff in the migration messages to real pointers.
2012-03-20Don't marshall bitmap data as pointer, instead send inlineAlexander Larsson1-1/+1
2012-03-20Fix various misspellingsAlexander Larsson1-1/+1
letancy -> latency compund -> compound SpicedSubMessage -> SpiceSubMessage modifaiers -> modifiers massage -> message outgoiong -> outgoing AlphaBlnd -> AlphaBlend remoth -> remote modifires -> modifiers secore -> secure
2012-03-20codegen: No SPICE_ADDRESS types left, drop @c_ptrAlexander Larsson1-13/+13
2012-03-20Properly parse QXLLineAttrs.styleAlexander Larsson1-1/+1
2012-03-20Properly parse QXLImage to the new-world SpiceImageGerd Hoffmann1-38/+43
SpiceImage now replaces RedImage and has all image types in it. All image data are now chunked (and as such not copied when demarshalling).
2012-03-20Convert SpicePath.segments to a pointer arrayAlexander Larsson1-1/+1
2012-03-20Properly parse and marshall SpiceStringGerd Hoffmann1-5/+5
2012-03-20Simplify SpiceLineAttr by removing unsed stuffAlexander Larsson1-19/+9
Also in new protocol don't send style data if not needed.
2012-03-20Automatically marshall SpiceClipRectsAlexander Larsson1-1/+1
2012-03-20Automatically marshall SpicePathAlexander Larsson1-1/+1
2012-03-20Store SpicePath segment count rather than sizeAlexander Larsson1-2/+2
Internally and in the network protocol (for the new version) we now store the actual number of segments rather than the size of the full segments array in bytes. This change consists of multiple changes to handle this: * Make the qxl parser calculate num_segments * Make the canvas stroke code handle the new SpicePath layout. * Fix up is_equal_path in red_worker.c for the new layout * replace multiple calls to spice_marshall_PathSegment with a single spice_marshall_Path call * Make the byte_size() array size handling do the conversion from network size to number of elements when marshalling/demarshalling. * Update the current spice protocol to send the segment count rather than the size * Update the old spice protocol to use the new byte_size functionallity to calculate the size sent and the number of elements recieved
2012-03-20Update client and protocol to support the new SpiceClipRectsAlexander Larsson1-1/+1
2012-03-20qxl abi: parse QXLCopy + QXLBlend.Gerd Hoffmann1-2/+2
Also adapt to tyops fix (s/rop_decriptor/rop_descriptor/).
2012-03-20qxl abi: parse QXLOpaque.Gerd Hoffmann1-1/+1
Also adapt to tyops fix (s/rop_decriptor/rop_descriptor/).
2012-03-20qxl abi: parse QXLFill.Gerd Hoffmann1-1/+1
Also adapt to tyops fix (s/rop_decriptor/rop_descriptor/).
2012-03-20spice.proto: surface_create.format is of type surface_fmtAlexander Larsson1-1/+1
2012-03-20Use smaller size for enums and flags on the networkAlexander Larsson1-16/+16
This makes the protocol more compact. This was mainly done for the commonly used types. Some seldom used ones are still 32bit for future compatibility.
2012-03-20Remove support for clip by pathAlexander Larsson1-4/+1
This is not supported currently anyway and was not generated before.
2012-03-20spice.proto: No need for @ptr32 as that is now the defaultAlexander Larsson1-2/+2