[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11672] branches/soc-2007-hcube/intern/ tinySND/sndfile: sndfileProvider is renamed to sndfileReader, it is more informative.

Csaba Hruska csaba.hruska at gmail.com
Sun Aug 19 12:26:17 CEST 2007


Revision: 11672
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11672
Author:   hcube
Date:     2007-08-19 12:26:16 +0200 (Sun, 19 Aug 2007)

Log Message:
-----------
sndfileProvider is renamed to sndfileReader, it is more informative. added sndfileWriter class's skeleton.

Added Paths:
-----------
    branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.cpp
    branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.h
    branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.cpp
    branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.h

Removed Paths:
-------------
    branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.cpp
    branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.h

Deleted: branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.cpp
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.cpp	2007-08-19 06:13:19 UTC (rev 11671)
+++ branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.cpp	2007-08-19 10:26:16 UTC (rev 11672)
@@ -1,69 +0,0 @@
-#include <assert.h>
-#include "sndfileProvider.h"
-
-sndfileProvider::sndfileProvider( char *filename )
-{
-    mSF_Info.format = 0;
-    mSndFile = sf_open( filename, SFM_READ, &mSF_Info );
-    mNumFrames = mSF_Info.frames;
-    mSampleRate = mSF_Info.samplerate;
-    
-	switch( mSF_Info.format & 0x0000ffff )
-	{
-	case SF_FORMAT_PCM_U8:
-	case SF_FORMAT_PCM_S8:
-	    mBitRate = 8;
-		break;
-	case SF_FORMAT_PCM_16:
-	case SF_FORMAT_FLOAT:
-	    mBitRate = 16;
-		break;
-	case SF_FORMAT_PCM_24:
-	    mBitRate = 24;
-		break;
-	case SF_FORMAT_PCM_32:
-	case SF_FORMAT_DOUBLE:
-	    mBitRate = 32;
-		break;
-	default:
-	    mBitRate = 8;
-		break;
-	}
-    
-    mNumChannels = mSF_Info.channels;
-    mIsSeekable = mSF_Info.seekable;
-    mDuration = ((float)mNumFrames)/((float)mSampleRate);
-}
-
-sndfileProvider::~sndfileProvider()
-{
-    if( mSndFile != 0 )
-    {
-        sf_close( mSndFile );
-    }
-}
-
-bool sndfileProvider::isFormatSupported(void)
-{
-    return mSndFile != 0;
-}
-
-void sndfileProvider::seek( int frameNum )
-{
-    assert( mSndFile != 0 );
-    
-    if( mIsSeekable )
-    {
-		sf_seek( mSndFile, frameNum, SEEK_SET );
-    }
-}
-
-int sndfileProvider::fillBuffer( float *buffer, int framesNum )   
-{
-    assert( mSndFile != 0 );
-    assert( buffer != 0 );
-
-    return sf_read_float( mSndFile, buffer, framesNum );
-}
-
-    

Deleted: branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.h
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.h	2007-08-19 06:13:19 UTC (rev 11671)
+++ branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileProvider.h	2007-08-19 10:26:16 UTC (rev 11672)
@@ -1,24 +0,0 @@
-#ifndef __SNDFILEPROVIDER_H__
-#define __SNDFILEPROVIDER_H__
-
-#include "SND_DataProvider.h"
-#include <sndfile.h>
-
-class sndfileProvider: public SND_DataProvider
-{
-public:
-    sndfileProvider( char *filename );
-    ~sndfileProvider();
-
-    bool isFormatSupported();
-    
-    void seek( int frameNum );
-    int fillBuffer( float *buffer, int framesNum );    
-    
-private:
-    SNDFILE	*mSndFile;
-    SF_INFO	mSF_Info;
-};
-
-#endif // __SNDFILEPROVIDER_H__
-

Added: branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.cpp
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.cpp	                        (rev 0)
+++ branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.cpp	2007-08-19 10:26:16 UTC (rev 11672)
@@ -0,0 +1,69 @@
+#include <assert.h>
+#include "sndfileReader.h"
+
+sndfileReader::sndfileReader( char *filename )
+{
+    mSF_Info.format = 0;
+    mSndFile = sf_open( filename, SFM_READ, &mSF_Info );
+    mNumFrames = mSF_Info.frames;
+    mSampleRate = mSF_Info.samplerate;
+    
+	switch( mSF_Info.format & 0x0000ffff )
+	{
+	case SF_FORMAT_PCM_U8:
+	case SF_FORMAT_PCM_S8:
+	    mBitRate = 8;
+		break;
+	case SF_FORMAT_PCM_16:
+	case SF_FORMAT_FLOAT:
+	    mBitRate = 16;
+		break;
+	case SF_FORMAT_PCM_24:
+	    mBitRate = 24;
+		break;
+	case SF_FORMAT_PCM_32:
+	case SF_FORMAT_DOUBLE:
+	    mBitRate = 32;
+		break;
+	default:
+	    mBitRate = 8;
+		break;
+	}
+    
+    mNumChannels = mSF_Info.channels;
+    mIsSeekable = mSF_Info.seekable;
+    mDuration = ((float)mNumFrames)/((float)mSampleRate);
+}
+
+sndfileReader::~sndfileReader()
+{
+    if( mSndFile != 0 )
+    {
+        sf_close( mSndFile );
+    }
+}
+
+bool sndfileReader::isFormatSupported(void)
+{
+    return mSndFile != 0;
+}
+
+void sndfileReader::seek( int frameNum )
+{
+    assert( mSndFile != 0 );
+    
+    if( mIsSeekable )
+    {
+		sf_seek( mSndFile, frameNum, SEEK_SET );
+    }
+}
+
+int sndfileReader::fillBuffer( float *buffer, int framesNum )   
+{
+    assert( mSndFile != 0 );
+    assert( buffer != 0 );
+
+    return sf_read_float( mSndFile, buffer, framesNum );
+}
+
+    

