Пример #1
0
        public VideoState(OverlayPlugin manager, XmlNode node, IMediaPlayer player)
            : base(manager, node)
        {
            mPlayer = player;
            mVideo = GetString(node, null, "File");
            if (mVideo == null)
                throw new ArgumentException("Unable to load VideoState. No File attribute specified.");
            mVideo = Path.GetFullPath(mVideo);
            if (!File.Exists(mVideo))
                throw new ArgumentException("Unable to load VideoState. The file '" + mVideo + "' does not exist.");

            mPlayer.PlaybackFinished += new Action(mPlayer_VideoFinished);
            mMainWindow = GetManager(manager, node, "video state");
            mBounds = manager.GetBounds(node, "video state");

            XmlAttribute toAttr = node.Attributes["FinishState"];
            if (toAttr != null && manager.GetState(toAttr.Value) != null) {
                mTrigger = new SimpleTrigger();
                ITransitionStyle transition = manager.GetTransition(node, "video state finish transition", new FeatureFrameTransitionFactory(new FeatureFadeFactory(), 2000), "Transition");
                if (transition == null) {
                    Logger.Debug("No transition specified for VideoState. using default 2s bitmap fade transition.");
                    transition = new FeatureFrameTransitionFactory(new FeatureFadeFactory(), 2000);
                }
                AddTransition(new StateTransition(Manager, this, manager.GetState(toAttr.Value), mTrigger, transition));
            }

            LoadTriggers(node, manager, "StartTriggers", mStartTriggers, new Action(StartTriggered));
            LoadTriggers(node, manager, "StopTriggers", mStopTriggers, new Action(StopTriggered));

            mRestartMode = GetBool(node, false, "RestartMode");
            if (mRestartMode) {
                LoadTriggers(node, manager, "ResetTriggers", mResetTriggers, new Action(RestartTriggered));
            }
        }
 public MouseActiveTrigger(OverlayPlugin plugin, XmlNode node)
     : base(node)
 {
     mManager = GetManager(plugin, node, "trigger");
     mCore = plugin.Core;
     mMoveListener = new Action<FrameOverlayManager, EventArgs>(mManager_CursorMoved);
 }
 public TouchscreenWindow(FrameOverlayManager manager, TouchscreenPlugin plugin)
     : base(manager)
 {
     mPlugin = plugin;
     mPlugin.Left.SizeChanged += () => Manager.ForceRedrawStatic();
     mPlugin.Right.SizeChanged += () => Manager.ForceRedrawStatic();
     mPlugin.Single.SizeChanged += () => Manager.ForceRedrawStatic();
 }
Пример #4
0
        public UnityState(OverlayPlugin manager, XmlNode node)
            : base(GetName(node, "creating unity state"), manager, node, false)
        {
            mUnity = Path.GetFullPath(GetString(node, null, "File"));
            mManager = manager;
            mMainWindow = GetManager(manager, node, "unity state");
            mBounds = manager.GetBounds(node, "unity state");

            ResizedHandler = new System.EventHandler(this.Resized);
        }
        /// <summary>
        /// Initialise the fade transition, specifying how long the fade should last, in ms.
        /// </summary>
        /// <param name="transition">The transition this fade is part of.</param>
        /// <param name="manager">The window this fade is to be drawn on.</param>
        /// <param name="lengthMS">The length of time, in ms, the fade should last.</param>
        public FeatureFrameTransition(StateTransition transition, FrameOverlayManager manager, IFeatureTransition transitionEffect)
            : base(transition, manager)
        {
            mTransition = transitionEffect;
            mTransition.Start = From;
            mTransition.Finish = To;
            mTransition.Finished += new Action(transitionEffect_Finished);

            AddFeature(mTransition);
        }
Пример #6
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="transition"></param>
        /// <param name="window"></param>
        /// <exception cref="InvalidArgumentException">Thrown if there is no window state for the To or From state.</exception>
        public FrameTransition(StateTransition transition, FrameOverlayManager manager)
            : base(manager.Name)
        {
            mManager = manager;
            mTransition = transition;

            mFrom = transition.From[manager.Name];
            mTo = transition.To[manager.Name];

            Finished += trans => mSelected = false;
        }
Пример #7
0
        public VideoState(string name, FrameOverlayManager mainWindow, string video, State parent, ITransitionStyle transition, IMediaPlayer player)
            : base(name, mainWindow.Manager, DefaultBG)
        {
            mPlayer = player;
            mMainWindow = mainWindow;
            mVideo = Path.GetFullPath(video);
            mPlayer.PlaybackFinished += mPlayer_VideoFinished;

            mTrigger = new SimpleTrigger();
            AddTransition(new StateTransition(Manager, this, parent, mTrigger, transition));
        }
