コード例 #1
0
        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);
        }
コード例 #2
0
        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++;
        }