package messages

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message ApplicationImage

messages.proto:537

### 022 - Application Image This message, which must originate from the server on the same stream as the corresponding `021 - Fetch Application Image` message, sends the requested image data to the client.

enum ApplicationImageFormat

messages.proto:252

### Application Image Format Distinguishes between different images associated with an application.

Used in: ApplicationList.Application, FetchApplicationImage

message ApplicationList

messages.proto:393

### 012 - Application List This message, which must originate from the server on the same stream as a corresponding `011 - List Applications` message, indicates the list of available applications to launch as sessions.

message ApplicationList.Application

messages.proto:394

Used in: ApplicationList

message Attach

messages.proto:562

### 030 - Attach This message, which must originate from the client on a new stream, requests that the server attach the client to the named session. Upon receipt of this request, the server must either refuse the attachment with an `001 - Error` message, or send an `031 - Attached` message on the same stream and start sending video and audio packets to the client. Ommitted fields indicate that the server should choose the parameters. The server may choose to reject the attachment for any reason, including but not limited to: - The output parameters, such as resolution or codec, are invalid or not supported. - The server already has a client attached to that session, and wishes to limit the number of attachments (or doesn't support multiple attachments). - The authentication so far provided doesn't grant the client access to that session with that attachment type.

message Attached

messages.proto:585

### 031 - Attached This message, which must originate from the server on the same stream as the original `030 - Attach` message, indicates that the server accepts the client and will begin streaming with the client's requested parameters. The parameters must match the parameters sent in the original `030 - Attach` message, or represent the server-chosen default if they were ommitted.

enum AttachmentType

messages.proto:152

### Attachment type This refers to the manner of attachment.

Used in: Attach

message AudioChannels

messages.proto:189

### Audio channels This defines a map of channels to speaker positions.

Used in: Attach, Attached

enum AudioChannels.Channel

messages.proto:190

Used in: AudioChannels

message AudioChunk

messages.proto:770

### 056 - Audio Chunk This message, which must originate from the server as a datagram or on the same stream as the original `030 - Attach` message, contains a part of an audio packet.

enum AudioCodec

messages.proto:181

### Audio codec This refers to the codec used for an audio stream.

Used in: Attach, Attached

message Detach

messages.proto:630

### 035 - Detach This message, which must originate from the client on the stream where the original `030 - Attach` message was sent, indicates that the client wishes to detach and end streaming. Upon receipt of this message, the server must stop streaming frames or accepting input on the attachment stream.

(message has no fields)

message EndSession

messages.proto:510

### 019 - End Session This message, which must originate from the client on a new stream, requests that the server end the named session and detach all clients. If a server chooses to comply, it should send `001 - Error` messages to all other attached clients (with ERR_SESSION_ENDED_BY_CLIENT), and an `020 - Session Ended` message on this stream. Otherwise, it should send an `001 - Error` message on this stream.

message Error

messages.proto:263

### 001 - Error This message may be sent by a server or client at any time on any stream.

enum Error.ErrorCode

messages.proto:264

Used in: Error

message Extent

messages.proto:122

message FECMetadata

messages.proto:214

### FEC Scheme Indicates a Forward Error Correction scheme used to protect packets, and contains any data needed to locate a chunk within a packet. Definitions for the concepts can be found in RFCs 3452 and 5052.

Used in: AudioChunk, VideoChunk

enum FECMetadata.FECScheme

messages.proto:215

Used in: FECMetadata

message FetchApplicationImage

messages.proto:527

### 021 - Fetch Application Image This message, which must originate from the client on a new stream, requests image metadata for an application. The Server must respond with either an `022 - Application Image` message or an `001 - Error` message on the same stream.

message Gamepad

messages.proto:238

### Gamepad A gamepad ID and metadata.

Used in: GamepadAvailable, LaunchSession, SessionList.Session

enum Gamepad.GamepadLayout

messages.proto:239

Used in: Gamepad

message GamepadAvailable

messages.proto:1170

### 070 - Gamepad Available This message, which must originate from the client on the same stream as the original `030 - Attach` message, indicates that a gamepad is available on the client.

message GamepadInput

messages.proto:1219

### 073 - Gamepad Input This message, which must originate from the client on the same stream as the original `030 - Attach` message, indicates input from a gamepad button.

enum GamepadInput.GamepadButton

