* Audio/*: Cleaned up whitespace.

* AudioContext.cs: Get device name specifier once a device is opened.
This commit is contained in:
the_fiddler 2009-03-25 18:41:50 +00:00
parent a3f29ab963
commit 8bb40e5a07
4 changed files with 117 additions and 115 deletions

View file

@ -267,7 +267,7 @@ namespace OpenTK.Audio
CheckForAlcErrors(); CheckForAlcErrors();
device_name = device; device_name = Alc.GetString(device_handle, AlcGetString.DeviceSpecifier);
// Build the attribute list // Build the attribute list
List<int> attributes = new List<int>(); List<int> attributes = new List<int>();

View file

@ -444,10 +444,10 @@ namespace OpenTK.Audio
/// <summary>This function generates one source only. References to sources are uint values, which are used wherever a source reference is needed (in calls such as AL.DeleteSources and AL.Source with parameter ALSourcei).</summary> /// <summary>This function generates one source only. References to sources are uint values, which are used wherever a source reference is needed (in calls such as AL.DeleteSources and AL.Source with parameter ALSourcei).</summary>
/// <param name="source">Pointer to an uint value which will store the name of the new source.</param> /// <param name="source">Pointer to an uint value which will store the name of the new source.</param>
[CLSCompliant( false )] [CLSCompliant(false)]
public static void GenSource( out uint source ) public static void GenSource(out uint source)
{ {
GenSources( 1, out source ); GenSources(1, out source);
} }
#endregion GenSources() #endregion GenSources()
@ -499,7 +499,7 @@ namespace OpenTK.Audio
/// <summary>This function deletes one source only.</summary> /// <summary>This function deletes one source only.</summary>
/// <param name="source">Pointer to a source name identifying the source to be deleted.</param> /// <param name="source">Pointer to a source name identifying the source to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
public static void DeleteSource( ref uint source) public static void DeleteSource(ref uint source)
{ {
DeleteSources(1, ref source); DeleteSources(1, ref source);
} }
@ -1316,10 +1316,10 @@ namespace OpenTK.Audio
/// <summary>This function generates one buffer only, which contain audio data (see AL.BufferData). References to buffers are uint values, which are used wherever a buffer reference is needed (in calls such as AL.DeleteBuffers, AL.Source with parameter ALSourcei, AL.SourceQueueBuffers, and AL.SourceUnqueueBuffers).</summary> /// <summary>This function generates one buffer only, which contain audio data (see AL.BufferData). References to buffers are uint values, which are used wherever a buffer reference is needed (in calls such as AL.DeleteBuffers, AL.Source with parameter ALSourcei, AL.SourceQueueBuffers, and AL.SourceUnqueueBuffers).</summary>
/// <param name="buffers">Pointer to an uint value which will store the names of the new buffer.</param> /// <param name="buffers">Pointer to an uint value which will store the names of the new buffer.</param>
[CLSCompliant( false )] [CLSCompliant(false)]
public static void GenBuffer( out uint buffer ) public static void GenBuffer(out uint buffer)
{ {
GenBuffers( 1, out buffer ); GenBuffers(1, out buffer);
} }
#endregion GenBuffers #endregion GenBuffers
@ -1372,7 +1372,7 @@ namespace OpenTK.Audio
/// <summary>This function deletes one buffer only, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary> /// <summary>This function deletes one buffer only, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary>
/// <param name="buffer">Pointer to a buffer name identifying the buffer to be deleted.</param> /// <param name="buffer">Pointer to a buffer name identifying the buffer to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
public static void DeleteBuffer( ref uint buffer) public static void DeleteBuffer(ref uint buffer)
{ {
DeleteBuffers(1, ref buffer); DeleteBuffers(1, ref buffer);
} }
@ -1380,7 +1380,7 @@ namespace OpenTK.Audio
/// <summary>This function deletes one buffer only, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary> /// <summary>This function deletes one buffer only, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary>
/// <param name="buffer">Pointer to a buffer name identifying the buffer to be deleted.</param> /// <param name="buffer">Pointer to a buffer name identifying the buffer to be deleted.</param>
[CLSCompliant(true)] [CLSCompliant(true)]
public static void DeleteBuffer( int buffer) public static void DeleteBuffer(int buffer)
{ {
DeleteBuffers(1, ref buffer); DeleteBuffers(1, ref buffer);
} }
@ -1583,51 +1583,51 @@ namespace OpenTK.Audio
/// <summary>(Helper) Returns Source state information.</summary> /// <summary>(Helper) Returns Source state information.</summary>
/// <param name="sid">The source to be queried.</param> /// <param name="sid">The source to be queried.</param>
/// <returns>state information from OpenAL.</returns> /// <returns>state information from OpenAL.</returns>
[CLSCompliant( false )] [CLSCompliant(false)]
public static ALSourceState GetSourceState( uint sid ) public static ALSourceState GetSourceState(uint sid)
{ {
int temp; int temp;
AL.GetSource( sid, ALGetSourcei.SourceState, out temp ); AL.GetSource(sid, ALGetSourcei.SourceState, out temp);
return (ALSourceState) temp; return (ALSourceState)temp;
} }
/// <summary>(Helper) Returns Source state information.</summary> /// <summary>(Helper) Returns Source state information.</summary>
/// <param name="sid">The source to be queried.</param> /// <param name="sid">The source to be queried.</param>
/// <returns>state information from OpenAL.</returns> /// <returns>state information from OpenAL.</returns>
[CLSCompliant( true )] [CLSCompliant(true)]
public static ALSourceState GetSourceState( int sid ) public static ALSourceState GetSourceState(int sid)
{ {
int temp; int temp;
AL.GetSource( sid, ALGetSourcei.SourceState, out temp ); AL.GetSource(sid, ALGetSourcei.SourceState, out temp);
return (ALSourceState) temp; return (ALSourceState)temp;
} }
/// <summary>(Helper) Returns Source type information.</summary> /// <summary>(Helper) Returns Source type information.</summary>
/// <param name="sid">The source to be queried.</param> /// <param name="sid">The source to be queried.</param>
/// <returns>type information from OpenAL.</returns> /// <returns>type information from OpenAL.</returns>
[CLSCompliant( false )] [CLSCompliant(false)]
public static ALSourceType GetSourceType( uint sid ) public static ALSourceType GetSourceType(uint sid)
{ {
int temp; int temp;
AL.GetSource( sid, ALGetSourcei.SourceType, out temp ); AL.GetSource(sid, ALGetSourcei.SourceType, out temp);
return (ALSourceType) temp; return (ALSourceType)temp;
} }
/// <summary>(Helper) Returns Source type information.</summary> /// <summary>(Helper) Returns Source type information.</summary>
/// <param name="sid">The source to be queried.</param> /// <param name="sid">The source to be queried.</param>
/// <returns>type information from OpenAL.</returns> /// <returns>type information from OpenAL.</returns>
[CLSCompliant( true )] [CLSCompliant(true)]
public static ALSourceType GetSourceType( int sid ) public static ALSourceType GetSourceType(int sid)
{ {
int temp; int temp;
AL.GetSource( sid, ALGetSourcei.SourceType, out temp ); AL.GetSource(sid, ALGetSourcei.SourceType, out temp);
return (ALSourceType) temp; return (ALSourceType)temp;
} }
[CLSCompliant( true )] [CLSCompliant(true)]
public static ALDistanceModel GetDistanceModel( ) public static ALDistanceModel GetDistanceModel()
{ {
return (ALDistanceModel) AL.Get( ALGetInteger.DistanceModel ); return (ALDistanceModel)AL.Get(ALGetInteger.DistanceModel);
} }
#endregion Helpers #endregion Helpers

View file

@ -34,7 +34,7 @@ namespace OpenTK.Audio
/// <summary>(Helper) Selects the Effect type used by this Effect handle.</summary> /// <summary>(Helper) Selects the Effect type used by this Effect handle.</summary>
/// <param name="eid">Effect id returned from a successful call to GenEffects.</param> /// <param name="eid">Effect id returned from a successful call to GenEffects.</param>
/// <param name="type">Effect type.</param> /// <param name="type">Effect type.</param>
public void BindEffect(int eid, EfxEffectType type) public void BindEffect(int eid, EfxEffectType type)
{ {
Imported_alEffecti((uint)eid, EfxEffecti.EffectType, (int)type); Imported_alEffecti((uint)eid, EfxEffecti.EffectType, (int)type);
@ -56,7 +56,7 @@ namespace OpenTK.Audio
/// <summary>(Helper) reroutes the output of a Source through a Filter.</summary> /// <summary>(Helper) reroutes the output of a Source through a Filter.</summary>
/// <param name="source">A valid Source handle.</param> /// <param name="source">A valid Source handle.</param>
/// <param name="filter">A valid Filter handle.</param> /// <param name="filter">A valid Filter handle.</param>
public void BindFilterToSource(int source, int filter) public void BindFilterToSource(int source, int filter)
{ {
AL.Source((uint)source, ALSourcei.EfxDirectFilter, (int)filter); AL.Source((uint)source, ALSourcei.EfxDirectFilter, (int)filter);
@ -78,7 +78,7 @@ namespace OpenTK.Audio
/// <summary>(Helper) Attaches an Effect to an Auxiliary Effect Slot.</summary> /// <summary>(Helper) Attaches an Effect to an Auxiliary Effect Slot.</summary>
/// <param name="auxiliaryeffectslot">The slot handle to attach the Effect to.</param> /// <param name="auxiliaryeffectslot">The slot handle to attach the Effect to.</param>
/// <param name="effect">The Effect handle that is being attached.</param> /// <param name="effect">The Effect handle that is being attached.</param>
public void BindEffectToAuxiliarySlot(int auxiliaryeffectslot, int effect) public void BindEffectToAuxiliarySlot(int auxiliaryeffectslot, int effect)
{ {
AuxiliaryEffectSlot((uint)auxiliaryeffectslot, EfxAuxiliaryi.EffectslotEffect, (int)effect); AuxiliaryEffectSlot((uint)auxiliaryeffectslot, EfxAuxiliaryi.EffectslotEffect, (int)effect);
@ -104,7 +104,7 @@ namespace OpenTK.Audio
/// <param name="slot">The Auxiliary Effect Slot handle that receives input from the Source.</param> /// <param name="slot">The Auxiliary Effect Slot handle that receives input from the Source.</param>
/// <param name="slotnumber">Every Source has only a limited number of slots it can feed buffer to. The number must stay below AlcContextAttributes.EfxMaxAuxiliarySends</param> /// <param name="slotnumber">Every Source has only a limited number of slots it can feed buffer to. The number must stay below AlcContextAttributes.EfxMaxAuxiliarySends</param>
/// <param name="filter">Filter handle to be attached between Source ouput and Auxiliary Slot input. Use 0 or EfxFilterType.FilterNull for no filter. </param> /// <param name="filter">Filter handle to be attached between Source ouput and Auxiliary Slot input. Use 0 or EfxFilterType.FilterNull for no filter. </param>
public void BindSourceToAuxiliarySlot(int source, int slot, int slotnumber, int filter) public void BindSourceToAuxiliarySlot(int source, int slot, int slotnumber, int filter)
{ {
AL.Source((uint)source, ALSource3i.EfxAuxiliarySendFilter, (int)slot, (int)slotnumber, (int)filter); AL.Source((uint)source, ALSource3i.EfxAuxiliarySendFilter, (int)slot, (int)slotnumber, (int)filter);
@ -171,7 +171,7 @@ namespace OpenTK.Audio
GenEffects(n, out effects[0]); GenEffects(n, out effects[0]);
return effects; return effects;
} }
/// <summary>Generates a single effect object.</summary> /// <summary>Generates a single effect object.</summary>
/// <returns>A handle to the generated effect object.</returns> /// <returns>A handle to the generated effect object.</returns>
/// <remarks> /// <remarks>
@ -188,13 +188,13 @@ namespace OpenTK.Audio
/// <summary>Generates a single effect object.</summary> /// <summary>Generates a single effect object.</summary>
/// <param name="effect">A handle to the generated effect object.</param> /// <param name="effect">A handle to the generated effect object.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
public void GenEffect( out uint effect ) public void GenEffect(out uint effect)
{ {
unsafe unsafe
{ {
fixed ( uint* ptr = &effect ) fixed (uint* ptr = &effect)
{ {
Imported_alGenEffects( 1, ptr ); Imported_alGenEffects(1, ptr);
effect = *ptr; effect = *ptr;
} }
} }
@ -262,19 +262,19 @@ namespace OpenTK.Audio
/// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param> /// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param>
public void DeleteEffect(int effect) public void DeleteEffect(int effect)
{ {
DeleteEffects( 1, ref effect ); DeleteEffects(1, ref effect);
} }
/// <summary>This function deletes one Effect only.</summary> /// <summary>This function deletes one Effect only.</summary>
/// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param> /// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
public void DeleteEffect( ref uint effect ) public void DeleteEffect(ref uint effect)
{ {
unsafe unsafe
{ {
fixed ( uint* ptr = &effect ) fixed (uint* ptr = &effect)
{ {
Imported_alDeleteEffects( 1, ptr ); Imported_alDeleteEffects(1, ptr);
} }
} }
} }
@ -302,7 +302,7 @@ namespace OpenTK.Audio
/// <summary>The IsEffect function is used to determine if an object identifier is a valid Effect object.</summary> /// <summary>The IsEffect function is used to determine if an object identifier is a valid Effect object.</summary>
/// <param name="eid">Effect identifier to validate.</param> /// <param name="eid">Effect identifier to validate.</param>
/// <returns>True if the identifier is a valid Effect, False otherwise.</returns> /// <returns>True if the identifier is a valid Effect, False otherwise.</returns>
public bool IsEffect(int eid) public bool IsEffect(int eid)
{ {
return Imported_alIsEffect((uint)eid); return Imported_alIsEffect((uint)eid);
@ -333,7 +333,7 @@ namespace OpenTK.Audio
/// <param name="eid">Effect object identifier.</param> /// <param name="eid">Effect object identifier.</param>
/// <param name="param">Effect property to set.</param> /// <param name="param">Effect property to set.</param>
/// <param name="value">Integer value.</param> /// <param name="value">Integer value.</param>
public void Effect(int eid, EfxEffecti param, int value) public void Effect(int eid, EfxEffecti param, int value)
{ {
Imported_alEffecti((uint)eid, param, value); Imported_alEffecti((uint)eid, param, value);
@ -364,7 +364,7 @@ namespace OpenTK.Audio
/// <param name="eid">Effect object identifier.</param> /// <param name="eid">Effect object identifier.</param>
/// <param name="param">Effect property to set.</param> /// <param name="param">Effect property to set.</param>
/// <param name="value">Floating point value.</param> /// <param name="value">Floating point value.</param>
public void Effect(int eid, EfxEffectf param, float value) public void Effect(int eid, EfxEffectf param, float value)
{ {
Imported_alEffectf((uint)eid, param, value); Imported_alEffectf((uint)eid, param, value);
@ -401,7 +401,7 @@ namespace OpenTK.Audio
/// <param name="eid">Effect object identifier.</param> /// <param name="eid">Effect object identifier.</param>
/// <param name="param">Effect property to set.</param> /// <param name="param">Effect property to set.</param>
/// <param name="values">Pointer to Math.Vector3.</param> /// <param name="values">Pointer to Math.Vector3.</param>
public void Effect(int eid, EfxEffect3f param, ref Vector3 values) public void Effect(int eid, EfxEffect3f param, ref Vector3 values)
{ {
Effect((uint)eid, param, ref values); Effect((uint)eid, param, ref values);
@ -438,7 +438,7 @@ namespace OpenTK.Audio
/// <param name="eid">Effect object identifier.</param> /// <param name="eid">Effect object identifier.</param>
/// <param name="pname">Effect property to retrieve.</param> /// <param name="pname">Effect property to retrieve.</param>
/// <param name="value">Address where integer value will be stored.</param> /// <param name="value">Address where integer value will be stored.</param>
public void GetEffect(int eid, EfxEffecti pname, out int value) public void GetEffect(int eid, EfxEffecti pname, out int value)
{ {
GetEffect((uint)eid, pname, out value); GetEffect((uint)eid, pname, out value);
@ -475,7 +475,7 @@ namespace OpenTK.Audio
/// <param name="eid">Effect object identifier.</param> /// <param name="eid">Effect object identifier.</param>
/// <param name="pname">Effect property to retrieve.</param> /// <param name="pname">Effect property to retrieve.</param>
/// <param name="value">Address where floating point value will be stored.</param> /// <param name="value">Address where floating point value will be stored.</param>
public void GetEffect(int eid, EfxEffectf pname, out float value) public void GetEffect(int eid, EfxEffectf pname, out float value)
{ {
GetEffect((uint)eid, pname, out value); GetEffect((uint)eid, pname, out value);
@ -515,7 +515,7 @@ namespace OpenTK.Audio
/// <param name="eid">Effect object identifier.</param> /// <param name="eid">Effect object identifier.</param>
/// <param name="pname">Effect property to retrieve.</param> /// <param name="pname">Effect property to retrieve.</param>
/// <param name="value">A Math.Vector3 to hold the values.</param> /// <param name="value">A Math.Vector3 to hold the values.</param>
public void GetEffect(int eid, EfxEffect3f param, out Vector3 values) public void GetEffect(int eid, EfxEffect3f param, out Vector3 values)
{ {
GetEffect((uint)eid, param, out values); GetEffect((uint)eid, param, out values);
@ -599,13 +599,13 @@ namespace OpenTK.Audio
/// <summary>This function generates only one Filter.</summary> /// <summary>This function generates only one Filter.</summary>
/// <param name="filter">Storage UInt32 for the new filter name/handle.</param> /// <param name="filter">Storage UInt32 for the new filter name/handle.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
unsafe public void GenFilter( out uint filter ) unsafe public void GenFilter(out uint filter)
{ {
unsafe unsafe
{ {
fixed ( uint* ptr = &filter ) fixed (uint* ptr = &filter)
{ {
Imported_alGenFilters( 1, ptr ); Imported_alGenFilters(1, ptr);
filter = *ptr; filter = *ptr;
} }
} }
@ -678,13 +678,13 @@ namespace OpenTK.Audio
/// <summary>This function deletes one Filter only.</summary> /// <summary>This function deletes one Filter only.</summary>
/// <param name="filter">Pointer to an filter name/handle identifying the Filter Object to be deleted.</param> /// <param name="filter">Pointer to an filter name/handle identifying the Filter Object to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
public void DeleteFilter( ref uint filter ) public void DeleteFilter(ref uint filter)
{ {
unsafe unsafe
{ {
fixed ( uint* ptr = &filter ) fixed (uint* ptr = &filter)
{ {
Imported_alDeleteFilters( 1, ptr ); Imported_alDeleteFilters(1, ptr);
} }
} }
} }
@ -712,7 +712,7 @@ namespace OpenTK.Audio
/// <summary>The IsFilter function is used to determine if an object identifier is a valid Filter object.</summary> /// <summary>The IsFilter function is used to determine if an object identifier is a valid Filter object.</summary>
/// <param name="fid">Effect identifier to validate.</param> /// <param name="fid">Effect identifier to validate.</param>
/// <returns>True if the identifier is a valid Filter, False otherwise.</returns> /// <returns>True if the identifier is a valid Filter, False otherwise.</returns>
public bool IsFilter(int fid) public bool IsFilter(int fid)
{ {
return Imported_alIsFilter((uint)fid); return Imported_alIsFilter((uint)fid);
@ -743,7 +743,7 @@ namespace OpenTK.Audio
/// <param name="fid">Filter object identifier.</param> /// <param name="fid">Filter object identifier.</param>
/// <param name="param">Effect property to set.</param> /// <param name="param">Effect property to set.</param>
/// <param name="value">Integer value.</param> /// <param name="value">Integer value.</param>
public void Filter(int fid, EfxFilteri param, int value) public void Filter(int fid, EfxFilteri param, int value)
{ {
Imported_alFilteri((uint)fid, param, value); Imported_alFilteri((uint)fid, param, value);
@ -774,7 +774,7 @@ namespace OpenTK.Audio
/// <param name="fid">Filter object identifier.</param> /// <param name="fid">Filter object identifier.</param>
/// <param name="param">Effect property to set.</param> /// <param name="param">Effect property to set.</param>
/// <param name="value">Floating point value.</param> /// <param name="value">Floating point value.</param>
public void Filter(int fid, EfxFilterf param, float value) public void Filter(int fid, EfxFilterf param, float value)
{ {
Imported_alFilterf((uint)fid, param, value); Imported_alFilterf((uint)fid, param, value);
@ -811,7 +811,7 @@ namespace OpenTK.Audio
/// <param name="fid">Filter object identifier.</param> /// <param name="fid">Filter object identifier.</param>
/// <param name="pname">Effect property to retrieve.</param> /// <param name="pname">Effect property to retrieve.</param>
/// <param name="value">Address where integer value will be stored.</param> /// <param name="value">Address where integer value will be stored.</param>
public void GetFilter(int fid, EfxFilteri pname, out int value) public void GetFilter(int fid, EfxFilteri pname, out int value)
{ {
GetFilter((uint)fid, pname, out value); GetFilter((uint)fid, pname, out value);
@ -848,7 +848,7 @@ namespace OpenTK.Audio
/// <param name="fid">Filter object identifier.</param> /// <param name="fid">Filter object identifier.</param>
/// <param name="pname">Effect property to retrieve.</param> /// <param name="pname">Effect property to retrieve.</param>
/// <param name="value">Address where floating point value will be stored.</param> /// <param name="value">Address where floating point value will be stored.</param>
public void GetFilter(int fid, EfxFilterf pname, out float value) public void GetFilter(int fid, EfxFilterf pname, out float value)
{ {
GetFilter((uint)fid, pname, out value); GetFilter((uint)fid, pname, out value);
@ -932,13 +932,13 @@ namespace OpenTK.Audio
/// <summary>This function generates only one Auxiliary Effect Slot.</summary> /// <summary>This function generates only one Auxiliary Effect Slot.</summary>
/// <returns>Storage UInt32 for the new auxiliary effect slot name/handle.</returns> /// <returns>Storage UInt32 for the new auxiliary effect slot name/handle.</returns>
[CLSCompliant(false)] [CLSCompliant(false)]
public void GenAuxiliaryEffectSlot( out uint slot ) public void GenAuxiliaryEffectSlot(out uint slot)
{ {
unsafe unsafe
{ {
fixed ( uint* ptr = &slot ) fixed (uint* ptr = &slot)
{ {
Imported_alGenAuxiliaryEffectSlots( 1, ptr ); Imported_alGenAuxiliaryEffectSlots(1, ptr);
slot = *ptr; slot = *ptr;
} }
} }
@ -959,7 +959,7 @@ namespace OpenTK.Audio
[CLSCompliant(false)] [CLSCompliant(false)]
public void DeleteAuxiliaryEffectSlots(int n, ref uint slots) public void DeleteAuxiliaryEffectSlots(int n, ref uint slots)
{ {
unsafe unsafe
{ {
fixed (uint* ptr = &slots) fixed (uint* ptr = &slots)
{ {
@ -1010,13 +1010,13 @@ namespace OpenTK.Audio
/// <summary>This function deletes one AuxiliaryEffectSlot only.</summary> /// <summary>This function deletes one AuxiliaryEffectSlot only.</summary>
/// <param name="slot">Pointer to an auxiliary effect slot name/handle identifying the Auxiliary Effect Slot Object to be deleted.</param> /// <param name="slot">Pointer to an auxiliary effect slot name/handle identifying the Auxiliary Effect Slot Object to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
public void DeleteAuxiliaryEffectSlot( ref uint slot) public void DeleteAuxiliaryEffectSlot(ref uint slot)
{ {
unsafe unsafe
{ {
fixed ( uint* ptr = &slot ) fixed (uint* ptr = &slot)
{ {
Imported_alDeleteAuxiliaryEffectSlots( 1, ptr ); Imported_alDeleteAuxiliaryEffectSlots(1, ptr);
} }
} }
} }
@ -1044,7 +1044,7 @@ namespace OpenTK.Audio
/// <summary>The IsAuxiliaryEffectSlot function is used to determine if an object identifier is a valid Auxiliary Effect Slot object.</summary> /// <summary>The IsAuxiliaryEffectSlot function is used to determine if an object identifier is a valid Auxiliary Effect Slot object.</summary>
/// <param name="slot">Effect Slot object identifier to validate.</param> /// <param name="slot">Effect Slot object identifier to validate.</param>
/// <returns>True if the identifier is a valid Auxiliary Effect Slot, False otherwise.</returns> /// <returns>True if the identifier is a valid Auxiliary Effect Slot, False otherwise.</returns>
public bool IsAuxiliaryEffectSlot(int slot) public bool IsAuxiliaryEffectSlot(int slot)
{ {
return Imported_alIsAuxiliaryEffectSlot((uint)slot); return Imported_alIsAuxiliaryEffectSlot((uint)slot);
@ -1075,7 +1075,7 @@ namespace OpenTK.Audio
/// <param name="asid">Auxiliary Effect Slot object identifier.</param> /// <param name="asid">Auxiliary Effect Slot object identifier.</param>
/// <param name="param">Auxiliary Effect Slot property to set.</param> /// <param name="param">Auxiliary Effect Slot property to set.</param>
/// <param name="value">Integer value.</param> /// <param name="value">Integer value.</param>
public void AuxiliaryEffectSlot(int asid, EfxAuxiliaryi param, int value) public void AuxiliaryEffectSlot(int asid, EfxAuxiliaryi param, int value)
{ {
Imported_alAuxiliaryEffectSloti((uint)asid, param, value); Imported_alAuxiliaryEffectSloti((uint)asid, param, value);
@ -1106,7 +1106,7 @@ namespace OpenTK.Audio
/// <param name="asid">Auxiliary Effect Slot object identifier.</param> /// <param name="asid">Auxiliary Effect Slot object identifier.</param>
/// <param name="param">Auxiliary Effect Slot property to set.</param> /// <param name="param">Auxiliary Effect Slot property to set.</param>
/// <param name="value">Floating point value.</param> /// <param name="value">Floating point value.</param>
public void AuxiliaryEffectSlot(int asid, EfxAuxiliaryf param, float value) public void AuxiliaryEffectSlot(int asid, EfxAuxiliaryf param, float value)
{ {
Imported_alAuxiliaryEffectSlotf((uint)asid, param, value); Imported_alAuxiliaryEffectSlotf((uint)asid, param, value);
@ -1143,7 +1143,7 @@ namespace OpenTK.Audio
/// <param name="asid">Auxiliary Effect Slot object identifier.</param> /// <param name="asid">Auxiliary Effect Slot object identifier.</param>
/// <param name="pname">Auxiliary Effect Slot property to retrieve.</param> /// <param name="pname">Auxiliary Effect Slot property to retrieve.</param>
/// <param name="value">Address where integer value will be stored.</param> /// <param name="value">Address where integer value will be stored.</param>
public void GetAuxiliaryEffectSlot(int asid, EfxAuxiliaryi pname, out int value) public void GetAuxiliaryEffectSlot(int asid, EfxAuxiliaryi pname, out int value)
{ {
GetAuxiliaryEffectSlot((uint)asid, pname, out value); GetAuxiliaryEffectSlot((uint)asid, pname, out value);
@ -1180,7 +1180,7 @@ namespace OpenTK.Audio
/// <param name="asid">Auxiliary Effect Slot object identifier.</param> /// <param name="asid">Auxiliary Effect Slot object identifier.</param>
/// <param name="pname">Auxiliary Effect Slot property to retrieve.</param> /// <param name="pname">Auxiliary Effect Slot property to retrieve.</param>
/// <param name="value">Address where floating point value will be stored.</param> /// <param name="value">Address where floating point value will be stored.</param>
public void GetAuxiliaryEffectSlot(int asid, EfxAuxiliaryf pname, out float value) public void GetAuxiliaryEffectSlot(int asid, EfxAuxiliaryf pname, out float value)
{ {
GetAuxiliaryEffectSlot((uint)asid, pname, out value); GetAuxiliaryEffectSlot((uint)asid, pname, out value);
@ -1282,4 +1282,4 @@ namespace OpenTK.Audio
#endregion Constructor / Extension Loading #endregion Constructor / Extension Loading
} }
} }

View file

@ -15,7 +15,7 @@ namespace OpenTK.Audio
{ {
///<summary>The X-Ram Extension is provided on the top-end Sound Blaster X-Fi solutions (Sound Blaster X-Fi Fatal1ty, Sound Blaster X-Fi Elite Pro, or later). These products feature 64MB of X-Ram that can only be used for audio purposes, which can be controlled by this Extension.</summary> ///<summary>The X-Ram Extension is provided on the top-end Sound Blaster X-Fi solutions (Sound Blaster X-Fi Fatal1ty, Sound Blaster X-Fi Elite Pro, or later). These products feature 64MB of X-Ram that can only be used for audio purposes, which can be controlled by this Extension.</summary>
[CLSCompliant( true )] [CLSCompliant(true)]
public sealed class XRamExtension public sealed class XRamExtension
{ {
#region Instance state #region Instance state
@ -33,11 +33,11 @@ namespace OpenTK.Audio
#region X-RAM Function pointer definitions #region X-RAM Function pointer definitions
// [CLSCompliant(false)] // [CLSCompliant(false)]
private delegate bool Delegate_SetBufferMode( int n, ref uint buffers, int value ); private delegate bool Delegate_SetBufferMode(int n, ref uint buffers, int value);
//typedef ALboolean (__cdecl *EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value); //typedef ALboolean (__cdecl *EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
// [CLSCompliant( false )] // [CLSCompliant( false )]
private delegate int Delegate_GetBufferMode( uint buffer, IntPtr value ); private delegate int Delegate_GetBufferMode(uint buffer, IntPtr value);
//typedef ALenum (__cdecl *EAXGetBufferMode)(ALuint buffer, ALint *value); //typedef ALenum (__cdecl *EAXGetBufferMode)(ALuint buffer, ALint *value);
//[CLSCompliant(false)] //[CLSCompliant(false)]
@ -56,27 +56,27 @@ namespace OpenTK.Audio
#region Constructor / Extension Loading #region Constructor / Extension Loading
public XRamExtension( ) public XRamExtension()
{ // Query if Extension supported and retrieve Tokens/Pointers if it is. { // Query if Extension supported and retrieve Tokens/Pointers if it is.
_valid = false; _valid = false;
if ( AL.IsExtensionPresent( "EAX-RAM" ) == false ) if (AL.IsExtensionPresent("EAX-RAM") == false)
return; return;
AL_EAX_RAM_SIZE = AL.GetEnumValue( "AL_EAX_RAM_SIZE" ); AL_EAX_RAM_SIZE = AL.GetEnumValue("AL_EAX_RAM_SIZE");
AL_EAX_RAM_FREE = AL.GetEnumValue( "AL_EAX_RAM_FREE" ); AL_EAX_RAM_FREE = AL.GetEnumValue("AL_EAX_RAM_FREE");
AL_STORAGE_AUTOMATIC = AL.GetEnumValue( "AL_STORAGE_AUTOMATIC" ); AL_STORAGE_AUTOMATIC = AL.GetEnumValue("AL_STORAGE_AUTOMATIC");
AL_STORAGE_HARDWARE = AL.GetEnumValue( "AL_STORAGE_HARDWARE" ); AL_STORAGE_HARDWARE = AL.GetEnumValue("AL_STORAGE_HARDWARE");
AL_STORAGE_ACCESSIBLE = AL.GetEnumValue( "AL_STORAGE_ACCESSIBLE" ); AL_STORAGE_ACCESSIBLE = AL.GetEnumValue("AL_STORAGE_ACCESSIBLE");
// Console.WriteLine("RamSize: {0} RamFree: {1} StorageAuto: {2} StorageHW: {3} StorageAccess: {4}",AL_EAX_RAM_SIZE,AL_EAX_RAM_FREE,AL_STORAGE_AUTOMATIC,AL_STORAGE_HARDWARE,AL_STORAGE_ACCESSIBLE); // Console.WriteLine("RamSize: {0} RamFree: {1} StorageAuto: {2} StorageHW: {3} StorageAccess: {4}",AL_EAX_RAM_SIZE,AL_EAX_RAM_FREE,AL_STORAGE_AUTOMATIC,AL_STORAGE_HARDWARE,AL_STORAGE_ACCESSIBLE);
if ( AL_EAX_RAM_SIZE == 0 || if (AL_EAX_RAM_SIZE == 0 ||
AL_EAX_RAM_FREE == 0 || AL_EAX_RAM_FREE == 0 ||
AL_STORAGE_AUTOMATIC == 0 || AL_STORAGE_AUTOMATIC == 0 ||
AL_STORAGE_HARDWARE == 0 || AL_STORAGE_HARDWARE == 0 ||
AL_STORAGE_ACCESSIBLE == 0 ) AL_STORAGE_ACCESSIBLE == 0)
{ {
Debug.WriteLine( "X-Ram: Token values could not be retrieved." ); Debug.WriteLine("X-Ram: Token values could not be retrieved.");
return; return;
} }
@ -84,11 +84,12 @@ namespace OpenTK.Audio
try try
{ {
Imported_GetBufferMode = (Delegate_GetBufferMode) Marshal.GetDelegateForFunctionPointer( AL.GetProcAddress( "EAXGetBufferMode" ), typeof( Delegate_GetBufferMode ) ); Imported_GetBufferMode = (Delegate_GetBufferMode)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXGetBufferMode"), typeof(Delegate_GetBufferMode));
Imported_SetBufferMode = (Delegate_SetBufferMode) Marshal.GetDelegateForFunctionPointer( AL.GetProcAddress( "EAXSetBufferMode" ), typeof( Delegate_SetBufferMode ) ); Imported_SetBufferMode = (Delegate_SetBufferMode)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXSetBufferMode"), typeof(Delegate_SetBufferMode));
} catch ( Exception e ) }
catch (Exception e)
{ {
Debug.WriteLine( "X-Ram: Attempt to marshal function pointers with AL.GetProcAddress failed. " + e.ToString( ) ); Debug.WriteLine("X-Ram: Attempt to marshal function pointers with AL.GetProcAddress failed. " + e.ToString());
return; return;
} }
@ -100,15 +101,15 @@ namespace OpenTK.Audio
#region Public Methods #region Public Methods
/// <summary>Query total amount of X-RAM in bytes.</summary> /// <summary>Query total amount of X-RAM in bytes.</summary>
public int GetRamSize( ) public int GetRamSize()
{ {
return AL.Get( (ALGetInteger) AL_EAX_RAM_SIZE ); return AL.Get((ALGetInteger)AL_EAX_RAM_SIZE);
} }
/// <summary>Query free X-RAM available in bytes.</summary> /// <summary>Query free X-RAM available in bytes.</summary>
public int GetRamFree( ) public int GetRamFree()
{ {
return AL.Get( (ALGetInteger) AL_EAX_RAM_FREE ); return AL.Get((ALGetInteger)AL_EAX_RAM_FREE);
} }
/// <summary>This enum is used to abstract the need of using AL.GetEnumValue() with the Extension. The values do NOT correspond to AL_STORAGE_* tokens!</summary> /// <summary>This enum is used to abstract the need of using AL.GetEnumValue() with the Extension. The values do NOT correspond to AL_STORAGE_* tokens!</summary>
@ -127,17 +128,17 @@ namespace OpenTK.Audio
/// <param name="buffer">An array of OpenAL Buffer handles.</param> /// <param name="buffer">An array of OpenAL Buffer handles.</param>
/// <param name="mode">The storage mode that should be used for all the given buffers. Should be the value of one of the following enum names: XRamStorage.Automatic, XRamStorage.Hardware, XRamStorage.Accessible</param> /// <param name="mode">The storage mode that should be used for all the given buffers. Should be the value of one of the following enum names: XRamStorage.Automatic, XRamStorage.Hardware, XRamStorage.Accessible</param>
/// <returns>True if all the Buffers were successfully set to the requested storage mode, False otherwise.</returns> /// <returns>True if all the Buffers were successfully set to the requested storage mode, False otherwise.</returns>
[CLSCompliant( false )] [CLSCompliant(false)]
public bool SetBufferMode( int n, ref uint buffer, XRamStorage mode ) public bool SetBufferMode(int n, ref uint buffer, XRamStorage mode)
{ {
switch ( mode ) switch (mode)
{ {
case XRamStorage.Accessible: case XRamStorage.Accessible:
return Imported_SetBufferMode( n, ref buffer, AL_STORAGE_ACCESSIBLE ); return Imported_SetBufferMode(n, ref buffer, AL_STORAGE_ACCESSIBLE);
case XRamStorage.Hardware: case XRamStorage.Hardware:
return Imported_SetBufferMode( n, ref buffer, AL_STORAGE_HARDWARE ); return Imported_SetBufferMode(n, ref buffer, AL_STORAGE_HARDWARE);
default: default:
return Imported_SetBufferMode( n, ref buffer, AL_STORAGE_AUTOMATIC ); return Imported_SetBufferMode(n, ref buffer, AL_STORAGE_AUTOMATIC);
} }
} }
@ -146,24 +147,24 @@ namespace OpenTK.Audio
/// <param name="buffer">An array of OpenAL Buffer handles.</param> /// <param name="buffer">An array of OpenAL Buffer handles.</param>
/// <param name="mode">The storage mode that should be used for all the given buffers. Should be the value of one of the following enum names: XRamStorage.Automatic, XRamStorage.Hardware, XRamStorage.Accessible</param> /// <param name="mode">The storage mode that should be used for all the given buffers. Should be the value of one of the following enum names: XRamStorage.Automatic, XRamStorage.Hardware, XRamStorage.Accessible</param>
/// <returns>True if all the Buffers were successfully set to the requested storage mode, False otherwise.</returns> /// <returns>True if all the Buffers were successfully set to the requested storage mode, False otherwise.</returns>
[CLSCompliant( true )] [CLSCompliant(true)]
public bool SetBufferMode( int n, ref int buffer, XRamStorage mode ) public bool SetBufferMode(int n, ref int buffer, XRamStorage mode)
{ {
uint temp = (uint) buffer; uint temp = (uint)buffer;
return SetBufferMode( n, ref temp, mode ); return SetBufferMode(n, ref temp, mode);
} }
/// <summary>This function is used to retrieve the storage Mode of a single OpenAL Buffer.</summary> /// <summary>This function is used to retrieve the storage Mode of a single OpenAL Buffer.</summary>
/// <param name="buffer">The handle of an OpenAL Buffer.</param> /// <param name="buffer">The handle of an OpenAL Buffer.</param>
/// <returns>The current Mode of the Buffer.</returns> /// <returns>The current Mode of the Buffer.</returns>
[CLSCompliant( false )] [CLSCompliant(false)]
public XRamStorage GetBufferMode( ref uint buffer ) public XRamStorage GetBufferMode(ref uint buffer)
{ {
int tempresult = Imported_GetBufferMode( buffer, IntPtr.Zero ); // IntPtr.Zero due to the parameter being unused/reserved atm int tempresult = Imported_GetBufferMode(buffer, IntPtr.Zero); // IntPtr.Zero due to the parameter being unused/reserved atm
if ( tempresult == AL_STORAGE_ACCESSIBLE ) if (tempresult == AL_STORAGE_ACCESSIBLE)
return XRamStorage.Accessible; return XRamStorage.Accessible;
if ( tempresult == AL_STORAGE_HARDWARE ) if (tempresult == AL_STORAGE_HARDWARE)
return XRamStorage.Hardware; return XRamStorage.Hardware;
// default: // default:
return XRamStorage.Automatic; return XRamStorage.Automatic;
@ -172,14 +173,15 @@ namespace OpenTK.Audio
/// <summary>This function is used to retrieve the storage Mode of a single OpenAL Buffer.</summary> /// <summary>This function is used to retrieve the storage Mode of a single OpenAL Buffer.</summary>
/// <param name="buffer">The handle of an OpenAL Buffer.</param> /// <param name="buffer">The handle of an OpenAL Buffer.</param>
/// <returns>The current Mode of the Buffer.</returns> /// <returns>The current Mode of the Buffer.</returns>
[CLSCompliant( true )] [CLSCompliant(true)]
public XRamStorage GetBufferMode( ref int buffer ) public XRamStorage GetBufferMode(ref int buffer)
{ {
uint temp = (uint) buffer; uint temp = (uint)buffer;
return GetBufferMode( ref temp ); return GetBufferMode(ref temp);
} }
#endregion Public Methods #endregion Public Methods
} }
} }