public ConditionalFeature(OverlayPlugin plugin, XmlNode node)
        {
            mPlugin = plugin;
            XmlNode featureNode = node.SelectSingleNode("child::Feature");

            mStartActive = GetBool(node, false, "StartActive");
            mMultiActivate = GetBool(node, false, "MultiActivate");

            if (featureNode == null)
                throw new ArgumentException("Unable to load Conditional Feature. Unable to parse feature.");

            foreach (var child in GetChildrenOfChild(node, "ActiveTriggers")) {
                var trigger = plugin.GetTrigger(child, "conditional feature", null);
                mActiveTriggers.Add(trigger);
                trigger.Triggered += mActiveTrigger_Triggered;
            } foreach (var child in GetChildrenOfChild(node, "InactiveTriggers")) {
                var trigger = plugin.GetTrigger(child, "conditional feature", null);
                mInactiveTriggers.Add(trigger);
                trigger.Triggered += mInactiveTrigger_Triggered;
            }

            mFeature = mPlugin.GetFeature(featureNode, "conditional feature", null);

            if (node.SelectSingleNode("child::ActiveTriggers") == null)
                Logger.Info("No active trigger node found in conditional feature " + Name + ".");
            if (node.SelectSingleNode("child::InactiveTriggers") == null)
                Logger.Info("No inactive trigger node found in conditional feature.");

            if (mActiveTriggers.Count == 0)
                Logger.Info("No active triggers loaded in conditional feature " + Name + ".");
            if (mInactiveTriggers.Count == 0)
                Logger.Info("No inactive triggers loaded in conditional feature " + Name + ".");
        }
Exemplo n.º 2
0
        public SayFeature(OverlayPlugin plugin, XmlNode node)
        {
            mTriggerListener = new Action <ITrigger>(TriggerListener);

            mFrame = GetManager(plugin, node, "Say Feature").Name;

            List <ITrigger> triggers = new List <ITrigger>();

            foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers"))
            {
                ITrigger t = plugin.GetTrigger(trigger, "Say trigger", null);
                if (t != null)
                {
                    triggers.Add(t);
                }
            }
            mTriggers = triggers.ToArray();
            if (plugin.Core[mFrame].Output is OpenSimController)
            {
                mController = plugin.Core[mFrame].Output as OpenSimController;
            }
            mPlugin        = plugin;
            mMessageString = GetString(node, "click", "Message");
            mChannel       = GetInt(node, 1, "Channel");
        }
Exemplo n.º 3
0
 private void LoadTriggers(OverlayPlugin manager, XmlNode node, bool next)
 {
     foreach (XmlNode child in GetChildrenOfChild(node, (next ? "Next" : "Prev") + "Triggers"))
     {
         AddTrigger(next, manager.GetTrigger(child, "slideshow state " + (next ? "next" : "prev"), null));
     }
 }
Exemplo n.º 4
0
        public ConditionalFeature(OverlayPlugin plugin, XmlNode node)
        {
            mPlugin = plugin;
            XmlNode featureNode = node.SelectSingleNode("child::Feature");

            mStartActive   = GetBool(node, false, "StartActive");
            mMultiActivate = GetBool(node, false, "MultiActivate");

            if (featureNode == null)
            {
                throw new ArgumentException("Unable to load Conditional Feature. Unable to parse feature.");
            }

            foreach (var child in GetChildrenOfChild(node, "ActiveTriggers"))
            {
                var trigger = plugin.GetTrigger(child, "conditional feature", null);
                mActiveTriggers.Add(trigger);
                trigger.Triggered += mActiveTrigger_Triggered;
            }
            foreach (var child in GetChildrenOfChild(node, "InactiveTriggers"))
            {
                var trigger = plugin.GetTrigger(child, "conditional feature", null);
                mInactiveTriggers.Add(trigger);
                trigger.Triggered += mInactiveTrigger_Triggered;
            }

            mFeature = mPlugin.GetFeature(featureNode, "conditional feature", null);

            if (node.SelectSingleNode("child::ActiveTriggers") == null)
            {
                Logger.Info("No active trigger node found in conditional feature " + Name + ".");
            }
            if (node.SelectSingleNode("child::InactiveTriggers") == null)
            {
                Logger.Info("No inactive trigger node found in conditional feature.");
            }

            if (mActiveTriggers.Count == 0)
            {
                Logger.Info("No active triggers loaded in conditional feature " + Name + ".");
            }
            if (mInactiveTriggers.Count == 0)
            {
                Logger.Info("No inactive triggers loaded in conditional feature " + Name + ".");
            }
        }
Exemplo n.º 5
0
 public MultiTrigger(OverlayPlugin plugin, XmlNode node)
     : base(node)
 {
     mTriggerListener = new Action<ITrigger>(TriggerListener);
     mCore = plugin.Core;
     List<ITrigger> triggers = new List<ITrigger>();
     mTriggerStates = new Dictionary<string, bool>();
     foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers")) {
         ITrigger t = plugin.GetTrigger(trigger, "Multi trigger", null);
         if (t != null) {
             triggers.Add(t);
             Logger.InfoFormat("Adding trigger {0}", t.Name);
         }
     }
     mTriggers = triggers.ToArray();
     numTriggered = 0;
 }
 public TriggerTimeoutTrigger(OverlayPlugin plugin, XmlNode node)
     : base(node)
 {
     mTriggerListener = new Action<ITrigger>(TriggerListener);
     mCore = plugin.Core;
     List<ITrigger> triggers = new List<ITrigger>();
     foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers"))
     {
         ITrigger t = plugin.GetTrigger(trigger, "TriggerTimeout trigger", null);
         if (t != null)
         {
             triggers.Add(t);
         }
     }
     mTriggers = triggers.ToArray();
     mTickListener = new Action(mCore_Tick);
     mLengthMS = GetDouble(node, mLengthMS, "LengthMS");
 }