messages.proto:1226

Used in: GamepadInput

enum GamepadInput.GamepadButtonState

messages.proto:1220

Used in: GamepadInput

message GamepadMotion

messages.proto:1189

### 072 - Gamepad Motion This message, which must originate from the client on the same stream as the original `030 - Attach` message, indicates movement on a joystick or trigger.

enum GamepadMotion.GamepadAxis

messages.proto:1190

Used in: GamepadMotion

message GamepadUnavailable

messages.proto:1181

### 071 - Gamepad Unavailable This message, which must originate from the client on the same stream as the original `030 - Attach` message, indicates that a gamepad is no longer available, for example because it was unplugged.

message KeepAlive

messages.proto:606

### 032 - Keep Alive This message, which must originate from the client on the stream where the original `030 - Attach` message was sent, indicates that the client is still attached. The server may take the absence of a regular `Keep Alive` message to indicate that the client has gone away should be considered detached.

(message has no fields)

message KeyboardInput

messages.proto:824

### 060 - Keyboard Input This message, which must originate from the client on the same stream as the original `030 - Attach` message, represents keyboard input from the user.

enum KeyboardInput.Key

messages.proto:839

These map to the keycodes from the W3C "UI Events" specification. It represents the key location, irrespective of keyboard layout or character output. Media and remote control keys are omitted. https://w3c.github.io/uievents-code/#code-value-tables

Used in: KeyboardInput

enum KeyboardInput.KeyState

messages.proto:825

Used in: KeyboardInput

message LaunchSession

messages.proto:418

### 013 - Launch Session This message, which must originate from the client on a new stream, requests that the server launch the application specified by `id`. The id should match the id of an application returned by `012 - Application List`. The server must either launch a session, replying with `014 - Session Launched` once the session has started and is available to attach, or send an `001 - Error` message on the same stream indicating why it refuses to do so.

message ListApplications

messages.proto:386

### 011 - List Applications This message, which must originate from the client on a new stream, requests a list of available applications to launch as sessions. The server must either respond with an `012 - Application List` message or an `001 - Error` message on the same stream.

(message has no fields)

message ListSessions

messages.proto:473

### 017 - List Sessions This message, which must originate from the client on a new stream, requests a list of attachable sessions. The server must respond with either `018 - Session List` or an `001 - Error` on the same stream.

(message has no fields)

message LockPointer

messages.proto:1141

### 067 - Lock Pointer This message, which must originate from the server on the same stream as the original `030 - Attach` message, indicates that the pointer should be locked to the given location. The coordinates should be in the space defined by the `streaming_resolution` field of the `030 - Attach` message.

message PixelScale

messages.proto:134

### Pixel Scale Represents a rational number, used in the context of HiDPI displays. Fractions less than one are not allowed. For example, a pixel density of 1.5 would be represented as 3/2.

Used in: VirtualDisplayParameters

message PointerEntered

messages.proto:992

### 061 - Pointer Entered This message, which must be sent by the client on the same stream as the original `030 - Attach` message, indicates that the Pointer has entered the window area.

(message has no fields)

message PointerInput

messages.proto:1019

### 064 - Pointer Input This message, which must be sent by the client on the same stream as the original `030 - Attach` message, indicates a Pointer button event.

enum PointerInput.Button

messages.proto:1026

Used in: PointerInput

enum PointerInput.ButtonState

messages.proto:1020

Used in: PointerInput

message PointerLeft

messages.proto:999

### 062 - Pointer Left This message, which must be sent by the client on the same stream as the original `030 - Attach` message, indicates that the Pointer has left the window area.

(message has no fields)

message PointerMotion

messages.proto:1009

### 063 - Pointer Motion This message, which must be sent by the client on the same stream as the original `030 - Attach` message, indicates that the Pointer has moved to a new position. The coordinates should be in the space defined by the `streaming_resolution` field of the `030 - Attach` message.

message PointerScroll

messages.proto:1055

### 065 - Pointer Scroll This message, which must be sent by the client on the same stream as the original `030 - Attach` message, indicates that the user has scrolled, either using the mouse wheel, a touchpad, or some other mechanism. The scroll_type determines how the values of x and y are interpreted. `CONTINUOUS` indicates a vector in pixels, in the coordinate space defined by the `resolution` parameter of the `VirtualDisplayParams` set on the session. Discrete indicates individual steps, for example on a clicky scroll wheel. In both cases, positive values indicate that the scrolled content should move right and down, revealing more content to the top and left.

