use serde::{Deserialize, Serialize};
use crate::core::Settings as EmuSettings;
use std::path::PathBuf;
use crate::app::KeyMap;
#[derive(Clone, Serialize, Deserialize)]
pub struct Config {
pub oam_debug: bool,
#[serde(skip)]
pub paused: bool,
pub volume: f32,
pub speed: f32,
pub record_audio: bool,
pub record_audio_filename: String,
pub screen_size: (u32, u32),
pub verbose_logging: bool,
pub restrict_controller_directions: bool,
#[serde(skip)]
pub key_map: KeyMap,
#[serde(skip)]
pub quickload_file: Option<PathBuf>,
#[serde(skip)]
pub emu_settings: EmuSettings,
pub savestate_dir: PathBuf,
#[serde(skip)]
pub game_name: Option<String>,
}
impl Default for Config {
fn default() -> Config {
Config {
paused: false,
oam_debug: false,
volume: 1.0,
speed: 1.0,
record_audio: false,
record_audio_filename: "sample".to_string(),
screen_size: (256, 240),
verbose_logging: false,
restrict_controller_directions: true,
key_map: KeyMap::default(),
quickload_file: None,
emu_settings: EmuSettings::default(),
savestate_dir: PathBuf::from("./savestates"),
game_name: None,
}
}
}