我想到了一个办法。
//加载用户代码到VS10XX
//FLAC解码.但是加载后不支持WMA.
//写入plugin
void Load_VS_Load_FlacPatch(void)
{
u16 i;
u16 addr, n, val;
for(i=0;i<VS1053B_PATCHLEN;)
{
addr = vs1053b_patch[i++];
n = vs1053b_patch[i++];
if(n & 0x8000U) //RLE run, replicate n samples
{
n &= 0x7FFF;
val = vs1053b_patch[i++];
while(n--)VS_WR_Cmd(addr, val);
}else //copy run, copy n sample
{
while(n--)
{
val = vs1053b_patch[i++];
VS_WR_Cmd(addr, val);
}
}
}
}
//清除VS10XX的FLAC用户代码
//FLAC解码.但是加载后不支持WMA.
//写入plugin
void Clear_VS_Load_FlacPatch(void)
{
u16 i;
u16 addr, n;
for(i=0;i<VS1053B_PATCHLEN;)
{
addr = vs1053b_patch[i++];
n = vs1053b_patch[i++];
if(n & 0x8000U) //RLE run, replicate n samples
{
n &= 0x7FFF;
while(n--)VS_WR_Cmd(addr, 0x0000);
}else //copy run, copy n sample
{
while(n--)
{
VS_WR_Cmd(addr, 0x0000);
}
}
}
}
在播放FLAC的时候加载插件,不播放的时候就把数据清零,可是实验失败了,还是不行,谁知道原因? |