Files
dawn/ipc/imaged.lxdr
2026-09-08 09:39:24 +02:00

59 lines
948 B
Plaintext

//
// imaged.lxdr: image decoder daemon protocol
//
// Copyright The Dawn Authors
// SPDX-License-Identifier: MPL-2.0
//
const IMAGED_PROTOCOL_VERSION = 1;
const IMAGED_MAX_BLOB_SIZE = 1073741824;
struct DecodeRequest {
Blob data;
u8 target_icc<>; // empty means sRGB
bool first_frame_only;
};
struct DecodeResponse {
Pixmap pixmap;
string loader;
u8 icc<>; // the file's own profile blob, if any
bool profile_assumed;
};
struct Request {
u64 id;
DecodeRequest decode;
};
struct Response {
u64 id;
union Result switch (enum ResponseKind {
DECODED,
ERROR,
} kind) {
case DECODED:
DecodeResponse decoded;
case ERROR:
Error error;
} result;
};
struct Frame {
union Payload switch (enum FrameKind {
HELLO,
HELLO_REPLY,
REQUEST,
RESPONSE,
} kind) {
case HELLO:
Hello hello;
case HELLO_REPLY:
DaemonHelloReply hello_reply;
case REQUEST:
Request request;
case RESPONSE:
Response response;
} payload;
};