3#ifndef RAGE_SOUND_READER_THREADED_BUFFER
4#define RAGE_SOUND_READER_THREADED_BUFFER
6#include "RageSoundReader_Filter.h"
7#include "RageUtil/Misc/RageThreads.h"
8#include "RageUtil/Utils/RageUtil_CircularBuffer.h"
23 int SetPosition(
int iFrame)
override;
24 int Read(
float* pBuffer,
int iLength)
override;
25 int GetNextSourceFrame()
const override;
27 int GetLength()
const override;
28 int GetLength_Fast()
const override;
29 int GetSampleRate()
const override {
return m_iSampleRate; }
30 unsigned GetNumChannels()
const override {
return m_iChannels; }
31 bool SetProperty(
const std::string& sProperty,
float fValue)
override;
32 float GetStreamToSourceRatio()
const override;
38 void EnableBuffering();
39 void EnableBuffering()
const
43 bool DisableBuffering();
44 bool DisableBuffering()
const
51 int FillFrames(
int iBytes);
53 int GetFilledFrames()
const;
54 int GetEmptyFrames()
const;
55 void WaitUntilFrames(
int iWaitUntilFrames);
64 int iFramesBuffered{ 0 };
65 int iPositionOfFirstFrame{ 0 };
69 std::list<Mapping> m_StreamPosition;
82 bool m_bShutdownThread;
83 static int StartBufferingThread(
void* p)
89 void BufferingThread();
Definition RageUtil_CircularBuffer.h:10
Definition RageThreads.h:309
Definition RageSoundReader_Filter.h:10
Definition RageSoundReader_ThreadedBuffer.h:13
Definition RageSoundReader.h:7
Thread, mutex, semaphore, and event classes.
Definition RageThreads.h:155