private void OnSectionOffset(AudioSection audioSection, AudioStreamSection streamSection) { if (!audioSection.LoopIndefinitely) { PlayNextSection(audioSection, streamSection); } }
private static AudioSync GetAudioSync(AudioSection audioSection, SyncType syncType) { lock (audioSection) { return(audioSection.AudioSyncs.FirstOrDefault(x => x.SyncType == syncType)); } }
private static void SetSync(AudioStream audioStream, AudioSection audioSection, SyncType syncType, double position) { if (syncType == SyncType.AudioStreamEvent) { return; } var audioSync = GetAudioSync(audioSection, syncType); if (audioSync != null) { RemoveSyncFromStream(audioStream, audioSync); lock (audioSection) { audioSection.AudioSyncs.Remove(audioSync); } } audioSync = AddSync(audioStream, syncType, position); lock (audioSection) { if (audioSync != null) { audioSection.AudioSyncs.Add(audioSync); } } }
private static void SetSectionTempo(AudioStream audioStream, AudioSection audioSection) { if (audioSection.TargetBpm != 0) { AudioStreamHelper.SetTempoToMatchBpm(audioStream, audioSection.Bpm, audioSection.TargetBpm); } }
private AudioSection CreateSection(string streamKey, string sectionKey, bool loopIndefinitely, bool autoPlayNextSection) { var streamSection = GetStreamSection(streamKey); if (streamSection == null) { return(null); } var audioSection = GetAudioSection(streamKey, sectionKey); if (audioSection != null) { return(audioSection); } audioSection = new AudioSection { Key = sectionKey, LoopIndefinitely = loopIndefinitely, AutoPlayNextSection = autoPlayNextSection }; lock (streamSection) { streamSection.AudioSections.Add(audioSection); } return(audioSection); }
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); }
private static AudioSync GetAudioSync(AudioSection audioSection, SyncType syncType) { lock (audioSection) { return audioSection.AudioSyncs.FirstOrDefault(x => x.SyncType == syncType); } }
private static void SetSync(AudioStream audioStream, AudioSection audioSection, SyncType syncType, double position) { if (syncType == SyncType.AudioStreamEvent) return; var audioSync = GetAudioSync(audioSection, syncType); if (audioSync != null) { RemoveSyncFromStream(audioStream, audioSync); lock (audioSection) { audioSection.AudioSyncs.Remove(audioSync); } } audioSync = AddSync(audioStream, syncType, position); lock (audioSection) { if(audioSync != null) audioSection.AudioSyncs.Add(audioSync); } }
private static void SetSectionTempo(AudioStream audioStream, AudioSection audioSection) { if (audioSection.TargetBpm != 0) AudioStreamHelper.SetTempoToMatchBpm(audioStream, audioSection.Bpm, audioSection.TargetBpm); }
private AudioSection CreateSection(string streamKey, string sectionKey, bool loopIndefinitely, bool autoPlayNextSection) { var streamSection = GetStreamSection(streamKey); if (streamSection == null) return null; var audioSection = GetAudioSection(streamKey, sectionKey); if (audioSection != null) return audioSection; audioSection = new AudioSection { Key = sectionKey, LoopIndefinitely = loopIndefinitely, AutoPlayNextSection = autoPlayNextSection, }; lock (streamSection) { streamSection.AudioSections.Add(audioSection); } return audioSection; }