|
|
@@ -20,6 +20,8 @@ |
|
|
|
#include "Audio_File.H" |
|
|
|
#include "Audio_File_SF.H" |
|
|
|
|
|
|
|
map <string, Audio_File*> Audio_File::_open_files; |
|
|
|
|
|
|
|
/** attmpet to open any supported filetype */ |
|
|
|
Audio_File * |
|
|
|
Audio_File::from_file ( const char * filename ) |
|
|
@@ -27,6 +29,9 @@ Audio_File::from_file ( const char * filename ) |
|
|
|
|
|
|
|
Audio_File *a; |
|
|
|
|
|
|
|
if ( ( a = _open_files[ string( filename ) ] ) ) |
|
|
|
return a; |
|
|
|
|
|
|
|
if ( ( a = Audio_File_SF::from_file( filename ) ) ) |
|
|
|
goto done; |
|
|
|
|
|
|
@@ -36,6 +41,7 @@ Audio_File::from_file ( const char * filename ) |
|
|
|
|
|
|
|
done: |
|
|
|
|
|
|
|
|
|
|
|
a->_peaks = new Peaks[ a->channels() ]; |
|
|
|
|
|
|
|
for ( int i = a->channels(); i-- ; ) |
|
|
@@ -45,5 +51,7 @@ done: |
|
|
|
a->_peaks[i].open(); |
|
|
|
} |
|
|
|
|
|
|
|
_open_files[ string( filename ) ] = a; |
|
|
|
|
|
|
|
return a; |
|
|
|
} |