unfinished. tired.

This commit is contained in:
chrisbrandtner 2008-01-16 23:57:54 +00:00
parent 870b352410
commit 01e493fb3b
4 changed files with 181 additions and 177 deletions

View file

@ -14,28 +14,30 @@ namespace OpenTK.OpenAL
{
public partial class Efx
{
/**
* Effect object functions.
*/
//Effect object functions.
/* Create Effect objects. */
// typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects );
unsafe private delegate void alGenEffects(int n, [Out] uint* effects);
unsafe private delegate void DelegatealGenEffects(int n, [Out] uint* effects);
/* Delete Effect objects. */
// typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects );
unsafe private delegate void alDeleteEffects(int n, [In] uint* effects);
unsafe private delegate void DelegatealDeleteEffects(int n, [In] uint* effects);
/* Verify a handle is a valid Effect. */
// typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid );
public delegate AL.Bool alIsEffect(uint eid);
private delegate AL.Bool DelegatealIsEffect(uint eid);
/* Set an integer parameter for an Effect object. */
// typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value);
private delegate void DelegateAlEffecti( uint eid, EfxEffecti param, int value);
// typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values );
/* Set a floating point parameter for an Effect object. */
// typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value);
// typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value);
private delegate void DelegateAlEffectf( uint eid, EfxEffectf param, float value);
// typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values );
/* Get an integer parameter for an Effect object. */
@ -47,9 +49,8 @@ namespace OpenTK.OpenAL
// typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values );
/**
* Filter object functions
*/
// Filter object functions
/* Create Filter objects. */
// typedef void (__cdecl *LPALGENFILTERS)( ALsizei n, ALuint* filters );
@ -77,9 +78,8 @@ namespace OpenTK.OpenAL
// typedef void (__cdecl *LPALGETFILTERFV)( ALuint fid, ALenum pname, ALfloat* values );
/**
* Auxiliary Slot object functions
*/
// Auxiliary Slot object functions
/* Create Auxiliary Slot objects. */
// typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );

View file

@ -82,133 +82,121 @@ namespace OpenTK.OpenAL
AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO = 0x2000C,
}
/**
* Effect object definitions to be used with alEffect functions.
*
* Effect parameter value definitions, ranges, and defaults
* appear farther down in this file.
*/
#region Effect object definitions to be used with alEffect functions.
/* Reverb Parameters */
public enum AL_EFFECT_REVERB : int
public enum EfxEffectf : int
{
///<summary>Range [0.0f .. 1.0f] Default: 0.1f</summary>
///<summary>Reverb Parameter. Range [0.0f .. 1.0f] Default: 0.1f</summary>
AL_REVERB_DENSITY = 0x0001,
///<summary>Range [0.0f .. 1.0f] Default: 0.1f</summary>
///<summary>Reverb Parameter. Range [0.0f .. 1.0f] Default: 0.1f</summary>
AL_REVERB_DIFFUSION = 0x0002,
///<summary>Range [0.0f .. 1.0f] Default: 0.32f</summary>
///<summary>Reverb Parameter. Range [0.0f .. 1.0f] Default: 0.32f</summary>
AL_REVERB_GAIN = 0x0003,
///<summary>Range [0.0f .. 1.0f] Default: 0.89f</summary>
///<summary>Reverb Parameter. Range [0.0f .. 1.0f] Default: 0.89f</summary>
AL_REVERB_GAINHF = 0x0004,
///<summary>Range [0.1f .. 20.0f] Default: 1.49f</summary>
///<summary>Reverb Parameter. Unit: Seconds Range [0.1f .. 20.0f] Default: 1.49f</summary>
AL_REVERB_DECAY_TIME = 0x0005,
///<summary>Range [0.1f .. 2.0f] Default: 0.83f</summary>
///<summary>Reverb Parameter. Range [0.1f .. 2.0f] Default: 0.83f</summary>
AL_REVERB_DECAY_HFRATIO = 0x0006,
///<summary>Range [0.0f .. 3.16f] Default: 0.05f</summary>
///<summary>Reverb Parameter. Range [0.0f .. 3.16f] Default: 0.05f</summary>
AL_REVERB_REFLECTIONS_GAIN = 0x0007,
///<summary>Range [0.0f .. 0.3f] Default: 0.007f</summary>
///<summary>Reverb Parameter. Unit: Seconds Range [0.0f .. 0.3f] Default: 0.007f</summary>
AL_REVERB_REFLECTIONS_DELAY = 0x0008,
///<summary>Range [0.0f .. 10.0f] Default: 1.26f</summary>
///<summary>Reverb Parameter. Range [0.0f .. 10.0f] Default: 1.26f</summary>
AL_REVERB_LATE_REVERB_GAIN = 0x0009,
///<summary>Range [0.0f .. 0.1f] Default: 0.011f</summary>
///<summary>Reverb Parameter. Unit: Seconds Range [0.0f .. 0.1f] Default: 0.011f</summary>
AL_REVERB_LATE_REVERB_DELAY = 0x000A,
///<summary>Range [0.892f .. 1.0f] Default: 0.994f</summary>
///<summary>Reverb Parameter. Range [0.892f .. 1.0f] Default: 0.994f</summary>
AL_REVERB_AIR_ABSORPTION_GAINHF = 0x000B,
///<summary>Range [0.0f .. 10.0f] Default: 0.0f</summary>
///<summary>Reverb Parameter. Range [0.0f .. 10.0f] Default: 0.0f</summary>
AL_REVERB_ROOM_ROLLOFF_FACTOR = 0x000C,
///<summary>Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
///<summary>Reverb Parameter. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
AL_REVERB_DECAY_HFLIMIT = 0x000D,
}
/* Chorus Parameters */
public enum AL_EFFECT_CHORUS : int
{
///<summary>Range [0 .. 1] Default: 1</summary>
///<summary>Chorus Parameter. Unit: (0) Sinusoid, (1) Triangle [0 .. 1] Default: 1</summary>
AL_CHORUS_WAVEFORM = 0x0001,
///<summary>Range [-180 .. 180] Default: 90</summary>
///<summary>Chorus Parameter. Unit: Degrees Range [-180 .. 180] Default: 90</summary>
AL_CHORUS_PHASE = 0x0002,
///<summary>Range [0.0f .. 10.0f] Default: 1.1f</summary>
///<summary>Chorus Parameter. Unit: Hz Range [0.0f .. 10.0f] Default: 1.1f</summary>
AL_CHORUS_RATE = 0x0003,
///<summary>Range [0.0f .. 1.0f] Default: 0.1f</summary>
///<summary>Chorus Parameter. Range [0.0f .. 1.0f] Default: 0.1f</summary>
AL_CHORUS_DEPTH = 0x0004,
///<summary>Range [-1.0f .. +1.0f] Default: +0.25f</summary>
///<summary>Chorus Parameter. Range [-1.0f .. +1.0f] Default: +0.25f</summary>
AL_CHORUS_FEEDBACK = 0x0005,
///<summary>Range [0.0f .. 0.016f] Default: 0.016f</summary>
///<summary>Chorus Parameter. Unit: Seconds Range [0.0f .. 0.016f] Default: 0.016f</summary>
AL_CHORUS_DELAY = 0x0006,
}
/* Distortion Parameters */
public enum AL_EFFECT_DISTORTION : int
{
///<summary>Range [0.0f .. 1.0f] Default: 0.2f</summary>
///<summary>Distortion Parameter. Range [0.0f .. 1.0f] Default: 0.2f</summary>
AL_DISTORTION_EDGE = 0x0001,
///<summary>Range [0.01f .. 1.0f] Default: 0.05f</summary>
///<summary>Distortion Parameter. Range [0.01f .. 1.0f] Default: 0.05f</summary>
AL_DISTORTION_GAIN = 0x0002,
///<summary>Range [80.0f .. 24000.0f] Default: 8000.0f</summary>
///<summary>Distortion Parameter. Unit: Hz Range [80.0f .. 24000.0f] Default: 8000.0f</summary>
AL_DISTORTION_LOWPASS_CUTOFF = 0x0003,
///<summary>Range [80.0f .. 24000.0f] Default: 3600.0f</summary>
///<summary>Distortion Parameter. Unit: Hz Range [80.0f .. 24000.0f] Default: 3600.0f</summary>
AL_DISTORTION_EQCENTER = 0x0004,
///<summary>Range [80.0f .. 24000.0f] Default: 3600.0f</summary>
///<summary>Distortion Parameter. Unit: Hz Range [80.0f .. 24000.0f] Default: 3600.0f</summary>
AL_DISTORTION_EQBANDWIDTH = 0x0005,
}
/* Echo Parameters */
public enum AL_EFFECT_ECHO : int
{
///<summary>Range [0.0f .. 0.207f] Default: 0.1f</summary>
///<summary>Echo Parameter. Unit: Seconds Range [0.0f .. 0.207f] Default: 0.1f</summary>
AL_ECHO_DELAY = 0x0001,
///<summary>Range [0.0f .. 0.404f] Default: 0.1f</summary>
///<summary>Echo Parameter. Unit: Seconds Range [0.0f .. 0.404f] Default: 0.1f</summary>
AL_ECHO_LRDELAY = 0x0002,
///<summary>Range [0.0f .. 0.99f] Default: 0.5f</summary>
///<summary>Echo Parameter. Range [0.0f .. 0.99f] Default: 0.5f</summary>
AL_ECHO_DAMPING = 0x0003,
///<summary>Range [0.0f .. 1.0f] Default: 0.5f</summary>
///<summary>Echo Parameter. Range [0.0f .. 1.0f] Default: 0.5f</summary>
AL_ECHO_FEEDBACK = 0x0004,
///<summary>Range [-1.0f .. +1.0f] Default: -1.0f</summary>
///<summary>Echo Parameter. Range [-1.0f .. +1.0f] Default: -1.0f</summary>
AL_ECHO_SPREAD = 0x0005,
}
/* Flanger Parameters */
public enum AL_EFFECT_FLANGER : int
{
///<summary>Range [0 .. 1] Default: 1</summary>
///<summary>Flanger Parameter. Unit: (0) Sinusoid, (1) Triangle Range [0 .. 1] Default: 1</summary>
AL_FLANGER_WAVEFORM = 0x0001,
///<summary>Range [-180 .. +180] Default: 0</summary>
///<summary>Flanger Parameter. Range [-180 .. +180] Default: 0</summary>
AL_FLANGER_PHASE = 0x0002,
///<summary>Range [0.0f .. 10.0f] Default: 0.27f</summary>
///<summary>Flanger Parameter. Range [0.0f .. 10.0f] Default: 0.27f</summary>
AL_FLANGER_RATE = 0x0003,
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
///<summary>Flanger Parameter. Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_FLANGER_DEPTH = 0x0004,
///<summary>Range [-1.0f .. +1.0f] Default: -0.5f</summary>
///<summary>Flanger Parameter. Range [-1.0f .. +1.0f] Default: -0.5f</summary>
AL_FLANGER_FEEDBACK = 0x0005,
///<summary>Range [0.0f .. 0.004f] Default: 0.002f</summary>
///<summary>Flanger Parameter. Unit: Seconds Range [0.0f .. 0.004f] Default: 0.002f</summary>
AL_FLANGER_DELAY = 0x0006,
}
/* Frequencyshifter Parameters */
public enum AL_EFFECT_FREQUENCY_SHIFTER : int
{
///<summary>Range [0.0f .. 24000.0f] Default: 0.0f</summary>
///<summary>Frequencyshifter Parameter. Unit: Hz Range [0.0f .. 24000.0f] Default: 0.0f</summary>
AL_FREQUENCY_SHIFTER_FREQUENCY = 0x0001,
///<summary>Range [0 .. 2] Default: 0</summary>
///<summary>Frequencyshifter Parameter. Unit: (0) Down, (1) Up, (2) Off Range [0 .. 2] Default: 0</summary>
AL_FREQUENCY_SHIFTER_LEFT_DIRECTION = 0x0002,
///<summary>Range [0 .. 2] Default: 0</summary>
///<summary>Frequencyshifter Parameter. Unit: (0) Down, (1) Up, (2) Off Range [0 .. 2] Default: 0</summary>
AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION = 0x0003,
}
/* Vocalmorpher Parameters */
public enum AL_EFFECT_VOCAL_MORPHER : int
{
///<summary>Range [0 .. 92] Default: 0, AL_VOCAL_MORPHER_PHONEME_A</summary>
///<summary>Vocalmorpher Parameter. Unit: Use enum FormantFilterSettings Range [0 .. 29] Default: 0, AL_VOCAL_MORPHER_PHONEME_A</summary>
AL_VOCAL_MORPHER_PHONEMEA = 0x0001,
///<summary>Range [-24 .. +24] Default: 0</summary>
///<summary>Vocalmorpher Parameter. Unit: Semitones Range [-24 .. +24] Default: 0</summary>
AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = 0x0002,
///<summary>Range [0 .. 29] Default: 10, AL_VOCAL_MORPHER_PHONEME_ER</summary>
///<summary>Vocalmorpher Parameter. Unit: Use enum FormantFilterSettings Range [0 .. 29] Default: 10, AL_VOCAL_MORPHER_PHONEME_ER</summary>
AL_VOCAL_MORPHER_PHONEMEB = 0x0003,
///<summary>Range [-24 .. +24] Default: 0</summary>
///<summary>Vocalmorpher Parameter. Unit: Semitones Range [-24 .. +24] Default: 0</summary>
AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = 0x0004,
///<summary>Range [0 .. 2] Default: 0</summary>
///<summary>Vocalmorpher Parameter. Unit: (0) Sinusoid, (1) Triangle, (2) Sawtooth Range [0 .. 2] Default: 0</summary>
AL_VOCAL_MORPHER_WAVEFORM = 0x0005,
///<summary>Range [0.0f .. 10.0f] Default: 1.41f</summary>
///<summary>Vocalmorpher Parameter. Unit: Hz Range [0.0f .. 10.0f] Default: 1.41f</summary>
AL_VOCAL_MORPHER_RATE = 0x0006,
}
@ -247,79 +235,128 @@ namespace OpenTK.OpenAL
AL_VOCAL_MORPHER_PHONEME_Z = 29,
}
/* Pitchshifter Parameters */
public enum AL_EFFECT_PITCH_SHIFTER : int
{
///<summary>Range [-12 .. +12] Default: +12</summary>
///<summary>Pitchshifter Parameter. Unit: Semitones Range [-12 .. +12] Default: +12</summary>
AL_PITCH_SHIFTER_COARSE_TUNE = 0x0001,
///<summary>Range [-50 .. +50] Default: 0</summary>
///<summary>Pitchshifter Parameter. Unit: Cents Range [-50 .. +50] Default: 0</summary>
AL_PITCH_SHIFTER_FINE_TUNE = 0x0002,
}
/* Ringmodulator Parameters */
public enum AL_EFFECT_RING_MODULATOR : int
{
///<summary>Range [0.0f .. 8000.0f] Default: 440.0f</summary>
///<summary>Ringmodulator Parameter. Unit: Hz Range [0.0f .. 8000.0f] Default: 440.0f</summary>
AL_RING_MODULATOR_FREQUENCY = 0x0001,
///<summary>Range [0.0f .. 24000.0f] Default: 800.0f</summary>
///<summary>Ringmodulator Parameter. Unit: Hz Range [0.0f .. 24000.0f] Default: 800.0f</summary>
AL_RING_MODULATOR_HIGHPASS_CUTOFF = 0x0002,
///<summary>Range [0 .. 2] Default: 0</summary>
///<summary>Ringmodulator Parameter. Unit: (0) Sinusoid, (1) Sawtooth, (2) Square Range [0 .. 2] Default: 0</summary>
AL_RING_MODULATOR_WAVEFORM = 0x0003,
}
/* Autowah Parameters */
public enum AL_EFFECT_AUTOWAH
{
///<summary>Range [0.0001f .. 1.0f] Default: 0.06f</summary>
///<summary>Autowah Parameter. Unit: Seconds Range [0.0001f .. 1.0f] Default: 0.06f</summary>
AL_AUTOWAH_ATTACK_TIME = 0x0001,
///<summary>Range [0.0001f .. 1.0f] Default: 0.06f</summary>
///<summary>Autowah Parameter. Unit: Seconds Range [0.0001f .. 1.0f] Default: 0.06f</summary>
AL_AUTOWAH_RELEASE_TIME = 0x0002,
///<summary>Range [2.0f .. 1000.0f] Default: 1000.0f</summary>
///<summary>Autowah Parameter. Range [2.0f .. 1000.0f] Default: 1000.0f</summary>
AL_AUTOWAH_RESONANCE = 0x0003,
///<summary>Range [0.00003f .. 31621.0f] Default: 11.22f</summary>
///<summary>Autowah Parameter. Range [0.00003f .. 31621.0f] Default: 11.22f</summary>
AL_AUTOWAH_PEAK_GAIN = 0x0004,
}
/* Compressor Parameters */
public enum AL_EFFECT_COMPRESSOR : int
{
///<summary>Range [0 .. 1] Default: 1</summary>
///<summary>Compressor Parameter. Unit: (0) Off, (1) On Range [0 .. 1] Default: 1</summary>
AL_COMPRESSOR_ONOFF = 0x0001,
}
/* Equalizer Parameters */
public enum AL_EFFECT_EQUALIZER : int
{
///<summary>Range [0.126f .. 7.943f] Default: 1.0f</summary>
///<summary>Equalizer Parameter. Range [0.126f .. 7.943f] Default: 1.0f</summary>
AL_EQUALIZER_LOW_GAIN = 0x0001,
///<summary>Range [50.0f .. 800.0f] Default: 200.0f</summary>
///<summary>Equalizer Parameter. Unit: Hz Range [50.0f .. 800.0f] Default: 200.0f</summary>
AL_EQUALIZER_LOW_CUTOFF = 0x0002,
///<summary>Range [0.126f .. 7.943f] Default: 1.0f</summary>
///<summary>Equalizer Parameter. Range [0.126f .. 7.943f] Default: 1.0f</summary>
AL_EQUALIZER_MID1_GAIN = 0x0003,
///<summary>Range [200.0f .. 3000.0f] Default: 500.0f</summary>
///<summary>Equalizer Parameter. Unit: Hz Range [200.0f .. 3000.0f] Default: 500.0f</summary>
AL_EQUALIZER_MID1_CENTER = 0x0004,
///<summary>Range [0.01f .. 1.0f] Default: 1.0f</summary>
///<summary>Equalizer Parameter. Range [0.01f .. 1.0f] Default: 1.0f</summary>
AL_EQUALIZER_MID1_WIDTH = 0x0005,
///<summary>Range [0.126f .. 7.943f] Default: 1.0f</summary>
///<summary>Equalizer Parameter. Range [0.126f .. 7.943f] Default: 1.0f</summary>
AL_EQUALIZER_MID2_GAIN = 0x0006,
///<summary>Range [1000.0f .. 8000.0f] Default: 3000.0f</summary>
///<summary>Equalizer Parameter. Unit: Hz Range [1000.0f .. 8000.0f] Default: 3000.0f</summary>
AL_EQUALIZER_MID2_CENTER = 0x0007,
///<summary>Range [0.01f .. 1.0f] Default: 1.0f</summary>
///<summary>Equalizer Parameter. Range [0.01f .. 1.0f] Default: 1.0f</summary>
AL_EQUALIZER_MID2_WIDTH = 0x0008,
///<summary>Range [0.126f .. 7.943f] Default: 1.0f</summary>
///<summary>Equalizer Parameter. Range [0.126f .. 7.943f] Default: 1.0f</summary>
AL_EQUALIZER_HIGH_GAIN = 0x0009,
///<summary>Range [4000.0f .. 16000.0f] Default: 6000.0f</summary>
///<summary>Equalizer Parameter. Unit: Hz Range [4000.0f .. 16000.0f] Default: 6000.0f</summary>
AL_EQUALIZER_HIGH_CUTOFF = 0x000A,
}
/* Effect type */
public enum b : int
public enum AL_EFFECT_EAXREVERB : int
{
///<summary>EAXReverb effect parameters. Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_EAXREVERB_DENSITY = 0x0001,
///<summary>EAXReverb effect parameters. Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_EAXREVERB_DIFFUSION = 0x0002,
///<summary>EAXReverb effect parameters. Range [0.0f .. 1.0f] Default: 0.32f</summary>
AL_EAXREVERB_GAIN = 0x0003,
///<summary>EAXReverb effect parameters. Range [0.0f .. 1.0f] Default: 0.89f</summary>
AL_EAXREVERB_GAINHF = 0x0004,
///<summary>EAXReverb effect parameters. Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_EAXREVERB_GAINLF = 0x0005,
///<summary>EAXReverb effect parameters. Unit: Seconds Range [0.1f .. 20.0f] Default: 1.49f</summary>
AL_EAXREVERB_DECAY_TIME = 0x0006,
///<summary>EAXReverb effect parameters. Range [0.1f .. 2.0f] Default: 0.83f</summary>
AL_EAXREVERB_DECAY_HFRATIO = 0x0007,
///<summary>EAXReverb effect parameters. Range [0.1f .. 2.0f] Default: 1.0f</summary>
AL_EAXREVERB_DECAY_LFRATIO = 0x0008,
///<summary>EAXReverb effect parameters. Range [0.0f .. 3.16f] Default: 0.05f</summary>
AL_EAXREVERB_REFLECTIONS_GAIN = 0x0009,
///<summary>EAXReverb effect parameters. Unit: Seconds Range [0.0f .. 0.3f] Default: 0.007f</summary>
AL_EAXREVERB_REFLECTIONS_DELAY = 0x000A,
/// <summary>EAXReverb effect parameters. Unit: Vector3 Default: {0.0f, 0.0f, 0.0f}</summary>
AL_EAXREVERB_REFLECTIONS_PAN = 0x000B,
///<summary>EAXReverb effect parameters. Range [0.0f .. 10.0f] Default: 1.26f</summary>
AL_EAXREVERB_LATE_REVERB_GAIN = 0x000C,
///<summary>EAXReverb effect parameters. Unit: Seconds Range [0.0f .. 0.1f] Default: 0.011f</summary>
AL_EAXREVERB_LATE_REVERB_DELAY = 0x000D,
/// <summary>EAXReverb effect parameters. Unit: Vector3 Default: {0.0f, 0.0f, 0.0f}</summary>
AL_EAXREVERB_LATE_REVERB_PAN = 0x000E,
///<summary>EAXReverb effect parameters. Range [0.075f .. 0.25f] Default: 0.25f</summary>
AL_EAXREVERB_ECHO_TIME = 0x000F,
///<summary>EAXReverb effect parameters. Range [0.0f .. 1.0f] Default: 0.0f</summary>
AL_EAXREVERB_ECHO_DEPTH = 0x0010,
///<summary>EAXReverb effect parameters. Range [0.04f .. 4.0f] Default: 0.25f</summary>
AL_EAXREVERB_MODULATION_TIME = 0x0011,
///<summary>EAXReverb effect parameters. Range [0.0f .. 1.0f] Default: 0.0f</summary>
AL_EAXREVERB_MODULATION_DEPTH = 0x0012,
///<summary>EAXReverb effect parameters. Range [0.892f .. 1.0f] Default: 0.994f</summary>
AL_EAXREVERB_AIR_ABSORPTION_GAINHF = 0x0013,
///<summary>EAXReverb effect parameters. Unit: Hz Range [1000.0f .. 20000.0f] Default: 5000.0f</summary>
AL_EAXREVERB_HFREFERENCE = 0x0014,
///<summary>EAXReverb effect parameters. Unit: Hz Range [20.0f .. 1000.0f] Default: 250.0f</summary>
AL_EAXREVERB_LFREFERENCE = 0x0015,
///<summary>EAXReverb effect parameters. Range [0.0f .. 10.0f] Default: 0.0f</summary>
AL_EAXREVERB_ROOM_ROLLOFF_FACTOR = 0x0016,
///<summary>EAXReverb effect parameters. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
AL_EAXREVERB_DECAY_HFLIMIT = 0x0017,
}
#endregion
public enum EfxEffecti : int
{
AL_EFFECT_FIRST_PARAMETER = 0x0000,
AL_EFFECT_LAST_PARAMETER = 0x8000,
AL_EFFECT_TYPE = 0x8001,
AL_EFFECT_TYPE = 0x8001, // AL.BindEffect()
}
/* Effect type definitions to be used with AL_EFFECT_TYPE. */
///<summary>Effect type definitions to be used with AL_EFFECT_TYPE.</summary>
public enum EfxEffectType : int
{
AL_EFFECT_NULL = 0x0000, /* Can also be used as an Effect Object ID */
AL_EFFECT_REVERB = 0x0001,
AL_EFFECT_CHORUS = 0x0002,
@ -334,32 +371,41 @@ namespace OpenTK.OpenAL
AL_EFFECT_COMPRESSOR = 0x000B,
AL_EFFECT_EQUALIZER = 0x000C,
/**
* Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions.
*/
AL_EFFECT_EAXREVERB = 0x8000,
}
public enum EfxAuxiliarySlot : int
{
// Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions.
AL_EFFECTSLOT_EFFECT = 0x0001,
AL_EFFECTSLOT_GAIN = 0x0002,
AL_EFFECTSLOT_AUXILIARY_SEND_AUTO = 0x0003,
// Value to be used as an Auxiliary Slot ID to disable a source send..
AL_EFFECTSLOT_NULL = 0x0000,
}
#region Filter Object
// Filter object definitions to be used with alFilter functions.
public enum EfxFilterParameter : int
public enum EfxFilterLowpass : int
{
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_LOWPASS_GAIN = 0x0001,
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_LOWPASS_GAINHF = 0x0002,
}
public enum EfxFilterHighpass : int
{
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_HIGHPASS_GAIN = 0x0001,
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_HIGHPASS_GAINLF = 0x0002,
}
public enum EfxFilterBandpass : int
{
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_BANDPASS_GAIN = 0x0001,
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
@ -367,78 +413,25 @@ namespace OpenTK.OpenAL
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_BANDPASS_GAINHF = 0x0003,
}
// Filter type
public enum EfxFilterType : int
{
// Filter type
AL_FILTER_FIRST_PARAMETER = 0x0000,
AL_FILTER_LAST_PARAMETER = 0x8000,
AL_FILTER_TYPE = 0x8001,
}
// Filter type definitions to be used with AL_FILTER_TYPE.
public enum EfxFilterTypeDefinition : int
{
// Filter type definitions to be used with AL_FILTER_TYPE.
AL_FILTER_NULL = 0x0000, // Can also be used as a Filter Object ID
AL_FILTER_LOWPASS = 0x0001,
AL_FILTER_HIGHPASS = 0x0002,
AL_FILTER_BANDPASS = 0x0003,
}
// Effect object definitions to be used with alEffect functions.
// AL EAXReverb effect parameters.
public enum EaxReverb : int
{
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_EAXREVERB_DENSITY = 0x0001,
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_EAXREVERB_DIFFUSION = 0x0002,
///<summary>Range [0.0f .. 1.0f] Default: 0.32f</summary>
AL_EAXREVERB_GAIN = 0x0003,
///<summary>Range [0.0f .. 1.0f] Default: 0.89f</summary>
AL_EAXREVERB_GAINHF = 0x0004,
///<summary>Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_EAXREVERB_GAINLF = 0x0005,
///<summary>Range [0.1f .. 20.0f] Default: 1.49f</summary>
AL_EAXREVERB_DECAY_TIME = 0x0006,
///<summary>Range [0.1f .. 2.0f] Default: 0.83f</summary>
AL_EAXREVERB_DECAY_HFRATIO = 0x0007,
///<summary>Range [0.1f .. 2.0f] Default: 1.0f</summary>
AL_EAXREVERB_DECAY_LFRATIO = 0x0008,
///<summary>Range [0.0f .. 3.16f] Default: 0.05f</summary>
AL_EAXREVERB_REFLECTIONS_GAIN = 0x0009,
///<summary>Range [0.0f .. 0.3f] Default: 0.007f</summary>
AL_EAXREVERB_REFLECTIONS_DELAY = 0x000A,
/// <summary>Default: {0.0f, 0.0f, 0.0f}</summary>
AL_EAXREVERB_REFLECTIONS_PAN = 0x000B,
///<summary>Range [0.0f .. 10.0f] Default: 1.26f</summary>
AL_EAXREVERB_LATE_REVERB_GAIN = 0x000C,
///<summary>Range [0.0f .. 0.1f] Default: 0.011f</summary>
AL_EAXREVERB_LATE_REVERB_DELAY = 0x000D,
/// <summary>Default: {0.0f, 0.0f, 0.0f}</summary>
AL_EAXREVERB_LATE_REVERB_PAN = 0x000E,
///<summary>Range [0.075f .. 0.25f] Default: 0.25f</summary>
AL_EAXREVERB_ECHO_TIME = 0x000F,
///<summary>Range [0.0f .. 1.0f] Default: 0.0f</summary>
AL_EAXREVERB_ECHO_DEPTH = 0x0010,
///<summary>Range [0.04f .. 4.0f] Default: 0.25f</summary>
AL_EAXREVERB_MODULATION_TIME = 0x0011,
///<summary>Range [0.0f .. 1.0f] Default: 0.0f</summary>
AL_EAXREVERB_MODULATION_DEPTH = 0x0012,
///<summary>Range [0.892f .. 1.0f] Default: 0.994f</summary>
AL_EAXREVERB_AIR_ABSORPTION_GAINHF = 0x0013,
///<summary>Range [1000.0f .. 20000.0f] Default: 5000.0f</summary>
AL_EAXREVERB_HFREFERENCE = 0x0014,
///<summary>Range [20.0f .. 1000.0f] Default: 250.0f</summary>
AL_EAXREVERB_LFREFERENCE = 0x0015,
///<summary>Range [0.0f .. 10.0f] Default: 0.0f</summary>
AL_EAXREVERB_ROOM_ROLLOFF_FACTOR = 0x0016,
///<summary>Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
AL_EAXREVERB_DECAY_HFLIMIT = 0x0017,
}
// Effect type definitions to be used with AL_EFFECT_TYPE.
public enum c : int
{
AL_EFFECT_EAXREVERB = 0x8000,
}
#endregion Filter Object
}
}

