cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(app_usb_aud_phaten_gs)

set(APP_HW_TARGET PHATEN_GS.xn)
include(${CMAKE_CURRENT_LIST_DIR}/../deps.cmake)
set(APP_PCA_ENABLE ON)

###=========================================================================###
set(TARGET_HW_PHATEN_GSV2 ON)
set(CODEC_IS_AIC3204 ON)

# Configure host os detection here... (Windows or Non-Windows)
#-----------------------------------------------------------------------------#
# Host OS detection, set HOST_OS_DETECTION to ON

set(HOST_OS_DETECTION ON)
###=========================================================================###
# Customer
if (TARGET_HW_PHATEN_GSV2)
    message("-- Building for PHATEN_GSv2 ---")
    set(TARGET_BOARD PHATEN_GSV2)
    set(APP_HW_TARGET PHATEN_GS.xn)
endif()

# CODEC IC
if (CODEC_IS_AIC3204)
    message("-- DAC: AIC3204 ---")
    set(CODEC_IC CODEC_AIC3204)
endif()

# Host OS detection
if (HOST_OS_DETECTION)
    message("-- Host OS detection (Windows/Non-Windows) enabled ---")
    set(EXTRA_BUILD_FLAGS ${EXTRA_BUILD_FLAGS} -DHOST_OS_DETECTION)
endif()

set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -O3
                                            -report
                                            -L${CMAKE_CURRENT_LIST_DIR}/../../lib_ex3d/lib_ex3d/lib
                                            -lquadflash
                                            -g
                                            -fxscope
                                            -DUSB_TILE=tile[0]
                                            -DADAT_TX_USE_SHARED_BUFF=1
                                            -DXUA_QUAD_SPI_FLASH=1
                                            -D${TARGET_BOARD}
                                            -D${CODEC_IC}
                                            -DWINDOWS_OS_DESCRIPTOR_SUPPORT
                                            -DDEBUG_PRINT_ENABLE=1)


LINK_DIRECTORIES(${CMAKE_CURRENT_LIST_DIR}/../../lib_dnr/lib_dnr)                                            
set(APP_COMPILER_FLAGS_ex3d_stereo_2k ${SW_USB_AUDIO_FLAGS}    -DI2S_CHANS_DAC=2 
                                                            -DI2S_CHANS_ADC=2
                                                            -DAUDIO_CLASS=1
                                                            -DMIN_FREQ=48000 
                                                            -DMAX_FREQ=48000 
                                                            -DUSE_EX3D 
                                                            -DMIXER=0
                                                            -DAIZIP_DNR=0 -ldnr_50ms
                                                            -llib_ex3d_stereo_2k
                                                            -DNUM_USB_CHAN_OUT=2
                                                            -DNUM_USB_CHAN_IN=2
                                                            -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_INPUT_2_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_INPUT_3_RESOLUTION_BITS=16                                                           
                                                            -DNUM_EX3D_CHAN_OUT=2
                                                            -DINPUT_VOLUME_CONTROL=0
                                                            -DOUTPUT_VOLUME_CONTROL=0
                                                            -DSTEREO_2K
                                                            -DHID_CONTROLS=1)

set(APP_COMPILER_FLAGS_ex3d_stereo_8k ${SW_USB_AUDIO_FLAGS}    -DI2S_CHANS_DAC=2 
                                                            -DI2S_CHANS_ADC=2
                                                            -DAUDIO_CLASS=1
                                                            -DMIN_FREQ=48000 
                                                            -DMAX_FREQ=48000 
                                                            -DUSE_EX3D 
                                                            -DMIXER=0
                                                            -DAIZIP_DNR=0 -ldnr_50ms
                                                            -llib_ex3d_stereo_8k
                                                            -DNUM_USB_CHAN_OUT=2
                                                            -DNUM_USB_CHAN_IN=2
                                                            -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_INPUT_2_RESOLUTION_BITS=16
                                                            -DSTREAM_FORMAT_INPUT_3_RESOLUTION_BITS=16                                                            
                                                            -DNUM_EX3D_CHAN_OUT=2
                                                            -DINPUT_VOLUME_CONTROL=0
                                                            -DOUTPUT_VOLUME_CONTROL=0
                                                            -DSTEREO_8K
                                                            -DHID_CONTROLS=1)

