Пример #1
0
        /// <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;
        }
Пример #2
0
 /// <summary>
 /// Method to allow the handlers to raise the NewConnectionLost event.
 /// </summary>
 /// <param name="target"></param>
 public void NewConnectionLost(Target target)
 {
     OnNewConnectionLost(target);
 }
Пример #3
0
        /// <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());
            }
              }
        }
Пример #4
0
 public ITargets GetTarget(Target target)
 {
     lock (targetsLock)
       {
     foreach (var t in targets)
     {
       if (t.Name == target)
       {
     return t;
       }
     }
       }
       return null;
 }
Пример #5
0
 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);
             }
         }
     }
 }