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 + "."); }
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"); }
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)); } }
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 + "."); } }
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"); }
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(); }
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"); }
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; } } }
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 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; }
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; } }
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)); }
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)); } } }