@ -1038,29 +1038,30 @@ bool ExportWaveAsCode(Wave wave, const char *fileName)
byteCount + = sprintf ( txtData + byteCount , " // // \n " ) ;
byteCount + = sprintf ( txtData + byteCount , " ////////////////////////////////////////////////////////////////////////////////// \n \n " ) ;
kt">char fileNameLower [ 256 ] = { 0 } ;
char fileNameUpper [ 256 ] = { 0 } ;
k">for ( int i = 0 ; fileName [ i ] ! = ' . ' ; i + + ) { fileNameLower [ i ] = fileName [ i ] ; } / / Get filename without extension
for ( int i = 0 ; fileNameLower [ i ] ! = ' \0 ' ; i + + ) if ( fileNameLower [ i ] > = ' a ' & & fileNameLower [ i ] < = ' z ' ) { fileNameUpper [ i ] = fileNameLower [ i ] - 32 ; }
o">/ / Get file name from path and convert variable name to uppercase
char varFileName [ 256 ] = { 0 } ;
n">strcpy ( varFileName , GetFileNameWithoutExt ( fileName ) ) ;
for ( int i = 0 ; varFileName [ i ] ! = ' \0 ' ; i + + ) if ( varFileName [ i ] > = ' a ' & & varFileName [ i ] < = ' z ' ) { varFileName [ i ] = varFileName [ i ] - 32 ; }
/ / Add wave information
byteCount + = sprintf ( txtData + byteCount , " // Wave data information \n " ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_FRAME_COUNT %u \n " , fileNameUpper , wave . frameCount ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_SAMPLE_RATE %u \n " , fileNameUpper , wave . sampleRate ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_SAMPLE_SIZE %u \n " , fileNameUpper , wave . sampleSize ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_CHANNELS %u \n \n " , fileNameUpper , wave . channels ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_FRAME_COUNT %u \n " , varFileName , wave . frameCount ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_SAMPLE_RATE %u \n " , varFileName , wave . sampleRate ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_SAMPLE_SIZE %u \n " , varFileName , wave . sampleSize ) ;
byteCount + = sprintf ( txtData + byteCount , " #define %s_CHANNELS %u \n \n " , varFileName , wave . channels ) ;
/ / Write wave data as an array of values
/ / Wave data is exported as byte array for 8 / 16 bit and float array for 32 bit float data
/ / NOTE : Frame data exported is channel - interlaced : frame01 [ sampleChannel1 , sampleChannel2 , . . . ] , frame02 [ ] , frame03 [ ]
if ( wave . sampleSize = = 32 )
{
byteCount + = sprintf ( txtData + byteCount , " static float %sData [%i] = { \n " , fileNameLower , waveDataSize / 4 ) ;
byteCount + = sprintf ( txtData + byteCount , " static float %s_DATA [%i] = { \n " , varFileName , waveDataSize / 4 ) ;
for ( int i = 1 ; i < waveDataSize / 4 ; i + + ) byteCount + = sprintf ( txtData + byteCount , ( ( i % TEXT_BYTES_PER_LINE = = 0 ) ? " %.4ff, \n " : " %.4ff, " ) , ( ( float * ) wave . data ) [ i - 1 ] ) ;
byteCount + = sprintf ( txtData + byteCount , " %.4ff }; \n " , ( ( float * ) wave . data ) [ waveDataSize / 4 - 1 ] ) ;
}
else
{
byteCount + = sprintf ( txtData + byteCount , " static unsigned char %sData[%i] = { " , fileNameLower , waveDataSize ) ;
byteCount + = sprintf ( txtData + byteCount , " static unsigned char %s_DATA[%i] = { " , varFileName , waveDataSize ) ;
for ( int i = 1 ; i < waveDataSize ; i + + ) byteCount + = sprintf ( txtData + byteCount , ( ( i % TEXT_BYTES_PER_LINE = = 0 ) ? " 0x%x, \n " : " 0x%x, " ) , ( ( unsigned char * ) wave . data ) [ i - 1 ] ) ;
byteCount + = sprintf ( txtData + byteCount , " 0x%x }; \n " , ( ( unsigned char * ) wave . data ) [ waveDataSize - 1 ] ) ;
}