diff options
| author | Michael <[email protected]> | 2017-05-12 19:17:47 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-05-12 19:17:47 -0400 |
| commit | bded9d1250575e6b9824be9048ac7ac8669a303b (patch) | |
| tree | a0ef631584332088d243bacf4c87f959a821f3a3 /ShiftOS.WinForms/AudioManager.cs | |
| parent | 2cede571ca23806b68344d9984c11eedaaea76e1 (diff) | |
| download | shiftos_thereturn-bded9d1250575e6b9824be9048ac7ac8669a303b.tar.gz shiftos_thereturn-bded9d1250575e6b9824be9048ac7ac8669a303b.tar.bz2 shiftos_thereturn-bded9d1250575e6b9824be9048ac7ac8669a303b.zip | |
ShiftOS is a hydra.
You pop one bug off, 2,000 more grow in its place.
Diffstat (limited to 'ShiftOS.WinForms/AudioManager.cs')
| -rw-r--r-- | ShiftOS.WinForms/AudioManager.cs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/ShiftOS.WinForms/AudioManager.cs b/ShiftOS.WinForms/AudioManager.cs index 5c43ac4..eb0e798 100644 --- a/ShiftOS.WinForms/AudioManager.cs +++ b/ShiftOS.WinForms/AudioManager.cs @@ -24,8 +24,10 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace ShiftOS.WinForms @@ -37,5 +39,65 @@ namespace ShiftOS.WinForms { } + + internal static byte[] GetRandomSong() + { + var r = new Random().Next(1, 10); + switch (r) + { + case 1: + return Properties.Resources.Ambient1; + case 2: + return Properties.Resources.Ambient2; + case 3: + return Properties.Resources.Ambient3; + case 4: + return Properties.Resources.Ambient4; + case 5: + return Properties.Resources.Ambient5; + case 6: + return Properties.Resources.Ambient6; + case 7: + return Properties.Resources.Ambient7; + case 8: + return Properties.Resources.Ambient8; + default: + return Properties.Resources.Ambient9; + + } + } + + internal static void StartAmbientLoop() + { + var athread = new Thread(() => + { + MemoryStream str = null; + NAudio.Wave.Mp3FileReader mp3 = null; + NAudio.Wave.WaveOut o = null; + while (!Engine.SaveSystem.ShuttingDown) + { + str = new MemoryStream(GetRandomSong()); + mp3 = new NAudio.Wave.Mp3FileReader(str); + o = new NAudio.Wave.WaveOut(); + o.Init(mp3); + bool c = false; + o.Play(); + o.PlaybackStopped += (s, a) => + { + c = true; + }; + while (!c) + Thread.Sleep(10); + str.Dispose(); + o.Dispose(); + mp3.Dispose(); + } + str?.Dispose(); + o?.Dispose(); + mp3?.Dispose(); + }); + athread.IsBackground = true; + athread.Start(); + } } } |
