public void Initialize() { var profilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var path = Path.GetFullPath(Path.Combine(profilePath, ".pinmame")); _pinMame = PinMame.Instance(44100, path); }
static void Main(string[] args) { LogManager.Configuration = new LoggingConfiguration(); var target = new ConsoleTarget("PinMame"); LogManager.Configuration.AddTarget(target); LogManager.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, target); LogManager.ReconfigExistingLoggers(); _pinMame = PinMame.Instance(44100); _pinMame.SetHandleKeyboard(true); DumpGames(); DumpFoundGames(); Logger.Info(_pinMame.GetGame("fh_906h")); _pinMame.OnGameStarted += OnGameStarted; _pinMame.OnDisplayAvailable += OnDisplayAvailable; _pinMame.OnDisplayUpdated += OnDisplayUpdated; _pinMame.OnAudioAvailable += OnAudioAvailable; _pinMame.OnAudioUpdated += OnAudioUpdated; _pinMame.OnSolenoidUpdated += OnSolenoidUpdated; _pinMame.OnConsoleDataUpdated += OnConsoleDataUpdated; _pinMame.OnGameEnded += OnGameEnded; _pinMame.IsKeyPressed += IsKeyPressed; //_pinMame.StartGame("tf_180h"); //_pinMame.StartGame("fh_906h"); //_pinMame.StartGame("mm_109c"); //_pinMame.StartGame("flashgdn"); _pinMame.StartGame("acd_168hc"); _isRunning = true; while (_isRunning) { count++; Thread.Sleep(100); } }
/// <summary> /// Creates or retrieves the PinMame instance. /// </summary> /// <param name="audioFormat">Audio format (Int16 / Float)</param> /// <param name="sampleRate">Audio sample rate</param> /// <param name="vpmPath">Fallback path for VPM folder, if VPM is not registered</param> /// <exception cref="ArgumentException">If VPM cannot be found</exception> public static PinMame Instance(PinMameAudioFormat audioFormat = PinMameAudioFormat.AudioFormatInt16, int sampleRate = 48000, string vpmPath = null) => _instance ?? (_instance = new PinMame(audioFormat, sampleRate, vpmPath));
/// <summary> /// Creates or retrieves the PinMame instance. /// </summary> /// <param name="sampleRate">Audio sample rate</param> /// <param name="vpmPath">Fallback path for VPM folder, if VPM is not registered</param> /// <exception cref="ArgumentException">If VPM cannot be found</exception> public static PinMame Instance(int sampleRate = 48000, string vpmPath = null) => _instance ?? (_instance = new PinMame(sampleRate, vpmPath));
static void Main(string[] args) { LogManager.Configuration = new LoggingConfiguration(); var target = new ConsoleTarget("PinMame"); LogManager.Configuration.AddTarget(target); LogManager.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, target); LogManager.ReconfigExistingLoggers(); _pinMame = PinMame.Instance(PinMameAudioFormat.AudioFormatInt16, 44100); _pinMame.SetHandleKeyboard(true); _pinMame.SetHandleMechanics(0); Logger.Info($"maxLamps={_pinMame.GetMaxLamps()}"); Logger.Info($"maxGIs={_pinMame.GetMaxGIs()}"); Logger.Info($"maxMechs={_pinMame.GetMaxMechs()}"); DumpGames(); DumpFoundGames(); Logger.Info(_pinMame.GetGame("fh_906h")); _pinMame.OnGameStarted += OnGameStarted; _pinMame.OnDisplayAvailable += OnDisplayAvailable; _pinMame.OnDisplayUpdated += OnDisplayUpdated; _pinMame.OnAudioAvailable += OnAudioAvailable; _pinMame.OnAudioUpdated += OnAudioUpdated; _pinMame.OnMechAvailable += OnMechAvailable; _pinMame.OnMechUpdated += OnMechUpdated; _pinMame.OnSolenoidUpdated += OnSolenoidUpdated; _pinMame.OnConsoleDataUpdated += OnConsoleDataUpdated; _pinMame.OnGameEnded += OnGameEnded; _pinMame.IsKeyPressed += IsKeyPressed; //_pinMame.StartGame("tf_180h"); //_pinMame.StartGame("fh_906h"); //_pinMame.StartGame("mm_109c"); //_pinMame.StartGame("flashgdn"); //_pinMame.StartGame("acd_168hc"); _pinMame.StartGame("t2_l8"); _isRunning = true; while (_isRunning) { count++; if (_started) { foreach (var lampInfo in _pinMame.GetChangedLamps()) { Logger.Info($"main: Changed Lamp: {lampInfo}"); } foreach (var lampInfo in _pinMame.GetChangedGIs()) { Logger.Info($"main: Changed GI: {lampInfo}"); } } Thread.Sleep(100); } }