123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- #ifndef __XA2_SOUNDSAMPLE_H__
- #define __XA2_SOUNDSAMPLE_H__
- class idSampleInfo;
- class idSoundSample_XAudio2 {
- public:
- idSoundSample_XAudio2();
-
- virtual void LoadResource();
- void SetName( const char * n ) { name = n; }
- const char * GetName() const { return name; }
- ID_TIME_T GetTimestamp() const { return timestamp; }
-
- void MakeDefault();
-
- void FreeData();
- int LengthInMsec() const { return SamplesToMsec( NumSamples(), SampleRate() ); }
- int SampleRate() const { return format.basic.samplesPerSec; }
- int NumSamples() const { return playLength; }
- int NumChannels() const { return format.basic.numChannels; }
- int BufferSize() const { return totalBufferSize; }
- bool IsCompressed() const { return ( format.basic.formatTag != idWaveFile::FORMAT_PCM ); }
- bool IsDefault() const { return timestamp == FILE_NOT_FOUND_TIMESTAMP; }
- bool IsLoaded() const { return loaded; }
- void SetNeverPurge() { neverPurge = true; }
- bool GetNeverPurge() const { return neverPurge; }
- void SetLevelLoadReferenced() { levelLoadReferenced = true; }
- void ResetLevelLoadReferenced() { levelLoadReferenced = false; }
- bool GetLevelLoadReferenced() const { return levelLoadReferenced; }
- int GetLastPlayedTime() const { return lastPlayedTime; }
- void SetLastPlayedTime( int t ) { lastPlayedTime = t; }
- float GetAmplitude( int timeMS ) const;
- protected:
- friend class idSoundHardware_XAudio2;
- friend class idSoundVoice_XAudio2;
- ~idSoundSample_XAudio2();
- bool LoadWav( const idStr & name );
- bool LoadAmplitude( const idStr & name );
- void WriteAllSamples( const idStr &sampleName );
- bool LoadGeneratedSample( const idStr &name );
- void WriteGeneratedSample( idFile *fileOut );
- struct sampleBuffer_t {
- void * buffer;
- int bufferSize;
- int numSamples;
- };
- idStr name;
- ID_TIME_T timestamp;
- bool loaded;
- bool neverPurge;
- bool levelLoadReferenced;
- bool usesMapHeap;
- uint32 lastPlayedTime;
- int totalBufferSize;
- idList<sampleBuffer_t, TAG_AUDIO> buffers;
- int playBegin;
- int playLength;
- idWaveFile::waveFmt_t format;
- idList<byte, TAG_AMPLITUDE> amplitude;
- };
- class idSoundSample : public idSoundSample_XAudio2 {
- public:
- };
- #endif
|