⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 af_dummy.c

📁 君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图片解码,浏览,电子书,录音,想学ucos,识货的人就下吧 russblock fmradio explore set
💻 C
字号:
/* The name speaks for itself this filter is a dummy and will not blow   up regardless of what you do with it. */#include <mplaylib.h>#include "mplaylib.h"#include "af.h"#undef memcpy#define memcpy uc_memcpy// Initialization and runtime controlstatic int control(struct af_instance_s* af, int cmd, void* arg){  switch(cmd){  case AF_CONTROL_REINIT:    memcpy(af->data,(af_data_t*)arg,sizeof(af_data_t));    af_msg(AF_MSG_VERBOSE,"[dummy] Was reinitialized: %iHz/%ich/%s\n",	af->data->rate,af->data->nch,af_fmt2str_short(af->data->format));    return AF_OK;  }  return AF_UNKNOWN;}// Deallocate memory static void uninit(struct af_instance_s* af){  if(af->data)    free(af->data);}// Filter data through filterstatic af_data_t* play(struct af_instance_s* af, af_data_t* data){  // Do something necessary to get rid of annoying warning during compile  if(!af)    af_msg(AF_MSG_ERROR,"EEEK: Argument af == NULL in af_dummy.c play().");  return data;}// Allocate memory and set function pointersstatic int af_open(af_instance_t* af){  af->control=control;  af->uninit=uninit;  af->play=play;  af->mul.d=1;  af->mul.n=1;  af->data=malloc(sizeof(af_data_t));  if(af->data == NULL)    return AF_ERROR;  return AF_OK;}// Description of this filteraf_info_t af_info_dummy = {    "dummy",    "dummy",    "Anders",    "",    AF_FLAGS_REENTRANT,    af_open};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -