[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11064] branches/soc-2007-hcube/intern/ tinySND/blender/SND_C-api.cpp: Added format load fallback sequence.

Csaba Hruska csaba.hruska at gmail.com
Tue Jun 26 13:59:25 CEST 2007


Revision: 11064
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11064
Author:   hcube
Date:     2007-06-26 13:59:25 +0200 (Tue, 26 Jun 2007)

Log Message:
-----------
Added format load fallback sequence.

Modified Paths:
--------------
    branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp

Modified: branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp	2007-06-26 11:58:40 UTC (rev 11063)
+++ branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp	2007-06-26 11:59:25 UTC (rev 11064)
@@ -6,10 +6,13 @@
 #include "SND_FXSample.h"
 #include "SND_FXMixer.h"
 #include "SND_FXSRC.h"
+#include "SND_WavProvider.h"
+#include "SND_AiffProvider.h"
 
 #include "SDLDevice.h"
 #include "portaudioDevice.h"
 #include "sndfileProvider.h"
+#include "ffmpegProvider.h"
 
 #ifdef WIN32
 #pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning
@@ -72,12 +75,39 @@
 	// we'll try all DataProvider we have ill one can open the file, if any then return 0
 	// if load succed we attach the FXSample to a FXMixer and return with new FXSample handle
 	SND_DataProvider *dataProvider;
-    
-	// sndfileProvider
-	dataProvider = new sndfileProvider( filename );
+
+	///////////////////////////////////////////////////////////////////
+	// data provider fallback: Wav -> Aiff -> ffmpeg -> sndfile
+	///////////////////////////////////////////////////////////////////
+	
+	// try Wav
+	dataProvider = new SND_WavProvider( filename );
 	if( !dataProvider->isFormatSupported() )
 	{
 		delete dataProvider;
+
+		// try Aiff
+		dataProvider = new SND_AiffProvider( filename );
+	}
+	if( !dataProvider->isFormatSupported() )
+	{
+		delete dataProvider;
+
+		// try ffmpeg
+		dataProvider = new ffmpegProvider( filename );
+	}
+	if( !dataProvider->isFormatSupported() )
+	{
+		delete dataProvider;
+
+		// try sndfile
+		dataProvider = new sndfileProvider( filename );
+	}
+	
+	// no lib can open this file
+	if( !dataProvider->isFormatSupported() )
+	{
+		delete dataProvider;
 		return (SND_SoundIHandle)0;
 	}
 





More information about the Bf-blender-cvs mailing list