public DisplayerController(OsuListenerManager mamger) { var listenerManager = mamger; listenerManager.OnCount300Changed += c => _n300 = c; listenerManager.OnCountGekiChanged += c => _ngeki = c; listenerManager.OnCountKatuChanged += c => _nkatu = c; listenerManager.OnCount100Changed += c => _n100 = c; listenerManager.OnCount50Changed += c => _n50 = c; listenerManager.OnCountMissChanged += c => _nmiss = c; listenerManager.OnScoreChanged += s => _score = s; listenerManager.OnErrorStatisticsChanged += es => _error_statistics = es; listenerManager.OnPlayerChanged += p => _playername = p; listenerManager.OnComboChanged += (combo) => { if (_status != OsuStatus.Playing) { return; } int fullCombo = GetFullCombo(GetCalculator(_mode)); if (combo <= (fullCombo == 0 ? 20000 : fullCombo)) { _combo = combo; _maxCombo = Math.Max(_maxCombo, _combo); } }; listenerManager.OnModsChanged += (mods) => { if (Setting.IgnoreTouchScreenDecrease) { mods.Mod = (mods.Mod & ~ModsInfo.Mods.TouchDevice); } _curMods = mods; if (_status != OsuStatus.Playing) { GetCalculator(_mode).ClearCache(); } }; listenerManager.OnPlayModeChanged += RtppOnPlayModeChanged; listenerManager.OnStatusChanged += RtppOnStatusChanged; listenerManager.OnBeatmapChanged += RtppOnBeatmapChanged; listenerManager.OnPlayingTimeChanged += RtppOnPlayingTimeChanged; }
public PPControl(OsuListenerManager mamger, int?id) { m_listener_manager = mamger; m_listener_manager.OnModsChanged += (mods) => m_cur_mods = mods; m_listener_manager.On300HitChanged += c => m_n300 = c; m_listener_manager.On100HitChanged += c => m_n100 = c; m_listener_manager.On50HitChanged += c => m_n50 = c; m_listener_manager.OnMissHitChanged += c => m_nmiss = c; m_listener_manager.OnStatusChanged += (last, cur) => { m_status = cur; if (cur == OsuStatus.Listening || cur == OsuStatus.Editing)//Clear Output { m_combo = 0; m_max_combo = 0; m_n100 = 0; m_n50 = 0; m_nmiss = 0; foreach (var p in m_displayers) { p.Value.Clear(); } m_beatmap_reader?.Clear(); } }; m_listener_manager.OnComboChanged += (combo) => { if (m_status != OsuStatus.Playing) { return; } if (combo <= m_beatmap_reader?.FullCombo) { m_combo = combo; m_max_combo = Math.Max(m_max_combo, m_combo); } }; m_listener_manager.OnBeatmapChanged += RTPPOnBeatmapChanged; m_listener_manager.OnPlayingTimeChanged += RTPPOnPlayingTimeChanged; }
public DisplayerController(OsuListenerManager mamger) { var listenerManager = mamger; listenerManager.OnCount300Changed += c => _n300 = c; listenerManager.OnCountGekiChanged += c => _ngeki = c; listenerManager.OnCountKatuChanged += c => _nkatu = c; listenerManager.OnCount100Changed += c => _n100 = c; listenerManager.OnCount50Changed += c => _n50 = c; listenerManager.OnCountMissChanged += c => _nmiss = c; listenerManager.OnScoreChanged += s => _score = s; listenerManager.OnComboChanged += (combo) => { if (_status != OsuStatus.Playing) { return; } if (combo <= ((_ppCalculator as OppaiPerformanceCalculator)?.Oppai.FullCombo ?? 20000)) { _combo = combo; _maxCombo = Math.Max(_maxCombo, _combo); } }; listenerManager.OnModsChanged += (mods) => { if (Setting.IgnoreTouchScreenDecrease) { mods.Mod = (mods.Mod & ~ModsInfo.Mods.TouchDevice); } _curMods = mods; if (_status != OsuStatus.Playing) { _ppCalculator.ClearCache(); } }; listenerManager.OnPlayModeChanged += RtppOnPlayModeChanged; listenerManager.OnStatusChanged += RtppOnStatusChanged; listenerManager.OnBeatmapChanged += RtppOnBeatmapChanged; listenerManager.OnPlayingTimeChanged += RtppOnPlayingTimeChanged; }
static void listener_init() { OsuRTDataProviderPlugin p = new OsuRTDataProviderPlugin(); p.OnEnable(); lm = p.ListenerManager; lm.OnStatusChanged += listener_OnStatusChanged; lm.OnCount300Changed += listener_OnCount300Changed; lm.OnCountGekiChanged += listener_OnCountGekiChanged; lm.OnCount100Changed += listener_OnCount100Changed; lm.OnCountKatuChanged += listener_OnCountKatuChanged; lm.OnCount50Changed += listener_OnCount50Changed; lm.OnCountMissChanged += listener_OnCountMissChanged; lm.OnComboChanged += listener_OnComboChanged; lm.OnAccuracyChanged += listener_OnAccuracyChanged; lm.OnPlayingTimeChanged += listener_OnPlayingTimeChanged; lm.OnBeatmapChanged += listener_OnBeatmapChanged; lm.OnPlayModeChanged += listener_OnPlayModeChanged; lm.Start(); }
public LiveData(OsuListenerManager listenerManager, string file) { Listener = listenerManager; OutputFile = file; Data = new OsuData(); Listener.OnCount300Changed += val => Data.marv = val; Listener.OnCountGekiChanged += val => Data.perf = val; Listener.OnCountKatuChanged += val => Data.grea = val; Listener.OnCount100Changed += val => Data.good = val; Listener.OnCount50Changed += val => Data.ooof = val; Listener.OnCountMissChanged += val => Data.miss = val; Listener.OnScoreChanged += val => Data.score = val; Listener.OnComboChanged += val => Data.combo = val; Listener.OnPlayerChanged += val => Data.player = val; Listener.OnBeatmapChanged += ResetData; Listener.OnPlayingTimeChanged += UpdateData; Listener.OnErrorStatisticsChanged += (es) => { Data.errormin = es.ErrorMin; Data.errormax = es.ErrorMax; Data.ur = es.UnstableRate; }; Listener.OnHitEventsChanged += (pt, he) => { Data.play_type = pt; Data.hit_events = he; }; Listener.OnStatusChanged += StatusChanged; ws = new WebSocketServer(websocketAddr); Console.WriteLine("Starting websocket server for OsuLiveDataExport at " + websocketAddr); ws.AddWebSocketService <WebSocketHandler>("/ws"); ws.Start(); }
public PPControl(OsuListenerManager mamger, int?id) { m_listener_manager = mamger; m_listener_manager.OnModsChanged += (mods) => { m_cur_mods = mods; m_pp_calculator.ClearCache(); }; m_listener_manager.OnCount300Changed += c => m_n300 = c; m_listener_manager.OnCountGekiChanged += c => m_ngeki = c; m_listener_manager.OnCountKatuChanged += c => m_nkatu = c; m_listener_manager.OnCount100Changed += c => m_n100 = c; m_listener_manager.OnCount50Changed += c => m_n50 = c; m_listener_manager.OnCountMissChanged += c => m_nmiss = c; m_listener_manager.OnScoreChanged += s => m_score = s; m_listener_manager.OnPlayModeChanged += (last, mode) => { switch (mode) { case OsuPlayMode.Osu: m_pp_calculator = new StdPPCalculator(); break; case OsuPlayMode.Taiko: m_pp_calculator = new TaikoPerformanceCalculator(); break; case OsuPlayMode.Mania: m_pp_calculator = new ManiaPerformanceCalculator(); break; default: Sync.Tools.IO.CurrentIO.WriteColor("[RealTimePPDisplayer]Unsupported Mode", ConsoleColor.Red); m_pp_calculator = null; break; } m_mode = mode; }; m_listener_manager.OnStatusChanged += (last, cur) => { m_status = cur; if (cur == OsuStatus.Listening || cur == OsuStatus.Editing)//Clear Output { m_combo = 0; m_max_combo = 0; m_n100 = 0; m_n50 = 0; m_nmiss = 0; foreach (var p in m_displayers) { p.Value.Clear(); } } }; m_listener_manager.OnComboChanged += (combo) => { if (m_status != OsuStatus.Playing) { return; } if (combo <= ((m_pp_calculator as OppaiPerformanceCalculator)?.Oppai.FullCombo ?? 20000)) { m_combo = combo; m_max_combo = Math.Max(m_max_combo, m_combo); } }; m_listener_manager.OnBeatmapChanged += RTPPOnBeatmapChanged; m_listener_manager.OnPlayingTimeChanged += RTPPOnPlayingTimeChanged; }