///<summary>Indicate the gain (Volume amplification) applied. Type: float Range: [0.0f - ? ] A value of 1.0 means un-attenuated/unchanged. Each division by 2 equals an attenuation of -6dB. Each multiplicaton with 2 equals an amplification of +6dB. A value of 0.0f is interpreted as zero volume and the channel is effectively disabled.</summary>
Gain=0x100A,
///<summary>(EFX Extension) This setting is critical if Air Absorption effects are enabled because the amount of Air Absorption applied is directly related to the real-world distance between the Source and the Listener. centimeters 0.01f meters 1.0f kilometers 1000.0f Range [float.MinValue .. float.MaxValue] Default: 1.0f</summary>
EfxMetersPerUnit=0x20004,
}
///<summary>A list of valid Math.Vector3 Listener/GetListener parameters</summary>
publicenumALListener3f:int
{
///<summary>Specify the current location in three dimensional space. OpenAL, like OpenGL, uses a right handed coordinate system, where in a frontal default view X (thumb) points right, Y points up (index finger), and Z points towards the viewer/camera (middle finger). To switch from a left handed coordinate system, flip the sign on the Z coordinate. Listener position is always in the world coordinate system.</summary>
Position=0x1004,
///<summary>Specify the current velocity in three dimensional space.</summary>
Velocity=0x1006,
}
///<summary>A list of valid float[] Listener/GetListener parameters</summary>
publicenumALListenerfv:int
{
///<summary>Indicate Listener orientation. Expects two Vector3, At followed by Up.</summary>
///<summary>Source specific reference distance. Type: float Range: [0.0f - float.PositiveInfinity] At 0.0f, no distance attenuation occurs. Type: float Default: 1.0f.</summary>
ReferenceDistance=0x1020,
///<summary>Indicate distance above which Sources are not attenuated using the inverse clamped distance model. Default: float.PositiveInfinity Type: float Range: [0.0f - float.PositiveInfinity]</summary>
MaxDistance=0x1023,
///<summary>Source specific rolloff factor. Type: float Range: [0.0f - float.PositiveInfinity]</summary>
RolloffFactor=0x1021,
///<summary>Specify the pitch to be applied, either at Source, or on mixer results, at Listener. Range: [0.5f - 2.0f] Default: 1.0f</summary>
Pitch=0x1003,
///<summary>Indicate the gain (volume amplification) applied. Type: float. Range: [0.0f - ? ] A value of 1.0 means un-attenuated/unchanged. Each division by 2 equals an attenuation of -6dB. Each multiplicaton with 2 equals an amplification of +6dB. A value of 0.0f is meaningless with respect to a logarithmic scale; it is interpreted as zero volume - the channel is effectively disabled.</summary>
/// <summary>The playback position, expressed in seconds.</summary>
SecOffset=0x1024,// AL_EXT_OFFSET extension.
///<summary>(EFX Extension) This property is a multiplier on the amount of Air Absorption applied to the Source. The AL_AIR_ABSORPTION_FACTOR is multiplied by an internal Air Absorption Gain HF value of 0.994 (-0.05dB) per meter which represents normal atmospheric humidity and temperature. Range [0.0f .. 10.0f] Default: 0.0f</summary>
EfxAirAbsorptionFactor=0x20007,
///<summary>(EFX Extension) This property is defined the same way as the Reverb Room Rolloff property: it is one of two methods available in the Effect Extension to attenuate the reflected sound (early reflections and reverberation) according to source-listener distance. Range [0.0f .. 10.0f] Default: 0.0f</summary>
EfxRoomRolloffFactor=0x20008,
///<summary>(EFX Extension) A directed Source points in a specified direction. The Source sounds at full volume when the listener is directly in front of the source; it is attenuated as the listener circles the Source away from the front. Range [0.0f .. 1.0f] Default: 1.0f</summary>
EfxConeOuterGainHighFrequency=0x20009,
}
///<summary>A list of valid Math.Vector3 Source/GetSource parameters</summary>
publicenumALSource3f:int
{
///<summary>Specify the current location in three dimensional space. OpenAL, like OpenGL, uses a right handed coordinate system, where in a frontal default view X (thumb) points right, Y points up (index finger), and Z points towards the viewer/camera (middle finger). To switch from a left handed coordinate system, flip the sign on the Z coordinate. Listener position is always in the world coordinate system.</summary>
Position=0x1004,
///<summary>Specify the current velocity in three dimensional space.</summary>
Velocity=0x1006,
///<summary>Specify the current direction vector.</summary>
///<summary>Indicate that the Source has relative coordinates. Type: bool Range: [True, False]</summary>
SourceRelative=0x202,
///<summary>Indicate whether the Source is looping. Type: bool Range: [True, False] Default: False.</summary>
Looping=0x1007,
///<summary>(EFX Extension) If this Source property is set to True, this Source’s direct-path is automatically filtered according to the orientation of the source relative to the listener and the setting of the Source property Sourcef.ConeOuterGainHF. Type: bool Range [False, True] Default: True</summary>
EfxDirectFilterGainHighFrequencyAuto=0x2000A,
///<summary>(EFX Extension) If this Source property is set to True, the intensity of this Source’s reflected sound is automatically attenuated according to source-listener distance and source directivity (as determined by the cone parameters). If it is False, the reflected sound is not attenuated according to distance and directivity. Type: bool Range [False, True] Default: True</summary>
EfxAuxiliarySendFilterGainAuto=0x2000B,
///<summary>(EFX Extension) If this Source property is AL_TRUE (its default value), the intensity of this Source’s reflected sound at high frequencies will be automatically attenuated according to the high-frequency source directivity as set by the Sourcef.ConeOuterGainHF property. If this property is AL_FALSE, the Source’s reflected sound is not filtered at all according to the Source’s directivity. Type: bool Range [False, True] Default: True</summary>
///<summary>A list of valid Int32 Source parameters</summary>
publicenumALSourcei:int
{
///<summary>The playback position, expressed in bytes.</summary>
ByteOffset=0x1026,// AL_EXT_OFFSET extension.
///<summary>The playback position, expressed in samples.</summary>
SampleOffset=0x1025,// AL_EXT_OFFSET extension.
///<summary>Indicate the Buffer to provide sound samples. Type: uint Range: any valid Buffer Handle.</summary>
Buffer=0x1009,
///<summary>Source type (Static, Streaming or undetermined). Use enum AlSourceType for comparison</summary>
SourceType=0x1027,
///<summary>(EFX Extension) This Source property is used to apply filtering on the direct-path (dry signal) of a Source.</summary>
EfxDirectFilter=0x20005,
}
///<summary>A list of valid 3x Int32 Source/GetSource parameters</summary>
publicenumALSource3i:int
{
///<summary>(EFX Extension) This Source property is used to establish connections between Sources and Auxiliary Effect Slots. For a Source to feed an Effect that has been loaded into an Auxiliary Effect Slot the application must configure one of the Source’s auxiliary sends. This process involves setting 3 variables – the destination Auxiliary Effect Slot ID, the Auxiliary Send number, and an optional Filter ID. Type: uint Range: any valid Filter Handle.</summary>
EfxAuxiliarySendFilter=0x20006,
}
///<summary>A list of valid Int32 GetSource parameters</summary>
publicenumALGetSourcei:int
{
///<summary>The playback position, expressed in bytes. AL_EXT_OFFSET Extension.</summary>
ByteOffset=0x1026,
///<summary>The playback position, expressed in samples. AL_EXT_OFFSET Extension.</summary>
SampleOffset=0x1025,
///<summary>Indicate the Buffer to provide sound samples. Type: uint Range: any valid Buffer Handle.</summary>
Buffer=0x1009,
/// <summary>The state of the source (Stopped, Playing, etc.) Use the enum AlSourceState for comparison.</summary>
SourceState=0x1010,
/// <summary>The number of buffers queued on this source.</summary>
BuffersQueued=0x1015,
/// <summary>The number of buffers in the queue that have been processed.</summary>
BuffersProcessed=0x1016,
///<summary>Source type (Static, Streaming or undetermined). Use enum AlSourceType for comparison.</summary>
///<summary>Sound sample's frequency, in units of hertz [Hz]. This is the number of samples per second. Half of the sample frequency marks the maximum significant frequency component.</summary>
/// <summary>Bit depth of the buffer. Should be 8 or 16.</summary>
Bits=0x2002,
/// <summary>Number of channels in buffer. > 1 is valid, but buffer won’t be positioned when played. 1 for Mono, 2 for Stereo.</summary>
Channels=0x2003,
/// <summary>size of the Buffer in bytes.</summary>
Size=0x2004,
// Deprecated: From Manual, not in header: AL_DATA ( i, iv ) original location where buffer was copied from generally useless, as was probably freed after buffer creation
}
///<summary>Buffer state. Not supported for public use (yet).</summary>
publicenumALBufferState:int
{
///<summary>Buffer state. Not supported for public use (yet).</summary>
Unused=0x2010,
///<summary>Buffer state. Not supported for public use (yet).</summary>
Pending=0x2011,
///<summary>Buffer state. Not supported for public use (yet).</summary>
Processed=0x2012,
}
/// <summary>Returned by AL.GetError</summary>
publicenumALError:int
{
///<summary>No OpenAL Error.</summary>
NoError=0,
///<summary>Invalid Name paramater passed to OpenAL call.</summary>
InvalidName=0xA001,
///<summary>Invalid parameter passed to OpenAL call.</summary>
IllegalEnum=0xA002,
///<summary>Invalid parameter passed to OpenAL call.</summary>
/// <summary>Used by AL.DistanceModel(), the distance model can be retrieved by AL.Get() with ALGetInteger.DistanceModel</summary>
publicenumALDistanceModel:int
{
///<summary>Bypasses all distance attenuation calculation for all Sources.</summary>
None=0,
///<summary>InverseDistance is equivalent to the IASIG I3DL2 model with the exception that ALSourcef.ReferenceDistance does not imply any clamping.</summary>
InverseDistance=0xD001,
///<summary>InverseDistanceClamped is the IASIG I3DL2 model, with ALSourcef.ReferenceDistance indicating both the reference distance and the distance below which gain will be clamped.</summary>