mirror of https://github.com/mackron/miniaudio.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
289 lines
14 KiB
Plaintext
289 lines
14 KiB
Plaintext
miniaudio_h := <../miniaudio.h>;
|
|
miniaudio_c := <../miniaudio.c>;
|
|
dr_wav_h :: <../../dr_libs/dr_wav.h>;
|
|
dr_flac_h :: <../../dr_libs/dr_flac.h>;
|
|
dr_mp3_h :: <../../dr_libs/dr_mp3.h>;
|
|
c89atomic_h :: <../../c89atomic/c89atomic.h>;
|
|
c89atomic_c :: <../../c89atomic/c89atomic.c>;
|
|
|
|
minify :: function(src:string) string
|
|
{
|
|
return @(src)
|
|
["/\*[^*]*\*+(?:[^/*][^*]*\*+)*/"] <= "" // Remove all block comments to keep things clean.
|
|
["(?m)^\s*\R"] <= "" // Remove all empty lines to compress it all down.
|
|
["[ \t]+(?=(?:\R|$))"] <= "" // Remove trailing whitespace.
|
|
;
|
|
}
|
|
|
|
|
|
// dr_wav
|
|
rename_wav_namespace :: function(src:string) string
|
|
{
|
|
return @(src)
|
|
["\bdrwav"] <= "ma_dr_wav"
|
|
["\bDRWAV"] <= "MA_DR_WAV"
|
|
["\bdr_wav"] <= "ma_dr_wav"
|
|
["\bDR_WAV"] <= "MA_DR_WAV"
|
|
["\bg_drwav"] <= "ma_dr_wav_g"
|
|
|
|
// Some common tokens will be namespaced as "ma_dr_wav" when we really want them to be "ma_".
|
|
["\bma_dr_wav_int"] <= "ma_int"
|
|
["\bma_dr_wav_uint"] <= "ma_uint"
|
|
["\bma_dr_wav_bool"] <= "ma_bool"
|
|
["\bma_dr_wav_uintptr"] <= "ma_uintptr"
|
|
["\bMA_DR_WAV_TRUE"] <= "MA_TRUE"
|
|
["\bMA_DR_WAV_FALSE"] <= "MA_FALSE"
|
|
["\bMA_DR_WAV_UINT64_MAX"] <= "MA_UINT64_MAX"
|
|
["\bMA_DR_WAV_32BIT"] <= "MA_32BIT"
|
|
["\bMA_DR_WAV_64BIT"] <= "MA_64BIT"
|
|
["\bMA_DR_WAV_ARM32"] <= "MA_ARM32"
|
|
["\bMA_DR_WAV_ARM64"] <= "MA_ARM64"
|
|
["\bMA_DR_WAV_X64"] <= "MA_X64"
|
|
["\bMA_DR_WAV_X86"] <= "MA_X86"
|
|
["\bMA_DR_WAV_ARM"] <= "MA_ARM"
|
|
["\bMA_DR_WAV_API"] <= "MA_API"
|
|
["\bMA_DR_WAV_PRIVATE"] <= "MA_PRIVATE"
|
|
["\bMA_DR_WAV_DLL"] <= "MA_DLL"
|
|
["\bMA_DR_WAV_DLL_IMPORT"] <= "MA_DLL_IMPORT"
|
|
["\bMA_DR_WAV_DLL_EXPORT"] <= "MA_DLL_EXPORT"
|
|
["\bMA_DR_WAV_DLL_PRIVATE"] <= "MA_DLL_PRIVATE"
|
|
["\bma_dr_wav_result"] <= "ma_result"
|
|
["\bma_dr_wav_allocation_callbacks"] <= "ma_allocation_callbacks"
|
|
["\bMA_DR_WAV_INLINE"] <= "MA_INLINE"
|
|
["\bMA_DR_WAV_SIZE_MAX"] <= "MA_SIZE_MAX"
|
|
["\bma_dr_wav_result_from_errno"] <= "ma_result_from_errno"
|
|
["\bma_dr_wav_fopen"] <= "ma_fopen"
|
|
["\bma_dr_wav_wfopen"] <= "ma_wfopen"
|
|
|
|
// Result codes.
|
|
["MA_DR_WAV_SUCCESS"] <= "MA_SUCCESS"
|
|
["MA_DR_WAV_INVALID_ARGS"] <= "MA_INVALID_ARGS"
|
|
["MA_DR_WAV_OUT_OF_MEMORY"] <= "MA_OUT_OF_MEMORY"
|
|
["MA_DR_WAV_INVALID_FILE"] <= "MA_INVALID_FILE"
|
|
["MA_DR_WAV_AT_END"] <= "MA_AT_END"
|
|
["MA_DR_WAV_BAD_SEEK"] <= "MA_BAD_SEEK"
|
|
;
|
|
}
|
|
|
|
convert_wav_h :: function(src:string) string
|
|
{
|
|
stripped := @(src);
|
|
stripped["/\* Sized Types \*/\R" : "\R/\* End Sized Types \*/" ] = "";
|
|
stripped["/\* Decorations \*/\R" : "\R/\* End Decorations \*/" ] = "";
|
|
stripped["/\* Result Codes \*/\R" : "\R/\* End Result Codes \*/" ] = "";
|
|
stripped["/\* Allocation Callbacks \*/\R" : "\R/\* End Allocation Callbacks \*/" ] = "";
|
|
|
|
return minify(rename_wav_namespace(stripped));
|
|
}
|
|
|
|
convert_wav_c :: function(src:string) string
|
|
{
|
|
stripped := @(src);
|
|
stripped["/\* Architecture Detection \*/\R" : "\R/\* End Architecture Detection \*/"] = "";
|
|
stripped["/\* Inline \*/\R" : "\R/\* End Inline \*/" ] = "";
|
|
stripped["/\* SIZE_MAX \*/\R" : "\R/\* End SIZE_MAX \*/" ] = "";
|
|
stripped["/\* Errno \*/\R" : "\R/\* End Errno \*/" ] = "";
|
|
stripped["/\* fopen \*/\R" : "\R/\* End fopen \*/" ] = "";
|
|
|
|
return minify(rename_wav_namespace(stripped));
|
|
}
|
|
|
|
miniaudio_h("/\* dr_wav_h begin \*/\R":"\R/\* dr_wav_h end \*/") = convert_wav_h(@(dr_wav_h["#ifndef dr_wav_h\R":"\R#endif /\* dr_wav_h \*/"]));
|
|
miniaudio_h("/\* dr_wav_c begin \*/\R":"\R/\* dr_wav_c end \*/") = convert_wav_c(@(dr_wav_h["#ifndef dr_wav_c\R":"\R#endif /\* dr_wav_c \*/"]));
|
|
|
|
|
|
// dr_flac
|
|
rename_flac_namespace :: function(src:string) string
|
|
{
|
|
return @(src)
|
|
["\bdrflac"] <= "ma_dr_flac"
|
|
["\bDRFLAC"] <= "MA_DR_FLAC"
|
|
["\bdr_flac"] <= "ma_dr_flac"
|
|
["\bDR_FLAC"] <= "MA_DR_FLAC"
|
|
["\bg_drflac"] <= "ma_dr_flac_g"
|
|
|
|
// Some common tokens will be namespaced as "ma_dr_flac" when we really want them to be "ma_".
|
|
["\bma_dr_flac_int"] <= "ma_int"
|
|
["\bma_dr_flac_uint"] <= "ma_uint"
|
|
["\bma_dr_flac_bool"] <= "ma_bool"
|
|
["\bma_dr_flac_uintptr"] <= "ma_uintptr"
|
|
["\bMA_DR_FLAC_TRUE"] <= "MA_TRUE"
|
|
["\bMA_DR_FLAC_FALSE"] <= "MA_FALSE"
|
|
["\bMA_DR_FLAC_UINT64_MAX"] <= "MA_UINT64_MAX"
|
|
["\bMA_DR_FLAC_32BIT"] <= "MA_32BIT"
|
|
["\bMA_DR_FLAC_64BIT"] <= "MA_64BIT"
|
|
["\bMA_DR_FLAC_ARM32"] <= "MA_ARM32"
|
|
["\bMA_DR_FLAC_ARM64"] <= "MA_ARM64"
|
|
["\bMA_DR_FLAC_X64"] <= "MA_X64"
|
|
["\bMA_DR_FLAC_X86"] <= "MA_X86"
|
|
["\bMA_DR_FLAC_ARM"] <= "MA_ARM"
|
|
["\bMA_DR_FLAC_API"] <= "MA_API"
|
|
["\bMA_DR_FLAC_PRIVATE"] <= "MA_PRIVATE"
|
|
["\bMA_DR_FLAC_DLL"] <= "MA_DLL"
|
|
["\bMA_DR_FLAC_DLL_IMPORT"] <= "MA_DLL_IMPORT"
|
|
["\bMA_DR_FLAC_DLL_EXPORT"] <= "MA_DLL_EXPORT"
|
|
["\bMA_DR_FLAC_DLL_PRIVATE"] <= "MA_DLL_PRIVATE"
|
|
["\bma_dr_flac_result"] <= "ma_result"
|
|
["\bma_dr_flac_allocation_callbacks"] <= "ma_allocation_callbacks"
|
|
["\bMA_DR_FLAC_INLINE"] <= "MA_INLINE"
|
|
["\bMA_DR_FLAC_SIZE_MAX"] <= "MA_SIZE_MAX"
|
|
["\bma_dr_flac_result_from_errno"] <= "ma_result_from_errno"
|
|
["\bma_dr_flac_fopen"] <= "ma_fopen"
|
|
["\bma_dr_flac_wfopen"] <= "ma_wfopen"
|
|
|
|
// Result codes.
|
|
["MA_DR_FLAC_SUCCESS"] <= "MA_SUCCESS"
|
|
["MA_DR_FLAC_ERROR"] <= "MA_ERROR"
|
|
["MA_DR_FLAC_AT_END"] <= "MA_AT_END"
|
|
["MA_DR_FLAC_CRC_MISMATCH"] <= "MA_CRC_MISMATCH"
|
|
;
|
|
}
|
|
|
|
convert_flac_h :: function(src:string) string
|
|
{
|
|
stripped := @(src);
|
|
stripped["/\* Sized Types \*/\R" : "\R/\* End Sized Types \*/" ] = "";
|
|
stripped["/\* Architecture Detection \*/\R" : "\R/\* End Architecture Detection \*/"] = "";
|
|
stripped["/\* Decorations \*/\R" : "\R/\* End Decorations \*/" ] = "";
|
|
stripped["/\* Allocation Callbacks \*/\R" : "\R/\* End Allocation Callbacks \*/" ] = "";
|
|
|
|
return minify(rename_flac_namespace(stripped));
|
|
}
|
|
|
|
convert_flac_c :: function(src:string) string
|
|
{
|
|
stripped := @(src);
|
|
stripped["/\* Result Codes \*/\R" : "\R/\* End Result Codes \*/" ] = "";
|
|
stripped["/\* Inline \*/\R" : "\R/\* End Inline \*/" ] = "";
|
|
stripped["/\* SIZE_MAX \*/\R" : "\R/\* End SIZE_MAX \*/" ] = "";
|
|
stripped["/\* Errno \*/\R" : "\R/\* End Errno \*/" ] = "";
|
|
stripped["/\* fopen \*/\R" : "\R/\* End fopen \*/" ] = "";
|
|
|
|
return minify(rename_flac_namespace(stripped));
|
|
}
|
|
|
|
miniaudio_h("/\* dr_flac_h begin \*/\R":"\R/\* dr_flac_h end \*/") = convert_flac_h(@(dr_flac_h["#ifndef dr_flac_h\R":"\R#endif /\* dr_flac_h \*/"]));
|
|
miniaudio_h("/\* dr_flac_c begin \*/\R":"\R/\* dr_flac_c end \*/") = convert_flac_c(@(dr_flac_h["#ifndef dr_flac_c\R":"\R#endif /\* dr_flac_c \*/"]));
|
|
|
|
|
|
|
|
// dr_mp3
|
|
rename_mp3_namespace :: function(src:string) string
|
|
{
|
|
return @(src)
|
|
["\bdrmp3"] <= "ma_dr_mp3"
|
|
["\bDRMP3"] <= "MA_DR_MP3"
|
|
["\bdr_mp3"] <= "ma_dr_mp3"
|
|
["\bDR_MP3"] <= "MA_DR_MP3"
|
|
["\bg_drmp3"] <= "ma_dr_mp3_g"
|
|
|
|
// Some common tokens will be namespaced as "ma_dr_mp3" when we really want them to be "ma_".
|
|
["\bma_dr_mp3_int"] <= "ma_int"
|
|
["\bma_dr_mp3_uint"] <= "ma_uint"
|
|
["\bma_dr_mp3_bool"] <= "ma_bool"
|
|
["\bma_dr_mp3_uintptr"] <= "ma_uintptr"
|
|
["\bMA_DR_MP3_TRUE"] <= "MA_TRUE"
|
|
["\bMA_DR_MP3_FALSE"] <= "MA_FALSE"
|
|
["\bMA_DR_MP3_UINT64_MAX"] <= "MA_UINT64_MAX"
|
|
["\bMA_DR_MP3_32BIT"] <= "MA_32BIT"
|
|
["\bMA_DR_MP3_64BIT"] <= "MA_64BIT"
|
|
["\bMA_DR_MP3_ARM32"] <= "MA_ARM32"
|
|
["\bMA_DR_MP3_ARM64"] <= "MA_ARM64"
|
|
["\bMA_DR_MP3_X64"] <= "MA_X64"
|
|
["\bMA_DR_MP3_X86"] <= "MA_X86"
|
|
["\bMA_DR_MP3_ARM"] <= "MA_ARM"
|
|
["\bMA_DR_MP3_API"] <= "MA_API"
|
|
["\bMA_DR_MP3_PRIVATE"] <= "MA_PRIVATE"
|
|
["\bMA_DR_MP3_DLL"] <= "MA_DLL"
|
|
["\bMA_DR_MP3_DLL_IMPORT"] <= "MA_DLL_IMPORT"
|
|
["\bMA_DR_MP3_DLL_EXPORT"] <= "MA_DLL_EXPORT"
|
|
["\bMA_DR_MP3_DLL_PRIVATE"] <= "MA_DLL_PRIVATE"
|
|
["\bma_dr_mp3_result"] <= "ma_result"
|
|
["\bma_dr_mp3_allocation_callbacks"] <= "ma_allocation_callbacks"
|
|
["\bMA_DR_MP3_INLINE"] <= "MA_INLINE"
|
|
["\bMA_DR_MP3_SIZE_MAX"] <= "MA_SIZE_MAX"
|
|
["\bma_dr_mp3_result_from_errno"] <= "ma_result_from_errno"
|
|
["\bma_dr_mp3_fopen"] <= "ma_fopen"
|
|
["\bma_dr_mp3_wfopen"] <= "ma_wfopen"
|
|
|
|
// Result codes.
|
|
["MA_DR_MP3_SUCCESS"] <= "MA_SUCCESS"
|
|
;
|
|
}
|
|
|
|
convert_mp3_h :: function(src:string) string
|
|
{
|
|
stripped := @(src);
|
|
stripped["/\* Sized Types \*/\R" : "\R/\* End Sized Types \*/" ] = "";
|
|
stripped["/\* Decorations \*/\R" : "\R/\* End Decorations \*/" ] = "";
|
|
stripped["/\* Result Codes \*/\R" : "\R/\* End Result Codes \*/" ] = "";
|
|
stripped["/\* Inline \*/\R" : "\R/\* End Inline \*/" ] = "";
|
|
stripped["/\* Allocation Callbacks \*/\R" : "\R/\* End Allocation Callbacks \*/" ] = "";
|
|
|
|
return minify(rename_mp3_namespace(stripped));
|
|
}
|
|
|
|
convert_mp3_c :: function(src:string) string
|
|
{
|
|
stripped := @(src);
|
|
stripped["/\* SIZE_MAX \*/\R" : "\R/\* End SIZE_MAX \*/" ] = "";
|
|
stripped["/\* Errno \*/\R" : "\R/\* End Errno \*/" ] = "";
|
|
stripped["/\* fopen \*/\R" : "\R/\* End fopen \*/" ] = "";
|
|
|
|
return minify(rename_mp3_namespace(stripped));
|
|
}
|
|
|
|
miniaudio_h("/\* dr_mp3_h begin \*/\R":"\R/\* dr_mp3_h end \*/") = convert_mp3_h(@(dr_mp3_h["#ifndef dr_mp3_h\R":"\R#endif /\* dr_mp3_h \*/"]));
|
|
miniaudio_h("/\* dr_mp3_c begin \*/\R":"\R/\* dr_mp3_c end \*/") = convert_mp3_c(@(dr_mp3_h["#ifndef dr_mp3_c\R":"\R#endif /\* dr_mp3_c \*/"]));
|
|
|
|
|
|
// c89atomic
|
|
rename_c89atomic_namespace :: function(src:string) string
|
|
{
|
|
return @(src)
|
|
["\bc89atomic"] <= "ma_atomic"
|
|
["\bC89ATOMIC"] <= "MA_ATOMIC"
|
|
|
|
// Some common tokens will be namespaced as "ma_atomic" when we really want them to be "ma_".
|
|
["\bma_atomic_int"] <= "ma_int"
|
|
["\bma_atomic_uint"] <= "ma_uint"
|
|
["\bma_atomic_bool"] <= "ma_bool32"
|
|
["\bMA_ATOMIC_32BIT"] <= "MA_32BIT"
|
|
["\bMA_ATOMIC_64BIT"] <= "MA_64BIT"
|
|
["\bMA_ATOMIC_ARM32"] <= "MA_ARM32"
|
|
["\bMA_ATOMIC_ARM64"] <= "MA_ARM64"
|
|
["\bMA_ATOMIC_X64"] <= "MA_X64"
|
|
["\bMA_ATOMIC_X86"] <= "MA_X86"
|
|
["\bMA_ATOMIC_ARM"] <= "MA_ARM"
|
|
["\bMA_ATOMIC_INLINE"] <= "MA_INLINE"
|
|
|
|
// We have an "extern c89atomic_spinlock" in c89atomic.h, but since we're putting this into the implementation section we can just
|
|
// drop the extern and not bother importing anything from c89atomic.c.
|
|
["\bextern ma_atomic_spinlock"] <= "ma_atomic_spinlock"
|
|
;
|
|
}
|
|
|
|
convert_c89atomic_h :: function(src:string) string
|
|
{
|
|
stripped := @(src);
|
|
stripped["/\* Sized Types \*/\R" : "\R/\* End Sized Types \*/" ] = "";
|
|
stripped["/\* Architecture Detection \*/\R" : "\R/\* End Architecture Detection \*/"] = "";
|
|
stripped["/\* Inline \*/\R" : "\R/\* End Inline \*/" ] = "";
|
|
|
|
return minify(rename_c89atomic_namespace(stripped));
|
|
}
|
|
|
|
miniaudio_h("/\* c89atomic.h begin \*/\R":"\R/\* c89atomic.h end \*/") = convert_c89atomic_h(@(c89atomic_h["#ifndef c89atomic_h\R":"\R#endif /\* c89atomic_h \*/"]));
|
|
|
|
|
|
// Cleanup. If we don't normalize line endings we'll fail to compile on old versions of GCC.
|
|
cleanup :: function(src:string) string
|
|
{
|
|
return @(src)
|
|
["\r\n"] <= "\n" // Normalize line endings to "\n". Needed for very old versions of GCC.
|
|
["\t"] <= " " // Tabs to spaces.
|
|
;
|
|
}
|
|
|
|
miniaudio_h = cleanup(@(miniaudio_h));
|
|
miniaudio_c = cleanup(@(miniaudio_c)); |