mod headless_emulator;
mod graphical_emulator;

pub use headless_emulator::{HeadlessEmulator, HeadlessDeviceBus};
pub use graphical_emulator::{GraphicalEmulator, GraphicalDeviceBus};

use crate::*;

use phosphor::Colour;

use std::path::PathBuf;


pub enum EmulatorSignal {
    Promote,
    Halt,
}


pub struct EmulatorConfig {
    pub dimensions: ScreenDimensions,
    pub fullscreen: bool,
    pub scale: u32,
    pub debug_palette: Option<[Colour; 16]>,
    pub show_cursor: bool,

    pub initial_transmission: Option<Vec<u8>>,
    pub decode_stdin: bool,
    pub encode_stdout: bool,

    pub symbols_path: Option<PathBuf>,
}