3 Commits

Author SHA1 Message Date
Steven Dan
e4405d3b10 seperate f3 and f4 mode 2026-06-04 16:43:59 +08:00
Steven Dan
77c7568dc2 update debug log report id 2026-06-04 12:26:48 +08:00
Steven Dan
23055f830e add 2.5k lib 2026-06-04 12:25:37 +08:00
19 changed files with 423 additions and 504 deletions

BIN
lib_ex3d/.DS_Store vendored Normal file

Binary file not shown.

10
lib_ex3d/Makefile Normal file
View File

@@ -0,0 +1,10 @@
# This variable should contain a space separated list of all
# the directories containing buildable applications (usually
# prefixed with the app_ prefix)
#
# If the variable is set to "all" then all directories that start with app_
# are built.
BUILD_SUBDIRS = all
XMOS_MAKE_PATH ?= ..
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.toplevel

Binary file not shown.

View File

@@ -33,12 +33,12 @@
#endif
#if NUM_USB_CHAN_OUT == 8
// 6ch version
#define DSP_WORKER_COUNT 2//4//3 //the count of workers
#define DSP_WORKER_DATA_CH_COUNT 3//2 //3 //the number of channels each one handles
//#define SHOOTING_GAME
#define DSP_WORKER_COUNT 4//3 //the count of workers
#define DSP_WORKER_DATA_CH_COUNT 2 //3 //the number of channels each one handles
#define DSP_WORKER_FILTER_PER_DATA_CH 2 //the number of channels each one handles
// #define IR_AUDIO
// #define IR_VIDEO
#else
#define IR_PS5
#define DSP_WORKER_COUNT 4 //the count of workers

View File

@@ -2,640 +2,640 @@ EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_lfe_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_lfe_left_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_lfe_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_lfe_right_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h000_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h000_left_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h000_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h000_right_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h045_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h045_left_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h045_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h045_right_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h090_left_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_DRAMA_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h090_left_BLOCK_COUNT (232)
#define SPATIAL_71_DRAMA_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h090_right_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_DRAMA_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h090_right_BLOCK_COUNT (232)
#define SPATIAL_71_DRAMA_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h135_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_DRAMA_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h135_left_BLOCK_COUNT (226)
#define SPATIAL_71_DRAMA_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h135_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_DRAMA_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h135_right_BLOCK_COUNT (226)
#define SPATIAL_71_DRAMA_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h225_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_DRAMA_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h225_left_BLOCK_COUNT (226)
#define SPATIAL_71_DRAMA_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h225_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_DRAMA_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h225_right_BLOCK_COUNT (226)
#define SPATIAL_71_DRAMA_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h270_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_DRAMA_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h270_left_BLOCK_COUNT (226)
#define SPATIAL_71_DRAMA_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h270_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_DRAMA_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h270_right_BLOCK_COUNT (226)
#define SPATIAL_71_DRAMA_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h315_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h315_left_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h315_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_DRAMA_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h315_right_BLOCK_COUNT (151)
#define SPATIAL_71_DRAMA_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_lfe_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_lfe_left_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_lfe_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_lfe_right_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h000_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h000_left_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h000_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h000_right_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h045_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h045_left_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h045_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h045_right_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h090_left_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_GAME_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h090_left_BLOCK_COUNT (232)
#define SPATIAL_71_GAME_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h090_right_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_GAME_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h090_right_BLOCK_COUNT (232)
#define SPATIAL_71_GAME_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h135_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_GAME_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h135_left_BLOCK_COUNT (226)
#define SPATIAL_71_GAME_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h135_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_GAME_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h135_right_BLOCK_COUNT (226)
#define SPATIAL_71_GAME_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h225_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_GAME_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h225_left_BLOCK_COUNT (226)
#define SPATIAL_71_GAME_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h225_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_GAME_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h225_right_BLOCK_COUNT (226)
#define SPATIAL_71_GAME_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h270_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_GAME_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h270_left_BLOCK_COUNT (226)
#define SPATIAL_71_GAME_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h270_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_GAME_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h270_right_BLOCK_COUNT (226)
#define SPATIAL_71_GAME_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h315_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h315_left_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h315_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_GAME_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h315_right_BLOCK_COUNT (151)
#define SPATIAL_71_GAME_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_lfe_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_lfe_left_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_lfe_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_lfe_right_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h000_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h000_left_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h000_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h000_right_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h045_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h045_left_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h045_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h045_right_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h090_left_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_MOVIE_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h090_left_BLOCK_COUNT (232)
#define SPATIAL_71_MOVIE_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h090_right_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_MOVIE_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h090_right_BLOCK_COUNT (232)
#define SPATIAL_71_MOVIE_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h135_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MOVIE_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h135_left_BLOCK_COUNT (226)
#define SPATIAL_71_MOVIE_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h135_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MOVIE_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h135_right_BLOCK_COUNT (226)
#define SPATIAL_71_MOVIE_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h225_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MOVIE_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h225_left_BLOCK_COUNT (226)
#define SPATIAL_71_MOVIE_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h225_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MOVIE_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h225_right_BLOCK_COUNT (226)
#define SPATIAL_71_MOVIE_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h270_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MOVIE_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h270_left_BLOCK_COUNT (226)
#define SPATIAL_71_MOVIE_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h270_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MOVIE_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h270_right_BLOCK_COUNT (226)
#define SPATIAL_71_MOVIE_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h315_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h315_left_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h315_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MOVIE_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h315_right_BLOCK_COUNT (151)
#define SPATIAL_71_MOVIE_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_lfe_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_lfe_left_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_lfe_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_lfe_right_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h000_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h000_left_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h000_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h000_right_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h045_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h045_left_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h045_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h045_right_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h090_left_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_MUSIC_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h090_left_BLOCK_COUNT (232)
#define SPATIAL_71_MUSIC_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h090_right_DATA_BUFFER_ELEMENTS (1872)
#define SPATIAL_71_MUSIC_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h090_right_BLOCK_COUNT (232)
#define SPATIAL_71_MUSIC_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h135_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MUSIC_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h135_left_BLOCK_COUNT (226)
#define SPATIAL_71_MUSIC_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h135_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MUSIC_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h135_right_BLOCK_COUNT (226)
#define SPATIAL_71_MUSIC_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h225_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MUSIC_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h225_left_BLOCK_COUNT (226)
#define SPATIAL_71_MUSIC_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h225_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MUSIC_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h225_right_BLOCK_COUNT (226)
#define SPATIAL_71_MUSIC_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h270_left_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MUSIC_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h270_left_BLOCK_COUNT (226)
#define SPATIAL_71_MUSIC_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h270_right_DATA_BUFFER_ELEMENTS (1824)
#define SPATIAL_71_MUSIC_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h270_right_BLOCK_COUNT (226)
#define SPATIAL_71_MUSIC_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h315_left_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h315_left_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h315_right_DATA_BUFFER_ELEMENTS (1224)
#define SPATIAL_71_MUSIC_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h315_right_BLOCK_COUNT (151)
#define SPATIAL_71_MUSIC_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_2K_v090h090_left;

