aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ShiftOS.WinForms/Applications/Dialog.cs14
-rw-r--r--ShiftOS.WinForms/Applications/Shifter.Designer.cs10
-rw-r--r--ShiftOS_TheReturn/AudioManager.cs62
3 files changed, 40 insertions, 46 deletions
diff --git a/ShiftOS.WinForms/Applications/Dialog.cs b/ShiftOS.WinForms/Applications/Dialog.cs
index 10737a1..171bdc4 100644
--- a/ShiftOS.WinForms/Applications/Dialog.cs
+++ b/ShiftOS.WinForms/Applications/Dialog.cs
@@ -27,6 +27,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
+using System.IO;
using System.Linq;
using System.Media;
using System.Text;
@@ -44,15 +45,22 @@ namespace ShiftOS.WinForms.Applications
public Dialog()
{
InitializeComponent();
- }
+ }
public string Title { get; private set; }
public void OnLoad()
{
AppearanceManager.SetWindowTitle(this, this.Title);
- //NOT EVEn THIS WORKS
- new Computer().Audio.Play(Properties.Resources.infobox, Microsoft.VisualBasic.AudioPlayMode.Background);
+ var str = Properties.Resources.infobox;
+ var bytes = new byte[str.Length];
+ str.Read(bytes, 0, bytes.Length);
+ ShiftOS.Engine.AudioManager.Stop();
+ if (File.Exists("snd.wav"))
+ File.Delete("snd.wav");
+ File.WriteAllBytes("snd.wav", bytes);
+
+ ShiftOS.Engine.AudioManager.Play("snd.wav");
}
public void OnSkinLoad()
diff --git a/ShiftOS.WinForms/Applications/Shifter.Designer.cs b/ShiftOS.WinForms/Applications/Shifter.Designer.cs
index 593f43d..7ef20bf 100644
--- a/ShiftOS.WinForms/Applications/Shifter.Designer.cs
+++ b/ShiftOS.WinForms/Applications/Shifter.Designer.cs
@@ -37,11 +37,15 @@ namespace ShiftOS.WinForms.Applications
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
- if (disposing && (components != null))
+ try
{
- components.Dispose();
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
}
- base.Dispose(disposing);
+ catch { }
}
#region Windows Form Designer generated code
diff --git a/ShiftOS_TheReturn/AudioManager.cs b/ShiftOS_TheReturn/AudioManager.cs
index 7466eeb..54ee1f1 100644
--- a/ShiftOS_TheReturn/AudioManager.cs
+++ b/ShiftOS_TheReturn/AudioManager.cs
@@ -42,58 +42,40 @@ namespace ShiftOS.Engine
private static IAudioProvider _provider = null;
private static bool _running = true;
+ public static void Stop()
+ {
+ _out?.Stop();
+ _reader?.Dispose();
+ _out?.Dispose();
+ }
+
public static void Init(IAudioProvider _p)
{
-#if !NOSOUND
_provider = _p;
- AppearanceManager.OnExit += () =>
- {
- _running = false;
- _out?.Stop();
- _reader?.Dispose();
- _out?.Dispose();
- System.IO.File.Delete("temp.mp3");
- };
- var t = new Thread(() =>
- {
- SaveSystem.GameReady += () =>
- {
- while(_out == null)
- {
+ }
- }
- _out.Volume = _provider.Volume;
- };
- Random rnd = new Random();
- while(_running == true)
+ public static void SetVolume(float volume)
+ {
+ _provider.Volume = volume; //persist between songs
+ _out.Volume = volume;
+ }
+
+ public static void Play(string file)
+ {
+ new Thread(() =>
+ {
+ try
{
- int track = rnd.Next(0, _provider.Count);
- byte[] mp3 = _provider.GetTrack(track);
- System.IO.File.WriteAllBytes("temp.mp3", mp3);
- _reader = new AudioFileReader("temp.mp3");
+ _reader = new AudioFileReader(file);
_out = new WaveOut();
_out.Init(_reader);
_out.Volume = _provider.Volume;
-
_out.Play();
- while(_out.PlaybackState == PlaybackState.Playing)
- {
- Thread.Sleep(5000); //even when the player isn't playing, this will give a good delay between songs.
- }
- _reader.Dispose();
- _out.Dispose();
}
- });
- t.IsBackground = true;
- t.Start();
-#endif
+ catch { }
+ }).Start();
}
- public static void SetVolume(float volume)
- {
- _provider.Volume = volume; //persist between songs
- _out.Volume = volume;
- }
internal static void Kill()
{