Пример #8
0
        void mCoordinator_FrameAdded(Frame frame, EventArgs args)
        {
            FrameOverlayManager manager = new FrameOverlayManager(this, frame);

            mFrameManagers.Add(frame.Name, manager);

            if (mMasterForm != null)
            {
                manager.SetForm(mMasterForm);
            }

            if (mConfig.LaunchOverlay)
            {
                manager.Launch();
            }
        }
 public IWindowTransition Create(StateTransition transition, FrameOverlayManager manager)
 {
     return new FeatureFrameTransition(transition, manager, mFactory.Create(mLengthMS));
 }
Пример #10
0
 /// <summary>
 /// Create a window state for drawing this state to the specified window.
 /// </summary>
 /// <param name="window">The window the new window state is to draw on.</param>
 public virtual IFrameState CreateFrameState(FrameOverlayManager manager)
 {
     return new FrameState(manager);
 }
Пример #11
0
 private void coordinator_WindowAdded(Frame frame, EventArgs args)
 {
     if (frame.Name == mWindow) {
         mManager = mOverlayPlugin[frame.Name];
         frame.Core.FrameAdded -= mWindowAddedListener;
     }
 }
Пример #12
0
 public void Init(Core core)
 {
     if (!core.HasPlugin<OverlayPlugin>()) {
         //throw new ArgumentException("Unable to load kinect cursor. Overlay plugin is not loaded.");
         Logger.Warn("Unable to load axis cursor. Overlay plugin is not loaded.");
         Init();
         return;
     }
     mOverlayPlugin = core.GetPlugin<OverlayPlugin>();
     if (core.HasFrame(mWindow)) {
         mManager = mOverlayPlugin[mWindow];
     } else {
         mWindowAddedListener = new Action<Chimera.Frame, EventArgs>(coordinator_WindowAdded);
         core.FrameAdded += mWindowAddedListener;
     }
     Init();
 }
 void mManager_CursorMoved(FrameOverlayManager manager, EventArgs args)
 {
     Trigger();
 }
Пример #14
0
 public InfoState(string name, OverlayPlugin manager, string mainWindow, string whereWindow)
     : base(name, manager)
 {
     mPlugin = manager;
     mMainWindow = manager[mainWindow];
 }
Пример #15
0
        void mCoordinator_FrameAdded(Frame frame, EventArgs args)
        {
            FrameOverlayManager manager = new FrameOverlayManager(this, frame);
            mFrameManagers.Add(frame.Name, manager);

            if (mMasterForm != null)
                manager.SetForm(mMasterForm);

            if (mConfig.LaunchOverlay)
                manager.Launch();
        }
Пример #16
0
 /// <summary>
 /// CreateWindowState a window state for drawing this state to the specified window.
 /// </summary>
 /// <param name="window">The window the new window state is to draw on.</param>
 public override IFrameState CreateFrameState(FrameOverlayManager manager)
 {
     ImageBGWindow win = new ImageBGWindow(manager, mWindowBGs.ContainsKey(manager.Name) ?  mWindowBGs[manager.Name] : mDefaultBG);
     mWindows.Add(manager.Name, win);
     return win;
 }
Пример #17
0
 /// <param name="manager">The manager which controls this frame state.</param>
 public FrameState(FrameOverlayManager manager)
     : base(manager.Frame.Name)
 {
     mManager = manager;
 }
 public KinectControlWindowState(FrameOverlayManager manager, double mOpacity)
     : this(manager)
 {
     this.mOpacity = mOpacity;
 }
        /// <summary>
        /// Initialise the fade transition, specifying how long the fade should last, in ms.
        /// </summary>
        /// <param name="transition">The transition this fade is part of.</param>
        /// <param name="manager">The window this fade is to be drawn on.</param>
        /// <param name="lengthMS">The length of time, in ms, the fade should last.</param>
        public OpacityFadeWindowTransition(StateTransition transition, FrameOverlayManager manager, double lengthMS, bool fadeIn)
            : base(transition, manager)
        {
            mLengthMS = lengthMS;
            mFadeIn = fadeIn;
            mTickListener = new Action(Coordinator_Tick);

            Finished += new Action<IWindowTransition>(OpacityFadeWindowTransition_Finished);

            #if DEBUG
            StatisticsCollection.AddStatistics(mStatistics, transition.Name + " " + manager.Name);
            #endif
        }
Пример #20
0
 /// <summary>
 /// CreateWindowState a window state for drawing this state to the specified window.
 /// </summary>
 /// <param name="window">The window the new window state is to draw on.</param>
 public abstract IFrameState CreateWindowState(FrameOverlayManager manager);
 public IWindowTransition Create(StateTransition transition, FrameOverlayManager manager)
 {
     return new OpacityFadeWindowTransition(transition, manager, mLengthMS, !mFadeOut);
 }
 public KinectControlWindowState(FrameOverlayManager manager)
     : base(manager)
 {
 }
