예제 #1
0
 protected virtual void StartSourceChangeProcess(SourceBase previousSource, SourceBase newSource)
 {
     _sourceChangeThread = new Thread(SourceLoadProcess, new[] { previousSource, newSource },
                                      Thread.eThreadStartOptions.CreateSuspended)
     {
         Name     = "Room SourceLoadProcess()",
         Priority = Thread.eThreadPriority.HighPriority
     };
     _sourceChangeThread.Start();
 }
예제 #2
0
        private void OnSourceChange(RoomBase room, SourceBase previousSource, SourceBase newSource)
        {
            var handler = SourceChange;
            var args    = new RoomSourceChangeEventArgs(previousSource, newSource);

            CloudLog.Info("{0} has changed sources from {1} to {2}", room,
                          previousSource != null ? previousSource.ToString() : "Off",
                          newSource != null ? newSource.ToString() : "Off");

            StartSourceChangeProcess(previousSource, newSource);

            try
            {
                if (handler != null)
                {
                    handler(room, args);
                }
            }
            catch (Exception e)
            {
                CloudLog.Exception(e);
            }
        }
예제 #3
0
 protected abstract void SourceLoadStarted(SourceBase newSource);
예제 #4
0
 public RoomSourceChangeEventArgs(SourceBase previousSource, SourceBase newSource)
 {
     NewSource      = newSource;
     PreviousSource = previousSource;
 }
예제 #5
0
파일: SourceGroup.cs 프로젝트: uxav/lib2
 public bool Contains(SourceBase source)
 {
     return(_collection != null && _collection.Any(s => s == source && s.Group == this));
 }
예제 #6
0
파일: RoomBase.cs 프로젝트: uxav/lib2
 public virtual DisplayDeviceInput GetDisplayInputOverrideForSource(DisplayBase display, SourceBase source)
 {
     return(DisplayDeviceInput.Unknown);
 }