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();
        }
Пример #5
0
        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();
        }
Пример #6
0
        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;
        }