#include "eq.h"

void debug_EQ(void)
{
	for(uint8_t i=0;i<8;i++)
	{
	    debug("DEV_DAC->CHNL_IIR[%d].B0=%x\r\n",i,DEV_DAC->CHNL_IIR[i].B0);
	    debug("DEV_DAC->CHNL_IIR[%d].B1=%x\r\n",i,DEV_DAC->CHNL_IIR[i].B1);
	    debug("DEV_DAC->CHNL_IIR[%d].B2=%x\r\n",i,DEV_DAC->CHNL_IIR[i].B2);
	    debug("DEV_DAC->CHNL_IIR[%d].A1=%x\r\n",i,DEV_DAC->CHNL_IIR[i].A1);
	    debug("DEV_DAC->CHNL_IIR[%d].A2=%x\r\n",i,DEV_DAC->CHNL_IIR[i].A2);
	}
	debug("DEV_DAC->CTL=%x\r\n",DEV_DAC->CTL);
	debug("DEV_DAC->CFG0=%x\r\n",DEV_DAC->CFG0);
}


struct hid_eq_recv eq_data;

void hid_eq_handle(struct hid_protocol *hid_pro)
{
    if (hid_pro->report_id == 0x4B)
    {
        //写，pc->spv
        if (hid_pro->bRequestType == 0x01)  
        {
            //更新DAC EQ数组数据
            if(hid_pro->bCode == 0x09)
            {
                eq_data.index = hid_pro->pay_load[1];
                eq_data.data[eq_data.index][0] = hid_pro->pay_load[4] |(hid_pro->pay_load[5] << 8) |(hid_pro->pay_load[6] << 16) | (hid_pro->pay_load[7] << 24);
                eq_data.data[eq_data.index][1] = hid_pro->pay_load[8] |(hid_pro->pay_load[9] << 8) |(hid_pro->pay_load[10] << 16) | (hid_pro->pay_load[11] << 24);
                eq_data.data[eq_data.index][2] = hid_pro->pay_load[12] |(hid_pro->pay_load[13] << 8) |(hid_pro->pay_load[14] << 16) | (hid_pro->pay_load[15] << 24);
                eq_data.data[eq_data.index][3] = hid_pro->pay_load[16]|(hid_pro->pay_load[17] << 8) |(hid_pro->pay_load[18] << 16) | (hid_pro->pay_load[19] << 24);
                eq_data.data[eq_data.index][4] = hid_pro->pay_load[20]|(hid_pro->pay_load[21] << 8) |(hid_pro->pay_load[22] << 16) | (hid_pro->pay_load[23] << 24);

            }
            //将eq数组数据写到寄存器中
            if(hid_pro->bCode == 0x0A)
            {
                audio_dac_set_eq_param(0, &eq_data.data[0][0]);
                debug("hid eq update \n\r");
                //debug_EQ();
                return;
            }
        }
    }
}
