Init.
This commit is contained in:
29
Source/Audio/AudioBackend.cs
Normal file
29
Source/Audio/AudioBackend.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
namespace DaggerFramework.Audio
|
||||
{
|
||||
public abstract class AudioBackend
|
||||
{
|
||||
public abstract void Initialize();
|
||||
public abstract void Update();
|
||||
// BUS
|
||||
public abstract void CreateBus(string busName);
|
||||
public abstract void SetBusVolume(string busName, float volume);
|
||||
public abstract float GetBusVolume(string busName);
|
||||
|
||||
// SOUND
|
||||
protected abstract void PlaySound(Sound sound, string bus = "Master", float pitch = 1.0f, float volume = 1.0f);
|
||||
public void PlaySound(Sound sound, string bus = "Master") => PlaySound(sound, bus, sound.PitchScale, sound.Volume);
|
||||
public void PlaySoundVariation(Sound sound, string bus = "Master", float pitchVariation = 0.1f)
|
||||
{
|
||||
var maxPitch = sound.PitchScale + pitchVariation;
|
||||
var minPitch = sound.PitchScale - pitchVariation;
|
||||
|
||||
var pitch = (float)_random.NextDouble() * (maxPitch - minPitch) + minPitch;
|
||||
PlaySound(sound, bus, pitch, sound.Volume);
|
||||
}
|
||||
|
||||
// EFFECTS
|
||||
public abstract void AddBusEffect<T>(T effect, string bus = "Master") where T : AudioEffect;
|
||||
|
||||
private LehmerRandom _random = new LehmerRandom();
|
||||
}
|
||||
}
|
||||
7
Source/Audio/AudioBus.cs
Normal file
7
Source/Audio/AudioBus.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace DaggerFramework
|
||||
{
|
||||
public class AudioBus
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
9
Source/Audio/AudioEffect.cs
Normal file
9
Source/Audio/AudioEffect.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace DaggerFramework
|
||||
{
|
||||
public class AudioEffect { }
|
||||
|
||||
public class AudioEffectReverb : AudioEffect
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
40
Source/Audio/DummyAudioBackend.cs
Normal file
40
Source/Audio/DummyAudioBackend.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
namespace DaggerFramework.Audio
|
||||
{
|
||||
public class DummyAudioBackend : AudioBackend
|
||||
{
|
||||
public override void AddBusEffect<T>(T effect, string bus = "Master")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public override void CreateBus(string busName)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public override float GetBusVolume(string busName)
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public override void SetBusVolume(string busName, float volume)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
protected override void PlaySound(Sound sound, string bus = "Master", float pitch = 1, float volume = 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
103
Source/Audio/FmodAudioBackend.cs
Normal file
103
Source/Audio/FmodAudioBackend.cs
Normal file
@@ -0,0 +1,103 @@
|
||||
// using FMOD;
|
||||
|
||||
// namespace RogueMine.Audio
|
||||
// {
|
||||
// public class FmodAudioBackend : AudioBackend
|
||||
// {
|
||||
// public override void Initialize()
|
||||
// {
|
||||
// CreateSystem();
|
||||
// _loadedSounds = new Dictionary<string, FMOD.Sound>();
|
||||
// _channelGroups = new Dictionary<string, ChannelGroup>();
|
||||
|
||||
// CreateBus("Master");
|
||||
// }
|
||||
// public override void Update() => _system.update();
|
||||
|
||||
// protected override void PlaySound(Sound sound, string bus = "Master", float pitch = 1, float volume = 1)
|
||||
// {
|
||||
// var channel = PlaySoundFromPath(sound.Path, GetChannelGroup(bus));
|
||||
// channel.setVolume(volume);
|
||||
// channel.setPitch(pitch);
|
||||
// }
|
||||
|
||||
// public override void CreateBus(string busName)
|
||||
// {
|
||||
// ChannelGroup channelGroup;
|
||||
// _system.createChannelGroup(busName, out channelGroup);
|
||||
// _channelGroups.Add(busName, channelGroup);
|
||||
// }
|
||||
|
||||
// public override void SetBusVolume(string busName, float volume)
|
||||
// {
|
||||
// var channel = GetChannelGroup(busName);
|
||||
// channel.setVolume(volume);
|
||||
// }
|
||||
|
||||
// public override float GetBusVolume(string busName)
|
||||
// {
|
||||
// float volume;
|
||||
// GetChannelGroup(busName).getVolume(out volume);
|
||||
// return volume;
|
||||
// }
|
||||
|
||||
// public override void AddBusEffect<T>(T effect, string bus = "Master")
|
||||
// {
|
||||
// var channelGroup = GetChannelGroup(bus);
|
||||
// DSP dsp;
|
||||
|
||||
// switch (effect)
|
||||
// {
|
||||
// case AudioEffectReverb:
|
||||
// dsp = CreateReverbDsp(effect as AudioEffectReverb);
|
||||
// break;
|
||||
// default:
|
||||
// _system.createDSPByType(DSP_TYPE.UNKNOWN, out dsp);
|
||||
// break;
|
||||
// }
|
||||
|
||||
// channelGroup.addDSP(0, dsp);
|
||||
// }
|
||||
|
||||
// private DSP CreateReverbDsp(AudioEffectReverb effectReverb)
|
||||
// {
|
||||
// DSP dsp;
|
||||
// _system.createDSPByType(DSP_TYPE.SFXREVERB, out dsp);
|
||||
// return dsp;
|
||||
// }
|
||||
|
||||
// private void CreateSystem()
|
||||
// {
|
||||
// var result = FMOD.Factory.System_Create(out _system);
|
||||
// _system.init(128, INITFLAGS.NORMAL, 0);
|
||||
// }
|
||||
|
||||
// private Channel PlaySoundFromPath(string path, ChannelGroup channelGroup)
|
||||
// {
|
||||
// FMOD.Channel fmodChannel;
|
||||
// FMOD.Sound fmodSound = IsLoaded(path) ? GetSoundFromLoaded(path) : CreateSound(path);
|
||||
// _system.playSound(fmodSound, channelGroup, false, out fmodChannel);
|
||||
|
||||
// return fmodChannel;
|
||||
// }
|
||||
|
||||
// private FMOD.Sound GetSoundFromLoaded(string path) => _loadedSounds[path];
|
||||
// private bool IsLoaded(string path) => _loadedSounds.ContainsKey(path);
|
||||
|
||||
// private FMOD.Sound CreateSound(string path)
|
||||
// {
|
||||
// FMOD.Sound sound;
|
||||
// _system.createSound(path, FMOD.MODE.DEFAULT, out sound);
|
||||
// AddToLoaded(path, sound);
|
||||
// return sound;
|
||||
// }
|
||||
|
||||
// private void AddToLoaded(string path, FMOD.Sound sound) => _loadedSounds.Add(path, sound);
|
||||
|
||||
// private ChannelGroup GetChannelGroup(string busName) => _channelGroups[busName];
|
||||
|
||||
// private FMOD.System _system;
|
||||
// private Dictionary<string, FMOD.Sound> _loadedSounds;
|
||||
// private Dictionary<string, ChannelGroup> _channelGroups;
|
||||
// }
|
||||
// }
|
||||
Reference in New Issue
Block a user