update ex3d settings
This commit is contained in:
@@ -93,6 +93,9 @@ unsigned g_format_delay_time = 0;
|
||||
unsigned g_mclk_select = 0;
|
||||
// 改动原因:添加LED开关全局变量,控制LED是否显示(0=关闭,1=开启)
|
||||
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;
|
||||
uint32_t get_reference_time();
|
||||
unsigned g_disable_i2c = 0;
|
||||
unsigned g_dac_mode = 10;
|
||||
@@ -341,6 +344,7 @@ 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
|
||||
unsigned flag_footsteps_enhancement = 0;
|
||||
unsigned flag_aidenoise_onoff = 0;
|
||||
|
||||
@@ -379,6 +383,17 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
saved_mode = load_value(path);
|
||||
debug_printf("Loaded game_mode from flash: %d\n", saved_mode);
|
||||
|
||||
#if USE_EX3D == 1
|
||||
// 加载脚步增强状态(保存值为expand_gain: 0/6/12)
|
||||
{
|
||||
unsigned char footstep_path[] = "footstep";
|
||||
unsigned char saved_footstep = load_value(footstep_path);
|
||||
if (saved_footstep == 6) flag_footsteps_enhancement = 1;
|
||||
else if (saved_footstep == 12) flag_footsteps_enhancement = 2;
|
||||
else flag_footsteps_enhancement = 0;
|
||||
debug_printf("Loaded footstep gain from flash: %d, state=%d\n", saved_footstep, flag_footsteps_enhancement);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(UAC1_MODE)
|
||||
delay_milliseconds(300);
|
||||
@@ -554,6 +569,27 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
debug_printf("Sent sound_effect_mode %d to hid_button_task\n", active_mode);
|
||||
}
|
||||
|
||||
#if USE_EX3D == 1
|
||||
// 发送初始脚步增强expand_gain到tile1
|
||||
{
|
||||
int init_expand = 0;
|
||||
if (flag_footsteps_enhancement == 1) init_expand = 6;
|
||||
else if (flag_footsteps_enhancement == 2) init_expand = 12;
|
||||
cc_mic_level <: 0xFD;
|
||||
cc_mic_level <: (unsigned)init_expand;
|
||||
debug_printf("Sent init expand_gain %d to hid_button_task\n", init_expand);
|
||||
}
|
||||
|
||||
// 恢复脚步增强LED初始状态
|
||||
if (flag_footsteps_enhancement == 1) {
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, 128);
|
||||
led_update_all(&led_ctx);
|
||||
} else if (flag_footsteps_enhancement == 2) {
|
||||
led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
led_update_all(&led_ctx);
|
||||
}
|
||||
#endif
|
||||
|
||||
// port_enable(p_ctrl_keys);
|
||||
port_ctrl_keys = 0;//port_in(p_ctrl_keys);
|
||||
if ((port_ctrl_keys & KEY_MUTE) == 0) {
|
||||
@@ -680,7 +716,6 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
}
|
||||
#if (HID_CONTROLS == 1)
|
||||
for (int i=1; i<(HID_MAX_DATA_BYTES/4); i++) {
|
||||
//reportData[i] = chan_in_word(c_hidSendData);
|
||||
c_hidSendData :> reportData[i];
|
||||
}
|
||||
hidSetChangePending(1);
|
||||
@@ -857,25 +892,78 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if USE_EX3D == 1
|
||||
mode_change = 0;
|
||||
if(button_footsteps_enhancement == 0)
|
||||
{
|
||||
if(push_button_footsteps_enhancement_state_old == 1)
|
||||
{
|
||||
flag_footsteps_enhancement ^= 1;
|
||||
// 3档循环: 0(关/0dB) → 1(中亮/6dB) → 2(高亮/12dB) → 0
|
||||
flag_footsteps_enhancement = (flag_footsteps_enhancement + 1) % 3;
|
||||
mode_change = 1;
|
||||
}
|
||||
}
|
||||
push_button_footsteps_enhancement_state_old = button_footsteps_enhancement;
|
||||
if(mode_change)
|
||||
if(flag_footsteps_enhancement)
|
||||
{
|
||||
int new_expand_gain;
|
||||
if(flag_footsteps_enhancement == 0)
|
||||
{
|
||||
led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
new_expand_gain = 0;
|
||||
led_off(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
}
|
||||
else if(flag_footsteps_enhancement == 1)
|
||||
{
|
||||
new_expand_gain = 6;
|
||||
led_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, 128);
|
||||
}
|
||||
else
|
||||
{
|
||||
led_off(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
new_expand_gain = 12;
|
||||
led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
}
|
||||
led_update_all(&led_ctx);
|
||||
// 发送expand_gain到tile1执行
|
||||
cc_mic_level <: 0xFD;
|
||||
cc_mic_level <: (unsigned)new_expand_gain;
|
||||
// 掉电保存
|
||||
unsigned char footstep_path[] = "footstep";
|
||||
save_value(footstep_path, (unsigned char)new_expand_gain);
|
||||
debug_printf("Footstep state=%d, expand_gain=%d\n", flag_footsteps_enhancement, new_expand_gain);
|
||||
}
|
||||
|
||||
// HID 0xB0 CMD_EXPAND_GAIN请求:同步footstep LED状态
|
||||
{
|
||||
unsigned hid_gain_req;
|
||||
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档位
|
||||
unsigned new_state;
|
||||
if (hid_gain_req == 0) {
|
||||
new_state = 0;
|
||||
} else if (hid_gain_req <= 6) {
|
||||
new_state = 1;
|
||||
} else {
|
||||
new_state = 2;
|
||||
}
|
||||
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_set_brightness(&led_ctx, LED_FOOTSTEP_MODE, 128);
|
||||
} else {
|
||||
led_on(&led_ctx, LED_FOOTSTEP_MODE);
|
||||
}
|
||||
led_update_all(&led_ctx);
|
||||
unsigned char fp[] = "footstep";
|
||||
save_value(fp, (unsigned char)hid_gain_req);
|
||||
debug_printf("HID set footstep gain=%d, state=%d\n", hid_gain_req, flag_footsteps_enhancement);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
mode_change = 0;
|
||||
if(button_aidenoise_onoff == 0)
|
||||
|
||||
@@ -820,7 +820,7 @@ void update_button(unsigned char b)
|
||||
|
||||
extern uint8_t mic_vol;
|
||||
//Tile 1
|
||||
void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c_hidSendData, chanend_t c_uac_vol)
|
||||
void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c_hidSendData, chanend_t c_uac_vol, chanend_t c_ex3d_hid_cmd)
|
||||
{
|
||||
#if defined(IR_SWITCHING_MODE)
|
||||
static uint32_t is_3d_on = IR_OFF;
|
||||
@@ -852,6 +852,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
SELECT_RES(
|
||||
CASE_THEN(cc_mic_level, event_mic_vol)
|
||||
, CASE_THEN(c_hidRcvData, event_hid)
|
||||
, CASE_THEN(c_ex3d_hid_cmd, event_ex3d_hid)
|
||||
, CASE_THEN(timer, event_polling)
|
||||
, CASE_THEN(c_uac_vol, event_uac_vol)
|
||||
)
|
||||
@@ -912,6 +913,14 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
debug_printf("Mode 3: AI7.1 (IR_7_1_GAME) ON, sf=1, EQ ON\n");
|
||||
}
|
||||
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
|
||||
} else if (tmp == 0xFD) {
|
||||
// 脚步增强按键发来的 expand gain 命令
|
||||
int32_t gain = (int32_t)chan_in_word(cc_mic_level);
|
||||
if ((0 <= gain) && (gain <= 20)) {
|
||||
Ex3dExpandGain = gain;
|
||||
EX3DAudio_SetExpandGain(Ex3dExpandGain);
|
||||
debug_printf("Button set CMD_EXPAND_GAIN: %d\n", gain);
|
||||
}
|
||||
} else {
|
||||
// Mic 静音状态命令
|
||||
switch (tmp) {
|
||||
@@ -936,21 +945,58 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
|
||||
event_hid:
|
||||
{
|
||||
//uint8_t junk=chan_in_byte(c_hid);
|
||||
unsigned length = chan_in_byte(c_hidRcvData);
|
||||
for(int i=0; i<length; i++) {
|
||||
RcvData[i] = chan_in_byte(c_hidRcvData);
|
||||
}
|
||||
if(RcvData[0] == 0x01) { // REPORT ID 1
|
||||
#if (HID_CONTROLS == 1)
|
||||
hid_receive_task_in_c(RcvData, SendData);
|
||||
for(int i=0; i<(HID_MAX_DATA_BYTES / 4) ;i++) {
|
||||
chan_out_word(c_hidSendData, SendData[i]);
|
||||
// 0xB0/0xB1命令由process_send_params通过c_ex3d_hid_cmd直接发到tile1处理
|
||||
// 这里只需跳过,不再通过c_hidSendData回传结果
|
||||
if (length >= 3 && RcvData[1] == 0x77 &&
|
||||
(RcvData[2] == 0xB0 || RcvData[2] == 0xB1)) {
|
||||
// 丢弃,由event_ex3d_hid处理
|
||||
} else {
|
||||
hid_receive_task_in_c(RcvData, SendData);
|
||||
for(int i=0; i<(HID_MAX_DATA_BYTES / 4); i++) {
|
||||
chan_out_word(c_hidSendData, SendData[i]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
continue;
|
||||
event_ex3d_hid:
|
||||
{
|
||||
#if (HID_CONTROLS == 1)
|
||||
// 收到process_send_params发来的0xB0/0xB1 EX3D命令
|
||||
// 协议: cmd(1 byte) + ex3d_cmd_code(1 word) + params_len(1 byte) + params(N bytes)
|
||||
uint8_t hid_cmd = chan_in_byte(c_ex3d_hid_cmd);
|
||||
uint32_t ex3d_cmd_code = chan_in_word(c_ex3d_hid_cmd);
|
||||
uint8_t params_len = chan_in_byte(c_ex3d_hid_cmd);
|
||||
|
||||
// 构建EX3D原生格式缓冲区: [0x01, 0, 0, 0, cmd_code[4], params...]
|
||||
unsigned char ex3d_rcv[64];
|
||||
memset(ex3d_rcv, 0, 64);
|
||||
ex3d_rcv[0] = 0x01;
|
||||
ex3d_rcv[4] = (uint8_t)(ex3d_cmd_code & 0xFF);
|
||||
ex3d_rcv[5] = (uint8_t)((ex3d_cmd_code >> 8) & 0xFF);
|
||||
ex3d_rcv[6] = (uint8_t)((ex3d_cmd_code >> 16) & 0xFF);
|
||||
ex3d_rcv[7] = (uint8_t)((ex3d_cmd_code >> 24) & 0xFF);
|
||||
for (int i = 0; i < params_len && i < 56; i++) {
|
||||
ex3d_rcv[8 + i] = chan_in_byte(c_ex3d_hid_cmd);
|
||||
}
|
||||
|
||||
// 在tile1执行EX3D命令
|
||||
hid_receive_task_in_c(ex3d_rcv, SendData);
|
||||
|
||||
// 将结果回传给process_send_params(16个word)
|
||||
for (int i = 0; i < (HID_MAX_DATA_BYTES / 4); i++) {
|
||||
chan_out_word(c_ex3d_hid_cmd, SendData[i]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
continue;
|
||||
|
||||
event_uac_vol:
|
||||
{
|
||||
|
||||
@@ -25,6 +25,9 @@ extern void device_reboot(void);
|
||||
#include "biquad_standalone.h"
|
||||
#include "eq_flash_storage.h"
|
||||
#include "user_func.h"
|
||||
#if (USE_EX3D == 1) && (HID_CONTROLS == 1)
|
||||
#include <xcore/channel.h>
|
||||
#endif
|
||||
|
||||
static struct {
|
||||
uint8_t pending_cmd; // 0xB0/0xB1 or 0
|
||||
@@ -449,6 +452,13 @@ static bool apply_eq_band_params(uint8_t mode, uint8_t band_index, uint8_t filte
|
||||
void program_key(unsigned char *, signed int);
|
||||
#if (USE_EX3D == 1) && (HID_CONTROLS == 1)
|
||||
extern void hid_receive_task_in_c(unsigned char * RcvData, unsigned * SendData);
|
||||
#ifndef HID_MAX_DATA_BYTES
|
||||
#define HID_MAX_DATA_BYTES (64)
|
||||
#endif
|
||||
static chanend_t g_ex3d_hid_chanend = 0;
|
||||
static unsigned ex3d_b0b1_result[HID_MAX_DATA_BYTES / 4] = {0};
|
||||
extern unsigned g_hid_expand_gain_request;
|
||||
void SetEx3dHidChan(chanend_t c) { g_ex3d_hid_chanend = c; }
|
||||
#endif
|
||||
unsigned char process_send_params(uint8_t data[], uint16_t len) {
|
||||
if (len < 60) {
|
||||
@@ -713,17 +723,42 @@ unsigned char process_send_params(uint8_t data[], uint16_t len) {
|
||||
}
|
||||
|
||||
// 处理发送/读取EX3D命令 (0xB0/0xB1) - SET_EX3D_CMD / GET_EX3D_CMD
|
||||
// 数据通过 g_ex3d_hid_chanend 直接传到tile1的hid_button_task执行,结果同步返回
|
||||
if (data[1] == 0xB0 || data[1] == 0xB1) {
|
||||
#if (USE_EX3D == 1) && (HID_CONTROLS == 1)
|
||||
if (!g_ex3d_hid_chanend) return false;
|
||||
|
||||
// 提取EX3D命令码(4字节,小端序)
|
||||
uint32_t ex3d_cmd = (uint32_t)data[2] | ((uint32_t)data[3] << 8) |
|
||||
((uint32_t)data[4] << 16) | ((uint32_t)data[5] << 24);
|
||||
|
||||
// 提取参数(从data[6]开始,最多56字节)
|
||||
uint8_t params_len = (uint8_t)((len > 62) ? 56 : (len > 6 ? len - 6 : 0));
|
||||
|
||||
// 存储到ex3d_request供process_read_params构建响应
|
||||
ex3d_request.ex3d_command_code = ex3d_cmd;
|
||||
ex3d_request.ex3d_params_len = (len > 62) ? 56 : (len - 6);
|
||||
memcpy(ex3d_request.ex3d_params, &data[6], ex3d_request.ex3d_params_len);
|
||||
ex3d_request.ex3d_params_len = params_len;
|
||||
if (params_len > 0) memcpy(ex3d_request.ex3d_params, &data[6], params_len);
|
||||
ex3d_request.pending_cmd = data[1];
|
||||
|
||||
// 若是SET CMD_EXPAND_GAIN (0x93),同步更新footstep LED状态
|
||||
if (data[1] == 0xB0 && ex3d_cmd == 0x93 && params_len >= 4) {
|
||||
uint32_t gain_val = (uint32_t)data[6] | ((uint32_t)data[7] << 8) |
|
||||
((uint32_t)data[8] << 16) | ((uint32_t)data[9] << 24);
|
||||
SET_SHARED_GLOBAL(g_hid_expand_gain_request, gain_val);
|
||||
}
|
||||
|
||||
// 发送命令到tile1并同步等待结果
|
||||
// 协议: cmd(1 byte) + ex3d_cmd_code(4 bytes) + params_len(1 byte) + params(N bytes)
|
||||
chan_out_byte(g_ex3d_hid_chanend, data[1]);
|
||||
chan_out_word(g_ex3d_hid_chanend, ex3d_cmd);
|
||||
chan_out_byte(g_ex3d_hid_chanend, params_len);
|
||||
for (int i = 0; i < params_len; i++) {
|
||||
chan_out_byte(g_ex3d_hid_chanend, data[6 + i]);
|
||||
}
|
||||
// 接收tile1返回的结果(16个word)
|
||||
for (int i = 0; i < (HID_MAX_DATA_BYTES / 4); i++) {
|
||||
ex3d_b0b1_result[i] = chan_in_word(g_ex3d_hid_chanend);
|
||||
}
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
@@ -837,23 +872,6 @@ void user_read_hid_status(unsigned char hidPassData[])
|
||||
}
|
||||
}
|
||||
|
||||
#if (USE_EX3D == 1) && (HID_CONTROLS == 1)
|
||||
static void ex3d_build_and_call(unsigned char rcv_data[64], unsigned send_data[16]) {
|
||||
memset(rcv_data, 0, 64);
|
||||
memset(send_data, 0, sizeof(unsigned) * 16);
|
||||
rcv_data[0] = 0x01;
|
||||
unsigned *pRcvBuf = (unsigned *)(rcv_data + 4);
|
||||
pRcvBuf[0] = ex3d_request.ex3d_command_code;
|
||||
for (int i = 0; i < ex3d_request.ex3d_params_len / 4 && i < 14; i++) {
|
||||
pRcvBuf[i + 1] = (uint32_t)ex3d_request.ex3d_params[i * 4] |
|
||||
((uint32_t)ex3d_request.ex3d_params[i * 4 + 1] << 8) |
|
||||
((uint32_t)ex3d_request.ex3d_params[i * 4 + 2] << 16) |
|
||||
((uint32_t)ex3d_request.ex3d_params[i * 4 + 3] << 24);
|
||||
}
|
||||
hid_receive_task_in_c(rcv_data, send_data);
|
||||
}
|
||||
#endif
|
||||
|
||||
// process_read_params: build HID response from pending request state
|
||||
unsigned char process_read_params(uint8_t response[]) {
|
||||
memset(response, 0, 63);
|
||||
@@ -1056,20 +1074,15 @@ unsigned char process_read_params(uint8_t response[]) {
|
||||
}
|
||||
|
||||
// 处理发送EX3D命令响应 (0xB0) - SET_EX3D_CMD
|
||||
// 结果已在process_send_params中同步从tile1获取,存于ex3d_b0b1_result
|
||||
if (ex3d_request.pending_cmd == 0xB0) {
|
||||
RSP_HDR(response, 0xB0);
|
||||
|
||||
#if (USE_EX3D == 1) && (HID_CONTROLS == 1)
|
||||
unsigned char rcv_data[64];
|
||||
unsigned send_data[16];
|
||||
ex3d_build_and_call(rcv_data, send_data);
|
||||
unsigned *send_data = ex3d_b0b1_result;
|
||||
|
||||
// 状态码:检查send_data[1]是否有错误返回值(0xFFFFFFFF表示参数错误)
|
||||
uint8_t status = 0x00; // 默认成功
|
||||
if (send_data[1] == 0xFFFFFFFF) {
|
||||
status = 0x01; // 失败
|
||||
}
|
||||
|
||||
uint8_t status = (send_data[1] == 0xFFFFFFFF) ? 0x01 : 0x00;
|
||||
response[2] = status;
|
||||
|
||||
// 回显命令码(4字节)
|
||||
@@ -1078,20 +1091,11 @@ unsigned char process_read_params(uint8_t response[]) {
|
||||
response[5] = (uint8_t)((ex3d_request.ex3d_command_code >> 16) & 0xFF);
|
||||
response[6] = (uint8_t)((ex3d_request.ex3d_command_code >> 24) & 0xFF);
|
||||
|
||||
// 返回send_data中的返回值(如果有)
|
||||
if (send_data[1] != 0xFFFFFFFF) {
|
||||
// 某些SET命令可能返回数据,将send_data[1]开始的数据复制到响应
|
||||
response[7] = (uint8_t)(send_data[1] & 0xFF);
|
||||
response[8] = (uint8_t)((send_data[1] >> 8) & 0xFF);
|
||||
response[9] = (uint8_t)((send_data[1] >> 16) & 0xFF);
|
||||
response[10] = (uint8_t)((send_data[1] >> 24) & 0xFF);
|
||||
} else {
|
||||
// 错误时返回0xFFFFFFFF
|
||||
response[7] = 0xFF;
|
||||
response[8] = 0xFF;
|
||||
response[9] = 0xFF;
|
||||
response[10] = 0xFF;
|
||||
}
|
||||
// 返回send_data[1]中的返回值
|
||||
response[7] = (uint8_t)(send_data[1] & 0xFF);
|
||||
response[8] = (uint8_t)((send_data[1] >> 8) & 0xFF);
|
||||
response[9] = (uint8_t)((send_data[1] >> 16) & 0xFF);
|
||||
response[10] = (uint8_t)((send_data[1] >> 24) & 0xFF);
|
||||
#else
|
||||
response[2] = 0x01; // 失败:EX3D支持未启用
|
||||
#endif
|
||||
@@ -1101,13 +1105,12 @@ unsigned char process_read_params(uint8_t response[]) {
|
||||
}
|
||||
|
||||
// 处理读取EX3D命令响应 (0xB1) - GET_EX3D_CMD
|
||||
// 结果已在process_send_params中同步从tile1获取,存于ex3d_b0b1_result
|
||||
if (ex3d_request.pending_cmd == 0xB1) {
|
||||
RSP_HDR(response, 0xB1);
|
||||
|
||||
#if (USE_EX3D == 1) && (HID_CONTROLS == 1)
|
||||
unsigned char rcv_data[64];
|
||||
unsigned send_data[16];
|
||||
ex3d_build_and_call(rcv_data, send_data);
|
||||
unsigned *send_data = ex3d_b0b1_result;
|
||||
|
||||
// 回显命令码(4字节)
|
||||
response[2] = (uint8_t)(ex3d_request.ex3d_command_code & 0xFF);
|
||||
|
||||
@@ -425,11 +425,12 @@ extern void dsp_core0(void);
|
||||
extern void board_setup();
|
||||
extern void dsp_main (chanend c_data);
|
||||
extern void SetEqDataChan (chanend c);
|
||||
extern void SetEx3dHidChan (chanend c);
|
||||
|
||||
extern int dsp_worker_tile(chanend c_dsp_to_ex3d, int worker_id);
|
||||
//extern int dsp_worker_tile_1(chanend c_dsp_to_ex3d, int worker_id);
|
||||
extern void ex3d_task();
|
||||
extern void hid_button_task(chanend cc_mic_level, chanend c_hid, chanend c_hidSendData, chanend c_uac_vol);
|
||||
extern void hid_button_task(chanend cc_mic_level, chanend c_hid, chanend c_hidSendData, chanend c_uac_vol, chanend c_ex3d_hid_cmd);
|
||||
extern void AudioHwRemote(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol);
|
||||
extern void dnr_dsp_proc_task(void);
|
||||
|
||||
@@ -531,12 +532,13 @@ int main()
|
||||
|
||||
USER_MAIN_DECLARATIONS
|
||||
|
||||
chan c_dsp_to_ex3d[DSP_WORKER_COUNT];
|
||||
chan cc_mic_level;
|
||||
chan c_key; chan c_hidSendData;
|
||||
chan c_hidRcvData;
|
||||
chan c_eq_data;
|
||||
chan c_dsp_to_ex3d[DSP_WORKER_COUNT];
|
||||
chan cc_mic_level;
|
||||
chan c_key; chan c_hidSendData;
|
||||
chan c_hidRcvData;
|
||||
chan c_eq_data;
|
||||
chan c_uac_vol;
|
||||
chan c_ex3d_hid_cmd;
|
||||
|
||||
par
|
||||
{
|
||||
@@ -544,7 +546,7 @@ int main()
|
||||
on tile[1] : {
|
||||
par {
|
||||
unsafe {
|
||||
hid_button_task(cc_mic_level, c_hidRcvData, c_hidSendData, c_uac_vol);
|
||||
hid_button_task(cc_mic_level, c_hidRcvData, c_hidSendData, c_uac_vol, c_ex3d_hid_cmd);
|
||||
}
|
||||
#if USE_EX3D == 1
|
||||
par(int i = 0; i < DSP_WORKER_COUNT; i++)
|
||||
@@ -675,6 +677,7 @@ int main()
|
||||
{
|
||||
thread_speed();
|
||||
#if (USE_EX3D == 1) && (HID_CONTROLS > 0)
|
||||
SetEx3dHidChan(c_ex3d_hid_cmd);
|
||||
XUA_Endpoint0( c_xud_out[0], c_xud_in[0], c_hidRcvData, c_aud_ctl, c_mix_ctl, c_clk_ctl, c_EANativeTransport_ctrl, dfuInterface VENDOR_REQUESTS_PARAMS_);
|
||||
#else
|
||||
XUA_Endpoint0( c_xud_out[0], c_xud_in[0], c_aud_ctl, c_mix_ctl, c_clk_ctl, c_EANativeTransport_ctrl, dfuInterface VENDOR_REQUESTS_PARAMS_);
|
||||
|
||||
Reference in New Issue
Block a user