Пример #1
0
        /// <summary>
        /// Fill a buffer with audio data in IEEE floating-point format.
        /// </summary>
        /// <param name="name">Name of the buffer.</param>
        /// <param name="channels">Indicates if the data is mono or stereo.</param>
        /// <param name="data">Floating-point data.</param>
        /// <param name="count">Number of samples to buffer.</param>
        /// <param name="freq">Playback frequency in samples per second.</param>
        public static void BufferData(uint name, Channels channels, float[] data, int count, int freq)
        {
            var format = channels == Channels.Mono ? AlBufferFormat.MonoFloat32 : AlBufferFormat.StereoFloat32;

            AL10.alBufferData(name, (int)format, data, count * 4, freq);
            AlHelper.AlAlwaysCheckError("alBufferData call failed.");
        }
Пример #2
0
        /// <summary>
        /// Create an <see cref="AlStaticSource"/> for this context.
        /// </summary>
        public AlStaticSource CreateStaticSource()
        {
            ALC10.alcMakeContextCurrent(Handle);
            AL10.alGenSources(1, out var name);
            AlHelper.AlAlwaysCheckError("Call to alGenSources failed.");
            var source = new AlStaticSource(name, this);

            _sources.Add(source);
            return(source);
        }
Пример #3
0
 /// <summary>
 /// Create a number of OpenAL buffers for this device.
 /// </summary>
 /// <param name="buffers">Array to fill with buffer names.</param>
 /// <param name="n">Number of buffers to generate.</param>
 public void CreateBuffers(uint[] buffers, int n)
 {
     CheckDisposed();
     ALC10.alcMakeContextCurrent(MainContext.Handle);
     AL10.alGenBuffers(n, buffers);
     AlHelper.AlAlwaysCheckError("Failed to generate buffers.");
     for (var i = 0; i < n; i++)
     {
         _buffers.Add(buffers[i]);
     }
 }
Пример #4
0
 /// <summary>
 /// Fill a buffer with data.
 /// </summary>
 /// <param name="name">Name of the buffer.</param>
 /// <param name="format">Format of data in the buffer.</param>
 /// <param name="data">Data as a byte array.</param>
 /// <param name="freq">Playback frequency in samples per second.</param>
 public static void BufferData(uint name, AlBufferFormat format, byte[] data, int freq)
 {
     AL10.alBufferData(name, (int)format, data, data.Length, freq);
     AlHelper.AlAlwaysCheckError("alBufferData call failed.");
 }