[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