Exemplo n.º 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 (readSamples == BufferSize)
            {
                Logger.Log(LogEvent.NewPacket, stream);
            }
            else
            {
                Logger.Log(LogEvent.LastPacket, stream);
            }
            Logger.Log(LogEventSingle.MemoryUsage, () => GC.GetTotalMemory(false));

            return(readSamples != BufferSize);
        }
Exemplo n.º 2
0
 internal bool RemoveStream(OggStream stream)
 {
     lock (iterationMutex)
         return(streams.Remove(stream));
 }
Exemplo n.º 3
0
 internal bool AddStream(OggStream stream)
 {
     lock (iterationMutex)
         return(streams.Add(stream));
 }
Exemplo n.º 4
0
 public abstract void Log(LogEvent eventType, OggStream stream);
Exemplo n.º 5
0
 public void Log(LogEvent eventType, OggStream stream)
 {
 }
Exemplo n.º 6
0
 internal MusicStream(OggStream stream)
 {
     Stream = stream;
 }