private void OnSectionOffset(AudioSection audioSection, AudioStreamSection streamSection)
 {
     if (!audioSection.LoopIndefinitely)
     {
         PlayNextSection(audioSection, streamSection);
     }
 }
 private void OnSectionEnd(AudioSection audioSection, AudioStreamSection streamSection)
 {
     if (audioSection.LoopIndefinitely || audioSection.HasOffset)
     {
         AudioStreamHelper.SetPosition(streamSection.AudioStream, audioSection.Start.Position);
         ApplySyncIfOneExistsForCurrentPosition(streamSection.AudioStream);
     }
     else
     {
         PlayNextSection(audioSection, streamSection);
     }
 }
        private static AudioSection GetNextSection(AudioSection audioSection, AudioStreamSection streamSection)
        {
            lock (streamSection)
            {
                var index = streamSection.AudioSections.IndexOf(audioSection);

                index++;
                if (index >= streamSection.AudioSections.Count)
                {
                    return(null);
                }

                DebugHelper.WriteLine(index);
                return(streamSection.AudioSections[index]);
            }
        }
 private void PlayNextSection(AudioSection audioSection, AudioStreamSection streamSection)
 {
     if (!audioSection.AutoPlayNextSection)
     {
         // DebugHelper.WriteLine("Pause " + streamSection.AudioStream.Description);
         AudioStreamHelper.Pause(streamSection.AudioStream);
     }
     else
     {
         var nextSection = GetNextSection(audioSection, streamSection);
         if (nextSection != null)
         {
             QueueSection(streamSection.Key, nextSection.Key);
         }
         else
         {
             // DebugHelper.WriteLine("Pause " + streamSection.AudioStream.Description);
             AudioStreamHelper.Pause(streamSection.AudioStream);
         }
     }
 }
        private static AudioSection GetNextSection(AudioSection audioSection, AudioStreamSection streamSection)
        {
            lock (streamSection)
            {
                var index = streamSection.AudioSections.IndexOf(audioSection);

                index++;
                if (index >= streamSection.AudioSections.Count) return null;

                Console.WriteLine(index);
                return streamSection.AudioSections[index];
            }
        }
        private void PlayNextSection(AudioSection audioSection, AudioStreamSection streamSection)
        {
            if (!audioSection.AutoPlayNextSection)
            {
                DebugHelper.WriteLine("Pause " + streamSection.AudioStream.Description);
                AudioStreamHelper.Pause(streamSection.AudioStream);
            }
            else
            {
                var nextSection = GetNextSection(audioSection, streamSection);
                if (nextSection != null)
                {
                    QueueSection(streamSection.Key, nextSection.Key);

                }
                else
                {
                    DebugHelper.WriteLine("Pause " + streamSection.AudioStream.Description);
                    AudioStreamHelper.Pause(streamSection.AudioStream);
                }
            }
        }
 private void OnSectionEnd(AudioSection audioSection, AudioStreamSection streamSection)
 {
     if (audioSection.LoopIndefinitely || audioSection.HasOffset)
     {
         AudioStreamHelper.SetPosition(streamSection.AudioStream, audioSection.Start.Position);
         ApplySyncIfOneExistsForCurrentPosition(streamSection.AudioStream);
     }
     else 
         PlayNextSection(audioSection, streamSection);
 }
 private void OnSectionOffset(AudioSection audioSection, AudioStreamSection streamSection)
 {
     if (!audioSection.LoopIndefinitely)
         PlayNextSection(audioSection, streamSection);
 }