Kitty Graphics Protocol in OCaml
terminal
graphics
ocaml
1(** Kitty Graphics Protocol Commands
2
3 This module provides functions for building and serializing graphics
4 protocol commands. *)
5
6type t
7(** A graphics protocol command. *)
8
9(** {1 Image Transmission} *)
10
11val transmit :
12 ?image_id:int ->
13 ?image_number:int ->
14 ?format:Kgp_format.t ->
15 ?transmission:Kgp_transmission.t ->
16 ?compression:Kgp_compression.t ->
17 ?width:int ->
18 ?height:int ->
19 ?size:int ->
20 ?offset:int ->
21 ?quiet:Kgp_quiet.t ->
22 unit ->
23 t
24(** Transmit image data without displaying. *)
25
26val transmit_and_display :
27 ?image_id:int ->
28 ?image_number:int ->
29 ?format:Kgp_format.t ->
30 ?transmission:Kgp_transmission.t ->
31 ?compression:Kgp_compression.t ->
32 ?width:int ->
33 ?height:int ->
34 ?size:int ->
35 ?offset:int ->
36 ?quiet:Kgp_quiet.t ->
37 ?placement:Kgp_placement.t ->
38 unit ->
39 t
40(** Transmit image data and display it immediately. *)
41
42val query :
43 ?format:Kgp_format.t ->
44 ?transmission:Kgp_transmission.t ->
45 ?width:int ->
46 ?height:int ->
47 ?quiet:Kgp_quiet.t ->
48 unit ->
49 t
50(** Query terminal support without storing the image. *)
51
52(** {1 Display} *)
53
54val display :
55 ?image_id:int ->
56 ?image_number:int ->
57 ?placement:Kgp_placement.t ->
58 ?quiet:Kgp_quiet.t ->
59 unit ->
60 t
61(** Display a previously transmitted image. *)
62
63(** {1 Deletion} *)
64
65val delete : ?free:bool -> ?quiet:Kgp_quiet.t -> Kgp_delete.t -> t
66(** Delete images or placements.
67
68 @param free If true, also free the image data from memory (default: false).
69 Without [~free:true], only placements are removed and the image data
70 can be reused for new placements. *)
71
72(** {1 Animation} *)
73
74val frame :
75 ?image_id:int ->
76 ?image_number:int ->
77 ?format:Kgp_format.t ->
78 ?transmission:Kgp_transmission.t ->
79 ?compression:Kgp_compression.t ->
80 ?width:int ->
81 ?height:int ->
82 ?quiet:Kgp_quiet.t ->
83 frame:Kgp_frame.t ->
84 unit ->
85 t
86(** Transmit animation frame data. *)
87
88val animate :
89 ?image_id:int ->
90 ?image_number:int ->
91 ?quiet:Kgp_quiet.t ->
92 Kgp_animation.t ->
93 t
94(** Control animation playback. *)
95
96val compose :
97 ?image_id:int ->
98 ?image_number:int ->
99 ?quiet:Kgp_quiet.t ->
100 Kgp_compose.t ->
101 t
102(** Compose animation frames. *)
103
104(** {1 Output} *)
105
106val write : Buffer.t -> t -> data:string -> unit
107(** Write the command to a buffer. *)
108
109val to_string : t -> data:string -> string
110(** Convert command to a string. *)
111
112val write_tmux : Buffer.t -> t -> data:string -> unit
113(** Write the command to a buffer with tmux passthrough wrapping.
114
115 If running inside tmux (detected via [TMUX] environment variable),
116 wraps the graphics command in a DCS passthrough sequence. Otherwise,
117 behaves like {!write}. *)
118
119val to_string_tmux : t -> data:string -> string
120(** Convert command to a string with tmux passthrough wrapping.
121
122 If running inside tmux, wraps the output for passthrough.
123 Otherwise, behaves like {!to_string}. *)