コード例 #1
0
        public void Pause()
        {
            if (IsDisposed)
            {
                throw new ObjectDisposedException(this.ToString());
            }

            SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Pause));
        }
コード例 #2
0
        public void Play()
        {
            if (IsDisposed)
            {
                throw new ObjectDisposedException(this.ToString());
            }

            instance.readyToReFire = false;
            SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Play));
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
 public void Dispose()
 {
     SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Dispose));
     instance = null;
 }
コード例 #5
0
 internal SoundEffectInstance(SoundEffect soundEffect, bool hardware)
 {
     instance = new InternalSoundEffectInstance(soundEffect, hardware);
     SoundEffectThread.Enqueue(new WorkItem(instance, WorkItem.Setup));
 }