sploadf.c

来自「speech signal process tools」· C语言 代码 · 共 51 行

C
51
字号
#include <sp/sphere.h>int sp_load_file(char *file, char *sdm, SP_INTEGER *nsamp, SP_INTEGER *nchan, SP_INTEGER *nsnb, void **data){    SP_FILE *sp;    char  *proc = "sp_load_file";    int ret;    if (file == (char *)0)	return_err(proc,101,1,"Null filename");    if (sdm == (char *)0) sdm = "";    if ((sp=sp_open(file,"r")) == SPNULL) 	return_err(proc,110,1,		   rsprintf("sp_open failed to open file '%s'.  Message return"			    "ed:\n%s\n",file,get_return_status_message()));    if (sp_set_data_mode(sp,sdm) != 0)	return_err(proc,111,1,		   rsprintf("sp_set_data_mode failed.  Message return"			    "ed:\n%s\n",file,get_return_status_message()));    if (sp_h_get_field(sp,CHANNEL_COUNT_FIELD,T_INTEGER,(void *)nchan)!=0)	return_err(proc,112,1,rsprintf("unable to get channel count from "				       "file '%s'.  Message returned: %s\n",				       file,get_return_status_message()));    if (sp_h_get_field(sp,SAMPLE_COUNT_FIELD,T_INTEGER,(void *)nsamp)!=0)	return_err(proc,113,1,rsprintf("unable to get sample count from "				       "file '%s'.  Message returned: %s\n",				       file,get_return_status_message()));    if (sp_h_get_field(sp,SAMPLE_N_BYTES_FIELD,T_INTEGER,(void *)nsnb)!=0)	return_err(proc,113,1,rsprintf("unable to get sample_n_bytes from "				       "file '%s'.  Message returned: %s\n",				       file,get_return_status_message()));    if ((*data = (void *)sp_data_alloc(sp,-1))== (void *)0)	return_err(proc,114,1,rsprintf("unable to alloc waveform memory."				       "  Message returned: %s\n",				       get_return_status_message()));        if ((ret=sp_read_data(*data,*nsamp,sp)) != *nsamp)	return_err(proc,115,1,rsprintf("unable to read waveform, exp samples "				       "%d != %d.  Message returned: %s\n",				       *nsamp,ret,				       get_return_status_message()));    if (sp_close(sp) != 0)	return_err(proc,116,1,rsprintf("sp_close failed.  Message "				       "returned: %s\n",				       get_return_status_message()));	    return_success(proc,0,0,"ok");}

⌨️ 快捷键说明

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