summaryrefslogtreecommitdiff
path: root/orkaudio/audiofile/LibSndFileFile.cpp
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2005-12-06 17:27:50 +0000
committerHenri Herscher <henri@oreka.org>2005-12-06 17:27:50 +0000
commit57834e7e773ec0719b01ada6552674caa81adc61 (patch)
tree28a99e0122bb08dbdadd305ee182d0d7cb5b4fe2 /orkaudio/audiofile/LibSndFileFile.cpp
parentdf29199359505bcd1dfe84d4b06224ebcf4f3b8d (diff)
Sample rate can now be different than 8KHz
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@94 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio/audiofile/LibSndFileFile.cpp')
-rw-r--r--orkaudio/audiofile/LibSndFileFile.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/orkaudio/audiofile/LibSndFileFile.cpp b/orkaudio/audiofile/LibSndFileFile.cpp
index cc5bf82..fbbf3cb 100644
--- a/orkaudio/audiofile/LibSndFileFile.cpp
+++ b/orkaudio/audiofile/LibSndFileFile.cpp
@@ -27,6 +27,7 @@ LibSndFileFile::LibSndFileFile(int fileFormat)
m_pFile = NULL;
m_numChunksWritten = 0;
m_mode = READ;
+ m_sampleRate = 0;
}
LibSndFileFile::~LibSndFileFile()
@@ -42,7 +43,11 @@ void LibSndFileFile::Open(CStdString& filename, fileOpenModeEnum mode, bool ster
}
m_mode = mode;
stereo ? m_fileInfo.channels = 2 : m_fileInfo.channels = 1;
- m_fileInfo.samplerate = sampleRate;
+ if(m_sampleRate == 0)
+ {
+ m_sampleRate = sampleRate;
+ m_fileInfo.samplerate = sampleRate;
+ }
if( (mode==WRITE) && !sf_format_check(&m_fileInfo))
{
@@ -98,7 +103,7 @@ int LibSndFileFile::ReadChunkMono(AudioChunkRef& chunk)
chunk.reset(new AudioChunk());
short temp[8000];
numRead = sf_read_short(m_pFile, temp, 8000);
- chunk->SetBuffer(temp, sizeof(short)*numRead, AudioChunk::PcmAudio);
+ chunk->SetBuffer(temp, sizeof(short)*numRead, AudioChunk::PcmAudio, 0, 0, m_sampleRate);
}
else
{