feat: add DISABLE_SPEAKER_PROC build flag
This commit is contained in:
+57
-2
@@ -23,8 +23,13 @@ if (EXISTS ${picoVscode})
|
||||
include(${picoVscode})
|
||||
endif ()
|
||||
# ====================================================================================
|
||||
set(PICO_BOARD pico2_w CACHE STRING "Board type")
|
||||
|
||||
if (PICO_W_BUILD)
|
||||
set(PICO_BOARD pico_w CACHE STRING "Board type")
|
||||
set(PICO_RP2350 OFF CACHE BOOL "Not using RP2350")
|
||||
else ()
|
||||
set(PICO_BOARD pico2_w CACHE STRING "Board type")
|
||||
endif ()
|
||||
#set(PICO_CYW43_SUPPORTED 1)
|
||||
#set(PICO_CYW43_ARCH_THREADSAFE_BACKGROUND 1)
|
||||
|
||||
@@ -40,6 +45,31 @@ if(ENABLE_VERBOSE)
|
||||
else()
|
||||
set(ENABLE_VERBOSE_VALUE 0)
|
||||
endif ()
|
||||
option(ENABLE_BATT_LED "Blink Pico LED when DualSense battery is low (<=10%)" ON)
|
||||
if (ENABLE_BATT_LED)
|
||||
set(ENABLE_BATT_LED_VALUE 1)
|
||||
else ()
|
||||
set(ENABLE_BATT_LED_VALUE 0)
|
||||
endif ()
|
||||
option(DISABLE_SPEAKER_PROC "Disable Speaker in controller" OFF)
|
||||
if (DISABLE_SPEAKER_PROC)
|
||||
set(DISABLE_SPEAKER_PROC_VALUE 1)
|
||||
else ()
|
||||
set(DISABLE_SPEAKER_PROC_VALUE 0)
|
||||
endif ()
|
||||
option(PICO_W_BUILD "Build for Rasberry Pi Pico W, audio is missing" OFF)
|
||||
if (PICO_W_BUILD)
|
||||
set(PICO_W_BUILD_VALUE 1)
|
||||
set(CYW43_PIO_CLOCK_DIV_VALUE 3)
|
||||
set(SYS_CLOCK_KHZ_VALUE 200000)
|
||||
set(DISABLE_SPEAKER_PROC_VALUE 1)
|
||||
else ()
|
||||
set(PICO_W_BUILD_VALUE 0)
|
||||
set(CYW43_PIO_CLOCK_DIV_VALUE 5)
|
||||
set(SYS_CLOCK_KHZ_VALUE 320000)
|
||||
endif ()
|
||||
|
||||
|
||||
|
||||
# Pull in Raspberry Pi Pico SDK (must be before project)
|
||||
include(pico_sdk_import.cmake)
|
||||
@@ -61,6 +91,10 @@ add_executable(ds5-bridge
|
||||
src/cmd.cpp
|
||||
)
|
||||
|
||||
if (ENABLE_BATT_LED)
|
||||
target_sources(ds5-bridge PRIVATE src/battery_led.cpp)
|
||||
endif ()
|
||||
|
||||
# Cockos WDLResampler
|
||||
add_library(wdl_resampler STATIC
|
||||
lib/WDL/WDL/resample.cpp
|
||||
@@ -83,13 +117,34 @@ target_compile_definitions(ds5-bridge PRIVATE
|
||||
ENABLE_SERIAL=${ENABLE_SERIAL_VALUE}
|
||||
PICO_FLASH_ASSUME_CORE1_SAFE=1
|
||||
WDL_RESAMPLE_TYPE=float
|
||||
CYW43_PIO_CLOCK_DIV_INT=5
|
||||
CYW43_PIO_CLOCK_DIV_INT=${CYW43_PIO_CLOCK_DIV_VALUE}
|
||||
PICO_STDIO_USB_USE_DEFAULT_DESCRIPTORS=0
|
||||
PICO_STDIO_USB_ENABLE_RESET_VIA_BAUD_RATE=0
|
||||
PICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE=0
|
||||
ENABLE_VERBOSE=${ENABLE_VERBOSE_VALUE}
|
||||
ENABLE_BATT_LED=${ENABLE_BATT_LED_VALUE}
|
||||
PICO_W_BUILD=${PICO_W_BUILD_VALUE}
|
||||
SYS_CLOCK_KHZ=${SYS_CLOCK_KHZ_VALUE}
|
||||
DISABLE_SPEAKER_PROC=${DISABLE_SPEAKER_PROC_VALUE}
|
||||
)
|
||||
|
||||
option(ENABLE_WAKE_HID "Wake the Windows host on PS-button press" OFF)
|
||||
if(ENABLE_WAKE_HID)
|
||||
target_compile_definitions(ds5-bridge PRIVATE
|
||||
ENABLE_WAKE_HID
|
||||
)
|
||||
target_sources(ds5-bridge PRIVATE
|
||||
src/wake.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
option(WAKE_DEBUG "Print wake-FSM transitions to UART (developer use)" OFF)
|
||||
if(WAKE_DEBUG)
|
||||
target_compile_definitions(ds5-bridge PRIVATE
|
||||
WAKE_DEBUG
|
||||
)
|
||||
endif()
|
||||
|
||||
pico_set_program_name(ds5-bridge "ds5-bridge")
|
||||
pico_set_program_version(ds5-bridge "0.5.3")
|
||||
|
||||
|
||||
+4
-1
@@ -118,6 +118,7 @@ void audio_loop() {
|
||||
pkt[11] = 0x12 | 0 << 6 | 1 << 7;
|
||||
pkt[12] = SAMPLE_SIZE;
|
||||
memcpy(pkt + 13, haptic_buf, SAMPLE_SIZE);
|
||||
#if !DISABLE_SPEAKER_PROC
|
||||
pkt[77] = (plug_headset ? 0x16 : 0x13) | 0 << 6 | 1 << 7; // Speaker: 0x13
|
||||
// L Headset Mono: 0x14
|
||||
// L Headset R Speaker: 0x15
|
||||
@@ -126,7 +127,7 @@ void audio_loop() {
|
||||
critical_section_enter_blocking(&opus_cs);
|
||||
memcpy(pkt + 79, opus_buf, 200);
|
||||
critical_section_exit(&opus_cs);
|
||||
|
||||
#endif
|
||||
bt_write(pkt, sizeof(pkt), true);
|
||||
haptic_buf_pos = 0;
|
||||
}
|
||||
@@ -137,9 +138,11 @@ void audio_init() {
|
||||
resampler.SetRates(48000, 3000);
|
||||
resampler.SetFeedMode(true);
|
||||
resampler.Prealloc(2, 24, 6);
|
||||
#if !DISABLE_SPEAKER_PROC
|
||||
queue_init(&audio_fifo, sizeof(audio_raw_element), 2);
|
||||
critical_section_init(&opus_cs);
|
||||
multicore_launch_core1_with_stack(core1_entry, audio_core1_stack, sizeof(audio_core1_stack));
|
||||
#endif
|
||||
}
|
||||
|
||||
static OpusEncoder *encoder;
|
||||
|
||||
Reference in New Issue
Block a user