74 lines
No EOL
1.5 KiB
C++
74 lines
No EOL
1.5 KiB
C++
#ifndef RAKI_ADADPCMDataProvider_WII_H
|
|
#define RAKI_ADADPCMDataProvider_WII_H
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "RakiEngine/Sounds/SoundStreamDataProvider.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace raki
|
|
{
|
|
|
|
class SeekableStream;
|
|
|
|
|
|
|
|
class ADPCMDataProvider
|
|
: public AdpcmSoundStreamDataProvider
|
|
{
|
|
public:
|
|
|
|
ADPCMDataProvider( SeekableStream * _stream, const void * _clientData, const u32 _nbChannels, const void * _dspadpcmL, const void * _dspadpcmR = NULL );
|
|
|
|
// SoundStreamDataProvider
|
|
virtual const u64 pullData( void * const _buffer, const u64 _sizeToRead );
|
|
virtual const u64 getRemainingByteSize() const;
|
|
virtual const u64 getEntireByteSize() const;
|
|
virtual const u64 getCurrentSamplePosition() const;
|
|
virtual const void * getClientData() const;
|
|
virtual void update( bool _launchNewReadRequests );
|
|
|
|
virtual u64 getByteBlockPosition( const u64 _startSamplePosition ) const;
|
|
|
|
// virtual SoundStreamDataProvider * getNextDataProvider();
|
|
void setNextStream( SeekableStream * _nextStream, void * _nextClientData );
|
|
|
|
|
|
// StreamUpdater
|
|
virtual void prefetchNextStream();
|
|
virtual void setNextStreamNow();
|
|
virtual const u64 getEntireSampleSize() const;
|
|
|
|
|
|
virtual const void * getDspadpcm( const u32 _channel ) const;
|
|
|
|
|
|
private:
|
|
|
|
SeekableStream * m_stream;
|
|
bool m_isFirstBuffer;
|
|
const void * m_dspadpcmL;
|
|
const void * m_dspadpcmR;
|
|
SeekableStream * m_nextStream;
|
|
const void * m_clientData;
|
|
const void * m_nextClientData;
|
|
u64 m_sampleSize;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace raki
|
|
|
|
|
|
#endif // RAKI_ADADPCMDataProvider_WII_H
|