Beispiel #1
0
 public CacheInitalizer(IMainWindowModel mainWindowHandle, ISqliteControler sqliteControler, ISettingsHandler settings, ILogger logger)
 {
     _mainWindowHandle = mainWindowHandle;
     _sqliteControler  = sqliteControler;
     _settings         = settings;
     _logger           = logger;
 }
 public SqliteDataFinder(ILogger logger, ISettingsHandler settings, IMainWindowModel mainWindowHandle, ISqliteControler sqLiteControler)
 {
     _mainWindowHandle = mainWindowHandle;
     _settingsHandle   = settings;
     _sqliteControler  = sqLiteControler;
     Start(logger);
 }
        public OsuMemoryEventSourceBase(ILogger logger, ISettingsHandler settings, ISqliteControler sqliteControler, IModParser modParser, List <IHighFrequencyDataHandler> highFrequencyDataHandlers)
        {
            _settings                  = settings;
            _sqLiteController          = sqliteControler;
            _modParser                 = modParser;
            _highFrequencyDataHandlers = highFrequencyDataHandlers;
            Logger        = logger;
            TokenSetter   = Tokens.CreateTokenSetter(Name);
            _memoryReader = OsuMemoryReader.Instance;

            _settings.SettingUpdated += OnSettingsSettingUpdated;

            bool isFallback             = _settings.Get <bool>(_names.OsuFallback);
            bool memoryScannerIsEnabled = _settings.Get <bool>(_names.EnableMemoryScanner);

            MemoryPoolingIsEnabled = _settings.Get <bool>(_names.EnableMemoryPooling);

            _poolingMsDelay = _settings.Get <int>(_names.MemoryPoolingFrequency);
            if (!memoryScannerIsEnabled)
            {
                return;
            }
            if (isFallback)
            {
                _settings.Add(_names.EnableMemoryScanner.Name, false);
                return;
            }

            lock (_lockingObject)
                _timer = new Timer(TimerCallback, null, 250, Int32.MaxValue);


            _memoryListener              = new MemoryListener();
            _memoryListener.NewOsuEvent += async(s, args) =>
            {
                while (NewOsuEvent == null)
                {
                    await Task.Delay(5);
                }

                NewOsuEvent.Invoke(this, args);
            };
            _memoryListener.SetHighFrequencyDataHandlers(_highFrequencyDataHandlers);
            _memoryListener.SetSettingsHandle(_settings);

            Started = true;
        }
        public OsuSongsFolderWatcher(ILogger logger, ISettingsHandler settings, ISqliteControler sqliteControler)
        {
            _settings        = settings;
            _sqliteControler = sqliteControler;
            _logger          = logger;

            if (_settings.Get <bool>(_names.LoadingRawBeatmaps))
            {
                _settings.Add(_names.LoadingRawBeatmaps.Name, false);
            }

            var dir = _settings.Get <string>(_names.SongsFolderLocation);

            if (dir == _names.SongsFolderLocation.Default <string>())
            {
                dir = _settings.Get <string>(_names.MainOsuDirectory);
                dir = Path.Combine(dir, "Songs\\");
            }

            if (Directory.Exists(dir))
            {
                _watcher          = new FileSystemWatcher(dir, "*.osu");
                _watcher.Created += Watcher_FileCreated;
                _watcher.Changed += Watcher_FileChanged;
                _watcher.IncludeSubdirectories = true;
                _watcher.EnableRaisingEvents   = true;
                _consumerThread = new Thread(ConsumerTask);
                _consumerThread.Start();
            }
            else
            {
                MessageBox.Show($"Could not find osu! songs directory at \"{dir}\"" + Environment.NewLine +
                                "This is most likely caused by moved or incorrectly detected osu! songs directory" + Environment.NewLine +
                                "Set osu! path manually in settings for StreamCompanion to be able to provide data for newly loaded songs"
                                , "StreamCompanion - New songs watcher error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 public OsuMemoryEventSource(ILogger logger, ISettingsHandler settings, ISqliteControler sqliteControler, IModParser modParser, List <IHighFrequencyDataHandler> highFrequencyDataHandlers) : base(logger, settings, sqliteControler, modParser, highFrequencyDataHandlers)
 {
 }
 public void SetSqliteControlerHandle(ISqliteControler sqLiteControler)
 {
     _sqlite = sqLiteControler;
 }