This commit is contained in:
Dan-guanghua
2025-12-15 12:05:06 +08:00
parent 749e9926e5
commit 90c69ea943
18 changed files with 9373 additions and 866 deletions

View File

@@ -1,51 +1,51 @@
#ifndef __DS_BUILD_H__
#define __DS_BUILD_H__
//#define _DEBUG
#define XMOS_SDK
#define USE_OS // Thread, Event, Lock 등의 외부 OS API 사용
#define USE_FIXED_POINT // 내부 연산 고정소수점 사용
#define USE_PLANAR_ARRAY_INPUT // Audio Input Data Planar 배열 사용
#if (NUM_USB_CHAN_OUT > 5)
#define USE_LFE_UNIT // LFE 채널 Convolution 사용
#endif
// #define USE_UPMIX // Upmix 기능 사용
#if (NUM_USB_CHAN_OUT <= 8)
#if (NUM_USB_CHAN_OUT == 2)
#define USE_ONLY_STEREO
#endif
#define USE_ONLY_HORIZONTALITY // 수평 방향(Vertical 90도)만 사용
#elif (NUM_USB_CHAN_OUT == 12)
#define USE_7_1_4_IR_ARRARY // top: 1st~4th (45/135/225/315 ==> TFL/TFR/TBL/TBR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
#elif (NUM_USB_CHAN_OUT == 16)
#define USE_7_1_4_4_IR_ARRARY // top: 1st~4th (45/135/225/315 ==> TFL/TFR/TBL/TBR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
// bottom: 13th~16th (45/135/225/315 ==> BFL/BFR/BBL/BBR)
#elif (NUM_USB_CHAN_OUT == 24)
#define USE_7_1_8_8_IR_ARRARY // top: 1st~4th (0/45/90/135/180/225/270/315 ==> TFL/TFR/TFC/TBC/TBL/TBR/TSL/TSR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
// bottom: 13th~16th (0/45/90/135/180/225/270/315 ==> BFL/BFR/BFC/BBC/BBL/BBR/BSL/BSR)
#endif
#if NUM_USB_CHAN_OUT == 8
//#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
#define DSP_WORKER_DATA_CH_COUNT 1 //the number of channels each one handles
#define DSP_WORKER_FILTER_PER_DATA_CH 2 //the number of channels each one handles
#endif
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#endif //__DS_BUILD_H__
#ifndef __DS_BUILD_H__
#define __DS_BUILD_H__
//#define _DEBUG
#define XMOS_SDK
#define USE_OS // Thread, Event, Lock 등의 외부 OS API 사용
#define USE_FIXED_POINT // 내부 연산 고정소수점 사용
#define USE_PLANAR_ARRAY_INPUT // Audio Input Data Planar 배열 사용
#if (NUM_USB_CHAN_OUT > 5)
#define USE_LFE_UNIT // LFE 채널 Convolution 사용
#endif
// #define USE_UPMIX // Upmix 기능 사용
#if (NUM_USB_CHAN_OUT <= 8)
#if (NUM_USB_CHAN_OUT == 2)
#define USE_ONLY_STEREO
#endif
#define USE_ONLY_HORIZONTALITY // 수평 방향(Vertical 90도)만 사용
#elif (NUM_USB_CHAN_OUT == 12)
#define USE_7_1_4_IR_ARRARY // top: 1st~4th (45/135/225/315 ==> TFL/TFR/TBL/TBR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
#elif (NUM_USB_CHAN_OUT == 16)
#define USE_7_1_4_4_IR_ARRARY // top: 1st~4th (45/135/225/315 ==> TFL/TFR/TBL/TBR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
// bottom: 13th~16th (45/135/225/315 ==> BFL/BFR/BBL/BBR)
#elif (NUM_USB_CHAN_OUT == 24)
#define USE_7_1_8_8_IR_ARRARY // top: 1st~4th (0/45/90/135/180/225/270/315 ==> TFL/TFR/TFC/TBC/TBL/TBR/TSL/TSR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
// bottom: 13th~16th (0/45/90/135/180/225/270/315 ==> BFL/BFR/BFC/BBC/BBL/BBR/BSL/BSR)
#endif
#if NUM_USB_CHAN_OUT == 8
//#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
#define DSP_WORKER_DATA_CH_COUNT 1 //the number of channels each one handles
#define DSP_WORKER_FILTER_PER_DATA_CH 2 //the number of channels each one handles
#endif
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#endif //__DS_BUILD_H__

View File

