############################################### # Audio/CMakeLists.txt cmake_minimum_required(VERSION 3.13) set(AUDIO_DEFAULT_SAMPLE_FREQUENCY 44100 CACHE STRING "default sample frequency") set(AUDIO_DMA_BUFFER_SIZE 256 CACHE STRING "number of audio frames in dma buffer. 256 ~ 5msec") option(AUDIO_INPUT_BUFFER_ON_STACK "no static input_buffer[] in fill_buffer() but allocated on stack" OFF) set(AUDIO_INPUT_BUFFER_SIZE 64 CACHE STRING "size of input_buffer[] in fill_buffer()") set_property(CACHE AUDIO_DMA_BUFFER_SIZE PROPERTY STRINGS 64 128 256 512 1024) set_property(CACHE AUDIO_INPUT_BUFFER_SIZE PROPERTY STRINGS 32 48 64) set(audio_sources) set(audio_includes) set(audio_defines) set(audio_libraries) if(CMAKE_SYSTEM_NAME STREQUAL "PICO") set(audio_libraries pico_stdlib hardware_dma hardware_pio) else() endif() add_library(kilipili_audio STATIC ${audio_sources} audio_options.h AudioSample.h AudioSource.h AudioController.h AudioController.cpp internal/i2s_audio.pio internal/pwm_audio.pio internal/sid_audio.pio internal/i2s_audio.pio.h internal/pwm_audio.pio.h internal/sid_audio.pio.h Ay38912.cpp Ay38912.h YMMusicPlayer.h YMMusicPlayer.cpp AudioPlayer.h AudioPlayer.cpp Mp3Player.cpp Mp3Player.h ) target_compile_definitions(kilipili_audio PUBLIC ${audio_defines} AUDIO_DMA_BUFFER_SIZE=${AUDIO_DMA_BUFFER_SIZE} AUDIO_DEFAULT_SAMPLE_FREQUENCY=${AUDIO_DEFAULT_SAMPLE_FREQUENCY} AUDIO_INPUT_BUFFER_ON_STACK=${AUDIO_INPUT_BUFFER_ON_STACK} AUDIO_INPUT_BUFFER_SIZE=${AUDIO_INPUT_BUFFER_SIZE} ${CMAKE_SYSTEM_NAME} ) target_include_directories(kilipili_audio PUBLIC ${audio_includes} ${CMAKE_CURRENT_LIST_DIR} ) target_link_libraries(kilipili_audio PUBLIC ${audio_libraries} kilipili_common ) # the resulting header files are already included in internal/: # pico_generate_pio_header(kilipili_audio ${CMAKE_CURRENT_LIST_DIR}/i2s_audio.pio) # pico_generate_pio_header(kilipili_audio ${CMAKE_CURRENT_LIST_DIR}/pwm_audio.pio) # pico_generate_pio_header(kilipili_audio ${CMAKE_CURRENT_LIST_DIR}/sid_audio.pio)