예제 #1
0
 public override bool Equals(object obj)
 {
     AlHelper.ThrowNullException(Handle);
     if (obj is Device)
     {
         return(Equals((Device)obj));
     }
     return(false);
 }
예제 #2
0
 public void Read(IntPtr buffer, int samples)
 {
     AlHelper.ThrowNullException(Handle);
     unsafe
     {
         Alc.CaptureSamples(Handle, buffer.ToPointer(), samples);
         AlHelper.GetAlcError(Alc.GetError(Handle));
     }
 }
예제 #3
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public override bool Equals(object obj)
 {
     AlHelper.ThrowNullException(Id);
     if (obj is Source)
     {
         return(Equals((Source)obj));
     }
     return(false);
 }
예제 #4
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public void Delete()
 {
     AlHelper.ThrowNullException(Id);
     unsafe
     {
         uint id = Id;
         Al.DeleteSources(1, &id);
     }
 }
예제 #5
0
파일: Source.cs 프로젝트: bonomali/Ibasa
        public Buffer Unqueue()
        {
            AlHelper.ThrowNullException(Id);

            unsafe
            {
                uint bid;
                Al.SourceUnqueueBuffers(Id, 1, &bid);
                return(new OpenAL.Buffer(bid));
            }
        }
예제 #6
0
 public void Read(byte[] buffer, int samples)
 {
     AlHelper.ThrowNullException(Handle);
     unsafe
     {
         fixed(byte *pointer = buffer)
         {
             Alc.CaptureSamples(Handle, pointer, samples);
             AlHelper.GetAlcError(Alc.GetError(Handle));
         }
     }
 }
예제 #7
0
 public bool Close()
 {
     AlHelper.ThrowNullException(Handle);
     if (Alc.CloseDevice(Handle) != 0)
     {
         Handle = IntPtr.Zero;
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #8
0
파일: Source.cs 프로젝트: bonomali/Ibasa
        public void Queue(Buffer buffer)
        {
            AlHelper.ThrowNullException(Id);
            if (buffer == Buffer.Null)
            {
                throw new ArgumentNullException("buffer");
            }

            unsafe
            {
                uint bid = buffer.Id;
                Al.SourceQueueBuffers(Id, 1, &bid);
            }
        }
예제 #9
0
        public void BufferData(Format format, IntPtr data, int size, int frequency)
        {
            AlHelper.ThrowNullException(Id);
            if (data == IntPtr.Zero)
            {
                throw new ArgumentNullException("data");
            }

            unsafe
            {
                uint id = Id;
                Al.BufferData(Id, (int)format, data.ToPointer(), size, frequency);
            }
        }
예제 #10
0
        public void BufferData(Format format, byte[] data, int size, int frequency)
        {
            AlHelper.ThrowNullException(Id);
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }

            unsafe
            {
                fixed(byte *pointer = data)
                {
                    uint id = Id;

                    Al.BufferData(Id, (int)format, pointer, size, frequency);
                }
            }
        }
예제 #11
0
파일: Source.cs 프로젝트: bonomali/Ibasa
        public void Queue(Buffer[] buffers)
        {
            AlHelper.ThrowNullException(Id);
            if (buffers == null)
            {
                throw new ArgumentNullException("buffers");
            }

            unsafe
            {
                uint *bids = stackalloc uint[buffers.Length];
                for (int i = 0; i < buffers.Length; ++i)
                {
                    bids[i] = buffers[i].Id;
                }
                Al.SourceQueueBuffers(Id, buffers.Length, bids);
            }
        }
예제 #12
0
파일: Source.cs 프로젝트: bonomali/Ibasa
        public                        Buffer[] Unqueue(int count)
        {
            AlHelper.ThrowNullException(Id);
            if (count <= 0)
            {
                throw new ArgumentException("count is less than or equal to 0.", "count");
            }

            unsafe
            {
                uint *bids = stackalloc uint[count];
                Al.SourceUnqueueBuffers(Id, count, bids);

                Buffer[] buffers = new Buffer[count];
                for (int i = 0; i < count; ++i)
                {
                    buffers[i] = new Buffer(bids[i]);
                }
                return(buffers);
            }
        }
예제 #13
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public bool Equals(Source other)
 {
     AlHelper.ThrowNullException(Id);
     return(Id == other.Id);
 }
예제 #14
0
 public void Destroy()
 {
     AlHelper.ThrowNullException(Handle);
     Alc.DestroyContext(Handle);
 }
예제 #15
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public override int GetHashCode()
 {
     AlHelper.ThrowNullException(Id);
     return(Id.GetHashCode());
 }
예제 #16
0
 public void Stop()
 {
     AlHelper.ThrowNullException(Handle);
     Alc.CaptureStop(Handle);
     AlHelper.GetAlcError(Alc.GetError(Handle));
 }
예제 #17
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public void Stop()
 {
     AlHelper.ThrowNullException(Id);
     Al.SourceStop(Id);
 }
예제 #18
0
 public bool Equals(Device other)
 {
     AlHelper.ThrowNullException(Handle);
     return(Handle == other.Handle);
 }
예제 #19
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public void Rewind()
 {
     AlHelper.ThrowNullException(Id);
     Al.SourceRewind(Id);
 }
예제 #20
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public void Play()
 {
     AlHelper.ThrowNullException(Id);
     Al.SourcePlay(Id);
 }
예제 #21
0
 public void Suspend()
 {
     AlHelper.ThrowNullException(Handle);
     Alc.SuspendContext(Handle);
 }
예제 #22
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public override string ToString()
 {
     AlHelper.ThrowNullException(Id);
     return(string.Format("Source: {0}", Id.ToString()));
 }
예제 #23
0
 public override string ToString()
 {
     AlHelper.ThrowNullException(Handle);
     return(string.Format("Device: {0}", Handle.ToString()));
 }
예제 #24
0
파일: Source.cs 프로젝트: bonomali/Ibasa
 public void Pause()
 {
     AlHelper.ThrowNullException(Id);
     Al.SourcePause(Id);
 }
예제 #25
0
 public void Process()
 {
     AlHelper.ThrowNullException(Handle);
     Alc.ProcessContext(Handle);
 }