mod headless_emulator;
mod graphical_emulator;

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

use crate::*;

use phosphor::Colour;


pub enum EmulatorSignal {
    Promote,
    Halt,
}


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

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