Пример #23
0
 /// <param name="manager">The manager which controls this window state.</param>
 public FrameState(FrameOverlayManager manager)
     : base(manager.Frame.Name)
 {
     mManager = manager;
 }
 public override IFrameState CreateFrameState(FrameOverlayManager manager)
 {
     return new KinectControlWindowState(manager);
 }
Пример #25
0
        public FlythroughState(OverlayPlugin manager, XmlNode node, IMediaPlayer player)
            : base(GetName(node, "flythrough state"), manager, node)
        {
            mStepListener = new Action<int>(mInput_StepStarted);

            mInput = manager.Core.GetPlugin<FlythroughPlugin>();
            bool displaySubtitles = GetBool(node, false, "DisplaySubtitles");
            mFlythrough = GetString(node, null, "File");
            mAutoStepping = GetBool(node, true, "AutoStep");
            mLoop = GetBool(node, true, "Loop");

            if (mFlythrough == null)
                throw new ArgumentException("Unable to load flythrough state. No flythrough file specified.");

            mPlayer = player;
            if (mPlayer != null)
                mDefaultWindow = Manager[0];

            if (displaySubtitles) {
                mSubtitlesText = Manager.MakeText(node.SelectSingleNode("child::SubtitleText"));
                mSubtitlesFont = Manager.MakeText(node.SelectSingleNode("child::SubtitleText"));
            }

            XmlNode stepTextNode = node.SelectSingleNode("child::StepText");
            if (stepTextNode != null)
                mStepText = Manager.MakeText(stepTextNode);

            //mInput.CurrentEventChange += new Action<FlythroughEvent<Camera>,FlythroughEvent<Camera>>(mInput_CurrentEventChange);
            int subtitleTimeout = GetInt(node, 20, "SubtitleTimeout");

            XmlNode stepsRoot = node.SelectSingleNode("child::Steps");
            if (stepsRoot != null) {
                foreach (XmlNode child in stepsRoot.ChildNodes) {
                    if (child is XmlElement) {
                        Step step = new Step(this, child, mSubtitlesText, subtitleTimeout, mPlayer);
                        mSteps.Add(step.StepNum, step);
                    }
                }
            }

            if (displaySubtitles)
                AddFeature(mSubtitlesText);
            if (mStepText != null)
                AddFeature(mStepText);

            XmlNode triggersRoot = node.SelectSingleNode("child::Triggers");
            if (triggersRoot != null) {
                foreach (XmlNode child in triggersRoot.ChildNodes)
                    AddStepTrigger(manager.GetTrigger(child, "flythrough step", null));
            }
        }
Пример #26
0
        public void Init(FrameOverlayManager manager)
        {
            mManager = manager;

            drawPanel.BackColor = manager.TransparencyKey;
            TransparencyKey = manager.TransparencyKey;
            BackColor = manager.TransparencyKey;
            Opacity = manager.Opacity;
            refreshTimer.Interval = manager.FrameLength;
            //refreshTimer.Enabled = true;

            Thread tickthread = new Thread(TickThread);
            tickthread.Name = mManager.Name + " graphics thread.";
            tickthread.Start();
        }
Пример #27
0
 public OverlayWindow(FrameOverlayManager manager)
     : this()
 {
     Init(manager);
 }
Пример #28
0
 private void Update(FrameOverlayManager manager, Rectangle bounds, int x, int y)
 {
     mOverlayPlugin[manager.Name].UpdateCursor((double)x / (double)bounds.Width, (double)y / (double)bounds.Height);
 }
Пример #29
0
 /// <summary>
 /// Create a window state for drawing this state to the specified window.
 /// </summary>
 /// <param name="window">The window the new window state is to draw on.</param>
 public virtual IFrameState CreateFrameState(FrameOverlayManager manager)
 {
     return(new FrameState(manager));
 }
 public OverlayTouchSource(FrameOverlayManager manager)
 {
     mManager = manager;
     mManager.OnPress += () => { if (OnPress != null) OnPress(0); };
     mManager.OnRelease += () => { if (OnRelease != null) OnRelease(0); };
 }
Пример #31
0
 public override IFrameState CreateFrameState(FrameOverlayManager manager)
 {
     if (manager.Name.Equals(mPlugin.Frame.Name))
         return new TouchscreenWindow(manager, mPlugin);
     return new FrameState(manager);
 }
Пример #32
0
 public override IFrameState CreateWindowState(FrameOverlayManager manager)
 {
     return new FrameState(manager);
 }
Пример #33
0
        void Core_InitialisationComplete()
        {
            if (mFrame.Core.HasPlugin<OverlayPlugin>())
                mManager = mFrame.Core.GetPlugin<OverlayPlugin>()[mFrame.Name];

            if (mConfig.AutoStartViewer)
                Launch();
            else if (mConfig.AutoStartProxy)
                StartProxy();
        }