Added: branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.h
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.h	                        (rev 0)
+++ branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileReader.h	2007-08-19 10:26:16 UTC (rev 11672)
@@ -0,0 +1,24 @@
+#ifndef __SNDFILEREADER_H__
+#define __SNDFILEREADER_H__
+
+#include "SND_DataProvider.h"
+#include <sndfile.h>
+
+class sndfileReader: public SND_DataProvider
+{
+public:
+			sndfileReader( char *filename );
+			~sndfileReader();
+
+    bool	isFormatSupported();
+    
+    void	seek( int frameNum );
+    int		fillBuffer( float *buffer, int framesNum );    
+    
+private:
+    SNDFILE	*mSndFile;
+    SF_INFO	mSF_Info;
+};
+
+#endif // __SNDFILEREADER_H__
+

Added: branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.cpp
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.cpp	                        (rev 0)
+++ branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.cpp	2007-08-19 10:26:16 UTC (rev 11672)
@@ -0,0 +1,85 @@
+#include <assert.h>
+#include "sndfileWriter.h"
+
+sndfileWriter::sndfileWriter( char *filename )
+{
+	mInput = 0;
+	// clear callback
+	mCallback = 0;
+	mUserData1 = 0;
+	mUserData2 = 0;
+	
+	mBuffer = new float[ SND_MIX_BUFFER_FRAMES ];
+	mBufferSize = SND_MIX_BUFFER_FRAMES;
+}
+
+sndfileWriter::~sndfileWriter()
+{
+	delete mBuffer;
+}
+
+bool sndfileWriter::initialize()
+{
+	assert( mInput != 0 );
+
+	// !!!! NOT IMPLEMENTED YET !!!!
+	// sndlife can convert audio data, so we let it to do it, we use floats
+	return false;
+}
+
+bool sndfileWriter::finalize()
+{
+	// !!!! NOT IMPLEMENTED YET !!!!
+	return false;
+}
+
+float sndfileWriter::getSampleRate()
+{
+	return mSampleRate;
+}
+
+void sndfileWriter::setSampleRate( float sampleRate )
+{
+	mSampleRate = sampleRate;
+}
+	
+int sndfileWriter::getSampleFormat()
+{
+	return mSampleFormat;
+}
+
+void sndfileWriter::setSampleFormat( int sampleFormat )
+{
+	mSampleFormat = sampleFormat;
+}
+	
+int sndfileWriter::getNumChannels()
+{
+	return mNumChannels;
+}
+
+void sndfileWriter::setNumChannels( int channelsNum )
+{
+	mNumChannels = channelsNum;
+}
+
+void sndfileWriter::consumeData( int framesNum )
+{
+	assert( mInput != 0 );
+	assert( mBuffer != 0 );
+	
+	// resize buffer is necessary
+	if( mBufferSize < framesNum )
+	{
+		delete mBuffer;
+		mBufferSize = (framesNum / SND_MIX_BUFFER_FRAMES + 1) * SND_MIX_BUFFER_FRAMES;
+		mBuffer = new float[ mBufferSize ];
+	}
+		
+	mInput->fillBuffer( (char*)mBuffer, framesNum );
+	
+	int count = sf_write_float( mSndFile, mBuffer, framesNum * mNumChannels ) ;
+	
+	assert( count == framesNum * mNumChannels );
+}
+

Added: branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.h
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.h	                        (rev 0)
+++ branches/soc-2007-hcube/intern/tinySND/sndfile/sndfileWriter.h	2007-08-19 10:26:16 UTC (rev 11672)
@@ -0,0 +1,40 @@
+#ifndef __SNDFILEWRITER_H__
+#define __SNDFILEWRITER_H__
+
+#include "SND_DataConsumer.h"
+#include <sndfile.h>
+
+class sndfileWriter: public SND_DataConsumer
+{
+public:
+		    sndfileWriter( char *filename );
+		    ~sndfileWriter();
+
+	bool	initialize();
+	bool	finalize();
+
+	float	getSampleRate();
+	void	setSampleRate( float sampleRate );
+	
+	int		getSampleFormat();
+	void	setSampleFormat( int sampleFormat );
+	
+	int		getNumChannels();
+	void	setNumChannels( int channelsNum );
+    
+	void	consumeData( int framesNum );
+
+private:
+	float	*mBuffer;
+	int		mBufferSize;
+	
+	float	mSampleRate;
+	int		mNumChannels;
+	int		mSampleFormat;
+	
+    SNDFILE	*mSndFile;
+    SF_INFO	mSF_Info;
+};
+
+#endif // __SNDFILEWRITER_H__
+





More information about the Bf-blender-cvs mailing list