bsp_effect.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*****************************************************************************
  2. * Copyright (c) 2023 Shenzhen Bluetrum Technology Co.,Ltd. All rights reserved.
  3. * File : bsp_effect.h
  4. * Function : 音乐音效模块接口
  5. * History :
  6. * Created by yutao on 2023-12-1.
  7. *****************************************************************************/
  8. #ifndef __BSP_EFFECT_H__
  9. #define __BSP_EFFECT_H__
  10. typedef enum {
  11. MUSIC_EFFECT_DBB = 0, //动态低音音效
  12. MUSIC_EFFECT_SPATIAL_AUDIO, //空间音效
  13. MUSIC_EFFECT_VBASS, //虚拟低音音效
  14. MUSIC_EFFECT_DYEQ, //动态EQ音效
  15. MUSIC_EFFECT_XDRC, //2段DRC
  16. MUSIC_EFFECT_ABP, //舒适噪声(alpha波、beta波、pink)
  17. MUSIC_EFFECT_HRTF_RT, //动态空间音频
  18. MUSIC_EFFECT_ALG_USER = 8, //用户自定义音效算法
  19. MUSIC_EFFECT_MAX = 16,
  20. } MUSIC_EFFECT_ALG;
  21. enum {
  22. MUSIC_EFFECT_SUSPEND_FOR_SCO,
  23. MUSIC_EFFECT_SUSPEND_FOR_RES,
  24. MUSIC_EFFECT_SUSPEND_FOR_HIRES_DEC,
  25. MUSIC_EFFECT_SUSPEND_FOR_CHARGE,
  26. MUSIC_EFFECT_SUSPEND_FOR_ASR,
  27. };
  28. void music_effect_init(void);
  29. void music_effect_sco_audio_init_do(void);
  30. void music_effect_sco_audio_exit_do(void);
  31. void music_effect_sfunc_sleep_do(u8 enter);
  32. void music_effect_func_process(void);
  33. void music_effect_get_music_eq_total_gain(u32* gain);
  34. int music_effect_set_state(MUSIC_EFFECT_ALG alg, u8 state); //设置音效状态
  35. bool music_effect_get_state(MUSIC_EFFECT_ALG alg); //获取音效是否已经设置打开(不包含因通话、提示音等暂停的状态)
  36. bool music_effect_get_state_real(MUSIC_EFFECT_ALG alg); //获取音效实际的状态
  37. void music_effect_alg_reinit(void); //重新初始化算法的软件部分
  38. void music_effect_alg_restart(void); //重启算法,打开算法硬件部分
  39. void music_effect_alg_suspend(u8 reason); //暂停算法,关闭算法硬件部分
  40. ///动态低音音效
  41. void music_dbb_audio_start(void);
  42. void music_dbb_audio_stop(void);
  43. void music_dbb_audio_set_vol_do(u8 vol_level);
  44. void music_dbb_audio_set_bass_level(u8 bass_level);
  45. ///空间音效
  46. void music_spatial_audio_start(void);
  47. void music_spatial_audio_stop(void);
  48. u8 music_spatial_audio_get_fix_eq_sta(void);
  49. ///虚拟低音
  50. void music_vbass_audio_start(void);
  51. void music_vbass_audio_stop(void);
  52. void music_vbass_set_param(u32 cutoff_frequency, u32 intensity, u8 vbass_high_frequency_set, u32 pregain);
  53. ///动态EQ
  54. void music_dyeq_audio_start(void);
  55. void music_dyeq_audio_stop(void);
  56. void music_dyeq_audio_set_vol_do(u8 vol_level);
  57. void music_dyeq_audio_set_vol_by_vol(u16 vol, u8 vol_direct_set);
  58. void music_dyeq_set_param(u8 *buf);
  59. void music_dyeq_drc_set_param(void *buf);
  60. ///2段DRC
  61. void music_xdrc_audio_start(void);
  62. void music_xdrc_audio_stop(void);
  63. void music_xdrc_audio_set_vol_do(u8 vol_level);
  64. void music_xdrc_audio_set_vol_by_vol(u16 vol, u8 vol_direct_set);
  65. void music_xdrc_set_delay(u16 delay_samples);
  66. void xdrc_softeq_set_param(u8* buf);
  67. ///动态空间音频
  68. void music_hrtf_rt_start(void);
  69. void music_hrtf_rt_stop(void);
  70. u8 music_hrtf_rt_get_fix_eq_sta(void);
  71. void music_hrtf_rt_update_angle(s16 az, s16 el);
  72. ///用户自定义音效算法
  73. void music_effect_alg_user_start(void);
  74. void music_effect_alg_user_stop(void);
  75. #endif //__BSP_EFFECT_H__