音量同步:一种统一划分HOST端音量级别的实现方法

1. mac小机调音17级

_usb_audio_vol_changed_notify: volume_db: -601 //0

_usb_audio_vol_changed_notify: volume_db: -451 //1

_usb_audio_vol_changed_notify: volume_db: -391 //2

_usb_audio_vol_changed_notify: volume_db: -342 //3

_usb_audio_vol_changed_notify: volume_db: -300 //4

_usb_audio_vol_changed_notify: volume_db: -264 //5

_usb_audio_vol_changed_notify: volume_db: -234 //6

_usb_audio_vol_changed_notify: volume_db: -204 //7

_usb_audio_vol_changed_notify: volume_db: -174 //8

_usb_audio_vol_changed_notify: volume_db: -156 //9

_usb_audio_vol_changed_notify: volume_db: -126 //10

_usb_audio_vol_changed_notify: volume_db: -102 //11

_usb_audio_vol_changed_notify: volume_db: -78  //12

_usb_audio_vol_changed_notify: volume_db: -60  //13

_usb_audio_vol_changed_notify: volume_db: -36  //14

_usb_audio_vol_changed_notify: volume_db: -18  //15

_usb_audio_vol_changed_notify: volume_db: 0    //16


2. win7-10小机调音51级

_usb_audio_vol_changed_notify: volume_db: -601 //0

_usb_audio_vol_changed_notify: volume_db: -494 //1

_usb_audio_vol_changed_notify: volume_db: -431 //2

_usb_audio_vol_changed_notify: volume_db: -387 //3
_usb_audio_vol_changed_notify: volume_db: -353

_usb_audio_vol_changed_notify: volume_db: -325 //4
_usb_audio_vol_changed_notify: volume_db: -302

_usb_audio_vol_changed_notify: volume_db: -281 //5
_usb_audio_vol_changed_notify: volume_db: -264

_usb_audio_vol_changed_notify: volume_db: -247 //6
_usb_audio_vol_changed_notify: volume_db: -233

_usb_audio_vol_changed_notify: volume_db: -220 //7
_usb_audio_vol_changed_notify: volume_db: -207
_usb_audio_vol_changed_notify: volume_db: -196

_usb_audio_vol_changed_notify: volume_db: -186 //8
_usb_audio_vol_changed_notify: volume_db: -176

_usb_audio_vol_changed_notify: volume_db: -167 //9
_usb_audio_vol_changed_notify: volume_db: -158
_usb_audio_vol_changed_notify: volume_db: -150

_usb_audio_vol_changed_notify: volume_db: -142 //10
_usb_audio_vol_changed_notify: volume_db: -134
_usb_audio_vol_changed_notify: volume_db: -127

_usb_audio_vol_changed_notify: volume_db: -121 //11
_usb_audio_vol_changed_notify: volume_db: -114 
_usb_audio_vol_changed_notify: volume_db: -108
_usb_audio_vol_changed_notify: volume_db: -102

_usb_audio_vol_changed_notify: volume_db: -96 //12
_usb_audio_vol_changed_notify: volume_db: -91
_usb_audio_vol_changed_notify: volume_db: -85
_usb_audio_vol_changed_notify: volume_db: -80
_usb_audio_vol_changed_notify: volume_db: -75 

_usb_audio_vol_changed_notify: volume_db: -70 //13
_usb_audio_vol_changed_notify: volume_db: -66
_usb_audio_vol_changed_notify: volume_db: -61
_usb_audio_vol_changed_notify: volume_db: -57
_usb_audio_vol_changed_notify: volume_db: -52

_usb_audio_vol_changed_notify: volume_db: -48 //14
_usb_audio_vol_changed_notify: volume_db: -44
_usb_audio_vol_changed_notify: volume_db: -40
_usb_audio_vol_changed_notify: volume_db: -36
_usb_audio_vol_changed_notify: volume_db: -33

_usb_audio_vol_changed_notify: volume_db: -29 //15
_usb_audio_vol_changed_notify: volume_db: -25
_usb_audio_vol_changed_notify: volume_db: -22
_usb_audio_vol_changed_notify: volume_db: -19
_usb_audio_vol_changed_notify: volume_db: -15
_usb_audio_vol_changed_notify: volume_db: -12
_usb_audio_vol_changed_notify: volume_db: -9
_usb_audio_vol_changed_notify: volume_db: -6
_usb_audio_vol_changed_notify: volume_db: -3

_usb_audio_vol_changed_notify: volume_db: 0

3. winxp小机调音26级

_usb_audio_vol_changed_notify: volume_db: -601 //0

_usb_audio_vol_changed_notify: volume_db: -577 //1
_usb_audio_vol_changed_notify: volume_db: -553
_usb_audio_vol_changed_notify: volume_db: -529
_usb_audio_vol_changed_notify: volume_db: -505
_usb_audio_vol_changed_notify: volume_db: -481
_usb_audio_vol_changed_notify: volume_db: -457

_usb_audio_vol_changed_notify: volume_db: -433 //2
_usb_audio_vol_changed_notify: volume_db: -409

_usb_audio_vol_changed_notify: volume_db: -384 //3
_usb_audio_vol_changed_notify: volume_db: -360

_usb_audio_vol_changed_notify: volume_db: -336 //4
_usb_audio_vol_changed_notify: volume_db: -312

_usb_audio_vol_changed_notify: volume_db: -288 //5
_usb_audio_vol_changed_notify: volume_db: -264

_usb_audio_vol_changed_notify: volume_db: -240 //6

_usb_audio_vol_changed_notify: volume_db: -216 //7

_usb_audio_vol_changed_notify: volume_db: -192 //8

_usb_audio_vol_changed_notify: volume_db: -168 //9

_usb_audio_vol_changed_notify: volume_db: -144 //10

_usb_audio_vol_changed_notify: volume_db: -120 //11

_usb_audio_vol_changed_notify: volume_db: -96  //12

_usb_audio_vol_changed_notify: volume_db: -72  //13

_usb_audio_vol_changed_notify: volume_db: -48  //14

_usb_audio_vol_changed_notify: volume_db: -24  //15

_usb_audio_vol_changed_notify: volume_db: 0

4. Usound音量映射表取值

4. 测试伪代码

(1)音量级别划分可行性说明

划分成17级,级别值为0~160音量值最小(等价于静音),16音量最大。

(2)附简单测试程序

文件usound_main.c

-----------------------------------------------------------------------------------------

#define USB_AUDIO_VOL_LEVEL 17

static const short usb_audio_pa_table[USB_AUDIO_VOL_LEVEL] = {

       -590, -440, -380, -339,

       -290, -240, -220, -194,

       -170, -147, -123, -100,

       -74,  -50,  -30,  -2,

       0,

};



static u8_t usb_audio_get_volume_level_by_db(int vol_db)

{

       u8_t i;

       if (vol_db == 0) {

              return 16;

       } else {

              for(i=0; i < USB_AUDIO_VOL_LEVEL; i++) {

                     if( vol_db < usb_audio_pa_table[i])

                            break;

              }

              return i;

       }

      

}

-----------------------------------------------------------------------------------------


static void _usb_audio_event_callback_handle(u8_t info_type, u16_t pstore_info)

{

                 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

case USOUND_SYNC_HOST_VOL_TYPE:

       {

              int volume_db = usb_host_sync_volume_to_device(pstore_info);

              u8_t volume_level = usb_audio_get_volume_level_by_db(volume_db);

              SYS_LOG_WRN("volume_level(db): %d\n", volume_level);  //小机按键调音,win7/10、XP、Mac都能打印出音量级:0~16

                  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值