use crate::platform::autorun::{AutorunFormat, AutorunMode};
use crate::platform::debugging::Tracing;
#[derive(Debug, Clone)]
pub struct FrontendConfig {
pub audio_enabled: bool,
pub vsync_enabled: bool,
pub gamepads_enabled: bool,
pub fullscreen: bool,
pub fullscreen_display: Option<i32>,
pub shader_path: Option<String>,
pub debugger_enabled: bool,
pub load_state: bool,
pub tracing: Tracing,
pub window_height: u32,
pub debugger_alpha: f32,
pub rom_path: Option<String>,
pub autorun_mode: AutorunMode,
pub autorun_headless: bool,
pub autorun_extend: bool,
pub autorun_overwrite: bool,
pub autorun_from_checkpoint: Option<i64>,
pub autorun_trim_checkpoints: Option<usize>,
pub autorun_convert: bool,
pub autorun_recalculate: bool,
pub autorun_format: AutorunFormat,
pub cartridge_search_paths: Vec<String>,
pub scan_cartridges: bool,
pub rebuild_cartridge_catalog: bool,
#[cfg_attr(not(feature = "tui"), allow(dead_code))]
pub tui_mode: bool,
}
impl Default for FrontendConfig {
fn default() -> Self {
Self {
audio_enabled: true,
vsync_enabled: true,
gamepads_enabled: true,
fullscreen: false,
fullscreen_display: None,
shader_path: None,
debugger_enabled: false,
load_state: false,
tracing: Tracing::default(),
window_height: 896,
debugger_alpha: 0.7,
rom_path: None,
autorun_mode: AutorunMode::None,
autorun_headless: false,
autorun_extend: false,
autorun_overwrite: false,
autorun_from_checkpoint: None,
autorun_trim_checkpoints: None,
autorun_convert: false,
autorun_recalculate: false,
autorun_format: AutorunFormat::Binary,
cartridge_search_paths: Vec::new(),
scan_cartridges: true,
rebuild_cartridge_catalog: false,
tui_mode: false,
}
}
}
#[derive(Debug, Clone, Default)]
pub struct Config {
pub frontend: FrontendConfig,
pub nes: crate::nes::console::NesConfig,
}