set(APP_COMPILER_FLAGS_ex3d_71_game ${SW_USB_AUDIO_FLAGS}    -DI2S_CHANS_DAC=2 
                                                        -DI2S_CHANS_ADC=2
                                                        -DMIN_FREQ=48000 
                                                        -DMAX_FREQ=48000 
                                                        -DUSE_EX3D
                                                        -DMIXER=0 
                                                        -DAIZIP_DNR=0 -ldnr_50ms
                                                        -llib_ex3d_game
                                                        -DNUM_USB_CHAN_OUT=8
                                                        -DNUM_USB_CHAN_IN=2
                                                        -DNUM_EX3D_CHAN_OUT=2
                                                        -DMIN_VOLUME=0xE000
                                                        -DSPATIAL_GAME
                                                        -DHID_CONTROLS=1)

set(APP_COMPILER_FLAGS_ex3d_71_music ${SW_USB_AUDIO_FLAGS}    -DI2S_CHANS_DAC=2 
                                                        -DI2S_CHANS_ADC=2
                                                        -DMIN_FREQ=48000 
                                                        -DMAX_FREQ=48000 
                                                        -DUSE_EX3D
                                                        -DMIXER=0 
                                                        -DAIZIP_DNR=0 -ldnr_50ms
                                                        -llib_ex3d_music
                                                        -DNUM_USB_CHAN_OUT=8
                                                        -DNUM_USB_CHAN_IN=2
                                                        -DNUM_EX3D_CHAN_OUT=2
                                                        -DMIN_VOLUME=0xE000
                                                        -DSPATIAL_MUSIC
                                                        -DHID_CONTROLS=1)
                                                        
set(APP_COMPILER_FLAGS_ex3d_71_movie ${SW_USB_AUDIO_FLAGS}    -DI2S_CHANS_DAC=2 
                                                        -DI2S_CHANS_ADC=2
                                                        -DMIN_FREQ=48000 
                                                        -DMAX_FREQ=48000 
                                                        -DUSE_EX3D
                                                        -DMIXER=0 
                                                        -DAIZIP_DNR=0 -ldnr_50ms
                                                        -llib_ex3d_movie
                                                        -DNUM_USB_CHAN_OUT=8
                                                        -DNUM_USB_CHAN_IN=2
                                                        -DNUM_EX3D_CHAN_OUT=2
                                                        -DMIN_VOLUME=0xE000
                                                        -DSPATIAL_MOVIE
                                                        -DHID_CONTROLS=1)                                                        

set(APP_COMPILER_FLAGS_ex3d_71_drama ${SW_USB_AUDIO_FLAGS}    -DI2S_CHANS_DAC=2 
                                                        -DI2S_CHANS_ADC=2
                                                        -DMIN_FREQ=48000 
                                                        -DMAX_FREQ=48000 
                                                        -DUSE_EX3D
                                                        -DMIXER=0 
                                                        -DAIZIP_DNR=0 -ldnr_50ms
                                                        -llib_ex3d_drama
                                                        -DNUM_USB_CHAN_OUT=8
                                                        -DNUM_USB_CHAN_IN=2
                                                        -DNUM_EX3D_CHAN_OUT=2
                                                        -DMIN_VOLUME=0xE000
                                                        -DSPATIAL_DRAMA
                                                        -DHID_CONTROLS=1)

set(APP_INCLUDES src src/core src/extensions ../../lib_dnr/lib_dnr)
set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)

XMOS_REGISTER_APP()
