Exemple #1
0
        private unsafe void Load(byte[] data, ALFormat format, uint sampleRate, TimeSpan len)
        {
            AL.GenBuffers(1, out BufferHandle);

            lengthSeconds = (float)len.TotalSeconds;

            fixed(byte *dataPtr = &data[0])
            {
                IntPtr dataIntPtr = new IntPtr(dataPtr);

                AL.BufferData(BufferHandle, format, dataIntPtr, data.Length, (int)sampleRate);
            }

            AL.GenSources(1, out SourceHandle);
            AL.Source(SourceHandle, ALSourcei.Buffer, (int)BufferHandle);
            AL.Source(SourceHandle, ALSourceb.Looping, false);
        }
Exemple #2
0
        public static unsafe uint BufferFromWav(byte[] wave)
        {
            uint result;

            AL.GenBuffers(1, out result);

            byte[]   data;
            ALFormat format;
            uint     sampleRate;

            LoadWav(wave, out data, out format, out sampleRate);

            fixed(byte *dataPtr = &data[0])
            {
                IntPtr dataIntPtr = new IntPtr(dataPtr);

                AL.BufferData(result, format, dataIntPtr, data.Length, (int)sampleRate);
            }

            return(result);
        }
Exemple #3
0
        private unsafe static uint BufferFromOgg(VorbisReader vorbis)
        {
            uint result;

            AL.GenBuffers(1, out result);

            byte[]   data;
            ALFormat format;
            uint     sampleRate;
            TimeSpan len;

            LoadOgg(vorbis, out data, out format, out sampleRate, out len);

            fixed(byte *dataPtr = &data[0])
            {
                IntPtr dataIntPtr = new IntPtr(dataPtr);

                AL.BufferData(result, format, dataIntPtr, data.Length, (int)sampleRate);
            }

            return(result);
        }