use crate::defaults::default_settings__unknown0x001f;
use rytm_sys::ar_settings_t;
use serde::{Deserialize, Serialize};
use serde_big_array::BigArray;
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
pub struct SettingsUnknown {
pub __selected_track_duplicate: u8,
pub __unknown_0x000b: u8,
pub __unknown0x000e_0x0014: [u8; 7],
pub __unknown0x0017_0x0019: [u8; 3],
#[serde(with = "BigArray")]
pub __unknown0x001f: [u8; 16 * 128],
pub __unknown0x081f: u8,
pub __unknown0x0821_0x0826: [u8; 6],
}
impl Default for SettingsUnknown {
fn default() -> Self {
Self {
__selected_track_duplicate: 0,
__unknown_0x000b: 0,
__unknown0x000e_0x0014: [0; 7],
__unknown0x0017_0x0019: [0; 3],
__unknown0x001f: default_settings__unknown0x001f(),
__unknown0x081f: 1,
__unknown0x0821_0x0826: [0; 6],
}
}
}
impl From<&ar_settings_t> for SettingsUnknown {
fn from(raw_settings: &ar_settings_t) -> Self {
Self {
__selected_track_duplicate: raw_settings._selected_track_duplicate,
__unknown_0x000b: raw_settings.__unknown_0x000B,
__unknown0x000e_0x0014: raw_settings.__unknown0x000E_0x0014,
__unknown0x0017_0x0019: raw_settings.__unknown0x0017_0x0019,
__unknown0x001f: raw_settings.__unknown0x001F,
__unknown0x081f: raw_settings.__unknown0x081F,
__unknown0x0821_0x0826: raw_settings.__unknown0x0821_0x0826,
}
}
}
impl SettingsUnknown {
pub fn apply_to_raw_settings(&self, raw_settings: &mut ar_settings_t) {
raw_settings._selected_track_duplicate = self.__selected_track_duplicate;
raw_settings.__unknown_0x000B = self.__unknown_0x000b;
raw_settings.__unknown0x000E_0x0014 = self.__unknown0x000e_0x0014;
raw_settings.__unknown0x0017_0x0019 = self.__unknown0x0017_0x0019;
raw_settings.__unknown0x001F = self.__unknown0x001f;
raw_settings.__unknown0x081F = self.__unknown0x081f;
raw_settings.__unknown0x0821_0x0826 = self.__unknown0x0821_0x0826;
}
}