loam_app/
capture_types.rs1use std::path::PathBuf;
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq)]
4pub struct CaptureUnavailable;
5
6impl std::fmt::Display for CaptureUnavailable {
7 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8 f.write_str("capture is unavailable on this host")
9 }
10}
11
12impl std::error::Error for CaptureUnavailable {}
13
14#[derive(Copy, Clone, Debug, PartialEq, Eq)]
15pub enum CaptureStage {
16 Pre,
17 Post,
18 Both,
20}
21
22#[derive(Copy, Clone, Debug, PartialEq, Eq)]
23pub enum CaptureFormat {
24 Png,
25 Gif,
26 Apng,
28}
29
30#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
32pub enum PaletteMode {
33 #[default]
34 Local,
35 Global,
36}
37
38#[derive(Debug)]
39pub enum CaptureRequest {
40 OneShot {
41 stage: CaptureStage,
42 dir: Option<PathBuf>,
43 name: Option<String>,
44 },
45 StartSequence {
46 format: CaptureFormat,
47 stage: CaptureStage,
48 dir: Option<PathBuf>,
49 name: Option<String>,
50 fps: Option<u16>,
52 scale: Option<u32>,
54 palette: PaletteMode,
56 },
57 Stop,
58 Toggle {
59 format: CaptureFormat,
60 stage: CaptureStage,
61 dir: Option<PathBuf>,
62 name: Option<String>,
63 fps: Option<u16>,
64 scale: Option<u32>,
65 palette: PaletteMode,
66 },
67}