View File

@@ -30,9 +30,7 @@
#endif
#define EX3D_SET_CH_NUM NUM_USB_CHAN_OUT
#ifndef EX3D_SF_NUM
#define EX3D_SF_NUM 6
#endif
#define EX3D_SF_NUM 1
EXTERN void audio_ex3d_load_key(chanend_t c);
EXTERN int audio_ex3d_activate_key(chanend_t c);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -50,6 +50,7 @@ XUD_Result_t HidInterfaceClassRequests(
#endif
#if DEBUG_MEMORY_LOG_ENABLED
unsigned log_switch;
buffer[0] = 0x1;
GET_SHARED_GLOBAL(log_switch, g_log_switch);
if (log_switch) {

View File

@@ -75,100 +75,100 @@ set(SW_USB_FACT_FLAGS ${EXTRA_BUILD_FLAGS} -Os
LINK_DIRECTORIES(${CMAKE_CURRENT_LIST_DIR}/../../lib_dnr/lib_dnr)
set(APP_COMPILER_FLAGS_f5_music_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-DI2S_CHANS_ADC=2
-DAUDIO_CLASS=1
-DMIN_FREQ=48000
-DMAX_FREQ=48000
-DMCLK_441=512*44100
-DMCLK_48=512*48000
-DUAC1_MODE=1
-DF5_MUSIC_UAC1=1
#-DUSE_EX3D
-DMIXER=0
#-ldnr_11ms
#-DDNR_ENABLE=1
#-llib_ex3d_all
-DEQ_EN=1
-DEX3D_SF_NUM=3
-DNUM_USB_CHAN_OUT=8
-DNUM_USB_CHAN_OUT_FS=2
-DNUM_USB_CHAN_IN=2
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
-DINPUT_FORMAT_COUNT=1
-DOUTPUT_FORMAT_COUNT=1
#-DNUM_EX3D_CHAN_OUT=2
-DMIN_VOLUME=0xE000
-DINPUT_VOLUME_CONTROL=0
-DOUTPUT_VOLUME_CONTROL=0
#-DDEBUG_MEMORY_LOG_ENABLED=1
-DXUA_DFU_EN=0
-DHID_DFU_EN=1
-DHID_CONTROLS_UAC1=1
#-DIR_SWITCHING_MODE
-DHID_CONTROLS=1)
#set(APP_COMPILER_FLAGS_f5_music_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
# -DI2S_CHANS_ADC=2
# -DAUDIO_CLASS=1
# -DMIN_FREQ=48000
# -DMAX_FREQ=48000
# -DMCLK_441=512*44100
# -DMCLK_48=512*48000
# -DUAC1_MODE=1
# -DF5_MUSIC_UAC1=1
# #-DUSE_EX3D
# -DMIXER=0
# #-ldnr_11ms
# #-DDNR_ENABLE=1
# #-llib_ex3d_all
# -DEQ_EN=1
# -DEX3D_SF_NUM=3
# -DNUM_USB_CHAN_OUT=8
# -DNUM_USB_CHAN_OUT_FS=2
# -DNUM_USB_CHAN_IN=2
# -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
# -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
# -DINPUT_FORMAT_COUNT=1
# -DOUTPUT_FORMAT_COUNT=1
# #-DNUM_EX3D_CHAN_OUT=2
# -DMIN_VOLUME=0xE000
# -DINPUT_VOLUME_CONTROL=0
# -DOUTPUT_VOLUME_CONTROL=0
# #-DDEBUG_MEMORY_LOG_ENABLED=1
# -DXUA_DFU_EN=0
# -DHID_DFU_EN=1
# -DHID_CONTROLS_UAC1=1
# #-DIR_SWITCHING_MODE
# -DHID_CONTROLS=1)
#
#
#
#set(APP_COMPILER_FLAGS_fact ${SW_USB_FACT_FLAGS} -DI2S_CHANS_DAC=2
# -DI2S_CHANS_ADC=0
# -DMIN_FREQ=48000
# -DMAX_FREQ=48000
# -DFACT=1
# #-DUSE_EX3D
# -DMIXER=0
# -DUAC2_MODE=1
# #-ldnr_50ms
# #-llib_ex3d_all
# #-DEQ_EN=1
# #-DEX3D_SF_NUM=3
# -DNUM_USB_CHAN_OUT=2
# -DNUM_USB_CHAN_IN=0
# #-DNUM_EX3D_CHAN_OUT=2
# -DMIN_VOLUME=0xE000
# -DINPUT_VOLUME_CONTROL=0
# -DOUTPUT_VOLUME_CONTROL=0
# -DDEBUG_MEMORY_LOG_ENABLED=1
# -DHID_DFU_EN=1
# -DXUA_DFU_EN=1
# #-DIR_SWITCHING_MODE
# -DHID_CONTROLS=1)
set(APP_COMPILER_FLAGS_fact ${SW_USB_FACT_FLAGS} -DI2S_CHANS_DAC=2
-DI2S_CHANS_ADC=0
-DMIN_FREQ=48000
-DMAX_FREQ=48000
-DFACT=1
#-DUSE_EX3D
-DMIXER=0
-DUAC2_MODE=1
#-ldnr_50ms
#-llib_ex3d_all
#-DEQ_EN=1
#-DEX3D_SF_NUM=3
-DNUM_USB_CHAN_OUT=2
-DNUM_USB_CHAN_IN=0
#-DNUM_EX3D_CHAN_OUT=2
-DMIN_VOLUME=0xE000
-DINPUT_VOLUME_CONTROL=0
-DOUTPUT_VOLUME_CONTROL=0
-DDEBUG_MEMORY_LOG_ENABLED=1
-DHID_DFU_EN=1
-DXUA_DFU_EN=1
#-DIR_SWITCHING_MODE
-DHID_CONTROLS=1)
#set(APP_COMPILER_FLAGS_f1_music_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
# -DI2S_CHANS_ADC=2
# -DMIN_FREQ=44100
# -DMAX_FREQ=192000
# -DF1_MUSIC_UAC2=1
# -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=24
# -DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=24
# -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=24
# -DSTREAM_FORMAT_INPUT_2_RESOLUTION_BITS=24
# -DINPUT_FORMAT_COUNT=1
# -DOUTPUT_FORMAT_COUNT=1
# #-DUSE_EX3D
# -DMIXER=0
# -DUAC2_MODE=1
# #-ldnr_50ms
# #-llib_ex3d_all
# -DEQ_EN=1
# #-DEX3D_SF_NUM=3
# -DNUM_USB_CHAN_OUT=2
# -DNUM_USB_CHAN_IN=2
# #-DNUM_EX3D_CHAN_OUT=2
# -DMIN_VOLUME=0xE000
# -DINPUT_VOLUME_CONTROL=1
# -DOUTPUT_VOLUME_CONTROL=1
# #-DDEBUG_MEMORY_LOG_ENABLED=1
# -DXUA_DFU_EN=1
# -DHID_DFU_EN=1
# #-DIR_SWITCHING_MODE
# -DHID_CONTROLS=1)
set(APP_COMPILER_FLAGS_f1_music_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-DI2S_CHANS_ADC=2
-DMIN_FREQ=44100
-DMAX_FREQ=192000
-DF1_MUSIC_UAC2=1
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=24
-DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=24
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=24
-DSTREAM_FORMAT_INPUT_2_RESOLUTION_BITS=24
-DINPUT_FORMAT_COUNT=1
-DOUTPUT_FORMAT_COUNT=1
#-DUSE_EX3D
-DMIXER=0
-DUAC2_MODE=1
#-ldnr_50ms
#-llib_ex3d_all
-DEQ_EN=1
#-DEX3D_SF_NUM=3
-DNUM_USB_CHAN_OUT=2
-DNUM_USB_CHAN_IN=2
#-DNUM_EX3D_CHAN_OUT=2
-DMIN_VOLUME=0xE000
-DINPUT_VOLUME_CONTROL=1
-DOUTPUT_VOLUME_CONTROL=1
#-DDEBUG_MEMORY_LOG_ENABLED=1
-DXUA_DFU_EN=1
-DHID_DFU_EN=1
#-DIR_SWITCHING_MODE
-DHID_CONTROLS=1)
set(APP_COMPILER_FLAGS_f3_f4_fps_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
set(APP_COMPILER_FLAGS_f3_fps_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-DI2S_CHANS_ADC=2
-DMIN_FREQ=48000
-DMAX_FREQ=48000
@@ -177,7 +177,7 @@ set(APP_COMPILER_FLAGS_f3_f4_fps_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-DMIXER=0
-DUAC2_MODE=1
-ldnr_50ms
-llib_ex3d_all
-llib_ex3d_game
-DEQ_EN=1
-DDNR_ENABLE=1
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
@@ -194,42 +194,72 @@ set(APP_COMPILER_FLAGS_f3_f4_fps_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
#-DDEBUG_MEMORY_LOG_ENABLED=1
-DXUA_DFU_EN=1
-DHID_DFU_EN=1
-DIR_SWITCHING_MODE
-DSPATIAL_GAME
-DHID_CONTROLS=1)
set(APP_COMPILER_FLAGS_f6_f7_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
set(APP_COMPILER_FLAGS_f4_fps_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-DI2S_CHANS_ADC=2
-DAUDIO_CLASS=1
-DMIN_FREQ=48000
-DMAX_FREQ=48000
-DMCLK_441=512*44100
-DMCLK_48=512*48000
-DUSE_EX3D=1
-DF3_F4_FPS_UAC2=1
-DMIXER=0
-DUAC2_MODE=1
-ldnr_50ms
-llib_ex3d_movie
-DEQ_EN=1
-DDNR_ENABLE=1
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
-DINPUT_FORMAT_COUNT=1
-DOUTPUT_FORMAT_COUNT=1
-DUAC1_MODE=1
-DUSE_EX3D=1
-DF6_F7_FPS_UAC1=1
-DMIXER=0
-ldnr_50ms
-DDNR_ENABLE=1
-llib_ex3d_all
-DEQ_EN=1
-DEX3D_SF_NUM=3
-DNUM_USB_CHAN_OUT=8
-DNUM_USB_CHAN_IN=2
-DNUM_EX3D_CHAN_OUT=2
-DMIN_VOLUME=0xE000
-DINPUT_VOLUME_CONTROL=0
-DOUTPUT_VOLUME_CONTROL=0
-DINPUT_VOLUME_CONTROL=1
-DOUTPUT_VOLUME_CONTROL=1
#-DDEBUG_MEMORY_LOG_ENABLED=1
-DXUA_DFU_EN=1
-DHID_DFU_EN=1
-DHID_CONTROLS_UAC1=1
-DIR_SWITCHING_MODE
-DSPATIAL_MOVIE
-DHID_CONTROLS=1)
#set(APP_COMPILER_FLAGS_f6_f7_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
# -DI2S_CHANS_ADC=2
# -DAUDIO_CLASS=1
# -DMIN_FREQ=48000
# -DMAX_FREQ=48000
# -DMCLK_441=512*44100
# -DMCLK_48=512*48000
# -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
# -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
# -DINPUT_FORMAT_COUNT=1
# -DOUTPUT_FORMAT_COUNT=1
# -DUAC1_MODE=1
# -DUSE_EX3D=1
# -DF6_F7_FPS_UAC1=1
# -DMIXER=0
# -ldnr_50ms
# -DDNR_ENABLE=1
# -llib_ex3d_all
# -DEQ_EN=1
# -DEX3D_SF_NUM=3
# -DNUM_USB_CHAN_OUT=8
# -DNUM_USB_CHAN_IN=2
# -DNUM_EX3D_CHAN_OUT=2
# -DMIN_VOLUME=0xE000
# -DINPUT_VOLUME_CONTROL=0
# -DOUTPUT_VOLUME_CONTROL=0
# #-DDEBUG_MEMORY_LOG_ENABLED=1
# -DXUA_DFU_EN=1
# -DHID_DFU_EN=1
# -DHID_CONTROLS_UAC1=1
# -DIR_SWITCHING_MODE
# -DHID_CONTROLS=1)
set(APP_INCLUDES src src/core src/extensions ../../lib_dnr/lib_dnr)
set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)

View File

@@ -1,3 +1,4 @@
xflash bin/fact/app_usb_aud_sy102_fact.xe --loader loader.o --upgrade 2 bin/f5_music_uac1/app_usb_aud_sy102_f5_music_uac1.xe --upgrade 3 bin/f1_music_uac2/app_usb_aud_sy102_f1_music_uac2.xe --upgrade 1 bin/f3_f4_fps_uac2/app_usb_aud_sy102_f3_f4_fps_uac2.xe --upgrade 4 bin/f6_f7_fps_uac1/app_usb_aud_sy102_f6_f7_fps_uac1.xe -o %1
rem 改动原因F3/F4 拆分——slot1=F3 Gameslot5=F4 AI7.1
xflash bin/fact/app_usb_aud_sy102_fact.xe --loader loader.o --upgrade 2 bin/f5_music_uac1/app_usb_aud_sy102_f5_music_uac1.xe --upgrade 3 bin/f1_music_uac2/app_usb_aud_sy102_f1_music_uac2.xe --upgrade 1 bin/f3_fps_uac2/app_usb_aud_sy102_f3_fps_uac2.xe --upgrade 4 bin/f6_f7_fps_uac1/app_usb_aud_sy102_f6_f7_fps_uac1.xe --upgrade 5 bin/f4_fps_uac2/app_usb_aud_sy102_f4_fps_uac2.xe -o %1
rem --upgrade 4 bin/f6_f7_fps_uac1/app_usb_aud_sy102_f6_f7_fps_uac1.xe

View File

@@ -1 +1 @@
xflash --factory-version 15.3 --target-file src/core/synido.xn --upgrade 2 bin/f5_music_uac1/app_usb_aud_sy102_f5_music_uac1.xe --upgrade 3 bin/f1_music_uac2/app_usb_aud_sy102_f1_music_uac2.xe --upgrade 1 bin/f3_f4_fps_uac2/app_usb_aud_sy102_f3_f4_fps_uac2.xe --upgrade 4 bin/f6_f7_fps_uac1/app_usb_aud_sy102_f6_f7_fps_uac1.xe -o %1
xflash --factory-version 15.3 --target-file src/core/synido.xn --upgrade 2 bin/f5_music_uac1/app_usb_aud_sy102_f5_music_uac1.xe --upgrade 3 bin/f1_music_uac2/app_usb_aud_sy102_f1_music_uac2.xe --upgrade 1 bin/f3_fps_uac2/app_usb_aud_sy102_f3_fps_uac2.xe --upgrade 4 bin/f6_f7_fps_uac1/app_usb_aud_sy102_f6_f7_fps_uac1.xe --upgrade 5 bin/f4_fps_uac2/app_usb_aud_sy102_f4_fps_uac2.xe -o %1

View File

@@ -147,8 +147,8 @@
#ifndef PID_AUDIO_2
#if defined(F1_MUSIC_UAC2)
#define PID_AUDIO_2 (0x2000) /* F1: Music, UAC2, Windows */
#elif defined(F3_F4_FPS_UAC2)
#define PID_AUDIO_2 (0x2001) /* F3/F4: FPS/AI7.1, UAC2, Windows */
#elif defined(F3_FPS_UAC2) || defined(F4_FPS_UAC2)
#define PID_AUDIO_2 (0x2001) /* F3 Game / F4 AI7.1, UAC2, Windows */
#else
#define PID_AUDIO_2 (0x2000)
#endif
@@ -167,7 +167,7 @@
#if defined(F1_MUSIC_UAC2) || defined(F5_MUSIC_UAC1)
#define PRODUCT_STR_A2 "SY102 Music"
#define PRODUCT_STR_A1 "SY102 Music"
#elif defined(F3_F4_FPS_UAC2) || defined(F6_F7_FPS_UAC1)
#elif defined(F3_FPS_UAC2) || defined(F4_FPS_UAC2) || defined(F6_F7_FPS_UAC1)
#define PRODUCT_STR_A2 "SY102 AI Game"
#define PRODUCT_STR_A1 "SY102 AI Game"
#else

View File

@@ -213,11 +213,19 @@ unsigned g_led_blink_is_white = 0;
#define LED_PURPLE (LED_RED & LED_BLUE)
#define LED_WHITE (LED_RED & LED_GREEN & LED_BLUE)
enum { OS_WIN = 1, OS_OTHERS = 2 };
// 改动原因:定义模式切换标志值用于在SPATIAL_GAME、STEREO_8K、STEREO_2K、UAC1之间循环切换
#define MODE_F3_F4_FPS_UAC2 COAX_IN_FLAG //1 SPATIAL_GAME模式标志
#define MODE_F5_MUSIC_UAC1 USB_IN_FLAG // 2 F5 MUSIC
#define MODE_F1_MUSIC_UAC2 OPT_IN_FLAG // 3 F1 MUSIC
#define MODE_F6_F7_FPS_UAC1 UAC1_IN_FLAG // 4 STEREO_2K模式标志
// 改动原因:F3/F4拆分为独立固件——Game键切F3(COAX/slot1)AI7.1键切F4(BT/slot5)
#define MODE_F3_FPS_UAC2 COAX_IN_FLAG // F3 Game (upgrade slot 1)
#define MODE_F5_MUSIC_UAC1 USB_IN_FLAG // F5 Music UAC1 (upgrade slot 2)
#define MODE_F1_MUSIC_UAC2 OPT_IN_FLAG // F1 Music UAC2 (upgrade slot 3)
#define MODE_F6_F7_FPS_UAC1 UAC1_IN_FLAG // F6/F7 FPS UAC1 (upgrade slot 4)
#define MODE_F4_FPS_UAC2 BT_IN_FLAG // F4 AI7.1 (upgrade slot 5)
// 改动原因:按 game_mode(2=Game/3=AI7.1) 选择 F3 或 F4 固件标志,供启动链与 HID 复用
static unsigned get_fps_firmware_flag(unsigned mode)
{
if (mode == 3) return MODE_F4_FPS_UAC2;
return MODE_F3_FPS_UAC2; // mode==2 或其它 FPS 模式默认 F3 Game
}
/* All on tile[0] */
port p_scl = PORT_I2C_SCL;
@@ -666,7 +674,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
if (host_os == OS_WIN) {
debug_printf("Detected Windows OS (OS_WIN) saved_mode: %d\n", saved_mode);
unsigned flag = (saved_mode <= 1) ? MODE_F1_MUSIC_UAC2 : MODE_F3_F4_FPS_UAC2;
// 改动原因Windows 下 mode2→F3 Gamemode3→F4 AI7.1,不再共用 F3_F4 合并固件
unsigned flag = (saved_mode <= 1) ? MODE_F1_MUSIC_UAC2 : get_fps_firmware_flag(saved_mode);
SetRoleSwitchFlag(flag);
#ifndef DISABLE_REBOOT
device_reboot();
@@ -1319,9 +1328,10 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
// Music btn: toggle LED locally (no reboot)
// Game/AI7.1 btn: save mode + reboot (F5 will route to FPS firmware)
//
// FPS firmware (F3/F4, F6/F7): USE_EX3D set
// FPS firmware (F3 Game / F4 AI7.1, F6/F7): USE_EX3D set
// Music btn: save mode=1 + reboot (F5 will route to music firmware)
// Game/AI7.1 btn: switch IR algorithm locally (no reboot)
// F3: Game 本地切 mode2AI7.1 需重启切 F4
// F4: AI7.1 本地切 mode3Game 需重启切 F3
unsigned mode_btn_change = 0;
unsigned need_reboot = 0;
@@ -1390,7 +1400,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
if (!btn_combo_active) {
if (btn_music_hold_ticks == BTN_COMBO_DELAY_TICKS) {
debug_printf("Music button pressed for %d ticks\n", BTN_COMBO_DELAY_TICKS);
#if (F3_F4_FPS_UAC2 == 1)
#if (F3_FPS_UAC2 == 1) || (F4_FPS_UAC2 == 1)
// 改动原因F3/F4 FPS 固件按 Music 键切回 F1 Music
active_mode = 1;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F1_MUSIC_UAC2);
@@ -1423,9 +1434,10 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
if (btn_game_hold_ticks == BTN_COMBO_DELAY_TICKS) {
debug_printf("Game button pressed for %d ticks\n", BTN_COMBO_DELAY_TICKS);
#if F1_MUSIC_UAC2 == 1
// 改动原因Music 固件按 Game 键启动 F3 Game 固件
active_mode = 2;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F3_F4_FPS_UAC2);
SetRoleSwitchFlag(MODE_F3_FPS_UAC2);
#elif (F5_MUSIC_UAC1 == 1)
// UAC1 Music firmware: game needs F6/F7, reboot if not already game
if (active_mode != 2) {
@@ -1439,11 +1451,17 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
active_mode = 2;
mode_btn_change = 1;
}
#else
#elif (F3_FPS_UAC2 == 1)
// 改动原因:已在 F3 Game 固件Game 键仅本地切 mode2
if (active_mode != 2) {
active_mode = 2;
mode_btn_change = 1;
}
#elif (F4_FPS_UAC2 == 1)
// 改动原因F4 AI7.1 固件按 Game 键需重启加载 F3 Game 固件
active_mode = 2;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F3_FPS_UAC2);
#endif
}
}
@@ -1459,10 +1477,10 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
if (button_ai71_onoff == 0) {
if (push_button_ai71_onoff_state_old == 1) {
#if (F1_MUSIC_UAC2 == 1)
// Music-only firmware: AI7.1 needs FPS firmware
// 改动原因Music 固件按 AI7.1 键启动 F4 AI7.1 固件
active_mode = 3;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F3_F4_FPS_UAC2);
SetRoleSwitchFlag(MODE_F4_FPS_UAC2);
#elif (F5_MUSIC_UAC1 == 1)
// UAC1 Music firmware: AI71 needs F6/F7 FPS, reboot if not already AI71
if (active_mode != 3) {
@@ -1476,12 +1494,17 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
active_mode = 3;
mode_btn_change = 1;
}
#else
// FPS firmware: switch algorithm locally (activate if not already)
#elif (F4_FPS_UAC2 == 1)
// 改动原因:已在 F4 AI7.1 固件AI7.1 键仅本地切 mode3
if (active_mode != 3) {
active_mode = 3;
mode_btn_change = 1;
}
#elif (F3_FPS_UAC2 == 1)
// 改动原因F3 Game 固件按 AI7.1 键需重启加载 F4 AI7.1 固件
active_mode = 3;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F4_FPS_UAC2);
#endif
}
}
@@ -1494,20 +1517,40 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
if (hid_req_mode != (unsigned)-1) {
SET_SHARED_GLOBAL(g_request_game_mode, (unsigned)-1);
unsigned target = (hid_req_mode <= 3) ? hid_req_mode : 0;
#if (F3_F4_FPS_UAC2 == 1)
#if (F3_FPS_UAC2 == 1) || (F4_FPS_UAC2 == 1)
// 改动原因HID 0xA4 在 F3/F4 间切换需跨固件重启,同固件则本地切算法
if (target == 1) {
active_mode = target;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F1_MUSIC_UAC2);
} else {
active_mode = target;
mode_btn_change = 1;
} else if (target == 2) {
#if (F3_FPS_UAC2 == 1)
if (active_mode != 2) {
active_mode = 2;
mode_btn_change = 1;
}
#else
active_mode = 2;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F3_FPS_UAC2);
#endif
} else if (target == 3) {
#if (F4_FPS_UAC2 == 1)
if (active_mode != 3) {
active_mode = 3;
mode_btn_change = 1;
}
#else
active_mode = 3;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F4_FPS_UAC2);
#endif
}
#elif (F1_MUSIC_UAC2 == 1)
if (target >= 2) {
active_mode = target;
need_reboot = 1;
SetRoleSwitchFlag(MODE_F3_F4_FPS_UAC2);
SetRoleSwitchFlag(get_fps_firmware_flag(target));
} else {
active_mode = target;
mode_btn_change = 1;
@@ -1616,8 +1659,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
delay_milliseconds(100);
}
#endif
// 出厂恢复默认AI7.1模式(mode=3需要F3/F4固件
SetRoleSwitchFlag(MODE_F3_F4_FPS_UAC2);
// 改动原因:出厂默认 AI7.1(mode=3),启动 F4 AI7.1 固件
SetRoleSwitchFlag(MODE_F4_FPS_UAC2);
delay_milliseconds(20);
#ifndef DISABLE_REBOOT
device_reboot();
@@ -2426,7 +2469,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
#if UAC1_MODE == 1
GET_SHARED_GLOBAL(host_os, g_host_os);
if (host_os == OS_WIN) {
unsigned flag = (saved_mode <= 1) ? MODE_F1_MUSIC_UAC2 : MODE_F3_F4_FPS_UAC2;
// 改动原因:运行时 OS 检测为 Windows 时按 mode 路由 F1/F3/F4
unsigned flag = (saved_mode <= 1) ? MODE_F1_MUSIC_UAC2 : get_fps_firmware_flag(saved_mode);
SetRoleSwitchFlag(flag);
#ifndef DISABLE_REBOOT
device_reboot();

View File

@@ -229,55 +229,6 @@ void UserBufferManagement(unsigned sampsFromUsbToAudio[], unsigned sampsFromAudi
#endif
}
#if defined(SPATIAL_DRAMA) || defined(SPATIAL_GAME) || defined(SPATIAL_MOVIE) || defined(SPATIAL_MUSIC) || defined(IR_SWITCHING_MODE)
// 6ch version
// C and LFE -3dB mixed to L and R.
// L = L + C*-3dB + LFE*-3dB
// R = R + C*-3dB + LFE*-3dB
int32_t input_L = (int32_t)sampsFromUsbToAudio[0];
int32_t input_R = (int32_t)sampsFromUsbToAudio[1];
int32_t input_C = (int32_t)sampsFromUsbToAudio[2];
int32_t input_LFE = (int32_t)sampsFromUsbToAudio[3];
// -3dB Gain = 10^(-3/20) ~= 0.707946
// Using 0.70710678 (1/sqrt(2)) approximation for -3dB
// Q31 factor: 0.70710678 * 2^31 = 1518500250
const int32_t gain_minus_3db = 1518500250;
int32_t C_weighted = (int32_t)(((int64_t)input_C * gain_minus_3db) >> 31);
int32_t LFE_weighted = (int32_t)(((int64_t)input_LFE * gain_minus_3db) >> 31);
int64_t sum_L = (int64_t)input_L + C_weighted + LFE_weighted;
int64_t sum_R = (int64_t)input_R + C_weighted + LFE_weighted;
// Saturation logic
if (sum_L > 2147483647) sum_L = 2147483647;
else if (sum_L < -2147483648) sum_L = -2147483648;
if (sum_R > 2147483647) sum_R = 2147483647;
else if (sum_R < -2147483648) sum_R = -2147483648;
// only for Stereo game, Stereo music and Stereo movie mode
if ((is_3d > IR_OFF) && (is_3d < IR_7_1_GAME)) {
// stereo mode
ubm_egress[0][frame_index] = 0;
ubm_egress[1][frame_index] = 0;
ubm_egress[2][frame_index] = 0;
ubm_egress[3][frame_index] = 0;
ubm_egress[4][frame_index] = 0;
ubm_egress[5][frame_index] = 0;
ubm_egress[6][frame_index] = (int32_t)sum_L; //SL
ubm_egress[7][frame_index] = (int32_t)sum_R; //SR
} else {
ubm_egress[0][frame_index] = (int32_t)sum_L;
ubm_egress[1][frame_index] = (int32_t)sum_R;
}
// Zero out C (2) and LFE (3) since they are mixed into L/R
ubm_egress[2][frame_index] = 0;
ubm_egress[3][frame_index] = 0;
#endif
for(int ch=0;ch<DSP_MIXER_OUTPUT_CHANNEL_COUNT;ch++) {
sampsFromUsbToAudio[ch] = ubm_ingress[ch][frame_index];
@@ -397,30 +348,7 @@ void hid_receive_task_in_c(unsigned char * RcvData, unsigned * SendData)
if (CMD_SET(CMD_ONOFF) == command_code) {
// set DrAX on/off
//audio_ex3d_onoff(pRcvBuf[1]);
uint32_t onoff = pRcvBuf[1];
//audio_ex3d_set_onoff(pRcvBuf[1]);
audio_ex3d_set_onoff(onoff);
uint32_t cur_mode;
GET_SHARED_GLOBAL(cur_mode, g_3d_on_off_t1);
if (onoff == 0) {
// 改动原因:关闭算法时记录当前声场索引(0~2)供下次打开时恢复然后仅把共享变量置为IR_OFF
if (cur_mode == IR_7_1_MOVIE) {
last_sf_idx_0_2 = 2;
} else if (cur_mode == IR_7_1_GAME) {
last_sf_idx_0_2 = 1;
} else {
last_sf_idx_0_2 = 0;
}
cur_mode = IR_OFF;
SET_SHARED_GLOBAL(g_3d_on_off_t1, cur_mode);
} else {
// 改动原因:打开算法时恢复到最近一次选择的声场(0~2),并统一映射到 IR_GAME..IR_MOVIE不再暴露6个族
unsigned new_mode;
if (last_sf_idx_0_2 == 2) new_mode = IR_7_1_MOVIE;
else if (last_sf_idx_0_2 == 1) new_mode = IR_7_1_GAME;
else new_mode = IR_GAME;
SET_SHARED_GLOBAL(g_3d_on_off_t1, new_mode);
}
audio_ex3d_set_onoff(pRcvBuf[1]);
debug_printf("Set CMD_ONOFF : %u\r\n", pRcvBuf[1]);
} else {
debug_printf("Get CMD_ONOFF : %u\r\n", bEX3D_On);
@@ -589,45 +517,12 @@ void hid_receive_task_in_c(unsigned char * RcvData, unsigned * SendData)
if (CMD_SET(CMD_SOUND_FIELD) == command_code) {
int32_t sfIdx = pRcvBuf[1];
debug_printf("Set CMD_SOUND_FIELD : ");
// 改动原因:
// - host UI 现在只暴露3个“带算法声场”GAME/MUSIC/MOVIE 三选一)。
// - 算法开关通过 CMD_ONOFF/其它接口单独控制CMD_SOUND_FIELD 不能隐式把算法打开/关闭。
// 因此CMD_SOUND_FIELD 只接受 0~2对应 GAME/MUSIC/MOVIE并且在算法OFF(IR_OFF)时只缓存选择、不改共享变量。
if (sfIdx >= 0 && sfIdx < 3) {
unsigned cur_mode;
GET_SHARED_GLOBAL(cur_mode, g_3d_on_off_t1);
last_sf_idx_0_2 = (unsigned)sfIdx;
if (cur_mode == IR_OFF) {
// 改动原因:算法已关闭时不写 g_3d_on_off_t1避免 event_polling 误判“主机改变声场”而自动打开算法
debug_printf("algorithm OFF, cache sound field idx=%d only (no implicit on/off)\n", sfIdx);
} else {
// 改动原因算法已开启时才更新声场因EX3D_SF_NUM=3不再区分6个族
unsigned new_mode;
if (sfIdx == 1) new_mode = IR_7_1_GAME;
else if (sfIdx == 2) new_mode = IR_7_1_MOVIE;
else new_mode = IR_GAME;
SET_SHARED_GLOBAL(g_3d_on_off_t1, new_mode);
debug_printf("set sound field idx=%d -> g_3d_on_off_t1=%d (no implicit on/off)\n", sfIdx, new_mode);
}
} else {
// 改动原因EX3D_SF_NUM=3后只支持0~2超过范围返回错误
if (sfIdx < EX3D_SF_NUM) {
audio_ex3d_set_sf(sfIdx);
} else
pSendBuf[idx] = 0xFFFFFFFF;
}
} else { // Get
// 改动原因:返回当前声场索引(0~2: GAME/MUSIC/MOVIE)若算法OFF则返回缓存值避免依赖 g_3d_on_off_t1=IR_OFF
unsigned cur_mode;
GET_SHARED_GLOBAL(cur_mode, g_3d_on_off_t1);
if (cur_mode == IR_OFF) {
pSendBuf[idx] = last_sf_idx_0_2;
} else if (cur_mode == IR_7_1_MOVIE) {
pSendBuf[idx] = 2;
} else if (cur_mode == IR_7_1_GAME) {
pSendBuf[idx] = 1;
} else {
pSendBuf[idx] = 0;
}
pSendBuf[idx] = 0;//EX3D_SF_Idx;
}
break;
@@ -948,30 +843,16 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
if ((current_mode_local == 0) || (current_mode_local == 1)) {
// 无音效模式关闭EX3D和EQ算法
audio_ex3d_set_onoff(0);
is_3d_on = IR_OFF;
debug_printf("Mode 0: EX3D+EQ OFF\n");
} else if (current_mode_local == 2) {
// 音乐模式EX3D关闭EQ开启
#if (MODE_F3_F4_FPS_UAC2 == 1)
audio_ex3d_set_onoff(1);
is_3d_on = IR_GAME;
#endif
#if (MODE_F6_F7_FPS_UAC1 == 1)
audio_ex3d_set_onoff(0);
is_3d_on = IR_OFF;
#endif
} else if (current_mode_local == 3) {
#if (MODE_F3_F4_FPS_UAC2 == 1)
audio_ex3d_set_onoff(1);
is_3d_on = IR_7_1_GAME;
#endif
#if (MODE_F6_F7_FPS_UAC1 == 1)
audio_ex3d_set_onoff(1);
is_3d_on = IR_GAME;
#endif
}
#endif
} else if (tmp == 0xFD) {
// 脚步增强按键发来的 expand gain 命令
// 必须先读取payload无论是否启用EX3D
@@ -1107,37 +988,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
hwtimer_set_trigger_time(timer, hwtimer_get_time(timer) + KEY_POLLING_INTERVAL);
#if USE_EX3D == 1
// 检查 host app 是否通过 HID 改变了音场状态
uint32_t host_app_sf;
GET_SHARED_GLOBAL(host_app_sf, g_3d_on_off_t1);
if (host_app_sf != is_3d_on) {
is_3d_on = host_app_sf;
// Select SF and set on/off together
if (is_3d_on == IR_OFF) {
audio_ex3d_set_onoff(0);
current_mode_local = 0;
debug_printf("3d off\n");
} else if (is_3d_on == IR_GAME) {
audio_ex3d_set_sf(0);
audio_ex3d_set_onoff(1);
current_mode_local = 1;
debug_printf("Stereo Game on (sf=0)\n");
} else if (is_3d_on == IR_7_1_GAME) {
audio_ex3d_set_sf(1);
audio_ex3d_set_onoff(1);
current_mode_local = 2;
debug_printf("3d Game on (sf=1)\n");
} else if (is_3d_on == IR_7_1_MOVIE) {
audio_ex3d_set_sf(2);
audio_ex3d_set_onoff(1);
current_mode_local = 3;
debug_printf("3d Movie on (sf=2)\n");
} else {
audio_ex3d_set_onoff(is_3d_on != IR_OFF);
}
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
}
#endif
}
continue;
@@ -1219,25 +1070,15 @@ void ex3d_task(){
#define TD_DATA_BUFFER_ELEMENTS SPATIAL_STEREO_2K_v090h090_left_DATA_BUFFER_ELEMENTS
#elif defined(STEREO_8K)
#define TD_DATA_BUFFER_ELEMENTS SPATIAL_STEREO_8K_v090h090_left_DATA_BUFFER_ELEMENTS
#elif defined(IR_SWITCHING_MODE)
#define TD_DATA_BUFFER_ELEMENTS SPATIAL_71_GAME_v090h225_left_DATA_BUFFER_ELEMENTS
#else
#error you need to define SPATIAL_DRAMA or STEREO_8K....
#endif
#if defined (IR_SWITCHING_MODE)
int dsp_worker(chanend_t c_dsp_to_ex3d,
td_block_fir_filter_t * filters[DSP_WORKER_FILTER_PER_DATA_CH*DSP_WORKER_DATA_CH_COUNT*4]){
#else
int dsp_worker(chanend_t c_dsp_to_ex3d,
td_block_fir_filter_t * filters[DSP_WORKER_FILTER_PER_DATA_CH*DSP_WORKER_DATA_CH_COUNT]){
#endif
int32_t sample_buffer[DSP_WORKER_DATA_CH_COUNT][TD_DATA_BUFFER_ELEMENTS];
td_block_fir_data_t fir_data[DSP_WORKER_DATA_CH_COUNT];
#if defined (IR_SWITCHING_MODE)
static uint32_t ir_mode;
GET_SHARED_GLOBAL(ir_mode, g_3d_on_off_t1);
#endif
for(int i=0;i<DSP_WORKER_DATA_CH_COUNT;i++)
td_block_fir_data_init(&(fir_data[i]), sample_buffer[i], TD_DATA_BUFFER_ELEMENTS);
@@ -1247,15 +1088,6 @@ int dsp_worker(chanend_t c_dsp_to_ex3d,
memset(sample_buffer, 0, sizeof(sample_buffer));
while(1){
GET_SHARED_GLOBAL(ir_mode, g_3d_on_off_t1);
if (ir_mode) {
//ir_mode = ir_mode & (0x03);
if (ir_mode > 3) {
ir_mode -= 4;
} else {
ir_mode -= 1;
}
}
for(int ch=0;ch<DSP_WORKER_DATA_CH_COUNT;ch++){
chan_in_buf_word(c_dsp_to_ex3d, (uint32_t *)input[ch], DSP_BLOCK_LENGTH);
@@ -1268,8 +1100,8 @@ int dsp_worker(chanend_t c_dsp_to_ex3d,
}
for(int ch=0;ch<DSP_WORKER_DATA_CH_COUNT;ch++){
for(int d=0;d<DSP_WORKER_FILTER_PER_DATA_CH;d++){
if(filters[(ir_mode*6) + DSP_WORKER_FILTER_PER_DATA_CH*ch+d] != 0){
td_block_fir_compute(output[DSP_WORKER_FILTER_PER_DATA_CH*ch+d], &(fir_data[ch]), filters[(ir_mode*6) + DSP_WORKER_FILTER_PER_DATA_CH*ch+d]);
if(filters[DSP_WORKER_FILTER_PER_DATA_CH*ch+d] != 0){
td_block_fir_compute(output[DSP_WORKER_FILTER_PER_DATA_CH*ch+d], &(fir_data[ch]), filters[DSP_WORKER_FILTER_PER_DATA_CH*ch+d]);
} else {
memset(output[DSP_WORKER_FILTER_PER_DATA_CH*ch+d], 0, TD_BLOCK_FIR_LENGTH*sizeof(int32_t));
}
@@ -1344,16 +1176,28 @@ int dsp_worker_tile(chanend_t c_dsp_to_ex3d, int worker_id){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_right,
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_right,
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_right
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 1){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_right,
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_right,
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_right
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 2){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h000_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h000_right,
&td_block_fir_filter_SPATIAL_71_DRAMA_lfe_left, &td_block_fir_filter_SPATIAL_71_DRAMA_lfe_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 3){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_right,
&td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else {
@@ -1365,16 +1209,28 @@ int dsp_worker_tile(chanend_t c_dsp_to_ex3d, int worker_id){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_GAME_v090h225_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h225_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h315_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h315_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h090_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h090_right
&td_block_fir_filter_SPATIAL_71_GAME_v090h315_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h315_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 1){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_GAME_v090h045_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h045_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h135_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h135_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h270_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h270_right
&td_block_fir_filter_SPATIAL_71_GAME_v090h135_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h135_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 2){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_GAME_v090h000_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h000_right,
&td_block_fir_filter_SPATIAL_71_GAME_lfe_left, &td_block_fir_filter_SPATIAL_71_GAME_lfe_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 3){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_GAME_v090h270_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h270_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h090_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h090_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else {
@@ -1386,16 +1242,28 @@ int dsp_worker_tile(chanend_t c_dsp_to_ex3d, int worker_id){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_right
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 1){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_right
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 2){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h000_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h000_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_lfe_left, &td_block_fir_filter_SPATIAL_71_MOVIE_lfe_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 3){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else {
@@ -1407,61 +1275,28 @@ int dsp_worker_tile(chanend_t c_dsp_to_ex3d, int worker_id){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_right
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 1){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_right
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else {
exit(1);
}
// IR SWITCHING MODE
#elif defined(IR_SWITCHING_MODE)
if(worker_id == 0){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH*4] =
} else if(worker_id == 2){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_GAME_v090h225_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h225_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h315_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h315_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h090_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h090_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_right,
0,0,//&td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_right,
0,0,//&td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_right,
0,0//&td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_right
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h000_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h000_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_lfe_left, &td_block_fir_filter_SPATIAL_71_MUSIC_lfe_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else if(worker_id == 1){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH*4] =
} else if(worker_id == 3){
td_block_fir_filter_t * filters[DSP_WORKER_DATA_CH_COUNT*DSP_WORKER_FILTER_PER_DATA_CH] =
{
&td_block_fir_filter_SPATIAL_71_GAME_v090h045_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h045_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h135_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h135_right,
&td_block_fir_filter_SPATIAL_71_GAME_v090h270_left, &td_block_fir_filter_SPATIAL_71_GAME_v090h270_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_right,
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_right,
&td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_left, &td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_right,
0,0,//&td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_right,
0,0,//&td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_right,
0,0//&td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_left, &td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_right
&td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_left, &td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_right
};
dsp_worker(c_dsp_to_ex3d, filters);
} else {