diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3a08828 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,33 @@ +cmake_minimum_required(VERSION 3.20) +project(libao) + +set(SRC + src/ao_aixs.c + src/ao_au.c + src/ao_null.c + src/ao_raw.c + src/ao_wav.c + src/audio_out.c + src/config.c) +if(WIN32) + list(APPEND SRC src/ao_wmm.c) +endif() +configure_file(include/ao/os_types.h.in include/os_types.h) + +add_library(ao ${SRC}) +set_property(TARGET ao PROPERTY C_STANDARD 17) +set_property(TARGET ao PROPERTY CPP_STANDARD 17) +target_include_directories(ao + PUBLIC + include + ${CMAKE_BINARY_DIR}/include + PRIVATE + include/ao) + +target_compile_definitions(ao + PRIVATE + AO_BUILDING_LIBAO) + +if(WIN32) + target_compile_definitions(ao PRIVATE _CRT_SECURE_NO_WARNINGS) +endif() \ No newline at end of file diff --git a/include/ao/ao_private.h b/include/ao/ao_private.h index 44fa03e..dfe01e4 100644 --- a/include/ao/ao_private.h +++ b/include/ao/ao_private.h @@ -138,13 +138,13 @@ struct ao_functions { void ao_read_config_files (ao_config *config); -#define adebug(format, args...) {\ +#define adebug(format, ...) {\ if(!device || device->verbose==2){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s debug: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s debug: " format,device->funcs->driver_info()->short_name,## __VA_ARGS__); \ }else{ \ - fprintf(stderr,"debug: " format,## args); \ + fprintf(stderr,"debug: " format,## __VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -152,13 +152,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define averbose(format, args...) {\ +#define averbose(format, ...) {\ if(!device || device->verbose>0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,## __VA_ARGS__); \ }else{ \ - fprintf(stderr,"info: " format,## args); \ + fprintf(stderr,"info: " format,## __VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -166,13 +166,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define ainfo(format, args...) {\ +#define ainfo(format, ...) {\ if(!device || device->verbose>=0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,## __VA_ARGS__); \ }else{ \ - fprintf(stderr,"info: " format,## args); \ + fprintf(stderr,"info: " format,## __VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -180,13 +180,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define awarn(format, args...) {\ +#define awarn(format, ...) {\ if(!device || device->verbose>=0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s WARNING: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s WARNING: " format,device->funcs->driver_info()->short_name,## __VA_ARGS__); \ }else{ \ - fprintf(stderr,"WARNING: " format,## args); \ + fprintf(stderr,"WARNING: " format,## __VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -194,13 +194,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define aerror(format, args...) { \ +#define aerror(format, ...) { \ if(!device || device->verbose>=0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s ERROR: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s ERROR: " format,device->funcs->driver_info()->short_name,## __VA_ARGS__); \ }else{ \ - fprintf(stderr,"ERROR: " format,## args); \ + fprintf(stderr,"ERROR: " format,## __VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ diff --git a/src/ao_wmm.c b/src/ao_wmm.c index eec6b83..d18d2a4 100644 --- a/src/ao_wmm.c +++ b/src/ao_wmm.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include diff --git a/src/audio_out.c b/src/audio_out.c index 166c72b..1bdd934 100644 --- a/src/audio_out.c +++ b/src/audio_out.c @@ -48,8 +48,8 @@ static int dlclose(void *handle) { return 0; } #include #ifndef _MSC_VER # include +# include #endif -#include #include "ao/ao.h" #include "ao_private.h"