Beispiel #1
0
 internal static EventQueueThreads GetEventThreads(AnimeCollector collector, AnimeEvent animeEvent)
 {
     lock (animeCollectors)
     {
         var cd = GetCollectorData(collector);
         return(cd.GetEventQueueThreads(animeEvent));
     }
 }
Beispiel #2
0
 private static ControllData FindCollectorData(AnimeCollector collector)
 {
     if (animeCollectors.ContainsKey(collector))
     {
         return(animeCollectors[collector]);
     }
     return(null);
 }
Beispiel #3
0
 internal static EventQueueThreads FindEventThreads(AnimeCollector collector, AnimeEvent animeEvent)
 {
     lock (animeCollectors)
     {
         var cData = FindCollectorData(collector);
         if (cData != null)
         {
             return(cData.FindEventQueueThreads(animeEvent));
         }
         return(null);
     }
 }
Beispiel #4
0
 internal static ControllData GetCollectorData(AnimeCollector collector)
 {
     lock (animeCollectors)
     {
         var res = FindCollectorData(collector);
         if (res == null)
         {
             res = new ControllData();
             animeCollectors.Add(collector, res);
         }
         return(res);
     }
 }
Beispiel #5
0
        internal static void ApplyToControl(object control, AnimeCollector collector)
        {
            if (control == null || collector == null)
            {
                return;
            }
            ControllData dataClone = null;

            lock (animeCollectors)
            {
                var cd = FindCollectorData(collector);
                if (cd != null)
                {
                    dataClone = (ControllData)cd.Clone();
                }
            }
            if (dataClone == null)
            {
                return;
            }

            foreach (var pair in dataClone.EventThreads)
            {
                foreach (var queue in pair.Value.EventsQueue)
                {
                    var eventQueue = GetEventThreads(control, pair.Key).NewQueue();
                    if (eventQueue.IsNew)
                    {
                        SetHandler(control, pair.Key);
                    }
                    for (int i = 0; i < queue.PacketQueue.Count; i++)
                    {
                        eventQueue.Add(queue.PacketQueue[i]);
                    }
                }
            }
        }