private void SetupOsuStatePresenter(OsuPresenter osuPresenter) { // disable nodes not required for this app osuPresenter.TryGetNode(typeof(OsuStatePresenter.Nodes.BpmNode), out Node bpmNode); bpmNode.DisablePresentation(); osuPresenter.TryGetNode(typeof(OsuStatePresenter.Nodes.ModsNode), out Node modsNode); modsNode.DisablePresentation(); osuPresenter.TryGetNode(typeof(OsuStatePresenter.Nodes.PPNode), out Node ppNode); ppNode.DisablePresentation(); // start presenting and scanning for node values osuPresenter.Start(); }
private void RegisterBpmNodeValueChangedHandler(OsuPresenter presenter) { if (presenter.TryGetNode(typeof(BpmNode), out Node bpmNode)) { if (bpmNode is null) { Console.WriteLine($"Error: Unable to get BPM Node from Presenter."); return; } bpmNode.OnValueChange += (s, e) => HandleBpmChange(bpmNode, s, e); Console.WriteLine($"BPM value change handler registered."); } }
/// <summary> /// The main console method. /// </summary> public static void Main() { var presenter = new OsuPresenter(StateCreatedHandler); // handle value changed on a specific node if (presenter.TryGetNode(typeof(BpmNode), out Node bpmNode)) { bpmNode.OnValueChange += (sender, e) => Console.WriteLine($@"BPM: {bpmNode.GetValue()}"); } // start the Presenter presenter.Start(); // keep the console open while (true) { Console.ReadKey(); Console.WriteLine(@"Key pressed. Stopping Presenter..."); presenter.Stop(); } // ReSharper disable once FunctionNeverReturns }