/// <summary> /// Removes a target. /// </summary> /// <param name="target"></param> public bool RemoveTarget(Target target) { lock (targetsLock) { foreach (var t in targets) { if (t.Name == target) { Log.Debug("Removing {0} as target.", target.ToString()); t.Dispose(); targets.Remove(t); return true; } } } return false; }
/// <summary> /// Method to allow the handlers to raise the NewConnectionLost event. /// </summary> /// <param name="target"></param> public void NewConnectionLost(Target target) { OnNewConnectionLost(target); }
/// <summary> /// Add a target to be used. /// </summary> /// <param name="target"></param> public void AddTarget(Target target) { // Dont allow the same target to be added more than once. lock (targetsLock) { foreach (var t in targets) { if (t.Name == target) { return; } } if (target == Target.AtmoWin) { targets.Add(new AtmoWinHandler()); } else if (target == Target.Hue) { targets.Add(new HueHandler()); } else if (target == Target.Hyperion) { targets.Add(new HyperionHandler()); } else if (target == Target.AmbiBox) { targets.Add(new AmbiBoxHandler()); } else if (target == Target.Boblight) { targets.Add(new BoblightHandler()); } else if (target == Target.AtmoOrb) { targets.Add(new AtmoOrbHandler()); } } }
public ITargets GetTarget(Target target) { lock (targetsLock) { foreach (var t in targets) { if (t.Name == target) { return t; } } } return null; }
void LoadConfig() { // 解析配置文件 XmlTextReader reader = new XmlTextReader("./config.xml"); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "input") { string dir = reader.GetAttribute("dir"); if (dir.Length != 0) AddInputDir(dir); } else if (reader.Name == "target") { Target target = new Target(); target.name = reader.GetAttribute("name"); string param = reader.GetAttribute("param"); string dir = reader.GetAttribute("dir"); if (dir != null) target.config["dir"] = dir; target.parse(param); if (target.name != null) m_targets.Add(target.name, target); } } } }