public void Pause() { if (IsDisposed) { throw new ObjectDisposedException(this.ToString()); } SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Pause)); }
public void Play() { if (IsDisposed) { throw new ObjectDisposedException(this.ToString()); } instance.readyToReFire = false; SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Play)); }
void Restart() { Debug.WriteLine("InternalSoundEffectInstance.Restart()"); AudioQueueStatus status = queue.Start(); Debug.WriteLine("queue status == " + status.ToString()); if (status == (AudioQueueStatus)1752656245) // 'hwiu' - hardware in use { Debug.WriteLine("(hardware in use)"); SoundEffectThread.Enqueue(new SoundEffectInstance.WorkItem(this, DoRetryRestart)); } }
public void Dispose() { SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Dispose)); instance = null; }
internal SoundEffectInstance(SoundEffect soundEffect, bool hardware) { instance = new InternalSoundEffectInstance(soundEffect, hardware); SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Setup)); }