예제 #1
0
        private static void InsertElement(IElementContainer <ISequentialElement> sequentialContainer, IFileElement newElement, ISequentialElement origElement)
        {
            ISequentialElement seqElement = sequentialContainer.AddElement(newElement);

            seqElement.MaximumRandomStartDelay = origElement.MaximumRandomStartDelay;
            seqElement.FixedStartDelay         = origElement.FixedStartDelay;
        }
예제 #2
0
 public SequentialElementChangeAction(ISequentialElement element, int newFixed, int newRandom)
 {
     m_Element   = element;
     m_OldFixed  = element.FixedStartDelay;
     m_OldRandom = element.MaximumRandomStartDelay;
     m_NewFixed  = TimeSpan.FromMilliseconds(newFixed);
     m_NewRandom = TimeSpan.FromMilliseconds(newRandom);
 }
예제 #3
0
        public IList <IElement> AddGeneralImportedElement(IXmlWritable element)
        {
            List <IElement> result = new List <IElement>();

            if (element is ISequentialElement)
            {
                ISequentialElement sequential = element as ISequentialElement;
                if (sequential.InnerElement is IFileElement)
                {
                    result.AddRange(m_SecondContainer.AddGeneralImportedElement(element));
                    return(result);
                }
            }
            foreach (IFileElement fileElement in element.GetFileElements())
            {
                result.Add(m_SecondContainer.AddElement(fileElement));
            }
            return(result);
        }
예제 #4
0
 public override void PlayNext()
 {
     Monitor.Enter(syncObject);
     if (Client.Stopped || shallStop)
     {
         Monitor.Exit(syncObject);
         if (PlayingModule.ThePlayer.ProjectCallbacks != null)
         {
             PlayingModule.ThePlayer.ProjectCallbacks.MusicPlaylistFinished(m_Container.Id);
         }
         Client.SubPlayerFinished(this, shallStop, false);
         return;
     }
     ++m_Index;
     if (m_Index >= m_Container.GetElements().Count)
     {
         ++m_RepeatCount;
         if (m_Container.RepeatCount == -1 || m_RepeatCount < m_Container.RepeatCount)
         {
             Monitor.Exit(syncObject);
             Repeat(m_Container, m_Container);
         }
         else
         {
             Monitor.Exit(syncObject);
             if (PlayingModule.ThePlayer.ProjectCallbacks != null)
             {
                 PlayingModule.ThePlayer.ProjectCallbacks.MusicPlaylistFinished(m_Container.Id);
             }
             Client.SubPlayerFinished(this, false, false);
         }
     }
     else
     {
         ISequentialElement element = m_Container.GetElements()[m_Index];
         Monitor.Exit(syncObject);
         Delay(element, element);
     }
 }
예제 #5
0
        protected override void AddElementToGrid(IContainerElement element)
        {
            ISequentialElement e = (ISequentialElement)element;

            elementsGrid.Rows.Add(new object[] { e.Title, string.Empty, string.Empty, e.FixedStartDelay.TotalMilliseconds, e.MaximumRandomStartDelay.TotalMilliseconds });
        }