enum PointerScroll.ScrollType

messages.proto:1056

Used in: PointerScroll

message RelativePointerMotion

messages.proto:1160

### 069 - Relative Pointer Motion This message, which must originate from the client on the same stream as the original `030 - Attach` message, indicates that the Pointer has moved. The vector should be in the space defined by the `streaming_resolution` field of the `030 - Attach` message.

message ReleasePointer

messages.proto:1151

### 068 - Release Pointer This message, which must originate from the server on the same stream as the original `030 - Attach` message, indicates the pointer should be no longer be locked.

(message has no fields)

message RequestVideoRefresh

messages.proto:761

### 052 - Request Video Refresh This message, which must be sent by the client on the same stream as the original `030 - Attach` message, requests that the server perform an IDR refresh in the current video stream as soon as possible. The server should send stream headers and a full keyframe as soon as possible, unless the indicated stream is ended or restarted.

message SessionEnded

messages.proto:519

### 020 - Session Ended. This message, which must originate from the server on the same stream as the corresponding `019 - End Session` message, confirms that the session has been ended.

(message has no fields)

message SessionLaunched

messages.proto:439

### 014 - Session Launched This message, which must originate from the server on the same stream as the corresponding `013 - Launch Session` message, indicates that the session has successfully launched and may be attached.

message SessionList

messages.proto:480

### 018 - Session List This message, which must originate from the server on the same stream as the corresponding `017 - List Sessions` request, indicates a list of attachable sessions to the client.

message SessionList.Session

messages.proto:481

Used in: SessionList

message SessionParametersChanged

messages.proto:615

### 033 - Session Parameters Changed This message, which must originate from the server on the same stream as the original `030 - Attach` message, indicates that the parameters of the attached session have changed. If `reattach_required` is set to true, the client should consider the attachment to be ended and reattach with new parameters.

message SessionUpdated

messages.proto:466

### 016 - Session Updated This message, which must originate from the server on the same stream as the corresponding `015 - Update Session` message, indicates that the requested update was successfully applied.

(message has no fields)

message Size

messages.proto:117

### Size, Extent A `Size` is a width, height tuple, mainly used to describe areas. An `Extent` includes a starting position. The coordinate space depends on where these structs are used, but should always be oriented with [0, 0] in the top left position.

Used in: Attach, Attached, SessionLaunched, SessionList.Session, SessionParametersChanged, VirtualDisplayParameters

message Timestamp

messages.proto:106

### Timestamp Represents an instant independent of time zone or local calendar, represented as the sum of seconds and nanoseconds since the UNIX epoch of January 1st, 1970.

Used in: SessionList.Session

message UpdateCursor

messages.proto:1072

### 066 - Update Cursor This message, which must be sent by the server on the same stream as the original `030 - Attach` message, indicates that the cursor image has changed and the client should use the new one when the cursor is over the window.

enum UpdateCursor.CursorIcon

messages.proto:1076

Corresponds to the W3C UI specification. https://www.w3.org/TR/css-ui-3/#cursor

Used in: UpdateCursor

message UpdateSession

messages.proto:455

### 015 - Update Session This message, which must originate from the client on a new stream, requests that the server update the parameters of a running session. An ommitted value indicates that the existing setting should remain. The server must respond with either `016 - Session Updated` or `001 - Error` on the same stream.

message VideoChunk

messages.proto:721

### 051 - Video Chunk This message, which must originate from the server as a datagram or on the same stream as the original `030 - Attach` message, contains a part of a video packet. Much of the metadata associated with the chunk applies to all chunks of a given packet, but must be repeated on each chunk such that a client receiving the first (potentially out-of-order) chunk has sufficient information to deal with it.

enum VideoCodec

messages.proto:161

### Video codec This refers to the codec used for a video stream.

Used in: Attach, Attached

enum VideoProfile

messages.proto:172

### Video profile This refers to the profile used for a video stream. Profiles are fully defined in the output section, below.

Used in: Attach, Attached

message VirtualDisplayParameters

messages.proto:143

### Virtual Output Params Represents the configuration of a virtual display, which is required to launch a session.

Used in: LaunchSession, SessionList.Session, SessionParametersChanged, UpdateSession