Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- common/messages.h | 495 +--------------------------------------------- spice.proto | 192 +++++++++--------- 2 files changed, 102 insertions(+), 585 deletions(-) diff --git a/common/messages.h b/common/messages.h index 36ee59d..5cda1d1 100644 --- a/common/messages.h +++ b/common/messages.h @@ -42,10 +42,6 @@ SPICE_BEGIN_DECLS -typedef struct SpiceMsgData { - uint8_t data[0]; -} SpiceMsgData; - typedef struct SpiceMsgCompressedData { uint8_t type; uint32_t uncompressed_size; @@ -53,438 +49,8 @@ typedef struct SpiceMsgCompressedData { uint8_t *compressed_data; } SpiceMsgCompressedData; -typedef struct SpiceMsgEmpty { - uint8_t padding; -} SpiceMsgEmpty; - -typedef struct SpiceMsgInputsInit { - uint32_t keyboard_modifiers; -} SpiceMsgInputsInit; - -typedef struct SpiceMsgInputsKeyModifiers { - uint32_t modifiers; -} SpiceMsgInputsKeyModifiers; - -typedef struct SpiceMsgMainMultiMediaTime { - uint32_t time; -} SpiceMsgMainMultiMediaTime; - -typedef struct SpiceMigrationDstInfo { - uint16_t port; - uint16_t sport; - uint32_t host_size; - uint8_t *host_data; - uint32_t cert_subject_size; - uint8_t *cert_subject_data; -} SpiceMigrationDstInfo; - -typedef struct SpiceMsgMainMigrationBegin { - SpiceMigrationDstInfo dst_info; -} SpiceMsgMainMigrationBegin; - -typedef struct SpiceMsgMainMigrateBeginSeamless { - SpiceMigrationDstInfo dst_info; - uint32_t src_mig_version; -} SpiceMsgMainMigrateBeginSeamless; - -typedef struct SpiceMsgcMainMigrateDstDoSeamless { - uint32_t src_version; -} SpiceMsgcMainMigrateDstDoSeamless; - -typedef struct SpiceMsgMainMigrationSwitchHost { - uint16_t port; - uint16_t sport; - uint32_t host_size; - uint8_t *host_data; - uint32_t cert_subject_size; - uint8_t *cert_subject_data; -} SpiceMsgMainMigrationSwitchHost; - - -typedef struct SpiceMsgMigrate { - uint32_t flags; -} SpiceMsgMigrate; - -typedef struct SpiceResourceID { - uint8_t type; - uint64_t id; -} SpiceResourceID; - -typedef struct SpiceResourceList { - uint16_t count; - SpiceResourceID resources[0]; -} SpiceResourceList; - -typedef struct SpiceMsgSetAck { - uint32_t generation; - uint32_t window; -} SpiceMsgSetAck; - -typedef struct SpiceMsgcAckSync { - uint32_t generation; -} SpiceMsgcAckSync; - -typedef struct SpiceWaitForChannel { - uint8_t channel_type; - uint8_t channel_id; - uint64_t message_serial; -} SpiceWaitForChannel; - -typedef struct SpiceMsgWaitForChannels { - uint8_t wait_count; - SpiceWaitForChannel wait_list[0]; -} SpiceMsgWaitForChannels; - -typedef struct SpiceChannelId { - uint8_t type; - uint8_t id; -} SpiceChannelId; - -typedef struct SpiceMsgMainInit { - uint32_t session_id; - uint32_t display_channels_hint; - uint32_t supported_mouse_modes; - uint32_t current_mouse_mode; - uint32_t agent_connected; - uint32_t agent_tokens; - uint32_t multi_media_time; - uint32_t ram_hint; -} SpiceMsgMainInit; - -typedef struct SpiceMsgDisconnect { - uint64_t time_stamp; - uint32_t reason; // SPICE_ERR_? -} SpiceMsgDisconnect; - -typedef struct SpiceMsgNotify { - uint64_t time_stamp; - uint32_t severity; - uint32_t visibilty; - uint32_t what; - uint32_t message_len; - uint8_t message[0]; -} SpiceMsgNotify; - -typedef struct SpiceMsgChannels { - uint32_t num_of_channels; - SpiceChannelId channels[0]; -} SpiceMsgChannels; - -typedef struct SpiceMsgMainName { - uint32_t name_len; - uint8_t name[0]; -} SpiceMsgMainName; - -typedef struct SpiceMsgMainUuid { - uint8_t uuid[16]; -} SpiceMsgMainUuid; - -typedef struct SpiceMsgMainMouseMode { - uint32_t supported_modes; - uint32_t current_mode; -} SpiceMsgMainMouseMode; - -typedef struct SpiceMsgPing { - uint32_t id; - uint64_t timestamp; - void *data; - uint32_t data_len; -} SpiceMsgPing; - -typedef struct SpiceMsgMainAgentDisconnect { - uint32_t error_code; // SPICE_ERR_? -} SpiceMsgMainAgentDisconnect; - #define SPICE_AGENT_MAX_DATA_SIZE 2048 -typedef struct SpiceMsgMainAgentTokens { - uint32_t num_tokens; -} SpiceMsgMainAgentTokens, SpiceMsgcMainAgentTokens, SpiceMsgcMainAgentStart; - -typedef struct SpiceMsgMainAgentTokens SpiceMsgMainAgentConnectedTokens; - -typedef struct SpiceMsgcClientInfo { - uint64_t cache_size; -} SpiceMsgcClientInfo; - -typedef struct SpiceMsgcMainMouseModeRequest { - uint32_t mode; -} SpiceMsgcMainMouseModeRequest; - -typedef struct SpiceCursor { - uint32_t flags; - SpiceCursorHeader header; - uint32_t data_size; - uint8_t *data; -} SpiceCursor; - -typedef struct SpiceMsgDisplayMode { - uint32_t x_res; - uint32_t y_res; - uint32_t bits; -} SpiceMsgDisplayMode; - -typedef struct SpiceMsgSurfaceCreate { - uint32_t surface_id; - uint32_t width; - uint32_t height; - uint32_t format; - uint32_t flags; -} SpiceMsgSurfaceCreate; - -typedef struct SpiceMsgSurfaceDestroy { - uint32_t surface_id; -} SpiceMsgSurfaceDestroy; - -typedef struct SpiceMsgDisplayBase { - uint32_t surface_id; - SpiceRect box; - SpiceClip clip; -} SpiceMsgDisplayBase; - -typedef struct SpiceMsgDisplayDrawFill { - SpiceMsgDisplayBase base; - SpiceFill data; -} SpiceMsgDisplayDrawFill; - -typedef struct SpiceMsgDisplayDrawOpaque { - SpiceMsgDisplayBase base; - SpiceOpaque data; -} SpiceMsgDisplayDrawOpaque; - -typedef struct SpiceMsgDisplayDrawCopy { - SpiceMsgDisplayBase base; - SpiceCopy data; -} SpiceMsgDisplayDrawCopy; - -typedef struct SpiceMsgDisplayDrawTransparent { - SpiceMsgDisplayBase base; - SpiceTransparent data; -} SpiceMsgDisplayDrawTransparent; - -typedef struct SpiceMsgDisplayDrawAlphaBlend { - SpiceMsgDisplayBase base; - SpiceAlphaBlend data; -} SpiceMsgDisplayDrawAlphaBlend; - -typedef struct SpiceMsgDisplayDrawComposite { - SpiceMsgDisplayBase base; - SpiceComposite data; -} SpiceMsgDisplayDrawComposite; - -typedef struct SpiceMsgDisplayCopyBits { - SpiceMsgDisplayBase base; - SpicePoint src_pos; -} SpiceMsgDisplayCopyBits; - -typedef SpiceMsgDisplayDrawCopy SpiceMsgDisplayDrawBlend; - -typedef struct SpiceMsgDisplayDrawRop3 { - SpiceMsgDisplayBase base; - SpiceRop3 data; -} SpiceMsgDisplayDrawRop3; - -typedef struct SpiceMsgDisplayDrawBlackness { - SpiceMsgDisplayBase base; - SpiceBlackness data; -} SpiceMsgDisplayDrawBlackness; - -typedef struct SpiceMsgDisplayDrawWhiteness { - SpiceMsgDisplayBase base; - SpiceWhiteness data; -} SpiceMsgDisplayDrawWhiteness; - -typedef struct SpiceMsgDisplayDrawInvers { - SpiceMsgDisplayBase base; - SpiceInvers data; -} SpiceMsgDisplayDrawInvers; - -typedef struct SpiceMsgDisplayDrawStroke { - SpiceMsgDisplayBase base; - SpiceStroke data; -} SpiceMsgDisplayDrawStroke; - -typedef struct SpiceMsgDisplayDrawText { - SpiceMsgDisplayBase base; - SpiceText data; -} SpiceMsgDisplayDrawText; - -typedef struct SpiceMsgDisplayInvalOne { - uint64_t id; -} SpiceMsgDisplayInvalOne; - -typedef struct SpiceMsgDisplayStreamCreate { - uint32_t surface_id; - uint32_t id; /* Any number from 0 to SPICE_MAX_NUM_STREAMS - 1 */ - uint32_t flags; - uint32_t codec_type; - uint64_t stamp; - uint32_t stream_width; - uint32_t stream_height; - uint32_t src_width; - uint32_t src_height; - SpiceRect dest; - SpiceClip clip; -} SpiceMsgDisplayStreamCreate; - -typedef struct SpiceStreamDataHeader { - uint32_t id; - uint32_t multi_media_time; -} SpiceStreamDataHeader; - -typedef struct SpiceMsgDisplayStreamData { - SpiceStreamDataHeader base; - uint32_t data_size; - uint8_t data[0]; -} SpiceMsgDisplayStreamData; - -typedef struct SpiceMsgDisplayStreamDataSized { - SpiceStreamDataHeader base; - uint32_t width; - uint32_t height; - SpiceRect dest; - uint32_t data_size; - uint8_t data[0]; -} SpiceMsgDisplayStreamDataSized; - -typedef struct SpiceMsgDisplayStreamClip { - uint32_t id; - SpiceClip clip; -} SpiceMsgDisplayStreamClip; - -typedef struct SpiceMsgDisplayStreamDestroy { - uint32_t id; -} SpiceMsgDisplayStreamDestroy; - -typedef struct SpiceMsgDisplayStreamActivateReport { - uint32_t stream_id; - uint32_t unique_id; - uint32_t max_window_size; - uint32_t timeout_ms; -} SpiceMsgDisplayStreamActivateReport; - -typedef struct SpiceMsgcDisplayStreamReport { - uint32_t stream_id; - uint32_t unique_id; - uint32_t start_frame_mm_time; - uint32_t end_frame_mm_time; - uint32_t num_frames; - uint32_t num_drops; - int32_t last_frame_delay; - uint32_t audio_delay; -} SpiceMsgcDisplayStreamReport; - -typedef struct SpiceMsgcDisplayGlDrawDone { -} SpiceMsgcDisplayGlDrawDone; - -typedef struct SpiceMsgCursorInit { - SpicePoint16 position; - uint16_t trail_length; - uint16_t trail_frequency; - uint8_t visible; - SpiceCursor cursor; -} SpiceMsgCursorInit; - -typedef struct SpiceMsgCursorSet { - SpicePoint16 position; - uint8_t visible; - SpiceCursor cursor; -} SpiceMsgCursorSet; - -typedef struct SpiceMsgCursorMove { - SpicePoint16 position; -} SpiceMsgCursorMove; - -typedef struct SpiceMsgCursorTrail { - uint16_t length; - uint16_t frequency; -} SpiceMsgCursorTrail; - -typedef struct SpiceMsgcDisplayInit { - uint8_t pixmap_cache_id; - int64_t pixmap_cache_size; //in pixels - uint8_t glz_dictionary_id; - int32_t glz_dictionary_window_size; // in pixels -} SpiceMsgcDisplayInit; - -typedef struct SpiceMsgcKeyDown { - uint32_t code; -} SpiceMsgcKeyDown; - -typedef struct SpiceMsgcKeyUp { - uint32_t code; -} SpiceMsgcKeyUp; - -typedef struct SpiceMsgcKeyModifiers { - uint32_t modifiers; -} SpiceMsgcKeyModifiers; - -typedef struct SpiceMsgcMouseMotion { - int32_t dx; - int32_t dy; - uint32_t buttons_state; -} SpiceMsgcMouseMotion; - -typedef struct SpiceMsgcMousePosition { - uint32_t x; - uint32_t y; - uint32_t buttons_state; - uint8_t display_id; -} SpiceMsgcMousePosition; - -typedef struct SpiceMsgcMousePress { - int32_t button; - int32_t buttons_state; -} SpiceMsgcMousePress; - -typedef struct SpiceMsgcMouseRelease { - int32_t button; - int32_t buttons_state; -} SpiceMsgcMouseRelease; - -typedef struct SpiceMsgAudioVolume { - uint8_t nchannels; - uint16_t volume[0]; -} SpiceMsgAudioVolume; - -typedef struct SpiceMsgAudioMute { - uint8_t mute; -} SpiceMsgAudioMute; - -typedef struct SpiceMsgPlaybackMode { - uint32_t time; - uint32_t mode; //SPICE_AUDIO_DATA_MODE_? - uint8_t *data; - uint32_t data_size; -} SpiceMsgPlaybackMode, SpiceMsgcRecordMode; - -typedef struct SpiceMsgPlaybackStart { - uint32_t channels; - uint32_t format; //SPICE_AUDIO_FMT_? - uint32_t frequency; - uint32_t time; -} SpiceMsgPlaybackStart; - -typedef struct SpiceMsgPlaybackPacket { - uint32_t time; - uint8_t *data; - uint32_t data_size; -} SpiceMsgPlaybackPacket, SpiceMsgcRecordPacket; - -typedef struct SpiceMsgPlaybackLatency { - uint32_t latency_ms; -} SpiceMsgPlaybackLatency; - -typedef struct SpiceMsgRecordStart { - uint32_t channels; - uint32_t format; //SPICE_AUDIO_FMT_? - uint32_t frequency; -} SpiceMsgRecordStart; - -typedef struct SpiceMsgcRecordStartMark { - uint32_t time; -} SpiceMsgcRecordStartMark; - #ifdef USE_SMARTCARD typedef struct SpiceMsgSmartcard { VSCMsgType type; @@ -503,63 +69,14 @@ typedef struct SpiceMsgcSmartcard { } SpiceMsgcSmartcard; #endif -typedef struct SpiceMsgDisplayHead { - uint32_t monitor_id; - uint32_t surface_id; - uint32_t width; - uint32_t height; - uint32_t x; - uint32_t y; - uint32_t flags; -} SpiceHead; - -typedef struct SpiceMsgDisplayMonitorsConfig { - uint16_t count; - uint16_t max_allowed; - SpiceHead heads[0]; -} SpiceMsgDisplayMonitorsConfig; - -typedef struct SpiceMsgPortInit { - uint32_t name_size; - uint8_t *name; - uint8_t opened; -} SpiceMsgPortInit; - -typedef struct SpiceMsgPortEvent { - uint8_t event; -} SpiceMsgPortEvent; - -typedef struct SpiceMsgcPortEvent { - uint8_t event; -} SpiceMsgcPortEvent; - -typedef struct SpiceMsgcDisplayPreferredVideoCodecType { - uint8_t num_of_codecs; - uint8_t codecs[0]; -} SpiceMsgcDisplayPreferredVideoCodecType; - -typedef struct SpiceMsgcDisplayPreferredCompression { - uint8_t image_compression; -} SpiceMsgcDisplayPreferredCompression; - -typedef struct SpiceMsgDisplayGlScanoutUnix { - int drm_dma_buf_fd; - uint32_t width; - uint32_t height; - uint32_t stride; - uint32_t drm_fourcc_format; - uint32_t flags; -} SpiceMsgDisplayGlScanoutUnix; - -typedef struct SpiceMsgDisplayGlDraw { - uint32_t x; - uint32_t y; - uint32_t w; - uint32_t h; -} SpiceMsgDisplayGlDraw; - #include <common/generated_messages.h> +typedef SpiceMsgMainAgentTokens SpiceMsgcMainAgentTokens; +typedef SpiceMsgMainAgentTokens SpiceMsgcMainAgentStart; +typedef SpiceMsgDisplayDrawCopy SpiceMsgDisplayDrawBlend; +typedef SpiceMsgPlaybackMode SpiceMsgcRecordMode; +typedef SpiceMsgPlaybackPacket SpiceMsgcRecordPacket; + SPICE_END_DECLS #endif // H_SPICE_COMMON_MESSAGES diff --git a/spice.proto b/spice.proto index 8148b2e..1f9f57b 100644 --- a/spice.proto +++ b/spice.proto @@ -106,11 +106,11 @@ flags16 mouse_mode { }; message Empty { -}; +} @declare; message Data { uint8 data[] @end @ctype(uint8_t); -} @nocopy; +} @nocopy @declare; enum8 data_compression_type { NONE, @@ -138,36 +138,36 @@ struct ChannelWait { uint8 channel_type; uint8 channel_id; uint64 message_serial; -} @ctype(SpiceWaitForChannel); +} @ctype(SpiceWaitForChannel) @declare; channel BaseChannel { server: message { migrate_flags flags; - } migrate; + } @declare migrate; Data migrate_data; message { uint32 generation; uint32 window; - } set_ack; + } @declare set_ack; message { uint32 id; uint64 timestamp; uint8 data[] @ctype(uint8_t) @as_ptr(data_len); - } ping; + } @declare ping; message { uint8 wait_count; ChannelWait wait_list[wait_count] @end; - } wait_for_channels; + } @declare wait_for_channels; message { uint64 time_stamp; link_err reason; - } @ctype(SpiceMsgDisconnect) disconnecting; + } @ctype(SpiceMsgDisconnect) @declare disconnecting; message { uint64 time_stamp; @@ -176,7 +176,7 @@ channel BaseChannel { uint32 what; /* error_code/warn_code/info_code */ uint32 message_len; uint8 message[message_len] @end @nomarshal; - } notify; + } @declare notify; Data list; /* the msg body is SpiceSubMessageList */ @@ -185,7 +185,7 @@ channel BaseChannel { client: message { uint32 generation; - } ack_sync; + } @declare ack_sync; Empty ack; @@ -207,7 +207,7 @@ channel BaseChannel { struct ChannelId { uint8 type; uint8 id; -}; +} @declare; struct DstInfo { uint16 port; @@ -216,13 +216,13 @@ struct DstInfo { uint8 *host_data[host_size] @zero_terminated @marshall @nonnull; uint32 cert_subject_size; uint8 *cert_subject_data[cert_subject_size] @zero_terminated @marshall; -} @ctype(SpiceMigrationDstInfo); +} @ctype(SpiceMigrationDstInfo) @declare; channel MainChannel : BaseChannel { server: message { DstInfo dst_info; - } @ctype(SpiceMsgMainMigrationBegin) migrate_begin = 101; + } @ctype(SpiceMsgMainMigrationBegin) @declare migrate_begin = 101; Empty migrate_cancel; @@ -235,33 +235,33 @@ channel MainChannel : BaseChannel { uint32 agent_tokens; uint32 multi_media_time; uint32 ram_hint; - } init; + } @declare init; message { uint32 num_of_channels; ChannelId channels[num_of_channels] @end; - } @ctype(SpiceMsgChannels) channels_list; + } @ctype(SpiceMsgChannels) @declare channels_list; message { mouse_mode supported_modes; mouse_mode current_mode @unique_flag; - } mouse_mode; + } @declare mouse_mode; message { uint32 time; - } @ctype(SpiceMsgMainMultiMediaTime) multi_media_time; + } @ctype(SpiceMsgMainMultiMediaTime) @declare multi_media_time; Empty agent_connected; message { link_err error_code; - } @ctype(SpiceMsgMainAgentDisconnect) agent_disconnected; + } @ctype(SpiceMsgMainAgentDisconnect) @declare agent_disconnected; Data agent_data; message { uint32 num_tokens; - } @ctype(SpiceMsgMainAgentTokens) agent_token; + } @ctype(SpiceMsgMainAgentTokens) @declare agent_token; message { uint16 port; @@ -270,27 +270,27 @@ channel MainChannel : BaseChannel { uint8 *host_data[host_size] @zero_terminated @marshall; uint32 cert_subject_size; uint8 *cert_subject_data[cert_subject_size] @zero_terminated @marshall; - } @ctype(SpiceMsgMainMigrationSwitchHost) migrate_switch_host; + } @ctype(SpiceMsgMainMigrationSwitchHost) @declare migrate_switch_host; Empty migrate_end; message { uint32 name_len; uint8 name[name_len] @end; - } name; + } @declare name; message { uint8 uuid[16]; - } uuid; + } @declare uuid; message { uint32 num_tokens; - } agent_connected_tokens; + } @declare agent_connected_tokens; message { DstInfo dst_info; uint32 src_mig_version; - } migrate_begin_seamless; + } @declare migrate_begin_seamless; Empty migrate_dst_seamless_ack; Empty migrate_dst_seamless_nack; @@ -298,7 +298,7 @@ channel MainChannel : BaseChannel { client: message { uint64 cache_size; - } @ctype(SpiceMsgcClientInfo) client_info = 101; + } @ctype(SpiceMsgcClientInfo) @declare client_info = 101; Empty migrate_connected; @@ -308,23 +308,23 @@ channel MainChannel : BaseChannel { message { mouse_mode mode; - } mouse_mode_request; + } @declare mouse_mode_request; message { uint32 num_tokens; - } agent_start; + } @ctype(SpiceMsgMainAgentTokens) @declare agent_start; Data agent_data; message { uint32 num_tokens; - } @ctype(SpiceMsgcMainAgentTokens) agent_token; + } @ctype(SpiceMsgMainAgentTokens) @declare agent_token; Empty migrate_end; message { uint32 src_version; - } migrate_dst_do_seamless; + } @declare migrate_dst_do_seamless; Empty migrate_connected_seamless; }; @@ -519,18 +519,18 @@ struct DisplayBase { uint32 surface_id; Rect box; Clip clip; -} @ctype(SpiceMsgDisplayBase); +} @ctype(SpiceMsgDisplayBase) @declare; struct ResourceID { uint8 type; /* resource_type */ uint64 id; -}; +} @declare; struct WaitForChannel { uint8 channel_type; uint8 channel_id; uint64 message_serial; -}; +} @declare; struct Palette { uint64 unique; @@ -693,7 +693,7 @@ struct String { struct StreamDataHeader { stream_id_t id; uint32 multi_media_time; -}; +} @declare; struct Head { uint32 monitor_id; @@ -703,7 +703,7 @@ struct Head { uint32 x; uint32 y; uint32 flags; -}; +} @declare; flags32 gl_scanout_flags { Y0TOP @@ -715,19 +715,19 @@ channel DisplayChannel : BaseChannel { uint32 x_res; uint32 y_res; uint32 bits; - } mode = 101; + } @declare mode = 101; Empty mark; Empty reset; message { DisplayBase base; Point src_pos; - } copy_bits; + } @declare copy_bits; message { uint16 count; ResourceID resources[count] @end; - } @ctype(SpiceResourceList) inval_list; + } @ctype(SpiceResourceList) @declare inval_list; /* This message is used to invalidate the complete image cache * on the client. @@ -739,11 +739,11 @@ channel DisplayChannel : BaseChannel { message { uint8 wait_count; WaitForChannel wait_list[wait_count] @end; - } @ctype(SpiceMsgWaitForChannels) inval_all_pixmaps; + } @ctype(SpiceMsgWaitForChannels) @declare inval_all_pixmaps; message { uint64 id; - } @ctype(SpiceMsgDisplayInvalOne) inval_palette; + } @ctype(SpiceMsgDisplayInvalOne) @declare inval_palette; Empty inval_all_palettes; @@ -759,22 +759,22 @@ channel DisplayChannel : BaseChannel { uint32 src_height; Rect dest; Clip clip; - } stream_create = 122; + } @declare stream_create = 122; message { StreamDataHeader base; uint32 data_size; uint8 data[data_size] @end @nomarshal; - } stream_data; + } @declare stream_data; message { stream_id_t id; Clip clip; - } stream_clip; + } @declare stream_clip; message { stream_id_t id; - } stream_destroy; + } @declare stream_destroy; Empty stream_destroy_all; @@ -785,7 +785,7 @@ channel DisplayChannel : BaseChannel { ropd rop_descriptor; QMask mask @outvar(mask); } data; - } draw_fill = 302; + } @declare draw_fill = 302; message { DisplayBase base; @@ -797,7 +797,7 @@ channel DisplayChannel : BaseChannel { image_scale_mode scale_mode; QMask mask @outvar(mask); } data; - } draw_opaque; + } @declare draw_opaque; message { DisplayBase base; @@ -808,7 +808,7 @@ channel DisplayChannel : BaseChannel { image_scale_mode scale_mode; QMask mask @outvar(mask); } data; - } draw_copy; + } @declare draw_copy; message { DisplayBase base; @@ -819,28 +819,28 @@ channel DisplayChannel : BaseChannel { image_scale_mode scale_mode; QMask mask @outvar(mask); } @ctype(SpiceCopy) data; - } draw_blend; + } @ctype(SpiceMsgDisplayDrawCopy) draw_blend; message { DisplayBase base; struct Blackness { QMask mask @outvar(mask); } data; - } draw_blackness; + } @declare draw_blackness; message { DisplayBase base; struct Whiteness { QMask mask @outvar(mask); } data; - } draw_whiteness; + } @declare draw_whiteness; message { DisplayBase base; struct Invers { QMask mask @outvar(mask); } data; - } draw_invers; + } @declare draw_invers; message { DisplayBase base; @@ -852,7 +852,7 @@ channel DisplayChannel : BaseChannel { image_scale_mode scale_mode; QMask mask @outvar(mask); } data; - } draw_rop3; + } @declare draw_rop3; message { DisplayBase base; @@ -863,7 +863,7 @@ channel DisplayChannel : BaseChannel { uint16 fore_mode; uint16 back_mode; } data; - } draw_stroke; + } @declare draw_stroke; message { DisplayBase base; @@ -875,7 +875,7 @@ channel DisplayChannel : BaseChannel { uint16 fore_mode; uint16 back_mode; } data; - } draw_text; + } @declare draw_text; message { DisplayBase base; @@ -885,7 +885,7 @@ channel DisplayChannel : BaseChannel { uint32 src_color; uint32 true_color; } data; - } draw_transparent; + } @declare draw_transparent; message { DisplayBase base; @@ -895,7 +895,7 @@ channel DisplayChannel : BaseChannel { Image *src_bitmap; Rect src_area; } data; - } draw_alpha_blend; + } @declare draw_alpha_blend; message { uint32 surface_id; @@ -903,11 +903,11 @@ channel DisplayChannel : BaseChannel { uint32 height; surface_fmt format; surface_flags flags; - } @ctype(SpiceMsgSurfaceCreate) surface_create; + } @ctype(SpiceMsgSurfaceCreate) @declare surface_create; message { uint32 surface_id; - } @ctype(SpiceMsgSurfaceDestroy) surface_destroy; + } @ctype(SpiceMsgSurfaceDestroy) @declare surface_destroy; message { StreamDataHeader base; @@ -916,13 +916,13 @@ channel DisplayChannel : BaseChannel { Rect dest; uint32 data_size; uint8 data[data_size] @end @nomarshal; - } stream_data_sized; + } @declare stream_data_sized; message { uint16 count; uint16 max_allowed; Head heads[count] @end; - } monitors_config; + } @declare monitors_config; message { DisplayBase base; @@ -944,14 +944,14 @@ channel DisplayChannel : BaseChannel { Point16 src_origin; Point16 mask_origin; } data; - } draw_composite; + } @declare draw_composite; message { stream_id_t stream_id; uint32 unique_id; uint32 max_window_size; uint32 timeout_ms; - } stream_activate_report; + } @declare stream_activate_report; message { unix_fd drm_dma_buf_fd; @@ -961,14 +961,14 @@ channel DisplayChannel : BaseChannel { /* specifies the format of drm_dma_buf_fd defined in drm_fourcc.h */ uint32 drm_fourcc_format; gl_scanout_flags flags; - } gl_scanout_unix; + } @declare gl_scanout_unix; message { uint32 x; uint32 y; uint32 w; uint32 h; - } gl_draw; + } @declare gl_draw; client: message { @@ -976,7 +976,7 @@ channel DisplayChannel : BaseChannel { int64 pixmap_cache_size; //in pixels uint8 glz_dictionary_id; int32 glz_dictionary_window_size; // in pixels - } init = 101; + } @declare init = 101; message { stream_id_t stream_id; @@ -1000,19 +1000,19 @@ channel DisplayChannel : BaseChannel { // the latency of the audio playback // If there is no audio playback, set it to 0xffffffffu uint32 audio_delay; - } stream_report; + } @declare stream_report; message { image_compression image_compression; - } preferred_compression; + } @declare preferred_compression; message { - } gl_draw_done; + } @declare gl_draw_done; message { uint8 num_of_codecs; video_codec_type codecs[num_of_codecs] @end; - } preferred_video_codec_type; + } @declare preferred_video_codec_type; }; flags16 keyboard_modifier_flags { @@ -1040,15 +1040,15 @@ channel InputsChannel : BaseChannel { client: message { uint32 code; - } @ctype(SpiceMsgcKeyDown) key_down = 101; + } @ctype(SpiceMsgcKeyDown) @declare key_down = 101; message { uint32 code; - } @ctype(SpiceMsgcKeyUp) key_up; + } @ctype(SpiceMsgcKeyUp) @declare key_up; message { keyboard_modifier_flags modifiers; - } @ctype(SpiceMsgcKeyModifiers) key_modifiers; + } @ctype(SpiceMsgcKeyModifiers) @declare key_modifiers; Data key_scancode; @@ -1056,33 +1056,33 @@ channel InputsChannel : BaseChannel { int32 dx; int32 dy; mouse_button_mask buttons_state; - } @ctype(SpiceMsgcMouseMotion) mouse_motion = 111; + } @ctype(SpiceMsgcMouseMotion) @declare mouse_motion = 111; message { uint32 x; uint32 y; mouse_button_mask buttons_state; uint8 display_id; - } @ctype(SpiceMsgcMousePosition) mouse_position; + } @ctype(SpiceMsgcMousePosition) @declare mouse_position; message { mouse_button button; mouse_button_mask buttons_state; - } @ctype(SpiceMsgcMousePress) mouse_press; + } @ctype(SpiceMsgcMousePress) @declare mouse_press; message { mouse_button button; mouse_button_mask buttons_state; - } @ctype(SpiceMsgcMouseRelease) mouse_release; + } @ctype(SpiceMsgcMouseRelease) @declare mouse_release; server: message { keyboard_modifier_flags keyboard_modifiers; - } init = 101; + } @declare init = 101; message { keyboard_modifier_flags modifiers; - } key_modifiers; + } @declare key_modifiers; Empty mouse_motion_ack = 111; }; @@ -1119,7 +1119,7 @@ struct Cursor { CursorHeader header; } u @anon; uint8 data[] @as_ptr(data_size); -}; +} @declare; channel CursorChannel : BaseChannel { server: @@ -1129,7 +1129,7 @@ channel CursorChannel : BaseChannel { uint16 trail_frequency; uint8 visible; Cursor cursor; - } init = 101; + } @declare init = 101; Empty reset; @@ -1137,22 +1137,22 @@ channel CursorChannel : BaseChannel { Point16 position; uint8 visible; Cursor cursor; - } set; + } @declare set; message { Point16 position; - } move; + } @declare move; Empty hide; message { uint16 length; uint16 frequency; - } trail; + } @declare trail; message { uint64 id; - } @ctype(SpiceMsgDisplayInvalOne) inval_one; + } @ctype(SpiceMsgDisplayInvalOne) @declare inval_one; Empty inval_all; }; @@ -1172,31 +1172,31 @@ enum16 audio_fmt { message AudioVolume { uint8 nchannels; uint16 volume[nchannels] @end; -}; +} @declare; message AudioMute { uint8 mute; -}; +} @declare; channel PlaybackChannel : BaseChannel { server: message { uint32 time; uint8 data[] @as_ptr(data_size); - } @ctype(SpiceMsgPlaybackPacket) data = 101; + } @ctype(SpiceMsgPlaybackPacket) @declare data = 101; message { uint32 time; audio_data_mode mode; uint8 data[] @as_ptr(data_size); - } mode; + } @declare mode; message { uint32 channels; audio_fmt format; uint32 frequency; uint32 time; - } start; + } @declare start; Empty stop; AudioVolume volume; @@ -1204,7 +1204,7 @@ channel PlaybackChannel : BaseChannel { message { uint32 latency_ms; - } latency; + } @declare latency; }; channel RecordChannel : BaseChannel { @@ -1213,7 +1213,7 @@ channel RecordChannel : BaseChannel { uint32 channels; audio_fmt format; uint32 frequency; - } start = 101; + } @declare start = 101; Empty stop; AudioVolume volume; @@ -1222,17 +1222,17 @@ channel RecordChannel : BaseChannel { message { uint32 time; uint8 data[] @nomarshal @as_ptr(data_size); - } @ctype(SpiceMsgcRecordPacket) data = 101; + } @ctype(SpiceMsgcPlaybackPacket) @declare data = 101; message { uint32 time; audio_data_mode mode; uint8 data[] @as_ptr(data_size); - } mode; + } @ctype(SpiceMsgPlaybackMode) @declare mode; message { uint32 time; - } start_mark; + } @declare start_mark; }; channel TunnelChannel { @@ -1338,16 +1338,16 @@ channel PortChannel : SpicevmcChannel { client: message { uint8 event; - } event = 201; + } @declare event = 201; server: message { uint32 name_size; uint8 *name[name_size] @zero_terminated @marshall @nonnull; uint8 opened; - } init = 201; + } @declare init = 201; message { uint8 event; - } event; + } @declare event; }; channel WebDAVChannel : PortChannel { -- 2.20.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel