public PixelSplitterRunHandler(
     LiveSplitController controller,
     IActionRepositoryProvider actionRepositoryProvider,
     IActionMatchComparer actionMatcher,
     IGameImageProvider gameImageProvider,
     IPixelSplitterSettingsProvider settingsProvider)
 {
     this.controller = controller;
     this.actionRepositoryProvider = actionRepositoryProvider;
     this.actionMatcher            = actionMatcher;
     this.gameImageProvider        = gameImageProvider;
     this.settingsProvider         = settingsProvider;
 }
        public PixelSplitterComponent(LiveSplitState state)
        {
            this.state = state;

            var repoProvider  = new JsonBasedActionRepositoryProvider();
            var imageProvider = new CaptureDeviceGameImageProvider();


            settings = new ComponentSettings(state, repoProvider, imageProvider);
            var settingsProvider = new PixelSplitterSettingsProvider(settings);

            CaptureDeviceGameImageProvider.SettingsProvider = settingsProvider;

            controller = new LiveSplitController(this.state);

            actionMatcher = new ActionMatchComparer(new GameImageMatchComparer(), settingsProvider);
            runHandler    = new PixelSplitterRunHandler(controller, repoProvider, actionMatcher, imageProvider, settingsProvider);
        }