Exemplo n.º 7
0
        public ClickFeature(OverlayPlugin plugin, XmlNode node)
        {
            mTriggerListener = new Action <ITrigger>(TriggerListener);

            mLeft  = GetBool(node, false, "LeftClick");
            mFrame = GetManager(plugin, node, "Click Feature").Name;

            List <ITrigger> triggers = new List <ITrigger>();

            foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers"))
            {
                ITrigger t = plugin.GetTrigger(trigger, "JoystickClick trigger", null);
                if (t != null)
                {
                    triggers.Add(t);
                }
            }
            mTriggers = triggers.ToArray();
        }
Exemplo n.º 8
0
        public TriggerTimeoutTrigger(OverlayPlugin plugin, XmlNode node)
            : base(node)
        {
            mTriggerListener = new Action <ITrigger>(TriggerListener);
            mCore            = plugin.Core;
            List <ITrigger> triggers = new List <ITrigger>();

            foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers"))
            {
                ITrigger t = plugin.GetTrigger(trigger, "TriggerTimeout trigger", null);
                if (t != null)
                {
                    triggers.Add(t);
                }
            }
            mTriggers     = triggers.ToArray();
            mTickListener = new Action(mCore_Tick);
            mLengthMS     = GetDouble(node, mLengthMS, "LengthMS");
        }
Exemplo n.º 9
0
 private void LoadTriggers(XmlNode node, OverlayPlugin manager, string triggerType, List <ITrigger> list, Action <ITrigger> onTrigger)
 {
     foreach (XmlElement child in GetChildrenOfChild(node, triggerType))
     {
         ITrigger trigger = manager.GetTrigger(child, "video " + triggerType.TrimEnd('s'), null);
         if (trigger != null)
         {
             if (!GetBool(child, false, "AlwaysOn"))
             {
                 list.Add(trigger);
                 trigger.Active = false;
             }
             if (trigger is IFeature)
             {
                 AddFeature(trigger as IFeature);
             }
             trigger.Triggered += onTrigger;
         }
     }
 }
Exemplo n.º 10
0
        public MultiTrigger(OverlayPlugin plugin, XmlNode node)
            : base(node)
        {
            mTriggerListener = new Action <ITrigger>(TriggerListener);
            mCore            = plugin.Core;
            List <ITrigger> triggers = new List <ITrigger>();

            mTriggerStates = new Dictionary <string, bool>();
            foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers"))
            {
                ITrigger t = plugin.GetTrigger(trigger, "Multi trigger", null);
                if (t != null)
                {
                    triggers.Add(t);
                    Logger.InfoFormat("Adding trigger {0}", t.Name);
                }
            }
            mTriggers    = triggers.ToArray();
            numTriggered = 0;
        }
Exemplo n.º 11
0
        public CloseBrowserFeature(OverlayPlugin plugin, XmlNode node)
        {
            mTriggerListener = new Action <ITrigger>(TriggerListener);

            mFrame = GetManager(plugin, node, "CloseBrowser Feature").Name;

            List <ITrigger> triggers = new List <ITrigger>();

            foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers"))
            {
                ITrigger t = plugin.GetTrigger(trigger, "CloseBrowser trigger", null);
                if (t != null)
                {
                    triggers.Add(t);
                }
            }
            mTriggers = triggers.ToArray();
            if (plugin.Core[mFrame].Output is OpenSimController)
            {
                mController = plugin.Core[mFrame].Output as OpenSimController;
            }
            mPlugin = plugin;
        }
Exemplo n.º 12
0
        public KeyClickFeature(OverlayPlugin plugin, XmlNode node)
        {
            mTriggerListener = new Action <ITrigger>(TriggerListener);

            keys   = node.Attributes["Keys"].Value;
            mFrame = GetManager(plugin, node, "Click Feature").Name;

            List <ITrigger> triggers = new List <ITrigger>();

            foreach (XmlNode trigger in GetChildrenOfChild(node, "Triggers"))
            {
                ITrigger t = plugin.GetTrigger(trigger, "KeyClick trigger", null);
                if (t != null)
                {
                    triggers.Add(t);
                }
            }
            mTriggers = triggers.ToArray();
            if (plugin.Core[mFrame].Output is OpenSimController)
            {
                mController = plugin.Core[mFrame].Output as OpenSimController;
            }
        }
Exemplo n.º 13
0
 private void LoadTriggers(OverlayPlugin manager, XmlNode node, bool next)
 {
     foreach (XmlNode child in GetChildrenOfChild(node, (next ? "Next" : "Prev") + "Triggers"))
         AddTrigger(next, manager.GetTrigger(child, "slideshow state " + (next ? "next" : "prev"), null));
 }
Exemplo n.º 14
0
        public FlythroughState(OverlayPlugin manager, XmlNode node, IMediaPlayer player)
            : base(GetName(node, "flythrough state"), manager, node, false)
        {
            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));
                }
            }
        }