ot_tools_io/projects/settings/
trig_mode_midi_tracks.rs1use crate::projects::parse_hashmap_string_value;
8use crate::projects::ProjectParseError;
10use serde::{Deserialize, Serialize};
11use std::collections::HashMap;
12
13#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
16pub struct MidiTrackTrigModes {
17 pub trig_mode_midi_track_1: u8,
24
25 pub trig_mode_midi_track_2: u8,
27
28 pub trig_mode_midi_track_3: u8,
30
31 pub trig_mode_midi_track_4: u8,
33
34 pub trig_mode_midi_track_5: u8,
36
37 pub trig_mode_midi_track_6: u8,
39
40 pub trig_mode_midi_track_7: u8,
42
43 pub trig_mode_midi_track_8: u8,
45}
46
47impl TryFrom<&HashMap<String, String>> for MidiTrackTrigModes {
48 type Error = ProjectParseError;
49 fn try_from(value: &HashMap<String, String>) -> Result<Self, Self::Error> {
50 let trig_mode_midi_track_1 =
51 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_1", None)?;
52 let trig_mode_midi_track_2 =
53 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_2", None)?;
54 let trig_mode_midi_track_3 =
55 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_3", None)?;
56 let trig_mode_midi_track_4 =
57 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_4", None)?;
58 let trig_mode_midi_track_5 =
59 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_5", None)?;
60 let trig_mode_midi_track_6 =
61 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_6", None)?;
62 let trig_mode_midi_track_7 =
63 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_7", None)?;
64 let trig_mode_midi_track_8 =
65 parse_hashmap_string_value::<u8>(value, "trig_mode_midi_track_8", None)?;
66
67 Ok(Self {
68 trig_mode_midi_track_1,
69 trig_mode_midi_track_2,
70 trig_mode_midi_track_3,
71 trig_mode_midi_track_4,
72 trig_mode_midi_track_5,
73 trig_mode_midi_track_6,
74 trig_mode_midi_track_7,
75 trig_mode_midi_track_8,
76 })
77 }
78}