public MainViewModel(Dispatcher dispatcher, Action <UIElement> logFunc) { Dispatcher = dispatcher; LogFunc = logFunc; QueryComPorts(); InitScene(LedBadgeLib.Badges.B1248); m_frameTimer.Start(); HoldTimingA = 1; HoldTimingB = 3; HoldTimingC = 4; IdleFade = true; IdleResetToBootImage = true; IdleTimeout = 255; var badgeDispatcher = new LedBadgeLib.BadgeResponsePassthroughDispatcher(); badgeDispatcher.ResponseHandler += OnBadgeResponse; badgeDispatcher.SendFailureHandler += OnBadgeSendFailure; m_badgePump = new LedBadgeLib.BadgePump(badgeDispatcher); DisplayMode = DisplayMode.Nothing; m_badgePump.RenderFrame += OnRenderFrame; m_badgePump.FrameReady += OnFrameReady; m_badgePump.GenerateCommands += OnGenerateCommands; m_badgePump.Start(); TextProvider = new TextProvider(Dispatcher, m_messageScene.Queue); ImageProvider = new ImageProvider(Dispatcher, m_messageScene.Queue); TwitterProvider = new TwitterProvider(Dispatcher, m_messageScene.Queue); RawMovieProvider = new RawMovieProvider(Dispatcher, m_messageScene.Queue); }
void OnRenderFrame(object sender, LedBadgeLib.BadgeFrameEventArgs args) { switch (DisplayMode) { case DisplayMode.Messages: { LedBadgeLib.BadgePump pump = (LedBadgeLib.BadgePump)sender; m_messageScene.Update(1.0f / pump.FrameRate); m_messageScene.Render(args.Frame, 0, 0); break; } case DisplayMode.TestFrame: { TestFrame(args.Frame); break; } } Frame++; }