View file

@ -42,7 +42,12 @@ Version History:
0.5 vanilla complete
- Fix Alc.GetString( Enums.AlcGetStringList ) to terminate with 2 null, and split at 1 null
0.6
- Begun working on Efx
- X-Ram changed, must be tested properly. verify parameters of GetBufferMode()
Next Version:
- EFX Extension
- Enums themselves require summaries (do EFX 1st)
- use [MarshalAs(UnmanagedType)] attribute, instead of AL.Bool? investigate
- AL.BindBuffer helper function ala GL.BindBuffer? (Wraps AL.Source, better consistency)

View file

@ -30,17 +30,17 @@ namespace OpenTK.OpenAL
#region X-RAM Function pointer definitions
[CLSCompliant(false)]
public unsafe delegate AL.Bool SetBufferMode(int n, ref uint buffers, int value);
public unsafe delegate AL.Bool DelegateSetBufferMode(int n, ref uint buffers, int value);
//typedef ALboolean (__cdecl *EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
[CLSCompliant(false)]
public delegate int GetBufferMode(uint buffer, out int value);
public delegate int DelegateGetBufferMode(uint buffer, out int value);
//typedef ALenum (__cdecl *EAXGetBufferMode)(ALuint buffer, ALint *value);
[CLSCompliant(false)]
public SetBufferMode EAXSetBufferMode;
private DelegateSetBufferMode ImportedSetBufferMode;
[CLSCompliant(false)]
public GetBufferMode EAXGetBufferMode;
private DelegateGetBufferMode ImportedGetBufferMode;
#endregion X-RAM Function pointer definitions
@ -81,8 +81,8 @@ namespace OpenTK.OpenAL
try
{
EAXGetBufferMode = (GetBufferMode)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXGetBufferMode"), typeof(GetBufferMode));
EAXSetBufferMode = (SetBufferMode)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXSetBufferMode"), typeof(SetBufferMode));
ImportedGetBufferMode = (DelegateGetBufferMode)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXGetBufferMode"), typeof(DelegateGetBufferMode));
ImportedSetBufferMode = (DelegateSetBufferMode)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXSetBufferMode"), typeof(DelegateSetBufferMode));
}
catch (Exception e)
{
@ -132,22 +132,28 @@ namespace OpenTK.OpenAL
}
[CLSCompliant(false)]
public void _SetBufferMode(ref uint buffer, XRamStorage mode)
public void SetBufferMode(int n, ref uint buffer, XRamStorage mode)
{
switch (mode)
{
case XRamStorage.Acessible:
EAXSetBufferMode(1, ref buffer, AL_STORAGE_ACCESSIBLE);
ImportedSetBufferMode(1, ref buffer, AL_STORAGE_ACCESSIBLE);
break;
case XRamStorage.Hardware:
EAXSetBufferMode(1, ref buffer, AL_STORAGE_HARDWARE);
ImportedSetBufferMode(1, ref buffer, AL_STORAGE_HARDWARE);
break;
default:
EAXSetBufferMode(1, ref buffer, AL_STORAGE_AUTOMATIC);
ImportedSetBufferMode(1, ref buffer, AL_STORAGE_AUTOMATIC);
break;
}
}
public XRamStorage GetBufferMode(ref uint buffer)
{
int t; // this is improper, find sample codes using it and figure out what 2nd param does.
return (XRamStorage)ImportedGetBufferMode(buffer, out t);
}
#endregion Public Methods
}
}