Compare commits
23 Commits
7f0eb6b691
...
synido_sy1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f92c454d5 | ||
|
|
3a11b4f891 | ||
|
|
395e057f8b | ||
|
|
03c2b83781 | ||
|
|
46f6d6c06d | ||
|
|
c4d18835fa | ||
|
|
ec6d280c6a | ||
|
|
8a1f576ee3 | ||
|
|
e4405d3b10 | ||
|
|
77c7568dc2 | ||
|
|
23055f830e | ||
|
|
f63a6e0653 | ||
|
|
b8f93ea5f5 | ||
|
|
9205b48882 | ||
|
|
f4faefc8e5 | ||
|
|
85e8bf04f0 | ||
|
|
3ebd834450 | ||
|
|
a42d5ec059 | ||
|
|
782a487479 | ||
|
|
320155bb6a | ||
|
|
aa57b8143a | ||
|
|
920cb576f4 | ||
|
|
f9ee4b7523 |
BIN
lib_ex3d/.DS_Store
vendored
Normal file
BIN
lib_ex3d/.DS_Store
vendored
Normal file
Binary file not shown.
10
lib_ex3d/Makefile
Normal file
10
lib_ex3d/Makefile
Normal 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
|
||||
BIN
lib_ex3d/lib_ex3d/.DS_Store
vendored
BIN
lib_ex3d/lib_ex3d/.DS_Store
vendored
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_drama.a
Normal file
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_drama.a
Normal file
Binary file not shown.
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_game.a
Normal file
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_game.a
Normal file
Binary file not shown.
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_movie.a
Normal file
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_movie.a
Normal file
Binary file not shown.
Binary file not shown.
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_2k.a
Normal file
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_2k.a
Normal file
Binary file not shown.
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_8k.a
Normal file
BIN
lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_8k.a
Normal file
Binary file not shown.
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
#ifndef FLASH_MAX_UPGRADE_SIZE
|
||||
//#define FLASH_MAX_UPGRADE_SIZE (512 * 1024)
|
||||
#define FLASH_MAX_UPGRADE_SIZE (2200 * 1024)
|
||||
#define FLASH_MAX_UPGRADE_SIZE (3000 * 1024)
|
||||
#endif
|
||||
|
||||
#define FLASH_ERROR() do {} while(0)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -37,8 +37,8 @@ endif()
|
||||
|
||||
# Firmware version (maps to BCD_DEVICE_J.M.N in USB descriptor)
|
||||
set(FW_VER_J 1)
|
||||
set(FW_VER_M 1)
|
||||
set(FW_VER_N 11)
|
||||
set(FW_VER_M 2)
|
||||
set(FW_VER_N 3)
|
||||
set(FW_VERSION "v${FW_VER_J}.${FW_VER_M}.${FW_VER_N}")
|
||||
|
||||
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -Os
|
||||
@@ -75,109 +75,109 @@ 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
|
||||
-DUSE_EX3D=1
|
||||
-DF3_F4_FPS_UAC2=1
|
||||
-DF3_FPS_UAC2=1
|
||||
-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,28 +194,25 @@ 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
|
||||
-DF4_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
|
||||
@@ -226,10 +223,43 @@ set(APP_COMPILER_FLAGS_f6_f7_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
#-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}/../..)
|
||||
|
||||
@@ -238,17 +268,19 @@ XMOS_REGISTER_APP()
|
||||
###=========================================================================###
|
||||
# Flash image generation
|
||||
# Slot assignment (matches MODE_Fxx flag values in audiohw.xc):
|
||||
# slot 1 = f3_f4_fps_uac2 (COAX_IN_FLAG = MODE_F3_F4_FPS_UAC2)
|
||||
# slot 2 = f5_music_uac1 (UAC1_IN_FLAG = MODE_F5_MUSIC_UAC1) <- factory base
|
||||
# slot 1 = f3_fps_uac2 (COAX_IN_FLAG = MODE_F3_FPS_UAC2) Game
|
||||
# slot 2 = f5_music_uac1 (USB_IN_FLAG = MODE_F5_MUSIC_UAC1) <- factory base
|
||||
# slot 3 = f1_music_uac2 (OPT_IN_FLAG = MODE_F1_MUSIC_UAC2)
|
||||
# slot 4 = f6_f7_fps_uac1 (USB_IN_FLAG = MODE_F6_F7_FPS_UAC1)
|
||||
# slot 4 = f6_f7_fps_uac1 (UAC1_IN_FLAG = MODE_F6_F7_FPS_UAC1)
|
||||
# slot 5 = f4_fps_uac2 (BT_IN_FLAG = MODE_F4_FPS_UAC2) AI7.1
|
||||
###=========================================================================###
|
||||
|
||||
set(APP_BIN_DIR ${CMAKE_CURRENT_LIST_DIR}/bin)
|
||||
set(APP_BASE ${PROJECT_NAME})
|
||||
set(XE_FACT ${APP_BIN_DIR}/fact/${APP_BASE}_fact.xe)
|
||||
set(XE_F1 ${APP_BIN_DIR}/f1_music_uac2/${APP_BASE}_f1_music_uac2.xe)
|
||||
set(XE_F3F4 ${APP_BIN_DIR}/f3_f4_fps_uac2/${APP_BASE}_f3_f4_fps_uac2.xe)
|
||||
set(XE_F3 ${APP_BIN_DIR}/f3_fps_uac2/${APP_BASE}_f3_fps_uac2.xe)
|
||||
set(XE_F4 ${APP_BIN_DIR}/f4_fps_uac2/${APP_BASE}_f4_fps_uac2.xe)
|
||||
set(XE_F5 ${APP_BIN_DIR}/f5_music_uac1/${APP_BASE}_f5_music_uac1.xe)
|
||||
set(XE_F6F7 ${APP_BIN_DIR}/f6_f7_fps_uac1/${APP_BASE}_f6_f7_fps_uac1.xe)
|
||||
set(LOADER_OBJ ${CMAKE_CURRENT_LIST_DIR}/loader.o)
|
||||
@@ -256,12 +288,13 @@ set(TARGET_XN ${CMAKE_CURRENT_LIST_DIR}/src/core/synido.xn)
|
||||
|
||||
# factory_<project>_<version>.bin — full factory image (base + 4 upgrade slots)
|
||||
add_custom_target(factory_bin
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "xflash ${XE_FACT} --loader ${LOADER_OBJ} --upgrade 1 ${XE_F3F4} --upgrade 2 ${XE_F5} --upgrade 3 ${XE_F1} --upgrade 4 ${XE_F6F7} -o ${CMAKE_CURRENT_LIST_DIR}/factory_${APP_BASE}_${FW_VERSION}.bin"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "xflash ${XE_FACT} --loader ${LOADER_OBJ} --upgrade 1 ${XE_F3} --upgrade 5 ${XE_F4} --upgrade 2 ${XE_F5} --upgrade 3 ${XE_F1} --upgrade 4 ${XE_F6F7} -o ${CMAKE_CURRENT_LIST_DIR}/factory_${APP_BASE}_${FW_VERSION}.bin"
|
||||
COMMAND xflash ${XE_FACT} --loader ${LOADER_OBJ}
|
||||
--upgrade 2 ${XE_F5}
|
||||
--upgrade 3 ${XE_F1}
|
||||
--upgrade 1 ${XE_F3F4}
|
||||
--upgrade 1 ${XE_F3}
|
||||
--upgrade 4 ${XE_F6F7}
|
||||
--upgrade 5 ${XE_F4}
|
||||
-o ${CMAKE_CURRENT_LIST_DIR}/factory_${APP_BASE}_${FW_VERSION}.bin
|
||||
#DEPENDS f1_music_uac2 f3_f4_fps_uac2 f5_music_uac1 f6_f7_fps_uac1
|
||||
COMMENT "Generating factory image: factory_${APP_BASE}_${FW_VERSION}.bin"
|
||||
@@ -270,12 +303,13 @@ add_custom_target(factory_bin
|
||||
|
||||
# update_<project>_<version>.bin — DFU upgrade package (upgrade slots only)
|
||||
add_custom_target(update_bin
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "xflash --factory-version 15.2 --target-file ${TARGET_XN} --upgrade 1 ${XE_F3F4} --upgrade 2 ${XE_F5} --upgrade 3 ${XE_F1} --upgrade 4 ${XE_F6F7} -o ${CMAKE_CURRENT_LIST_DIR}/update_${APP_BASE}_${FW_VERSION}.bin"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "xflash --factory-version 15.2 --target-file ${TARGET_XN} --upgrade 1 ${XE_F3} --upgrade 5 ${XE_F4} --upgrade 2 ${XE_F5} --upgrade 3 ${XE_F1} --upgrade 4 ${XE_F6F7} -o ${CMAKE_CURRENT_LIST_DIR}/update_${APP_BASE}_${FW_VERSION}.bin"
|
||||
COMMAND xflash --factory-version 15.2 --target-file ${TARGET_XN}
|
||||
--upgrade 2 ${XE_F5}
|
||||
--upgrade 3 ${XE_F1}
|
||||
--upgrade 1 ${XE_F3F4}
|
||||
--upgrade 1 ${XE_F3}
|
||||
--upgrade 4 ${XE_F6F7}
|
||||
--upgrade 5 ${XE_F4}
|
||||
-o ${CMAKE_CURRENT_LIST_DIR}/update_${APP_BASE}_${FW_VERSION}.bin
|
||||
#DEPENDS f1_music_uac2 f3_f4_fps_uac2 f5_music_uac1 f6_f7_fps_uac1
|
||||
COMMENT "Generating update image: update_${APP_BASE}_${FW_VERSION}.bin"
|
||||
|
||||
@@ -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 Game,slot5=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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -78,12 +78,14 @@ unsigned g_mute_enable = 0;
|
||||
unsigned g_mute_state = 0;
|
||||
unsigned g_mute_state_old = 1;
|
||||
unsigned g_unmute_dac_state, g_unmute_time, g_format_time;
|
||||
unsigned g_volume_level = 29, g_saved_volume_level = 29;
|
||||
// 改动原因:DAC音量协议扩展到49级(0~48),默认值同步到最大级48。
|
||||
unsigned g_volume_level = 24, g_saved_volume_level = 24;
|
||||
unsigned g_request_volume_set = 0;
|
||||
unsigned g_init_saved_settings = 0;
|
||||
unsigned g_host_volume = 0x0;
|
||||
unsigned g_last_volume_level = 0xFF; // 上次已上报的音量级别,0xFF表示初始化未完成
|
||||
unsigned g_mic_volume_level = 37; // 麦克风PGA增益级别(0=mute, 1-37=0dB~36dB,HID可见范围)
|
||||
// 改动原因:麦克风HID等级调整为49级(0~48),并将最大模拟增益限制到24dB。
|
||||
unsigned g_mic_volume_level = 24; // 麦克风音量等级(0=mute, 1~48=0~24dB,0.5dB/级)
|
||||
unsigned g_request_mic_volume_set = 0;
|
||||
unsigned g_last_mic_volume_level = 0xFF; // 上次已上报的麦克风增益级别,0xFF表示初始化未完成
|
||||
unsigned g_dnr_strength = 100; // AI降噪强度HID值(1-100=档位,步进1;100→-200dB最强;关断由g_dnr_on控制,此处不再用0表示强度)
|
||||
@@ -103,6 +105,8 @@ unsigned g_led_enable = 1; // LED开关,默认开启
|
||||
// HID 0xB0 CMD_EXPAND_GAIN到达时由eq.c设置,button_task读取后更新footstep LED
|
||||
// -1 (0xFFFFFFFF) 表示无待处理请求
|
||||
unsigned g_hid_expand_gain_request = (unsigned)-1;
|
||||
// 改动原因:led_on()全局亮度仅30;脚步增强开档需满亮(255),旧3档高亮档原为128,2档改15dB后应更亮
|
||||
#define LED_FOOTSTEP_ON_BRIGHTNESS 255
|
||||
// HID 0xB0 CMD_LMT_THRESHOLD到达时由eq.c设置,button_task读取后保存到flash
|
||||
// 存储值为-threshold (0~35);-1 (0xFFFFFFFF) 表示无待处理请求
|
||||
unsigned g_hid_lmt_threshold_request = (unsigned)-1;
|
||||
@@ -211,11 +215,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;
|
||||
@@ -235,14 +247,34 @@ void board_setup()
|
||||
|
||||
// tile 0
|
||||
// called on tile 0 - start
|
||||
#define NAU88L21_PGA_GAIN_REG_MIN_USED_VALUE 0x0 // 0x1=1, 0dB (0x0, -1dB which is not used in this design)
|
||||
#define NAU88L21_PGA_GAIN_REG_MAX_VALUE 0x25+1 // 0x25=37, 36dB. +1 is for extra 1.5dB digital gain
|
||||
#define NAU88L21_PGA_GAIN_REG_DEFAULT_VALUE (NAU88L21_PGA_GAIN_REG_MAX_VALUE)
|
||||
// 改动原因:协议层改为49级(0~48),硬件仍是1dB步进;通过“2个等级映射1dB”实现24dB上限。
|
||||
#define MIC_HID_LEVEL_MIN 0
|
||||
#define MIC_HID_LEVEL_MAX 48
|
||||
#define MIC_HID_LEVEL_DEFAULT 24 // 24dB,保持原默认听感接近
|
||||
#define DAC_HID_LEVEL_DEFAULT 24 // 24dB,保持原默认听感接近
|
||||
|
||||
// DAC 监听音量控制范围: 共 30 级 (0~29)
|
||||
// 0 = mute (全灭, reg 0x0034=0x0000), 1~29 = -28dB ~ 0dB,1dB/步
|
||||
#define NAU88L21_PGA_GAIN_REG_MIN_USED_VALUE 0x0 // 0=mute
|
||||
#define NAU88L21_PGA_GAIN_REG_MAX_VALUE 0x18 // 24dB上限
|
||||
#define NAU88L21_PGA_GAIN_REG_DEFAULT_VALUE 0x16 // 22dB默认
|
||||
|
||||
// 改动原因:49级HID等级(0.5dB/级)需映射到Codec 1dB步进寄存器,避免改动底层codec写寄存器逻辑。
|
||||
static inline unsigned mic_hid_level_to_codec_gain(unsigned hid_level)
|
||||
{
|
||||
if (hid_level == 0) {
|
||||
return 0;
|
||||
}
|
||||
// ceil(hid_level / 2),把两档HID映射到1dB硬件步进
|
||||
unsigned codec_gain = (hid_level + 1) >> 1;
|
||||
if (codec_gain > NAU88L21_PGA_GAIN_REG_MAX_VALUE) {
|
||||
codec_gain = NAU88L21_PGA_GAIN_REG_MAX_VALUE;
|
||||
}
|
||||
return codec_gain;
|
||||
}
|
||||
|
||||
// 改动原因:按 SY102dac对应表.csv,将DAC HID范围扩展为49级(0~48)。
|
||||
// 0 = mute,1~48 = 有效音量等级(LED按csv映射显示)。
|
||||
#define DAC_LEVEL_MIN 0 // mute,0 LEDs
|
||||
#define DAC_LEVEL_MAX 29 // 0dB,15 LEDs
|
||||
#define DAC_LEVEL_MAX 48 // max level,15 LEDs
|
||||
#define DAC_LEVEL_DEFAULT DAC_LEVEL_MAX
|
||||
|
||||
static inline void NAU88C22_REGREAD(unsigned reg, unsigned &val, client interface i2c_master_if i2c)
|
||||
@@ -265,6 +297,7 @@ static inline i2c_regop_res_t NAU88C22_REGWRITE(unsigned reg, unsigned val, clie
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_printf("I2C write success: reg=%08x, val=%08x\n", reg, val);
|
||||
//debug_printf("I2C write success: reg=");
|
||||
//printhex(reg);
|
||||
//debug_printf(", val=");
|
||||
@@ -276,10 +309,73 @@ static inline i2c_regop_res_t NAU88C22_REGWRITE(unsigned reg, unsigned val, clie
|
||||
return result;
|
||||
}
|
||||
|
||||
void dac_volume(signed level)
|
||||
// 改动原因:按 SY102dac对应表.csv 建立 0~48 级到 DAC 寄存器值的精确映射,
|
||||
// 修复旧线性公式导致的 dB 对应错误(例如 47级应为-0.5dB,46级应为-1dB)。
|
||||
static const uint8_t dac_level_to_reg[49] = {
|
||||
0x0E, // [0] mute(调用方通常直接写0x0000)
|
||||
0x4B, // [1] -66dB
|
||||
0x4F, // [2] -64dB
|
||||
0x53, // [3] -62dB
|
||||
0x57, // [4] -60dB
|
||||
0x5B, // [5] -58dB
|
||||
0x5F, // [6] -56dB
|
||||
0x63, // [7] -54dB
|
||||
0x67, // [8] -52dB
|
||||
0x6B, // [9] -50dB
|
||||
0x6F, // [10] -48dB
|
||||
0x73, // [11] -46dB
|
||||
0x77, // [12] -44dB
|
||||
0x7B, // [13] -42dB
|
||||
0x7F, // [14] -40dB
|
||||
0x83, // [15] -38dB
|
||||
0x87, // [16] -36dB
|
||||
0x8B, // [17] -34dB
|
||||
0x8F, // [18] -32dB
|
||||
0x93, // [19] -30dB
|
||||
0x97, // [20] -28dB
|
||||
0x9B, // [21] -26dB
|
||||
0x9F, // [22] -24dB
|
||||
0xA3, // [23] -22dB
|
||||
0xA7, // [24] -20dB
|
||||
0xA9, // [25] -19dB
|
||||
0xAB, // [26] -18dB
|
||||
0xAD, // [27] -17dB
|
||||
0xAF, // [28] -16dB
|
||||
0xB1, // [29] -15dB
|
||||
0xB3, // [30] -14dB
|
||||
0xB5, // [31] -13dB
|
||||
0xB7, // [32] -12dB
|
||||
0xB9, // [33] -11dB
|
||||
0xBB, // [34] -10dB
|
||||
0xBD, // [35] -9dB
|
||||
0xBF, // [36] -8dB
|
||||
0xC1, // [37] -7dB
|
||||
0xC3, // [38] -6dB
|
||||
0xC5, // [39] -5dB
|
||||
0xC7, // [40] -4dB
|
||||
0xC8, // [41] -3.5dB
|
||||
0xC9, // [42] -3dB
|
||||
0xCA, // [43] -2.5dB
|
||||
0xCB, // [44] -2dB
|
||||
0xCC, // [45] -1.5dB
|
||||
0xCD, // [46] -1dB
|
||||
0xCE, // [47] -0.5dB
|
||||
0xCF // [48] 0dB
|
||||
};
|
||||
|
||||
void dac_volume(unsigned level)
|
||||
{
|
||||
// 1dB/步: level 范围 -28 ~ 0,对应寄存器 0xcf-28=0xb3 ~ 0xcf
|
||||
unsigned tmp = 0xcf + level;
|
||||
if (level > DAC_LEVEL_MAX) {
|
||||
level = DAC_LEVEL_MAX;
|
||||
}
|
||||
unsigned tmp = dac_level_to_reg[level];
|
||||
#if 0
|
||||
int half_db = ((int)tmp - 0xCF); // 以 0.5dB 为单位(负数表示衰减)
|
||||
int sign = (half_db < 0) ? -1 : 1;
|
||||
int abs_half_db = (half_db < 0) ? -half_db : half_db;
|
||||
debug_printf("dac_volume write level=%d reg=0x%02X db=%s%d.%d\n",
|
||||
level, tmp, (sign < 0) ? "-" : "", abs_half_db / 2, (abs_half_db & 1) ? 5 : 0);
|
||||
#endif
|
||||
unsafe {NAU88C22_REGWRITE(0x0034, (tmp<<8|tmp), (client interface i2c_master_if)i_i2c_client);}
|
||||
}
|
||||
|
||||
@@ -290,19 +386,13 @@ void mic_volume(unsigned level)
|
||||
// mute: 关闭PGA和输出放大器
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, 0, (client interface i2c_master_if)i_i2c_client);}
|
||||
unsafe {NAU88C22_REGWRITE(0x0035, 0, (client interface i2c_master_if)i_i2c_client);}
|
||||
}
|
||||
else if(level == NAU88L21_PGA_GAIN_REG_MAX_VALUE)
|
||||
{
|
||||
// 内部最大值 (reg=38, +1.5dB数字增益,仅firmware使用)
|
||||
// PGA设到最大(37=0x25),数字增益额外+1.5dB
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, (NAU88L21_PGA_GAIN_REG_MAX_VALUE-1) << 8, (client interface i2c_master_if)i_i2c_client);}
|
||||
unsafe {NAU88C22_REGWRITE(0x0035, (0xd2d2), (client interface i2c_master_if)i_i2c_client);}
|
||||
debug_printf("mic_volume mute\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
// 1-37: 0dB ~ 36dB,1dB/步
|
||||
// 改动原因:移除旧版37~38寄存器额外数字增益路径,最大限制到24dB(1~24,1dB/步)。
|
||||
debug_printf("mic_volume write reg=%d\n", level);
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, (level << 8), (client interface i2c_master_if)i_i2c_client);}
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, ((level + 4) << 8), (client interface i2c_master_if)i_i2c_client);}
|
||||
unsafe {NAU88C22_REGWRITE(0x0035, (0xcfcf), (client interface i2c_master_if)i_i2c_client);}
|
||||
}
|
||||
}
|
||||
@@ -320,10 +410,7 @@ void codec_init(void)
|
||||
}
|
||||
|
||||
// ADCL PGA default setting
|
||||
if(NAU88L21_PGA_GAIN_REG_DEFAULT_VALUE == NAU88L21_PGA_GAIN_REG_MAX_VALUE)
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, (NAU88L21_PGA_GAIN_REG_MAX_VALUE-1) << 8, (client interface i2c_master_if)i_i2c_client);}
|
||||
else
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, NAU88L21_PGA_GAIN_REG_DEFAULT_VALUE << 8, (client interface i2c_master_if)i_i2c_client);}
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, NAU88L21_PGA_GAIN_REG_DEFAULT_VALUE << 8, (client interface i2c_master_if)i_i2c_client);}
|
||||
|
||||
//debug_printfln("Codec init finished");
|
||||
}
|
||||
@@ -430,10 +517,12 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
|
||||
//port_enable(p_button_music_mode);
|
||||
|
||||
// 出厂默认:麦克风21dB (reg=22), 监听-14dB (level=15)
|
||||
int codec_adc_pga_gain_reg_value = 22; // 21dB
|
||||
// 改动原因:麦克风默认值改为49级中的44级(约22dB),上限受24dB约束。
|
||||
// 改动原因:本变量改为保存“49级HID音量等级”(0~48),便于旋钮/HID统一一套等级语义。
|
||||
int codec_adc_pga_gain_reg_value = MIC_HID_LEVEL_DEFAULT;
|
||||
|
||||
int dac_level = 15; // -14dB (DAC_LEVEL_MAX - 14 = 29 - 14 = 15)
|
||||
// 改动原因:默认监听音量从旧30级体系迁移到49级体系,保持中高音量默认值。
|
||||
int dac_level = DAC_HID_LEVEL_DEFAULT;
|
||||
|
||||
// mic endcoder 变量
|
||||
uint8_t prev_encode_input1 = 0;
|
||||
@@ -456,8 +545,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
// active_mode: 0=off, 1=music (LED_MUSIC, no algorithm),
|
||||
// 2=game (LED_GAME_MODE, IR_GAME), 3=AI7.1 (LED_AI7_1, IR_7_1_GAME)
|
||||
unsigned active_mode = 0;
|
||||
// 脚步增强3档状态: 0=关(0dB), 1=中亮/6dB, 2=高亮/12dB;出厂默认开启(12dB)
|
||||
unsigned flag_footsteps_enhancement = 2;
|
||||
// 改动原因:脚步增强改为2档——0=关(0dB),1=开(15dB);出厂默认开启(15dB)
|
||||
unsigned flag_footsteps_enhancement = 1;
|
||||
// 出厂默认:AI降噪开启
|
||||
unsigned flag_aidenoise_onoff = 1;
|
||||
unsigned dnr_strength_saved = 100; // AI降噪重新开启时恢复的强度(0x85可更新)
|
||||
@@ -469,7 +558,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
unsigned push_button_game_mode_state_old = 1; // Active low
|
||||
unsigned push_button_footsteps_enhancement_state_old = 0; // Active low
|
||||
unsigned push_button_aidenoise_onoff_state_old = 1; // Active low
|
||||
unsigned char saved_footstep = 0;
|
||||
unsigned char saved_footstep = 15; // 改动原因:与出厂默认15dB一致,flash加载前临时初值
|
||||
|
||||
|
||||
|
||||
@@ -536,22 +625,26 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
debug_printf("Loaded game_mode from flash: %d\n", saved_mode);
|
||||
|
||||
#if USE_EX3D == 1
|
||||
// 加载脚步增强状态(保存值为expand_gain: 0/6/12)
|
||||
// 改动原因:加载脚步增强(2档 expand_gain: 0/15);旧固件6/12等非零值迁移为15
|
||||
{
|
||||
unsigned char footstep_path[] = "footstep";
|
||||
saved_footstep = load_value(footstep_path);
|
||||
debug_printf("Loaded footstep gain from flash: %d\n", saved_footstep);
|
||||
if (saved_footstep == 0) {
|
||||
flag_footsteps_enhancement = 0;
|
||||
} else if (saved_footstep <= 6) {
|
||||
} else if (saved_footstep == 15) {
|
||||
flag_footsteps_enhancement = 1;
|
||||
} else if (saved_footstep <= 20) {
|
||||
flag_footsteps_enhancement = 2;
|
||||
} else if (saved_footstep > 0 && saved_footstep <= 20) {
|
||||
// 旧3档(6/12)或其它历史非零增益:统一迁移为15dB开档
|
||||
saved_footstep = 15;
|
||||
flag_footsteps_enhancement = 1;
|
||||
save_value(footstep_path, (unsigned char)15);
|
||||
debug_printf("Migrated footstep gain to flash: %d\n", saved_footstep);
|
||||
} else {
|
||||
// 未初始化(255)或异常值:出厂默认脚步增强开启(12dB),写入flash
|
||||
saved_footstep = 12;
|
||||
flag_footsteps_enhancement = 2;
|
||||
save_value(footstep_path, (unsigned char)12);
|
||||
// 未初始化(255)或异常值:出厂默认脚步增强开启(15dB),写入flash
|
||||
saved_footstep = 15;
|
||||
flag_footsteps_enhancement = 1;
|
||||
save_value(footstep_path, (unsigned char)15);
|
||||
debug_printf("Saved footstep gain to flash: %d\n", saved_footstep);
|
||||
}
|
||||
debug_printf("Loaded footstep gain from flash: %d, state=%d\n", saved_footstep, flag_footsteps_enhancement);
|
||||
@@ -583,7 +676,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 Game,mode3→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();
|
||||
@@ -690,10 +784,10 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
// 从 Flash 恢复 mic/dac 音量
|
||||
{
|
||||
unsigned char saved_mic = load_value(mic_vol_path);
|
||||
if(saved_mic >= NAU88L21_PGA_GAIN_REG_MIN_USED_VALUE && saved_mic <= NAU88L21_PGA_GAIN_REG_MAX_VALUE)
|
||||
if(saved_mic >= MIC_HID_LEVEL_MIN && saved_mic <= MIC_HID_LEVEL_MAX)
|
||||
codec_adc_pga_gain_reg_value = saved_mic;
|
||||
else
|
||||
save_value(mic_vol_path, (unsigned char)codec_adc_pga_gain_reg_value); // 出厂默认22(21dB)
|
||||
save_value(mic_vol_path, (unsigned char)codec_adc_pga_gain_reg_value); // 出厂默认44级(约22dB)
|
||||
|
||||
unsigned char saved_dac = load_value(dac_vol_path);
|
||||
if(saved_dac <= DAC_LEVEL_MAX)
|
||||
@@ -783,12 +877,12 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
codec_init();
|
||||
// 同步全局音量变量与从Flash恢复的dac_level / codec_adc_pga_gain_reg_value
|
||||
g_volume_level = dac_level;
|
||||
// 麦克风HID范围上限37 (register=38的+1.5dB仅firmware内部使用)
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= 37) ? codec_adc_pga_gain_reg_value : 37;
|
||||
// 改动原因:g_mic_volume_level 直接使用49级HID等级,避免旧版37级上限截断。
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= MIC_HID_LEVEL_MAX) ? codec_adc_pga_gain_reg_value : MIC_HID_LEVEL_MAX;
|
||||
|
||||
// ADCL PGA default setting(mic_volume内部已根据g_monitor_switch决定是否启用耳返通路)
|
||||
// 若mic_mute已从flash恢复为1,则此处先以正常gain调用,再用mute覆盖
|
||||
mic_volume(codec_adc_pga_gain_reg_value);
|
||||
mic_volume(mic_hid_level_to_codec_gain(codec_adc_pga_gain_reg_value));
|
||||
{
|
||||
int mic_led_count = flag_mic_mute ? 15 : mic_gain_to_led[codec_adc_pga_gain_reg_value];
|
||||
for(int i = 0; i < 15; i++)
|
||||
@@ -813,7 +907,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
if(dac_level == DAC_LEVEL_MIN)
|
||||
unsafe { NAU88C22_REGWRITE(0x0034, 0x0000, (client interface i2c_master_if)i_i2c_client); }
|
||||
else
|
||||
dac_volume(dac_level - DAC_LEVEL_MAX);
|
||||
dac_volume(dac_level);
|
||||
{
|
||||
int dac_led_count = flag_hp_mute ? 15 : dac_gain_to_led[dac_level];
|
||||
for(int i = 0; i < 15; i++)
|
||||
@@ -893,12 +987,9 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
}
|
||||
}
|
||||
|
||||
// 恢复脚步增强LED初始状态
|
||||
// 改动原因:2档脚步增强——开档(15dB)用满亮PWM,不用led_on(30)
|
||||
if (flag_footsteps_enhancement == 1) {
|
||||
led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
led_update_all(&led_ctx);
|
||||
} else if (flag_footsteps_enhancement == 2) {
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, 128);
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, LED_FOOTSTEP_ON_BRIGHTNESS);
|
||||
led_update_all(&led_ctx);
|
||||
}
|
||||
#endif
|
||||
@@ -945,7 +1036,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
{
|
||||
unsigned music_init, game_init;
|
||||
p_button_music_mode :> music_init;
|
||||
p_button_game_mode :> game_init;
|
||||
p_button_game_mode :> game_init;//
|
||||
if (music_init == 0 && game_init == 0) {
|
||||
fr_inhibit = 1;
|
||||
btn_combo_active = 1;
|
||||
@@ -1171,8 +1262,15 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
mic_det_muted = 0;
|
||||
// 恢复音量,但如果用户手动mute了则不恢复
|
||||
if (!flag_mic_mute) {
|
||||
mic_volume(codec_adc_pga_gain_reg_value);
|
||||
debug_printf("mic_det: unmute -> pga=%d\n", codec_adc_pga_gain_reg_value);
|
||||
// 改动原因(关键修复):
|
||||
// codec_adc_pga_gain_reg_value 在当前版本保存的是 49级HID音量等级(0~48),不是Codec寄存器原始值。
|
||||
// 这里之前直接写 mic_volume(codec_adc_pga_gain_reg_value) 会绕过统一映射逻辑,
|
||||
// 造成“插拔后恢复增益”与“旋钮/HID设置增益”不一致,表现为录音音量异常(偏小/不稳定)。
|
||||
// 必须与其它路径保持一致,先做 HID->Codec PGA 映射再写寄存器。
|
||||
unsigned codec_gain = mic_hid_level_to_codec_gain(codec_adc_pga_gain_reg_value);
|
||||
mic_volume(codec_gain);
|
||||
debug_printf("mic_det: unmute -> hid=%d codec_pga=%d\n",
|
||||
codec_adc_pga_gain_reg_value, codec_gain);
|
||||
}
|
||||
} else if (mic_det_cmd == MIC_DET_DAC_MUTE) {
|
||||
dac_det_muted = 1;
|
||||
@@ -1183,7 +1281,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
dac_det_muted = 0;
|
||||
// 恢复DAC音量,但如果用户手动hp_mute或dac_level==0则不恢复
|
||||
if (!flag_hp_mute && dac_level > DAC_LEVEL_MIN) {
|
||||
dac_volume(dac_level - DAC_LEVEL_MAX);
|
||||
dac_volume(dac_level);
|
||||
debug_printf("mic_det: dac unmute -> level=%d\n", dac_level);
|
||||
}
|
||||
}
|
||||
@@ -1232,9 +1330,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 本地切 mode2;AI7.1 需重启切 F4
|
||||
// F4: AI7.1 本地切 mode3;Game 需重启切 F3
|
||||
|
||||
unsigned mode_btn_change = 0;
|
||||
unsigned need_reboot = 0;
|
||||
@@ -1303,7 +1402,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);
|
||||
@@ -1336,9 +1436,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) {
|
||||
@@ -1352,11 +1453,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
|
||||
}
|
||||
}
|
||||
@@ -1372,10 +1479,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) {
|
||||
@@ -1389,12 +1496,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
|
||||
}
|
||||
}
|
||||
@@ -1407,20 +1519,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;
|
||||
@@ -1514,8 +1646,10 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
case 3: led_on(&led_ctx, LED_AI7_1); break;
|
||||
default: break;
|
||||
}
|
||||
if (flag_footsteps_enhancement == 1) led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
else if (flag_footsteps_enhancement == 2) led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, 128);
|
||||
// 改动原因:2档脚步增强,开档(15dB)恢复满亮LED(255)
|
||||
if (flag_footsteps_enhancement == 1) {
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, LED_FOOTSTEP_ON_BRIGHTNESS);
|
||||
}
|
||||
if (flag_aidenoise_onoff) led_on(&led_ctx, LED_ANC);
|
||||
led_update_all(&led_ctx);
|
||||
// 等待松键,防止重启后再次触发出厂恢复循环
|
||||
@@ -1529,8 +1663,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();
|
||||
@@ -1564,10 +1698,10 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
{
|
||||
if(push_button_footsteps_enhancement_state_old == 1)
|
||||
{
|
||||
// 3档循环: 0(关/0dB) → 1(中亮/6dB) → 2(高亮/12dB) → 0
|
||||
flag_footsteps_enhancement = (flag_footsteps_enhancement + 1) % 3;
|
||||
// 改动原因:2档循环: 0(关/0dB) ↔ 1(开/15dB)
|
||||
flag_footsteps_enhancement = (flag_footsteps_enhancement + 1) % 2;
|
||||
mode_change = 1;
|
||||
debug_printf("Footstep mode changed: %d -> %d\n", flag_footsteps_enhancement, flag_footsteps_enhancement + 1);
|
||||
debug_printf("Footstep mode changed to state=%d\n", flag_footsteps_enhancement);
|
||||
}
|
||||
}
|
||||
push_button_footsteps_enhancement_state_old = button_footsteps_enhancement;
|
||||
@@ -1575,18 +1709,13 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
{
|
||||
if(flag_footsteps_enhancement == 0)
|
||||
{
|
||||
saved_footstep = 0;
|
||||
saved_footstep = 0; // 改动原因:关档 0dB
|
||||
led_off(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
}
|
||||
else if(flag_footsteps_enhancement == 1)
|
||||
{
|
||||
saved_footstep = 6;
|
||||
led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
}
|
||||
else
|
||||
{
|
||||
saved_footstep = 12;
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, 128);
|
||||
saved_footstep = 15; // 改动原因:开档 15dB(唯一增强档)
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, LED_FOOTSTEP_ON_BRIGHTNESS);
|
||||
}
|
||||
led_update_all(&led_ctx);
|
||||
// 发送expand_gain到tile1执行
|
||||
@@ -1604,30 +1733,29 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
GET_SHARED_GLOBAL(hid_gain_req, g_hid_expand_gain_request);
|
||||
if (hid_gain_req != (unsigned)-1) {
|
||||
SET_SHARED_GLOBAL(g_hid_expand_gain_request, (unsigned)-1);
|
||||
// 将增益值映射到footstep档位
|
||||
// 改动原因:HID增益映射到2档——0=关,非0=开(15dB)
|
||||
unsigned new_state;
|
||||
unsigned char gain_to_save;
|
||||
if (hid_gain_req == 0) {
|
||||
new_state = 0;
|
||||
} else if (hid_gain_req <= 6) {
|
||||
new_state = 1;
|
||||
gain_to_save = 0;
|
||||
} else {
|
||||
new_state = 2;
|
||||
new_state = 1;
|
||||
gain_to_save = 15;
|
||||
}
|
||||
if (new_state != (unsigned)flag_footsteps_enhancement) {
|
||||
flag_footsteps_enhancement = (int)new_state;
|
||||
if (flag_footsteps_enhancement == 0) {
|
||||
led_off(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
} else if (flag_footsteps_enhancement == 1) {
|
||||
led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
} else {
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, 128);
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, LED_FOOTSTEP_ON_BRIGHTNESS);
|
||||
}
|
||||
led_update_all(&led_ctx);
|
||||
}
|
||||
|
||||
unsigned char fp[] = "footstep";
|
||||
save_value(fp, (unsigned char)hid_gain_req);
|
||||
saved_footstep = hid_gain_req;
|
||||
save_value(fp, gain_to_save);
|
||||
saved_footstep = gain_to_save;
|
||||
debug_printf("HID set footstep gain=%d, state=%d\n", hid_gain_req, flag_footsteps_enhancement);
|
||||
}
|
||||
}
|
||||
@@ -1748,8 +1876,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
else
|
||||
{
|
||||
if (!mic_det_muted)
|
||||
mic_volume(codec_adc_pga_gain_reg_value);
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= 37) ? codec_adc_pga_gain_reg_value : 37;
|
||||
mic_volume(mic_hid_level_to_codec_gain(codec_adc_pga_gain_reg_value));
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= MIC_HID_LEVEL_MAX) ? codec_adc_pga_gain_reg_value : MIC_HID_LEVEL_MAX;
|
||||
mic_mute_blink_tick = 0;
|
||||
for(int i = 0; i < 15; i++)
|
||||
led_off(&led_ctx, led_l_physical_map[i]);
|
||||
@@ -1787,14 +1915,17 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
|
||||
// 执行音量调节
|
||||
if(current_dir == 1) { // 顺时针
|
||||
if((codec_adc_pga_gain_reg_value < NAU88L21_PGA_GAIN_REG_MAX_VALUE) && (flag_mic_mute == 0)) {
|
||||
if((codec_adc_pga_gain_reg_value < MIC_HID_LEVEL_MAX) && (flag_mic_mute == 0)) {
|
||||
uint8_t old_led_count = mic_gain_to_led[codec_adc_pga_gain_reg_value];
|
||||
|
||||
++codec_adc_pga_gain_reg_value;
|
||||
codec_adc_pga_gain_reg_value = codec_adc_pga_gain_reg_value + 2;
|
||||
if (codec_adc_pga_gain_reg_value > MIC_HID_LEVEL_MAX) {
|
||||
codec_adc_pga_gain_reg_value = MIC_HID_LEVEL_MAX;
|
||||
}
|
||||
|
||||
if (!mic_det_muted)
|
||||
mic_volume(codec_adc_pga_gain_reg_value);
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= 37) ? codec_adc_pga_gain_reg_value : 37;
|
||||
mic_volume(mic_hid_level_to_codec_gain(codec_adc_pga_gain_reg_value));
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= MIC_HID_LEVEL_MAX) ? codec_adc_pga_gain_reg_value : MIC_HID_LEVEL_MAX;
|
||||
debug_printf("volume up %d\n", codec_adc_pga_gain_reg_value);
|
||||
save_value(mic_vol_path, codec_adc_pga_gain_reg_value);
|
||||
uint8_t new_led_count = mic_gain_to_led[codec_adc_pga_gain_reg_value];
|
||||
@@ -1810,15 +1941,18 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
if((codec_adc_pga_gain_reg_value > 0) && (flag_mic_mute == 0)) {
|
||||
uint8_t old_led_count = mic_gain_to_led[codec_adc_pga_gain_reg_value];
|
||||
|
||||
--codec_adc_pga_gain_reg_value;
|
||||
codec_adc_pga_gain_reg_value = codec_adc_pga_gain_reg_value - 2;
|
||||
if (codec_adc_pga_gain_reg_value < 0) {
|
||||
codec_adc_pga_gain_reg_value = 0;
|
||||
}
|
||||
|
||||
if (!mic_det_muted) {
|
||||
if (codec_adc_pga_gain_reg_value == 0)
|
||||
mic_volume(0);
|
||||
else
|
||||
mic_volume(codec_adc_pga_gain_reg_value);
|
||||
mic_volume(mic_hid_level_to_codec_gain(codec_adc_pga_gain_reg_value));
|
||||
}
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= 37) ? codec_adc_pga_gain_reg_value : 37;
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= MIC_HID_LEVEL_MAX) ? codec_adc_pga_gain_reg_value : MIC_HID_LEVEL_MAX;
|
||||
debug_printf("volume down %d\n", codec_adc_pga_gain_reg_value);
|
||||
save_value(mic_vol_path, codec_adc_pga_gain_reg_value);
|
||||
|
||||
@@ -1898,10 +2032,13 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
uint8_t old_led_count = dac_gain_to_led[dac_level];
|
||||
|
||||
// 增加音量
|
||||
++dac_level;
|
||||
dac_level = dac_level + 2;
|
||||
if (dac_level > DAC_LEVEL_MAX) {
|
||||
dac_level = DAC_LEVEL_MAX;
|
||||
}
|
||||
g_volume_level = dac_level;
|
||||
if (!dac_det_muted)
|
||||
dac_volume(dac_level - DAC_LEVEL_MAX);
|
||||
dac_volume(dac_level);
|
||||
save_value(dac_vol_path, dac_level);
|
||||
|
||||
uint8_t new_led_count = dac_gain_to_led[dac_level];
|
||||
@@ -1918,13 +2055,16 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
uint8_t old_led_count = dac_gain_to_led[dac_level];
|
||||
|
||||
// 减小音量
|
||||
--dac_level;
|
||||
dac_level = dac_level - 2;
|
||||
if (dac_level < DAC_LEVEL_MIN) {
|
||||
dac_level = DAC_LEVEL_MIN;
|
||||
}
|
||||
g_volume_level = dac_level;
|
||||
if (!dac_det_muted) {
|
||||
if(dac_level == DAC_LEVEL_MIN)
|
||||
unsafe { NAU88C22_REGWRITE(0x0034, 0x0000, (client interface i2c_master_if)i_i2c_client); }
|
||||
else
|
||||
dac_volume(dac_level - DAC_LEVEL_MAX);
|
||||
dac_volume(dac_level);
|
||||
}
|
||||
save_value(dac_vol_path, dac_level);
|
||||
|
||||
@@ -2001,7 +2141,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
if(dac_level == DAC_LEVEL_MIN)
|
||||
unsafe { NAU88C22_REGWRITE(0x0034, 0x0000, (client interface i2c_master_if)i_i2c_client); }
|
||||
else
|
||||
dac_volume(dac_level - DAC_LEVEL_MAX);
|
||||
dac_volume(dac_level);
|
||||
}
|
||||
g_volume_level = dac_level;
|
||||
hp_mute_blink_tick = 0;
|
||||
@@ -2059,7 +2199,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
if (dac_level == DAC_LEVEL_MIN)
|
||||
unsafe { NAU88C22_REGWRITE(0x0034, 0x0000, (client interface i2c_master_if)i_i2c_client); }
|
||||
else
|
||||
dac_volume(dac_level - DAC_LEVEL_MAX);
|
||||
dac_volume(dac_level);
|
||||
}
|
||||
save_value(dac_vol_path, (unsigned char)dac_level);
|
||||
// 更新DAC音量指示LED
|
||||
@@ -2079,7 +2219,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
if (g_request_mic_volume_set) {
|
||||
g_request_mic_volume_set = 0;
|
||||
unsigned new_mic_level = g_mic_volume_level;
|
||||
if (new_mic_level <= 37) { // 0=mute, 1-37=0dB~36dB
|
||||
if (new_mic_level <= MIC_HID_LEVEL_MAX) { // 0=mute, 1~48=0~24dB(0.5dB/级)
|
||||
uint8_t new_led_count;
|
||||
if (new_mic_level == 0) {
|
||||
// mute: 静音硬件,codec_adc_pga_gain_reg_value设为0(与编码器静音一致)
|
||||
@@ -2089,7 +2229,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
} else {
|
||||
codec_adc_pga_gain_reg_value = new_mic_level;
|
||||
if (!mic_det_muted)
|
||||
mic_volume(codec_adc_pga_gain_reg_value);
|
||||
mic_volume(mic_hid_level_to_codec_gain(codec_adc_pga_gain_reg_value));
|
||||
new_led_count = mic_gain_to_led[codec_adc_pga_gain_reg_value];
|
||||
}
|
||||
save_value(mic_vol_path, (unsigned char)codec_adc_pga_gain_reg_value);
|
||||
@@ -2190,8 +2330,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
ptr[i] = 0x00;
|
||||
}
|
||||
hidSetChangePending(0x1);
|
||||
debug_printf("Mic volume changed: %d -> %d, HID report sent\n",
|
||||
g_last_mic_volume_level, current_mic_level);
|
||||
// debug_printf("Mic volume changed: %d -> %d, HID report sent\n",
|
||||
// g_last_mic_volume_level, current_mic_level);
|
||||
}
|
||||
g_last_mic_volume_level = current_mic_level;
|
||||
}
|
||||
@@ -2333,7 +2473,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();
|
||||
@@ -2442,12 +2583,12 @@ void mute_handler(chanend c_mic_det)
|
||||
|
||||
// 如果开机时全拔出,发送mute
|
||||
|
||||
if (((det_val & 0b1110) == 0b1110) || ((det_val & 0b1110) == 0b1010) || ((det_val & 0b1110) == 0b0010)) {
|
||||
if (((det_val & 0b1110) == 0b1110) || ((det_val & 0b1110) == 0b1010) || ((det_val & 0b1110) == 0b0010) || ((det_val & 0b1110) == 0b1000)) {
|
||||
// 有mic插入,恢复mic音量状态
|
||||
c_mic_det <: (unsigned)MIC_DET_UNMUTE;
|
||||
debug_printf("mic stable -> unmute\n");
|
||||
}
|
||||
|
||||
|
||||
timer tmr;
|
||||
unsigned time;
|
||||
tmr :> time;
|
||||
@@ -2512,7 +2653,7 @@ void mute_handler(chanend c_mic_det)
|
||||
|
||||
#endif
|
||||
|
||||
if (((det_val & 0b1110) == 0b1110) || ((det_val & 0b1110) == 0b1010) || ((det_val & 0b1110) == 0b0010)) {
|
||||
if (((det_val & 0b1110) == 0b1110) || ((det_val & 0b1110) == 0b1010) || ((det_val & 0b1110) == 0b0010) || ((det_val & 0b1110) == 0b1000)) {
|
||||
// 有mic插入,恢复mic音量状态
|
||||
c_mic_det <: (unsigned)MIC_DET_UNMUTE;
|
||||
debug_printf("mic stable -> unmute\n");
|
||||
|
||||
@@ -8,15 +8,12 @@
|
||||
#include <xclib.h>
|
||||
#include <stdio.h>
|
||||
#include "debug_print.h"
|
||||
#include "dfu_upgrade.h"
|
||||
|
||||
#include "xua.h"
|
||||
|
||||
#if HID_DFU_EN
|
||||
|
||||
#ifndef DFU_FLASH_MAX_UPGRADE_SIZE
|
||||
#define DFU_FLASH_MAX_UPGRADE_SIZE (2200 * 1024)
|
||||
#endif
|
||||
|
||||
#define DFU_FLASH_ERROR()
|
||||
|
||||
static int dfu_flash_device_open = 0;
|
||||
|
||||
@@ -95,7 +95,7 @@ unsigned char handle_firmware_upgrade_start(uint8_t data[], uint16_t len)
|
||||
|
||||
debug_printf("g_first_page_write_executed: %d\n", g_first_page_write_executed);
|
||||
|
||||
if (firmware_size == 0 || firmware_size > FLASH_MAX_UPGRADE_SIZE) {
|
||||
if (firmware_size == 0 || firmware_size > DFU_FLASH_MAX_UPGRADE_SIZE) {
|
||||
debug_printf("Firmware upgrade error: invalid size %lu\n", firmware_size);
|
||||
response[0] = STATUS_SIZE_INVALID;
|
||||
send_firmware_upgrade_response(FIRMWARE_UPGRADE_START, response, 1);
|
||||
|
||||
@@ -44,7 +44,11 @@ typedef enum {
|
||||
// 数据包格式:同步头(1) + 命令码(1) + 块序号(2) + 数据长度(1) + 数据(N) + Checksum(1)
|
||||
// 所以最大数据长度 = 63 - 5(头部) - 1(Checksum) = 57字节
|
||||
#define MAX_DATA_BLOCK_SIZE 57 // 最大数据块大小(63字节HID数据包 - 5字节头部 - 1字节Checksum)
|
||||
#define FLASH_MAX_UPGRADE_SIZE (2000 * 1024) // 最大固件大小1400KB
|
||||
|
||||
#ifndef DFU_FLASH_MAX_UPGRADE_SIZE
|
||||
#define DFU_FLASH_MAX_UPGRADE_SIZE (3000 * 1024)
|
||||
#endif
|
||||
|
||||
|
||||
// 页缓冲区结构
|
||||
typedef struct {
|
||||
|
||||
@@ -53,7 +53,7 @@ static volatile int g_runtime_angle_written = 0;
|
||||
// 通过该标志判断EX3D是否已完成初始化,若已完成则在收到0xF9时立即应用角度。
|
||||
static volatile int g_ex3d_init_done = 0;
|
||||
// audio_ex3d_init会覆盖Ex3dExpandGain为库默认值;用此变量保存0xFD boot sync收到的值
|
||||
static volatile int32_t g_boot_footstep_expand_gain_value = 12;
|
||||
static volatile int32_t g_boot_footstep_expand_gain_value = 15; // 改动原因:脚步增强默认15dB(2档:0/15)
|
||||
static volatile int32_t g_boot_lmt_threshold_value = -5;
|
||||
static volatile uint32_t g_boot_angle_values[8] = {315, 45, 0, 0, 225, 135, 270, 90};
|
||||
|
||||
@@ -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;
|
||||
@@ -1175,7 +1026,8 @@ void ex3d_task(){
|
||||
}
|
||||
|
||||
// audio_ex3d_init内部会将Ex3dExpandGain重置为库默认值(6),这里始终用保存值恢复
|
||||
Ex3dExpandGain = g_boot_footstep_expand_gain_loaded ? g_boot_footstep_expand_gain_value : 12;
|
||||
// 改动原因:无flash/boot同步时脚步增强默认15dB(原12dB为旧3档高亮档)
|
||||
Ex3dExpandGain = g_boot_footstep_expand_gain_loaded ? g_boot_footstep_expand_gain_value : 15;
|
||||
Ex3dLimiterThreshold = g_boot_lmt_threshold_loaded ? g_boot_lmt_threshold_value : -15;
|
||||
|
||||
EX3DAudio_SetOnGain(Ex3dOnGain);
|
||||
@@ -1218,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);
|
||||
@@ -1246,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);
|
||||
|
||||
@@ -1267,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));
|
||||
}
|
||||
@@ -1343,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 {
|
||||
@@ -1364,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 {
|
||||
@@ -1385,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 {
|
||||
@@ -1406,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 {
|
||||
|
||||
@@ -15,7 +15,12 @@ extern void device_reboot(void);
|
||||
|
||||
// 常量定义
|
||||
#define EQ_DISABLED_MODE 10 // 禁用EQ的模式编号
|
||||
|
||||
#if DEBUG_MEMORY_LOG_ENABLED
|
||||
unsigned g_log_switch = 1;
|
||||
#else
|
||||
unsigned g_log_switch = 0;
|
||||
#endif
|
||||
|
||||
#include "xmath/filter.h"
|
||||
#include "eq.h"
|
||||
@@ -631,12 +636,12 @@ unsigned char process_send_params(uint8_t data[], uint16_t len) {
|
||||
}
|
||||
|
||||
// 处理设置麦克风增益命令 (0x82) - SET_MIC_VOLUME
|
||||
// 范围: 0-37 (0=mute, 1-37=0dB~36dB, 1dB/步; register=38的+1.5dB仅firmware内部)
|
||||
// 改动原因:麦克风协议升级为49级(0~48),最大增益由36dB收敛到24dB(0.5dB/级)。
|
||||
if (data[1] == 0x82) {
|
||||
uint8_t mic_level = data[2];
|
||||
|
||||
// 参数验证: 0-37
|
||||
if (mic_level > 37) {
|
||||
// 参数验证: 0-48
|
||||
if (mic_level > 48) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -705,13 +710,13 @@ unsigned char process_send_params(uint8_t data[], uint16_t len) {
|
||||
}
|
||||
|
||||
// 处理设置音量命令 (0x93) - SET_VOLUME
|
||||
// 范围: 0-15 (0=静音, 1-15=-28dB~0dB, 2dB/步)
|
||||
// 改动原因:DAC音量协议与旋钮统一扩展到49级(0~48),与SY102dac对应表一致。
|
||||
if (data[1] == 0x93) {
|
||||
// 获取音量级别
|
||||
uint8_t volume_level = data[2];
|
||||
|
||||
// 参数验证: 0-29 (0=mute, 1-29=-28dB~0dB, 1dB/步)
|
||||
if (volume_level > 29) {
|
||||
// 参数验证: 0-48
|
||||
if (volume_level > 48) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -615,9 +615,10 @@ class EQDesigner(QMainWindow):
|
||||
volume_control_layout = QHBoxLayout()
|
||||
self.volume_label = QLabel("监听音量 (0x93/0x94):")
|
||||
self.volume_spin = QSpinBox()
|
||||
self.volume_spin.setRange(0, 29)
|
||||
self.volume_spin.setValue(29)
|
||||
self.volume_spin.setSuffix(" (0=静音, 29=0dB)")
|
||||
# 改动原因:与固件0x93协议保持一致,DAC监听音量改为49级(0~48)。
|
||||
self.volume_spin.setRange(0, 48)
|
||||
self.volume_spin.setValue(48)
|
||||
self.volume_spin.setSuffix(" (0=静音, 48=0dB)")
|
||||
volume_control_layout.addWidget(self.volume_label)
|
||||
volume_control_layout.addWidget(self.volume_spin)
|
||||
volume_layout.addRow(volume_control_layout)
|
||||
@@ -636,9 +637,10 @@ class EQDesigner(QMainWindow):
|
||||
mic_vol_control_layout = QHBoxLayout()
|
||||
self.mic_volume_label = QLabel("麦克风增益 (0x82/0x83):")
|
||||
self.mic_volume_spin = QSpinBox()
|
||||
self.mic_volume_spin.setRange(0, 37)
|
||||
self.mic_volume_spin.setValue(37)
|
||||
self.mic_volume_spin.setSuffix(" (0=静音, 1=0dB, 37=36dB)")
|
||||
# 改动原因:与固件0x82协议保持一致,MIC增益改为49级(0~48),2级=1dB,最大24dB。
|
||||
self.mic_volume_spin.setRange(0, 48)
|
||||
self.mic_volume_spin.setValue(48)
|
||||
self.mic_volume_spin.setSuffix(" (0=静音, 2级=1dB, 48=24dB)")
|
||||
mic_vol_control_layout.addWidget(self.mic_volume_label)
|
||||
mic_vol_control_layout.addWidget(self.mic_volume_spin)
|
||||
volume_layout.addRow(mic_vol_control_layout)
|
||||
@@ -2298,7 +2300,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
log_message(LOG_LEVEL_ERROR, f"设置并保存EQ模式时出错: {str(e)}", self.log_level)
|
||||
|
||||
def on_set_volume(self):
|
||||
"""设置监听音量级别(发送0x93命令,范围0-29,0=静音,1=-28dB,29=0dB,1dB/步)"""
|
||||
"""设置监听音量级别(发送0x93命令,范围0-48,按SY102dac对应表映射)"""
|
||||
if self.device_combo.currentData() is None:
|
||||
log_message(LOG_LEVEL_ERROR, "请先选择设备", self.log_level)
|
||||
return
|
||||
@@ -2309,7 +2311,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
self,
|
||||
"确认设置监听音量",
|
||||
f"将要设置监听音量级别为: {volume_level}\n\n"
|
||||
f"音量范围: 0-29 (0=静音, 1=-28dB, ..., 29=0dB, 1dB/步)\n\n"
|
||||
f"音量范围: 0-48 (0=静音, 1=-66dB, ..., 47=-0.5dB, 48=0dB;按SY102dac对应表)\n\n"
|
||||
f"是否继续?",
|
||||
QMessageBox.Yes | QMessageBox.No,
|
||||
QMessageBox.No
|
||||
@@ -2325,7 +2327,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
data = bytearray(63)
|
||||
data[0] = 0x77
|
||||
data[1] = 0x93 # SET_VOLUME
|
||||
data[2] = volume_level # 0-29
|
||||
data[2] = volume_level # 0-48
|
||||
|
||||
log_message(LOG_LEVEL_INFO, f"正在设置监听音量级别为 {volume_level}...", self.log_level)
|
||||
h.write([0x01] + list(data))
|
||||
@@ -2367,7 +2369,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
QMessageBox.information(
|
||||
self, "监听音量级别",
|
||||
f"当前监听音量级别: {volume_level}\n\n"
|
||||
f"音量范围: 0-29 (0=静音, 1=-28dB, ..., 29=0dB, 1dB/步)"
|
||||
f"音量范围: 0-48 (0=静音, 1=-66dB, ..., 47=-0.5dB, 48=0dB;按SY102dac对应表)"
|
||||
)
|
||||
else:
|
||||
log_message(LOG_LEVEL_ERROR, f"无效的0x94响应同步头: 0x{reply[1]:02x} 0x{reply[2]:02x}", self.log_level)
|
||||
@@ -2380,7 +2382,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
log_message(LOG_LEVEL_ERROR, f"读取监听音量时出错: {str(e)}", self.log_level)
|
||||
|
||||
def on_set_mic_volume(self):
|
||||
"""设置麦克风增益级别(发送0x82命令,范围0-37,0=静音,1=0dB,37=36dB,1dB/步)"""
|
||||
"""设置麦克风增益级别(发送0x82命令,范围0-48,2级=1dB,48=24dB)"""
|
||||
if self.device_combo.currentData() is None:
|
||||
log_message(LOG_LEVEL_ERROR, "请先选择设备", self.log_level)
|
||||
return
|
||||
@@ -2391,7 +2393,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
self,
|
||||
"确认设置麦克风增益",
|
||||
f"将要设置麦克风增益级别为: {mic_level}\n\n"
|
||||
f"增益范围: 0-37 (0=静音, 1=0dB, ..., 37=36dB, 1dB/步)\n\n"
|
||||
f"增益范围: 0-48 (0=静音, 2级=1dB, ..., 48=24dB)\n\n"
|
||||
f"是否继续?",
|
||||
QMessageBox.Yes | QMessageBox.No,
|
||||
QMessageBox.No
|
||||
@@ -2407,7 +2409,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
data = bytearray(63)
|
||||
data[0] = 0x77
|
||||
data[1] = 0x82 # SET_MIC_VOLUME
|
||||
data[2] = mic_level # 0-37
|
||||
data[2] = mic_level # 0-48
|
||||
|
||||
log_message(LOG_LEVEL_INFO, f"正在设置麦克风增益级别为 {mic_level}...", self.log_level)
|
||||
h.write([0x01] + list(data))
|
||||
@@ -2449,7 +2451,7 @@ eq_mode_data_t sEQ_data_{int(fs)}HZ[NUM_EQ_MODES][NUM_EQ_CHANS] = {{
|
||||
QMessageBox.information(
|
||||
self, "麦克风增益级别",
|
||||
f"当前麦克风增益级别: {mic_level}\n\n"
|
||||
f"增益范围: 0-37 (0=静音, 1=0dB, ..., 37=36dB, 1dB/步)"
|
||||
f"增益范围: 0-48 (0=静音, 2级=1dB, ..., 48=24dB)"
|
||||
)
|
||||
else:
|
||||
log_message(LOG_LEVEL_ERROR, f"无效的0x83响应同步头: 0x{reply[1]:02x} 0x{reply[2]:02x}", self.log_level)
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
### 1.2 支持的指令列表
|
||||
| 指令码 | 命令名称 | 功能 | 方向 | 描述 |
|
||||
|--------|----------|------|------|------|
|
||||
| 0x82 | SET_MIC_VOLUME | 设置麦克风增益级别 | 主机→设备 | 设置麦克风PGA增益(0=静音, 1-37=0dB~36dB, 1dB/步) |
|
||||
| 0x83 | GET_MIC_VOLUME | 获取麦克风增益级别 | 主机→设备 | 读取当前麦克风PGA增益级别(0=静音, 1-37=0dB~36dB) |
|
||||
| 0x82 | SET_MIC_VOLUME | 设置麦克风增益级别 | 主机→设备 | 设置麦克风增益(0=静音, 1-48=0~24dB, 2级=1dB) |
|
||||
| 0x83 | GET_MIC_VOLUME | 获取麦克风增益级别 | 主机→设备 | 读取当前麦克风增益级别(0=静音, 1-48=0~24dB, 2级=1dB) |
|
||||
| 0x84 | FACTORY_RESET | 恢复出厂默认设置 | 主机→设备 | 删除Flash中所有已保存参数,设备重启后自动恢复出厂默认值 |
|
||||
| 0x85 | SET_AI_NOISE_STRENGTH | 设置AI降噪强度 | 主机→设备 | 设置AI降噪强度(0=关闭,2-100偶数=强度级别,步进2;100对应最强-200dB) |
|
||||
| 0x86 | GET_AI_NOISE_STRENGTH | 获取AI降噪强度 | 主机→设备 | 读取当前AI降噪强度;强度变化(含按键切换、开机初始值)时设备主动上报 |
|
||||
@@ -24,8 +24,8 @@
|
||||
| 0x90 | RESET_EQ_PARAMS | 复位EQ参数 | 主机→设备 | 删除Flash中的EQ参数并恢复头文件预设参数 |
|
||||
| 0x91 | GET_EQ_MODE_COUNT | 获取EQ模式总数 | 主机→设备 | 返回预定义加用户模式的总数(不包含禁用模式) |
|
||||
| 0x92 | SET_AND_SAVE_EQ_MODE | 设置并保存EQ模式 | 主机→设备 | 设置当前EQ模式(0-9)并保存到Flash,开机时自动恢复 |
|
||||
| 0x93 | SET_VOLUME | 设置监听音量级别 | 主机→设备 | 设置设备监听音量级别(0=静音, 1-29=-28dB~0dB, 1dB/步) |
|
||||
| 0x94 | GET_VOLUME | 获取监听音量级别 | 主机→设备 | 读取设备当前监听音量级别(0=静音, 1-29=-28dB~0dB, 1dB/步) |
|
||||
| 0x93 | SET_VOLUME | 设置监听音量级别 | 主机→设备 | 设置设备监听音量级别(0=静音, 1-48按SY102dac对应表映射到-66dB~0dB) |
|
||||
| 0x94 | GET_VOLUME | 获取监听音量级别 | 主机→设备 | 读取设备当前监听音量级别(0=静音, 1-48按SY102dac对应表映射) |
|
||||
| 0x9D | SET_EQ_ENABLE | 设置EQ使能开关 | 主机→设备 | 设置EQ使能开关(ON/OFF),禁用时保存当前模式,启用时恢复之前模式 |
|
||||
| 0x9E | GET_EQ_ENABLE | 获取EQ使能开关 | 主机→设备 | 读取EQ使能开关状态(ON/OFF) |
|
||||
| 0x9F | GET_SAMPLE_FORMAT | 获取采样率和格式 | 主机→设备 | 读取当前采样率、DSD模式和DAC采样分辨率 |
|
||||
@@ -59,20 +59,20 @@
|
||||
---------|------|------|------
|
||||
0 | 1 | 0x77 | 同步头1
|
||||
1 | 1 | 0x82 | 命令码
|
||||
2 | 1 | uint8 | 增益级别 (0=静音, 1-37=0dB~36dB, 1dB/步)
|
||||
2 | 1 | uint8 | 增益级别 (0=静音, 1-48=0~24dB, 2级=1dB)
|
||||
3-62 | 60 | 0x00 | 保留字节
|
||||
```
|
||||
|
||||
**参数说明**:
|
||||
- **增益级别范围:** 0-37(共38级)
|
||||
- **增益级别范围:** 0-48(共49级)
|
||||
- **对应硬件**:NAU88C22 ADC PGA增益寄存器(reg 0x007E)+ 输出放大器(reg 0x0035)
|
||||
- 0:静音(mute,同时清零 reg 0x007E 和 0x0035)
|
||||
- 1:0dB(最小有效增益)
|
||||
- 1:约0.5dB(按2级=1dB映射)
|
||||
- 2:1dB
|
||||
- ...(1dB/步)
|
||||
- 37:36dB(最大HID可设置增益)
|
||||
- **注意**:内部寄存器值38(约+1.5dB数字增益)为firmware保留,HID不可设置
|
||||
- >37 为无效值,固件将拒绝设置
|
||||
- ...(2级=1dB)
|
||||
- 47:约23.5dB
|
||||
- 48:24dB(最大HID可设置增益)
|
||||
- >48 为无效值,固件将拒绝设置
|
||||
|
||||
**设备端处理**:
|
||||
- 设置后立即应用到ADC PGA硬件
|
||||
@@ -102,12 +102,12 @@
|
||||
0 | 1 | 0x01 | Report ID
|
||||
1 | 1 | 0x77 | 同步头1
|
||||
2 | 1 | 0x83 | 同步头2
|
||||
3 | 1 | uint8 | 当前增益级别 (0=静音, 1-37=0dB~36dB)
|
||||
3 | 1 | uint8 | 当前增益级别 (0=静音, 1-48=0~24dB, 2级=1dB)
|
||||
4-62 | 59 | 0x00 | 保留字节
|
||||
```
|
||||
|
||||
**主动上报说明**:
|
||||
- 编码器旋转导致增益变化时,设备主动向主机上报当前增益(最大上报37,内部38时上报37)
|
||||
- 编码器旋转导致增益变化时,设备主动向主机上报当前增益(范围0~48)
|
||||
- HID SET_MIC_VOLUME(0x82)命令成功执行后,设备也主动上报新增益
|
||||
|
||||
### 2.0c 0x84 - FACTORY_RESET (恢复出厂默认设置)
|
||||
@@ -127,8 +127,8 @@
|
||||
|------|-----------|------|
|
||||
| AI7.1音效模式 | 3 (AI7.1开启) | 音效模式 0=无音效, 1=音乐, 2=游戏, 3=AI7.1 |
|
||||
| 脚步增强 | 12dB (全亮, 状态2) | LED全亮, 扩展增益12dB |
|
||||
| 麦克风音量 | 22 (21dB) | PGA寄存器值22 = 21dB |
|
||||
| 监听音量 | 15 (-14dB) | DAC level 15 = 0dB - 14 = -14dB |
|
||||
| 麦克风音量 | 44 (约22dB) | 49级中的44级,按2级=1dB映射 |
|
||||
| 监听音量 | 30 (-14dB) | 49级中的30级,按SY102dac对应表映射 |
|
||||
| EQ参数 | 头文件预设 | 删除所有用户EQ参数,恢复固件内置预设 |
|
||||
| AI降噪 | 开启 | 每次上电默认开启(不保存到Flash) |
|
||||
| 耳返开关 | 0 (关闭) | ADC→耳机监听通路默认关闭 |
|
||||
@@ -532,25 +532,27 @@
|
||||
---------|------|------|------
|
||||
0 | 1 | 0x77 | 同步头1
|
||||
1 | 1 | 0x93 | 命令码
|
||||
2 | 1 | uint8 | 音量级别 (0-29: 0=静音, 1=-28dB, ..., 29=0dB)
|
||||
2 | 1 | uint8 | 音量级别 (0-48: 0=静音, 1=-66dB, ..., 48=0dB;按SY102dac对应表)
|
||||
3-62 | 60 | 0x00 | 保留字节
|
||||
```
|
||||
|
||||
**参数说明**:
|
||||
- **音量级别范围:** 0-29(共30级)
|
||||
- **音量级别范围:** 0-48(共49级)
|
||||
- **说明:** 控制设备监听输出(DAC/耳机)音量级别
|
||||
- 0: 静音(mute,DAC完全静音)
|
||||
- 1: -28dB(最小有效音量)
|
||||
- 2: -27dB
|
||||
- ...(每级1dB步进)
|
||||
- 29: 0dB(最大音量)
|
||||
- **对应硬件**:NAU88C22 DAC音量寄存器(reg 0x0034),30级精度(1dB/步)
|
||||
- 1: -66dB(最小有效音量)
|
||||
- 2: -64dB
|
||||
- ...(按 `SY102dac对应表.csv` 的非线性步进)
|
||||
- 46: -1dB
|
||||
- 47: -0.5dB
|
||||
- 48: 0dB(最大音量)
|
||||
- **对应硬件**:NAU88C22 DAC音量寄存器(reg 0x0034),49级查表映射
|
||||
|
||||
**设备端处理**:
|
||||
- 设置后立即应用到DAC硬件
|
||||
- 同步更新前面板LED(D系列15个LED,反映当前音量级别,每2级对应1个LED)
|
||||
- 保存到Flash(dac_vol路径),断电重启后自动恢复
|
||||
- 如果参数超出范围(>29),固件将拒绝设置
|
||||
- 如果参数超出范围(>48),固件将拒绝设置
|
||||
|
||||
**返回值**:
|
||||
无直接返回值。如需确认音量是否设置成功,请使用GET_VOLUME命令读取当前音量。设备端音量变化(含编码器旋转引起的变化)会主动通过0x94格式上报。
|
||||
@@ -574,7 +576,7 @@
|
||||
0 | 1 | 0x01 | Report ID
|
||||
1 | 1 | 0x77 | 同步头1
|
||||
2 | 1 | 0x94 | 同步头2
|
||||
3 | 1 | uint8 | 当前音量级别 (0-29: 0=静音, 1-29=-28dB~0dB, 1dB/步)
|
||||
3 | 1 | uint8 | 当前音量级别 (0-48: 0=静音, 1-48按SY102dac对应表映射到-66dB~0dB)
|
||||
4-62 | 59 | 0x00 | 保留字节
|
||||
```
|
||||
|
||||
|
||||
@@ -87,82 +87,112 @@ const uint8_t led_d_physical_map[15] = {
|
||||
22, // LED_D15 -> OUT22
|
||||
};
|
||||
|
||||
const uint8_t mic_gain_to_led[39] = {
|
||||
0, // [-1] 增益-1: 0个LED,这个设计未启用
|
||||
1, // [0] 增益0: 0个LED
|
||||
1, // [1] 增益1: 0个LED
|
||||
1, // [2] 增益2: 0个LED
|
||||
1, // [3] 增益3: 1个LED
|
||||
2, // [4] 增益4: 1个LED
|
||||
2, // [5] 增益5: 1个LED
|
||||
2, // [6] 增益6: 2个LED
|
||||
2, // [7] 增益7: 2个LED
|
||||
3, // [8] 增益8: 2个LED
|
||||
3, // [9] 增益9: 3个LED
|
||||
3, // [10] 增益10: 3个LED
|
||||
3, // [11] 增益11: 3个LED
|
||||
4, // [12] 增益12: 4个LED
|
||||
4, // [13] 增益13: 4个LED
|
||||
4, // [14] 增益14: 4个LED
|
||||
5, // [15] 增益15: 5个LED
|
||||
5, // [16] 增益16: 5个LED
|
||||
6, // [17] 增益17: 6个LED
|
||||
6, // [18] 增益18: 6个LED
|
||||
7, // [19] 增益19: 7个LED
|
||||
7, // [20] 增益20: 7个LED
|
||||
8, // [21] 增益21: 8个LED
|
||||
8, // [22] 增益22: 8个LED
|
||||
9, // [23] 增益23: 9个LED
|
||||
9, // [24] 增益24: 9个LED
|
||||
10, // [25] 增益25: 10个LED
|
||||
10, // [26] 增益26: 10个LED
|
||||
11, // [27] 增益27: 11个LED
|
||||
11, // [28] 增益28: 11个LED
|
||||
12, // [29] 增益29: 12个LED
|
||||
12, // [30] 增益30: 12个LED
|
||||
13, // [31] 增益31: 13个LED
|
||||
13, // [32] 增益32: 13个LED
|
||||
14, // [33] 增益33: 14个LED
|
||||
14, // [34] 增益34: 14个LED
|
||||
15, // [35] 增益35: 15个LED
|
||||
15, // [36] 增益36: 15个LED
|
||||
15 // [37] 增益36+1.5 digitial gain: 15个LED
|
||||
// 改动原因:按 SY102mic音量对应表.csv,将麦克风音量等级改为 49 级(0~48),最大增益改为 24dB,
|
||||
// LED档位按表中“旋钮刻度49级 + LED灯15个”的分段阈值重建。
|
||||
const uint8_t mic_gain_to_led[49] = {
|
||||
0, // [0] mute
|
||||
1, // [1]
|
||||
1, // [2]
|
||||
1, // [3]
|
||||
2, // [4]
|
||||
2, // [5]
|
||||
2, // [6]
|
||||
3, // [7]
|
||||
3, // [8]
|
||||
3, // [9]
|
||||
4, // [10]
|
||||
4, // [11]
|
||||
4, // [12]
|
||||
5, // [13]
|
||||
5, // [14]
|
||||
5, // [15]
|
||||
6, // [16]
|
||||
6, // [17]
|
||||
6, // [18]
|
||||
7, // [19]
|
||||
7, // [20]
|
||||
7, // [21]
|
||||
8, // [22]
|
||||
8, // [23]
|
||||
8, // [24]
|
||||
9, // [25]
|
||||
9, // [26]
|
||||
9, // [27]
|
||||
10, // [28]
|
||||
10, // [29]
|
||||
10, // [30]
|
||||
11, // [31]
|
||||
11, // [32]
|
||||
11, // [33]
|
||||
12, // [34]
|
||||
12, // [35]
|
||||
12, // [36]
|
||||
13, // [37]
|
||||
13, // [38]
|
||||
13, // [39]
|
||||
13, // [40]
|
||||
14, // [41]
|
||||
14, // [42]
|
||||
14, // [43]
|
||||
14, // [44]
|
||||
15, // [45]
|
||||
15, // [46]
|
||||
15, // [47]
|
||||
15 // [48] max 24dB
|
||||
};
|
||||
|
||||
// DAC监听音量增益到LED数量的映射表
|
||||
// 索引 0 = 静音 (0个LED, reg 0x0034=0x0000)
|
||||
// 索引 1~29: -28dB ~ 0dB,1dB/步,每2个dB对应1个LED(最后1dB独占15号LED)
|
||||
const uint8_t dac_gain_to_led[30] = {
|
||||
0, // [0] mute: 0 LEDs
|
||||
1, // [1] -28dB: 1 LED
|
||||
1, // [2] -27dB: 1 LED
|
||||
2, // [3] -26dB: 2 LEDs
|
||||
2, // [4] -25dB: 2 LEDs
|
||||
3, // [5] -24dB: 3 LEDs
|
||||
3, // [6] -23dB: 3 LEDs
|
||||
4, // [7] -22dB: 4 LEDs
|
||||
4, // [8] -21dB: 4 LEDs
|
||||
5, // [9] -20dB: 5 LEDs
|
||||
5, // [10] -19dB: 5 LEDs
|
||||
6, // [11] -18dB: 6 LEDs
|
||||
6, // [12] -17dB: 6 LEDs
|
||||
7, // [13] -16dB: 7 LEDs
|
||||
7, // [14] -15dB: 7 LEDs
|
||||
8, // [15] -14dB: 8 LEDs
|
||||
8, // [16] -13dB: 8 LEDs
|
||||
9, // [17] -12dB: 9 LEDs
|
||||
9, // [18] -11dB: 9 LEDs
|
||||
10, // [19] -10dB: 10 LEDs
|
||||
10, // [20] -9dB: 10 LEDs
|
||||
11, // [21] -8dB: 11 LEDs
|
||||
11, // [22] -7dB: 11 LEDs
|
||||
12, // [23] -6dB: 12 LEDs
|
||||
12, // [24] -5dB: 12 LEDs
|
||||
13, // [25] -4dB: 13 LEDs
|
||||
13, // [26] -3dB: 13 LEDs
|
||||
14, // [27] -2dB: 14 LEDs
|
||||
14, // [28] -1dB: 14 LEDs
|
||||
15, // [29] 0dB: 15 LEDs
|
||||
// 改动原因:按 SY102dac对应表.csv,将DAC音量等级改为 49 级(0~48),
|
||||
// LED分段阈值按“旋钮48格 + 15灯”映射重建,确保HID 0x93新范围显示一致。
|
||||
const uint8_t dac_gain_to_led[49] = {
|
||||
0, // [0] mute
|
||||
1, // [1]
|
||||
1, // [2]
|
||||
1, // [3]
|
||||
2, // [4]
|
||||
2, // [5]
|
||||
2, // [6]
|
||||
3, // [7]
|
||||
3, // [8]
|
||||
3, // [9]
|
||||
4, // [10]
|
||||
4, // [11]
|
||||
4, // [12]
|
||||
5, // [13]
|
||||
5, // [14]
|
||||
5, // [15]
|
||||
6, // [16]
|
||||
6, // [17]
|
||||
6, // [18]
|
||||
7, // [19]
|
||||
7, // [20]
|
||||
7, // [21]
|
||||
8, // [22]
|
||||
8, // [23]
|
||||
8, // [24]
|
||||
9, // [25]
|
||||
9, // [26]
|
||||
9, // [27]
|
||||
10, // [28]
|
||||
10, // [29]
|
||||
10, // [30]
|
||||
11, // [31]
|
||||
11, // [32]
|
||||
11, // [33]
|
||||
12, // [34]
|
||||
12, // [35]
|
||||
12, // [36]
|
||||
13, // [37]
|
||||
13, // [38]
|
||||
13, // [39]
|
||||
13, // [40]
|
||||
14, // [41]
|
||||
14, // [42]
|
||||
14, // [43]
|
||||
14, // [44]
|
||||
15, // [45]
|
||||
15, // [46]
|
||||
15, // [47]
|
||||
15, // [48]
|
||||
};
|
||||
|
||||
/*=========================================================================
|
||||
|
||||
@@ -65,8 +65,10 @@ typedef struct {
|
||||
extern const uint8_t led_l_physical_map[15];
|
||||
extern const uint8_t led_d_physical_map[15];
|
||||
|
||||
extern const uint8_t mic_gain_to_led[39];
|
||||
extern const uint8_t dac_gain_to_led[30];
|
||||
// 改动原因:麦克风音量协议从旧版38级(0~37)扩展为49级(0~48),LED映射表长度同步扩展。
|
||||
extern const uint8_t mic_gain_to_led[49];
|
||||
// 改动原因:按 SY102dac对应表.csv,DAC音量协议从30级(0~29)扩展为49级(0~48),LED映射表长度同步扩展。
|
||||
extern const uint8_t dac_gain_to_led[49];
|
||||
|
||||
/*=========================================================================
|
||||
基础控制API
|
||||
|
||||
@@ -22,7 +22,7 @@ swlock_t flash_lock = SWLOCK_INITIAL_VALUE;
|
||||
static rtos_qspi_flash_t qspi_flash_ctx_s;
|
||||
#define FLASH_CLKBLK XS1_CLKBLK_3
|
||||
#ifndef FS_BASE_ADDR
|
||||
#define FS_BASE_ADDR (2500 * 1024)
|
||||
#define FS_BASE_ADDR (3500 * 1024)
|
||||
#endif
|
||||
#define SECTOR_SIZE 4096
|
||||
rtos_qspi_flash_t *qspi_flash_ctx = &qspi_flash_ctx_s;
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
### 1.2 支持的指令列表
|
||||
| 指令码 | 命令名称 | 功能 | 方向 | 描述 |
|
||||
|--------|----------|------|------|------|
|
||||
| 0x82 | SET_MIC_VOLUME | 设置麦克风增益级别 | 主机→设备 | 设置麦克风PGA增益(0=静音, 1-37=0dB~36dB, 1dB/步) |
|
||||
| 0x83 | GET_MIC_VOLUME | 获取麦克风增益级别 | 主机→设备 | 读取当前麦克风PGA增益级别(0=静音, 1-37=0dB~36dB) |
|
||||
| 0x82 | SET_MIC_VOLUME | 设置麦克风增益级别 | 主机→设备 | 设置麦克风增益(0=静音, 1-48=0~24dB, 2级=1dB) |
|
||||
| 0x83 | GET_MIC_VOLUME | 获取麦克风增益级别 | 主机→设备 | 读取当前麦克风增益级别(0=静音, 1-48=0~24dB, 2级=1dB) |
|
||||
| 0x84 | FACTORY_RESET | 恢复出厂默认设置 | 主机→设备 | 删除Flash中所有已保存参数,设备重启后自动恢复出厂默认值 |
|
||||
| 0x85 | SET_AI_NOISE_STRENGTH | 设置AI降噪强度 | 主机→设备 | 设置AI降噪强度(0=关闭,2-100偶数=强度级别,步进2;100对应最强-200dB) |
|
||||
| 0x86 | GET_AI_NOISE_STRENGTH | 获取AI降噪强度 | 主机→设备 | 读取当前AI降噪强度;强度变化(含按键切换、开机初始值)时设备主动上报 |
|
||||
@@ -24,8 +24,8 @@
|
||||
| 0x90 | RESET_EQ_PARAMS | 复位EQ参数 | 主机→设备 | 删除Flash中的EQ参数并恢复头文件预设参数 |
|
||||
| 0x91 | GET_EQ_MODE_COUNT | 获取EQ模式总数 | 主机→设备 | 返回预定义加用户模式的总数(不包含禁用模式) |
|
||||
| 0x92 | SET_AND_SAVE_EQ_MODE | 设置并保存EQ模式 | 主机→设备 | 设置当前EQ模式(0-9)并保存到Flash,开机时自动恢复 |
|
||||
| 0x93 | SET_VOLUME | 设置监听音量级别 | 主机→设备 | 设置设备监听音量级别(0=静音, 1-29=-28dB~0dB, 1dB/步) |
|
||||
| 0x94 | GET_VOLUME | 获取监听音量级别 | 主机→设备 | 读取设备当前监听音量级别(0=静音, 1-29=-28dB~0dB, 1dB/步) |
|
||||
| 0x93 | SET_VOLUME | 设置监听音量级别 | 主机→设备 | 设置设备监听音量级别(0=静音, 1-48按SY102dac对应表映射到-66dB~0dB) |
|
||||
| 0x94 | GET_VOLUME | 获取监听音量级别 | 主机→设备 | 读取设备当前监听音量级别(0=静音, 1-48按SY102dac对应表映射) |
|
||||
| 0x9D | SET_EQ_ENABLE | 设置EQ使能开关 | 主机→设备 | 设置EQ使能开关(ON/OFF),禁用时保存当前模式,启用时恢复之前模式 |
|
||||
| 0x9E | GET_EQ_ENABLE | 获取EQ使能开关 | 主机→设备 | 读取EQ使能开关状态(ON/OFF) |
|
||||
| 0x9F | GET_SAMPLE_FORMAT | 获取采样率和格式 | 主机→设备 | 读取当前采样率、DSD模式和DAC采样分辨率 |
|
||||
@@ -59,17 +59,18 @@
|
||||
---------|------|------|------
|
||||
0 | 1 | 0x77 | 同步头1
|
||||
1 | 1 | 0x82 | 命令码
|
||||
2 | 1 | uint8 | 增益级别 (0=静音, 1-37=0dB~36dB, 1dB/步)
|
||||
2 | 1 | uint8 | 增益级别 (0=静音, 1-48=0~24dB, 2级=1dB)
|
||||
3-62 | 60 | 0x00 | 保留字节
|
||||
```
|
||||
|
||||
**参数说明**:
|
||||
- **增益级别范围:** 0-37(共38级)
|
||||
- **增益级别范围:** 0-48(共49级)
|
||||
- 0:静音(mute)
|
||||
- 1:0dB(最小有效增益)
|
||||
- 1:约0.5dB(按2级=1dB映射)
|
||||
- 2:1dB
|
||||
- ...(1dB/步)
|
||||
- 37:36dB(最大HID可设置增益)
|
||||
- ...(2级=1dB)
|
||||
- 47:约23.5dB
|
||||
- 48:24dB(最大HID可设置增益)
|
||||
|
||||
**返回值**:
|
||||
无直接返回值。设备端增益变化会主动上报0x83格式数据包。
|
||||
@@ -93,7 +94,7 @@
|
||||
0 | 1 | 0x01 | Report ID
|
||||
1 | 1 | 0x77 | 同步头1
|
||||
2 | 1 | 0x83 | 同步头2
|
||||
3 | 1 | uint8 | 当前增益级别 (0=静音, 1-37=0dB~36dB)
|
||||
3 | 1 | uint8 | 当前增益级别 (0=静音, 1-48=0~24dB, 2级=1dB)
|
||||
4-62 | 59 | 0x00 | 保留字节
|
||||
```
|
||||
|
||||
@@ -515,12 +516,12 @@
|
||||
---------|------|------|------
|
||||
0 | 1 | 0x77 | 同步头1
|
||||
1 | 1 | 0x93 | 命令码
|
||||
2 | 1 | uint8 | 音量级别 (0-29: 0=静音, 1=-28dB, ..., 29=0dB)
|
||||
2 | 1 | uint8 | 音量级别 (0-48: 0=静音, 1=-66dB, ..., 48=0dB;按SY102dac对应表)
|
||||
3-62 | 60 | 0x00 | 保留字节
|
||||
```
|
||||
|
||||
**参数说明**:
|
||||
- **音量级别范围:** 0-29(共30级)
|
||||
- **音量级别范围:** 0-48(共49级)
|
||||
- **说明:** 控制设备监听输出(DAC/耳机)音量级别
|
||||
- 0: 静音(mute,DAC完全静音)
|
||||
- 1: -28dB(最小有效音量)
|
||||
@@ -550,7 +551,7 @@
|
||||
0 | 1 | 0x01 | Report ID
|
||||
1 | 1 | 0x77 | 同步头1
|
||||
2 | 1 | 0x94 | 同步头2
|
||||
3 | 1 | uint8 | 当前音量级别 (0-29: 0=静音, 1-29=-28dB~0dB, 1dB/步)
|
||||
3 | 1 | uint8 | 当前音量级别 (0-48: 0=静音, 1-48按SY102dac对应表映射到-66dB~0dB)
|
||||
4-62 | 59 | 0x00 | 保留字节
|
||||
```
|
||||
### 2.20 0x9D - SET_EQ_ENABLE (设置EQ使能开关)
|
||||
|
||||
Reference in New Issue
Block a user