@@ -1,72 +1,72 @@
#if defined(EXTERN)
#undef EXTERN
#endif
#if defined(_AUDIO_EX3D_CONTROL_C_)
#define EXTERN
#else
#define EXTERN extern
#endif
#define NO_ERR 0
#ifndef TRUE
#define TRUE 1
#endif
#ifndef true
#define true 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef false
#define false 0
#endif
#ifndef DS_BOOL
typedef int DS_BOOL;
#endif
#define EX3D_SET_CH_NUM NUM_USB_CHAN_OUT
#define EX3D_SF_NUM 1
EXTERN void audio_ex3d_load_key(chanend_t c);
EXTERN int audio_ex3d_activate_key(chanend_t c);
EXTERN int audio_ex3d_init(uint32_t dwChannels, uint32_t dwSampleSize, uint32_t dwSRHz, uint32_t dwAudioDataSize);
EXTERN int audio_ex3d_conv_init(uint32_t dwTileNum, uint32_t dwChannels);
EXTERN int audio_ex3d_deinit(void);
EXTERN int audio_ex3d_change_parameter(uint32_t dwChannels, uint32_t dwSampleSize, uint32_t dwSRHz, uint32_t dwAudioDataSize);
EXTERN void audio_ex3d_set_onoff(DS_BOOL onoff);
EXTERN void audio_ex3d_set_sf(uint32_t SF_Idx);
#if 1
EXTERN void audio_ex3d_set_angle(uint32_t dwCh1Angle, uint32_t dwCh2Angle);
#else
EXTERN void audio_ex3d_set_angle(uint32_t dwCh1Angle, uint32_t dwCh2Angle,
uint32_t dwCh3Angle, uint32_t dwCh4Angle,
uint32_t dwCh5Angle, uint32_t dwCh6Angle,
uint32_t dwCh7Angle, uint32_t dwCh8Angle);
#endif
EXTERN void audio_ex3d_set_upmix(DS_BOOL onoff);
EXTERN void audio_ex3d_upmix_toggle(void);
EXTERN void audio_ex3d_toggle(void);
EXTERN void audio_ex3d_task(void);
EXTERN uint32_t EX3D_HAngle[EX3D_SET_CH_NUM]; // EX3D Channel 수평각
EXTERN uint32_t EX3D_VAngle[EX3D_SET_CH_NUM]; // EX3D Channel 수직각
EXTERN DS_BOOL EX3D_Mute[EX3D_SET_CH_NUM]; // EX3D Channel Mute
EXTERN uint8_t bEX3D_Open; // EX3D Open 유무 저장
EXTERN uint8_t bEX3D_On; // EX3D On 유무 저장
EXTERN int32_t Ex3dOnGain; // EX3D On Gain 값
EXTERN int32_t Ex3dOffGain; // EX3D Off Gain 값
EXTERN int32_t Ex3dLfeGain; // EX3D Lfe Gain 값
EXTERN uint8_t bEX3D_Upmix; // EX3D Upmix 유무 저장
EXTERN float Ex3dLimiterThreshold; // EX3D Limiter threshold 값
EXTERN int32_t Ex3dLimiterAttackTime; // EX3D Limiter Attack Time 값
EXTERN int32_t Ex3dLimiterReleaseTime; // EX3D Limiter Release Time 값
#if defined(EXTERN)
#undef EXTERN
#endif
#if defined(_AUDIO_EX3D_CONTROL_C_)
#define EXTERN
#else
#define EXTERN extern
#endif
#define NO_ERR 0
#ifndef TRUE
#define TRUE 1
#endif
#ifndef true
#define true 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef false
#define false 0
#endif
#ifndef DS_BOOL
typedef int DS_BOOL;
#endif
#define EX3D_SET_CH_NUM NUM_USB_CHAN_OUT
#define EX3D_SF_NUM 1
EXTERN void audio_ex3d_load_key(chanend_t c);
EXTERN int audio_ex3d_activate_key(chanend_t c);
EXTERN int audio_ex3d_init(uint32_t dwChannels, uint32_t dwSampleSize, uint32_t dwSRHz, uint32_t dwAudioDataSize);
EXTERN int audio_ex3d_conv_init(uint32_t dwTileNum, uint32_t dwChannels);
EXTERN int audio_ex3d_deinit(void);
EXTERN int audio_ex3d_change_parameter(uint32_t dwChannels, uint32_t dwSampleSize, uint32_t dwSRHz, uint32_t dwAudioDataSize);
EXTERN void audio_ex3d_set_onoff(DS_BOOL onoff);
EXTERN void audio_ex3d_set_sf(uint32_t SF_Idx);
#if 1
EXTERN void audio_ex3d_set_angle(uint32_t dwCh1Angle, uint32_t dwCh2Angle);
#else
EXTERN void audio_ex3d_set_angle(uint32_t dwCh1Angle, uint32_t dwCh2Angle,
uint32_t dwCh3Angle, uint32_t dwCh4Angle,
uint32_t dwCh5Angle, uint32_t dwCh6Angle,
uint32_t dwCh7Angle, uint32_t dwCh8Angle);
#endif
EXTERN void audio_ex3d_set_upmix(DS_BOOL onoff);
EXTERN void audio_ex3d_upmix_toggle(void);
EXTERN void audio_ex3d_toggle(void);
EXTERN void audio_ex3d_task(void);
EXTERN uint32_t EX3D_HAngle[EX3D_SET_CH_NUM]; // EX3D Channel 수평각
EXTERN uint32_t EX3D_VAngle[EX3D_SET_CH_NUM]; // EX3D Channel 수직각
EXTERN DS_BOOL EX3D_Mute[EX3D_SET_CH_NUM]; // EX3D Channel Mute
EXTERN uint8_t bEX3D_Open; // EX3D Open 유무 저장
EXTERN uint8_t bEX3D_On; // EX3D On 유무 저장
EXTERN int32_t Ex3dOnGain; // EX3D On Gain 값
EXTERN int32_t Ex3dOffGain; // EX3D Off Gain 값
EXTERN int32_t Ex3dLfeGain; // EX3D Lfe Gain 값
EXTERN uint8_t bEX3D_Upmix; // EX3D Upmix 유무 저장
EXTERN float Ex3dLimiterThreshold; // EX3D Limiter threshold 값
EXTERN int32_t Ex3dLimiterAttackTime; // EX3D Limiter Attack Time 값
EXTERN int32_t Ex3dLimiterReleaseTime; // EX3D Limiter Release Time 값