Exemplo n.º 1
0
void vs_init(void)
{
  DEBUGOUT("VS: init\n");

  vs_playing = 0;

  //reset vs buffer
  vs_bufreset();

  //reset vs
  vs_reset();

  //set volume, bass, treble
  vs_setvolume(DEFAULT_VOLUME);
  vs_setbassfreq(DEFAULT_BASSFREQ);
  vs_setbassamp(DEFAULT_BASSAMP);
  vs_settreblefreq(DEFAULT_TREBLEFREQ); 
  vs_settrebleamp(DEFAULT_TREBLEAMP);

  //init pin interrupt
  GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_1, GPIO_HIGH_LEVEL);
  GPIOPortIntRegister(GPIO_PORTA_BASE, vs_requesthandler);

  return;
}
Exemplo n.º 2
0
void vs_init(int unit)
{
  vs_status[unit].vs_playing = 0;

  //reset vs buffer
  vs_bufreset(unit);

  //reset vs
  vs_reset();

  //set volume, bass, treble
  vs_setvolume(unit, DEFAULT_VOLUME);
  vs_setbassfreq(unit, DEFAULT_BASSFREQ);
  vs_setbassamp(unit, DEFAULT_BASSAMP);
  vs_settreblefreq(unit, DEFAULT_TREBLEFREQ);
  vs_settrebleamp(unit, DEFAULT_TREBLEAMP);

  //init pin interrupt

  //TODO: needs change - init interrupts by unit
  //GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_1, GPIO_HIGH_LEVEL);
  //GPIOPortIntRegister(GPIO_PORTA_BASE, vs_requesthandler);

  return;
}
Exemplo n.º 3
0
void vs_stopstream(void)
{
  unsigned int i, timeout;

  vs_pause();

  vs_ssi_wait(); //wait for transfer complete
  VS_DCS_DISABLE();
  VS_CS_DISABLE();

  //cancel playback
  vs_write_reg(VS_MODE, SM_SDINEW | SM_CANCEL);
  for(timeout=100; (timeout!=0) && (vs_read_reg(VS_MODE) & SM_CANCEL); timeout--)
  {
    VS_DCS_ENABLE();
    for(i=32; i!=0; i--)
    {
      vs_ssi_write(vs_bufgetc());
    }
    vs_ssi_wait();
    VS_DCS_DISABLE();
  }

  //flush buffer
  if(vs_read_reg(VS_HDAT0) || vs_read_reg(VS_HDAT1))
  {
    for(timeout=12288/32; timeout!=0; timeout--) //for FLAC 12288 otherwise 2052
    {
      VS_DCS_ENABLE();
      for(i=32; i!=0; i--)
      {
        vs_ssi_write(0x00);
      }
      vs_ssi_wait();
      VS_DCS_DISABLE();
    }
  }

  //reset
  if(vs_read_reg(VS_HDAT0) || vs_read_reg(VS_HDAT1))
  {
    vs_write_reg(VS_MODE, SM_SDINEW | SM_RESET); //soft-reset
    delay_ms(10);
    if(vs_read_reg(VS_HDAT0) || vs_read_reg(VS_HDAT1))
    {
      vs_setvolume(0); //0 -> analog power off
      vs_reset(); //hard-reset
    }
  }

  return;
}
Exemplo n.º 4
0
void vs_start(void)
{
  DEBUGOUT("VS: start\n");

  vs_playing = 1;

  vs_pause();
  vs_setvolume(vs_vol);

  buf_reset();

  return;
}