#include <time.h>
#ifdef __GNUC__
-#ifndef __clang__
- #pragma GCC push_options
- #pragma GCC optimize ("O3")
-#endif
+ #ifndef __clang__
+ #pragma GCC push_options
+ #pragma GCC optimize ("O3")
+ #endif
#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic pop
#ifdef __GNUC__
-#ifndef __clang__
- #pragma GCC pop_options
-#endif
+ #ifndef __clang__
+ #pragma GCC pop_options
+ #endif
#endif
#define SFX_MAX_SYSTEMS 32
audio_unlock();
}
-VG_STATIC void audio_clip_load( audio_clip *clip )
+VG_STATIC void audio_clip_load( audio_clip *clip, void *lin_alloc )
{
+ if( lin_alloc == NULL )
+ lin_alloc = vg_audio.audio_pool;
+
if( clip->source_mode == k_audio_source_mono )
{
vg_linear_clear( vg_mem.scratch );
data_size = length_samples * sizeof(i16);
audio_lock();
- clip->data = vg_linear_alloc( vg_audio.audio_pool, data_size );
+ clip->data = vg_linear_alloc( lin_alloc, data_size );
clip->size = length_samples;
audio_unlock();
else if( clip->source_mode == k_audio_source_compressed )
{
audio_lock();
- clip->data = vg_file_read( vg_audio.audio_pool, clip->path, &clip->size );
+ clip->data = vg_file_read( lin_alloc, clip->path, &clip->size );
audio_unlock();
if( !clip->data )
}
}
-VG_STATIC void audio_clip_loadn( audio_clip *arr, int count )
+VG_STATIC void audio_clip_loadn( audio_clip *arr, int count, void *lin_alloc )
{
for( int i=0; i<count; i++ )
- audio_clip_load( &arr[i] );
+ audio_clip_load( &arr[i], lin_alloc );
}
/* Mark change to be uploaded through queue system */