示例#1
0
        public bool FillBuffer(OggStream stream, int bufferId)
        {
            int readSamples;

            lock (readMutex)
            {
                readSamples = stream.Reader.ReadSamples(readSampleBuffer, 0, BufferSize);
                CastBuffer(readSampleBuffer, castBuffer, readSamples);
            }
            AL.BufferData(bufferId, stream.Reader.Channels == 1 ? ALFormat.Mono16 : ALFormat.Stereo16, castBuffer,
                          readSamples * sizeof(short), stream.Reader.SampleRate);
            ALHelper.Check();
#if TRACE
            stream.LogHandler(readSamples == BufferSize ? "." : "|", stream.logX++, stream.logY);
            ALHelper.TraceMemoryUsage(stream.LogHandler);
#endif

            return(readSamples != BufferSize);
        }
示例#2
0
文件: OggStream.cs 项目: mokujin/DN
 internal bool RemoveStream(OggStream stream)
 {
     lock (iterationMutex)
         return streams.Remove(stream);
 }
示例#3
0
文件: OggStream.cs 项目: mokujin/DN
 internal bool AddStream(OggStream stream)
 {
     lock (iterationMutex)
         return streams.Add(stream);
 }
示例#4
0
文件: OggStream.cs 项目: mokujin/DN
        public bool FillBuffer(OggStream stream, int bufferId)
        {
            int readSamples;
            lock (readMutex)
            {
                readSamples = stream.Reader.ReadSamples(readSampleBuffer, 0, BufferSize);
                CastBuffer(readSampleBuffer, castBuffer, readSamples);
            }
            AL.BufferData(bufferId, stream.Reader.Channels == 1 ? ALFormat.Mono16 : ALFormat.Stereo16, castBuffer,
                          readSamples * sizeof (short), stream.Reader.SampleRate);
            ALHelper.Check();
            #if TRACE
            stream.LogHandler(readSamples == BufferSize ? "." : "|", stream.logX++, stream.logY);
            ALHelper.TraceMemoryUsage(stream.LogHandler);
            #endif

            return readSamples != BufferSize;
        }
示例#5
0
 internal bool RemoveStream(OggStream stream)
 {
     lock (iterationMutex)
         return(streams.Remove(stream));
 }
示例#6
0
 internal bool AddStream(OggStream stream)
 {
     lock (iterationMutex)
         return(streams.Add(stream));
 }