Пример #1
0
        private LiveFeedAnimator GetLiveFeedAnimator(string movementFileName)
        {
            VideoAnimationBinding binding = AllVideoBindings.Get(movementFileName);
            string fullPathToMovementFile = VideoAnimationManager.GetFullPathToMovementFile(movementFileName);

            VideoFeed[] videoFeeds = AllVideoFeeds.GetAll(binding);
            return(VideoAnimationManager.LoadLiveAnimation(fullPathToMovementFile, binding, videoFeeds));
        }
Пример #2
0
        static void StartLiveAnimation(string sceneName, List <VideoAnimationBinding> bindings, DateTime startTime)
        {
            CleanUpLiveFeedAnimators();
            liveFeedAnimators = new List <LiveFeedAnimator>();
            foreach (VideoAnimationBinding videoAnimationBinding in bindings)
            {
                string      movementFile = GetFullPathToMovementFile(videoAnimationBinding.MovementFileName);
                VideoFeed[] videoFeeds   = AllVideoFeeds.GetAll(videoAnimationBinding);

                LiveFeedAnimator liveFeedAnimator = LoadLiveAnimation(movementFile, videoAnimationBinding, videoFeeds);
                liveFeedAnimator.FrameAnimator.AnimationComplete += LiveFeedAnimator_AnimationComplete;
                liveFeedAnimator.FrameAnimator.Start(startTime);
                liveFeedAnimators.Add(liveFeedAnimator);
            }

            // TODO: Track which video feed we are running in case we abort while we are running.

            string fullPathToLightsFile = VideoAnimationManager.GetFullPathToLightsFile(sceneName);

            if (System.IO.File.Exists(fullPathToLightsFile))
            {
                string           lightsJson       = System.IO.File.ReadAllText(fullPathToLightsFile);
                LightingSequence lightingSequence = JsonConvert.DeserializeObject <LightingSequence>(lightsJson);
                //log.Clear();
                foreach (Light light in lightingSequence.Lights)
                {
                    FrameAnimator frameAnimator = new FrameAnimator(light.SequenceData.Count);
                    frameAnimator.Data = light;
                    frameAnimator.AnimationComplete += FrameAnimator_AnimationComplete;
                    frameAnimator.RenderFrame       += FrameAnimator_RenderLights;
                    frameAnimator.Start(startTime);
                    lightAnimators.Add(frameAnimator);
                }
            }

            existingAnimationIsRunning = true;
        }