diff --git a/Source/OpenTK/OpenAL/AudioContext.cs b/Source/OpenTK/OpenAL/AudioContext.cs
index 70b1d0fe..80fde68b 100644
--- a/Source/OpenTK/OpenAL/AudioContext.cs
+++ b/Source/OpenTK/OpenAL/AudioContext.cs
@@ -23,6 +23,7 @@ namespace OpenTK.Audio
#region --- Fields ---
bool disposed;
+ bool is_processing;
ContextHandle device_handle, context_handle;
string device_name;
static object audio_context_lock = new object();
@@ -249,6 +250,10 @@ namespace OpenTK.Audio
MakeCurrent();
+ AlcError err = Alc.GetError(device_handle);
+ if (err != AlcError.NoError)
+ throw new AudioContextException(err.ToString());
+
//device_name = Alc.GetString(device_handle, AlcGetString.DeviceSpecifier);
//Debug.Print(device_name);
lock (audio_context_lock)
@@ -355,6 +360,22 @@ namespace OpenTK.Audio
#endregion
+ #region public bool IsProcessing
+
+ ///
+ /// Gets a System.Boolean indicating whether the AudioContext is
+ /// currently processing audio events.
+ ///
+ ///
+ ///
+ public bool IsProcessing
+ {
+ get { return is_processing; }
+ private set { is_processing = value; }
+ }
+
+ #endregion
+
#region public void Process
///
@@ -379,6 +400,7 @@ namespace OpenTK.Audio
{
if (disposed) throw new ObjectDisposedException(this.ToString());
Alc.ProcessContext(this.context_handle);
+ IsProcessing = true;
}
#endregion
@@ -409,6 +431,7 @@ namespace OpenTK.Audio
{
if (disposed) throw new ObjectDisposedException(this.ToString());
Alc.SuspendContext(this.context_handle);
+ IsProcessing = false;
}
#endregion