Esempio n. 1
0
Tfa98xx_Error_t patch(Tfa98xx_handle_t handle, const char* fileName)
{
	FILE* f;
	Tfa98xx_Error_t err;

	f = fopen(fileName, "rb");
  if (f==NULL)
  {
    fprintf(stderr, "Unable to open %s for input\n", fileName);
    err = Tfa98xx_Error_Bad_Parameter;
  }
  else
  {
	  int fileSize, ret;
	  unsigned char* buffer;

    ret = fseek(f, 0, SEEK_END);
	  assert(ret == 0);
    fileSize = ftell(f);
	  assert(fileSize>=0);
    ret = fseek(f, 0, SEEK_SET);
	  assert(ret == 0);
    buffer = (unsigned char*)malloc(fileSize);
	  assert(buffer != NULL);
    ret = fread(buffer, 1, fileSize, f);
	  assert(ret == fileSize);
	  fclose(f);
	  err = Tfa98xx_DspPatch(handle, fileSize, buffer);
	  free(buffer);
  }
  return err;
}
/* load a DSP ROM code patch from file */
static void dspPatch(Tfa98xx_handle_t handle,
	struct tfa98xx_param_data *patch)
{
	enum Tfa98xx_Error err;

	if (patch == NULL || patch->data == NULL) {
		pr_info("%s: not use patch data\n", __func__);
		return;
	}

	err = Tfa98xx_DspPatch(handle, patch->size, patch->data);
	if (err != Tfa98xx_Error_Ok)
		pr_err("%s: Tfa98xx_DspPatch failed %d\n", __func__, err);
}