public AudioEffect(AudioContext context, AudioEffectType type) : base(context, Create(context)) { using (Context.Bind()) Context.AlEffecti(Id, AlEfxEnums.EffectType, (int)type); sourcesReadOnly = new ReadOnlyObservableCollection <AudioSource>(sources); }
public AudioBuffer(AudioContext context) : base(context, Create(context)) { lock (context.buffers) context.buffers[Id] = new WeakReference <AudioBuffer>(this); sourcesReadOnly = new ReadOnlyObservableCollection <AudioSource>(sources); }
public AudioContextBinding(AudioContext context) { this.context = context; if (!context.MakeCurrent()) { throw new Exception("Could not make the audio context current."); } }
internal AudioResource(AudioContext context, int alId) { if (context == null) { throw new ArgumentNullException("context"); } this.context = context; this.id = alId; }
protected override void DisposeBase() { if (object.ReferenceEquals(current, this)) { Alc.MakeContextCurrent(ContextHandle.Zero); } current = null; Alc.DestroyContext(Handle); handle = ContextHandle.Zero; }
static int Create(AudioContext context) { unsafe { int output; using (context.Bind()) context.AlGenFilters(1, &output); return(output); } }
static int Create(AudioContext context) { using (context.Bind()) { int output; unsafe { context.AlGenEffects(1, &output); return(output); } } }
internal bool MakeCurrent() { if (Handle == null) { return(false); } if (object.ReferenceEquals(current, this)) { return(true); } bool result = Alc.MakeContextCurrent(Handle); if (result) { current = this; } return(result); }
// TODO public Distortion(AudioContext context) : base(context, AudioEffectType.Distortion) { }
// TODO public Echo(AudioContext context) : base(context, AudioEffectType.Echo) { }
internal AudioListener(AudioContext context) { this.context = context; }
public AudioFilter(AudioContext context, AudioFilterType type) : base(context, Create(context)) { using (context.Bind()) context.AlFilteri(Id, AlEfxEnums.FilterType, (int)type); }
public HighPass(AudioContext context) : base(context, AudioFilterType.HighPass) { }
// TODO public RingModulator(AudioContext context) : base(context, AudioEffectType.RingModulator) { }
public Reverb(AudioContext context) : base(context, AudioEffectType.Reverb) { }
// TODO public PitchShifter(AudioContext context) : base(context, AudioEffectType.PitchShifter) { }
public Null(AudioContext context) : base(context, AudioEffectType.Null) { }
// TODO public FrequencyShifter(AudioContext context) : base(context, AudioEffectType.FrequencyShifter) { }
// TODO public Flanger(AudioContext context) : base(context, AudioEffectType.Flanger) { }
public Null(AudioContext context) : base(context, AudioFilterType.Null) { }
public LowPass(AudioContext context) : base(context, AudioFilterType.LowPass) { }
// TODO public VocalMorpher(AudioContext context) : base(context, AudioEffectType.VocalMorpher) { }
public BandPass(AudioContext context) : base(context, AudioFilterType.BandPass) { }
static int Create(AudioContext context) { using (context.Bind()) return(AL.GenSource()); }
// TODO public Compressor(AudioContext context) : base(context, AudioEffectType.Compressor) { }
static int Create(AudioContext context) { using (context.Bind()) return(AL.GenBuffer()); }
public AudioSource(AudioContext context) : base(context, Create(context)) { buffersReadOnly = new ReadOnlyObservableCollection <AudioBuffer>(buffers); }
// TODO public Equalizer(AudioContext context) : base(context, AudioEffectType.Equalizer) { }
public AudioBuffer ReadToBuffer(AudioContext context) { return(ReadToBuffer(new AudioBuffer(context))); }
public Chorus(AudioContext context) : base(context, AudioEffectType.Chorus) { }