report mode change
This commit is contained in:
@@ -87,6 +87,7 @@ unsigned g_request_mic_volume_set = 0;
|
|||||||
unsigned g_last_mic_volume_level = 0xFF; // 上次已上报的麦克风增益级别,0xFF表示初始化未完成
|
unsigned g_last_mic_volume_level = 0xFF; // 上次已上报的麦克风增益级别,0xFF表示初始化未完成
|
||||||
unsigned g_dnr_strength = 100; // AI降噪强度HID值(0=关,2-100=开,步进2;100→-200dB最强)
|
unsigned g_dnr_strength = 100; // AI降噪强度HID值(0=关,2-100=开,步进2;100→-200dB最强)
|
||||||
unsigned g_last_dnr_strength = 0xFF; // 上次已上报的降噪强度,0xFF表示首次未上报(触发开机上报)
|
unsigned g_last_dnr_strength = 0xFF; // 上次已上报的降噪强度,0xFF表示首次未上报(触发开机上报)
|
||||||
|
unsigned g_last_game_mode = 0xFF; // 上次已上报的音效模式,0xFF表示首次未上报(触发开机上报)
|
||||||
unsigned g_request_dnr_strength_set = 0; // HID 0x85 SET_AI_NOISE_STRENGTH待处理标志
|
unsigned g_request_dnr_strength_set = 0; // HID 0x85 SET_AI_NOISE_STRENGTH待处理标志
|
||||||
unsigned g_monitor_switch = 0; // 耳返开关(0=关闭,1=开启),默认关闭
|
unsigned g_monitor_switch = 0; // 耳返开关(0=关闭,1=开启),默认关闭
|
||||||
unsigned g_request_monitor_switch_set = 0; // HID 0x87 SET_MONITOR_SWITCH待处理标志
|
unsigned g_request_monitor_switch_set = 0; // HID 0x87 SET_MONITOR_SWITCH待处理标志
|
||||||
@@ -1981,6 +1982,30 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
|||||||
g_last_dnr_strength = current_dnr_strength;
|
g_last_dnr_strength = current_dnr_strength;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// HID音效模式变化主动上报(按键切换或0xA4命令导致的模式变化,含首次开机上报)
|
||||||
|
{
|
||||||
|
unsigned current_game_mode;
|
||||||
|
GET_SHARED_GLOBAL(current_game_mode, g_game_mode);
|
||||||
|
#if HID_DFU_EN
|
||||||
|
if (!g_in_fw_upgrade)
|
||||||
|
#endif
|
||||||
|
if (g_last_game_mode != current_game_mode) {
|
||||||
|
unsafe {
|
||||||
|
unsigned char * unsafe ptr = (unsigned char * unsafe)hidSendData;
|
||||||
|
ptr[0] = 1;
|
||||||
|
ptr[1] = 0x77;
|
||||||
|
ptr[2] = 0xA5;
|
||||||
|
ptr[3] = (unsigned char)current_game_mode;
|
||||||
|
for (int i = 4; i < HID_MAX_DATA_BYTES; i++)
|
||||||
|
ptr[i] = 0x00;
|
||||||
|
}
|
||||||
|
hidSetChangePending(0x1);
|
||||||
|
debug_printf("Game mode changed: %d -> %d, HID report sent\n",
|
||||||
|
g_last_game_mode, current_game_mode);
|
||||||
|
}
|
||||||
|
g_last_game_mode = current_game_mode;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EQ_EN
|
#if EQ_EN
|
||||||
|
|||||||
@@ -714,11 +714,11 @@
|
|||||||
- 如果参数超出范围(>3),固件将拒绝设置并返回false
|
- 如果参数超出范围(>3),固件将拒绝设置并返回false
|
||||||
|
|
||||||
**返回值**:
|
**返回值**:
|
||||||
无直接返回值。如需确认音效模式是否设置成功,请使用GET_SOUND_EFFECT_MODE命令读取当前音效模式。
|
无直接返回值。设备端音效模式变化会主动通过0xA5格式上报。
|
||||||
|
|
||||||
### 2.28 0xA5 - GET_SOUND_EFFECT_MODE (获取音效模式)
|
### 2.28 0xA5 - GET_SOUND_EFFECT_MODE (获取音效模式)
|
||||||
**功能**: 读取设备当前音效模式
|
**功能**: 读取设备当前音效模式;音效模式变化时设备主动上报
|
||||||
**方向**: 主机→设备
|
**方向**: 主机→设备(请求),设备→主机(响应/主动上报)
|
||||||
**请求数据包格式**:
|
**请求数据包格式**:
|
||||||
```
|
```
|
||||||
字节位置 | 长度 | 内容 | 描述
|
字节位置 | 长度 | 内容 | 描述
|
||||||
@@ -739,6 +739,12 @@
|
|||||||
4-62 | 59 | 0x00 | 保留字节
|
4-62 | 59 | 0x00 | 保留字节
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**主动上报说明**:
|
||||||
|
- **开机时**:设备初始化完成后主动上报当前音效模式
|
||||||
|
- **按键切换**:用户按下Music/Game/AI7.1按键时,设备主动上报新音效模式
|
||||||
|
- **HID SET_SOUND_EFFECT_MODE(0xA4)命令成功执行后**,设备主动上报新音效模式
|
||||||
|
- 上报数据包格式与响应格式相同(0x01, 0x77, 0xA5, mode)
|
||||||
|
|
||||||
### 2.29 0xA6 - GET_FIRMWARE_VERSION (获取固件版本)
|
### 2.29 0xA6 - GET_FIRMWARE_VERSION (获取固件版本)
|
||||||
**功能**: 读取设备固件版本号
|
**功能**: 读取设备固件版本号
|
||||||
**方向**: 主机→设备
|
**方向**: 主机→设备
|
||||||
|
|||||||
@@ -672,11 +672,11 @@
|
|||||||
- 3: AI7.1模式 — AI7.1键灯亮,EQ算法开启,EX3D AI7.1声场(SF=1)开启
|
- 3: AI7.1模式 — AI7.1键灯亮,EQ算法开启,EX3D AI7.1声场(SF=1)开启
|
||||||
|
|
||||||
**返回值**:
|
**返回值**:
|
||||||
无直接返回值。如需确认音效模式是否设置成功,请使用GET_SOUND_EFFECT_MODE命令读取当前音效模式。
|
无直接返回值。设备端音效模式变化会主动通过0xA5格式上报。
|
||||||
|
|
||||||
### 2.28 0xA5 - GET_SOUND_EFFECT_MODE (获取音效模式)
|
### 2.28 0xA5 - GET_SOUND_EFFECT_MODE (获取音效模式)
|
||||||
**功能**: 读取设备当前音效模式
|
**功能**: 读取设备当前音效模式;音效模式变化时设备主动上报
|
||||||
**方向**: 主机→设备
|
**方向**: 主机→设备(请求),设备→主机(响应/主动上报)
|
||||||
**请求数据包格式**:
|
**请求数据包格式**:
|
||||||
```
|
```
|
||||||
字节位置 | 长度 | 内容 | 描述
|
字节位置 | 长度 | 内容 | 描述
|
||||||
@@ -686,7 +686,7 @@
|
|||||||
2-62 | 61 | 0x00 | 保留字节
|
2-62 | 61 | 0x00 | 保留字节
|
||||||
```
|
```
|
||||||
|
|
||||||
**响应数据包格式**:
|
**响应数据包格式**(含主动上报):
|
||||||
```
|
```
|
||||||
字节位置 | 长度 | 内容 | 描述
|
字节位置 | 长度 | 内容 | 描述
|
||||||
---------|------|------|------
|
---------|------|------|------
|
||||||
@@ -697,6 +697,12 @@
|
|||||||
4-62 | 59 | 0x00 | 保留字节
|
4-62 | 59 | 0x00 | 保留字节
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**主动上报说明**:
|
||||||
|
- **开机时**:设备初始化完成后主动上报当前音效模式
|
||||||
|
- **按键切换**:用户按下Music/Game/AI7.1按键时,设备主动上报新音效模式
|
||||||
|
- **HID SET_SOUND_EFFECT_MODE(0xA4)命令成功执行后**,设备主动上报新音效模式
|
||||||
|
- 上报数据包格式与响应格式相同(0x01, 0x77, 0xA5, mode)
|
||||||
|
|
||||||
### 2.29 0xA6 - GET_FIRMWARE_VERSION (获取固件版本)
|
### 2.29 0xA6 - GET_FIRMWARE_VERSION (获取固件版本)
|
||||||
**功能**: 读取设备固件版本号
|
**功能**: 读取设备固件版本号
|
||||||
**方向**: 主机→设备
|
**方向**: 主机→设备
|
||||||
|
|||||||
Reference in New Issue
Block a user