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

📄 tsphere.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 5 页
字号:
		      case 2: mem = (char *)&(buf.b_long[c][s]); break;		      case 3: mem = (char *)&(buf.b_float[c][s]); break;		      case 4: mem = (char *)&(buf.b_double[c][s]); break;		      default: fprintf(spfp,"type %d not defined\n",cur_type);			exit(-1);		    }		    for (cc=0; cc<bps; cc++)			fprintf(spfp," %2x",				*((unsigned char *)( mem + cc )));		    fprintf(spfp," |");		}		fprintf(spfp,"\nFile:   ");		for (c=0; c<MC_CHAN; c++){		    for (cc=0; cc<bps; cc++)			fprintf(spfp," %2x",				*((unsigned char *)( file + c*bps + cc )));		    fprintf(spfp," |");		}		fprintf(spfp,"\n");		/*	    exit(-1); */	    }	}		/* free the memory associated with the type */	switch (cur_type){	  case 0: free_2dimarr(buf.b_short,nc,short);	    free_singarr(time_samp.b_short,short);	    break;	  case 1: free_2dimarr(buf.b_int,nc,int);	    free_singarr(time_samp.b_int,int);	    break;	  case 2: free_2dimarr(buf.b_long,nc,long);	    free_singarr(time_samp.b_long,long);		    break; 	  case 3: free_2dimarr(buf.b_float,nc,float);	    free_singarr(time_samp.b_float,float);	    break; 	  case 4: free_2dimarr(buf.b_double,nc,double);	    free_singarr(time_samp.b_double,double);	    break;	}	  	if (sp != SPNULL) sp_close(sp);    }    fprintf(spfp,"\n");}/*****************************************************************************/void header_test(int test){    SP_FILE *sp;    int rtn;    char *str;    long lint;    double real;    fprintf(spfp,"Test %2d: Write Mode header operations:\n",test);    system("rm -f testing.wav");    if ((sp=sp_open("testing.wav","w")) == SPNULL) {	fprintf(spfp,"   sp_open: Valid write open failed\n");	sp_print_return_status(spfp);	exit(-1);    }    fprintf(spfp,"---- Testing the file header io:\n");    fprintf(spfp,"------ Field creation:\n");    if (sp_h_set_field(SPNULL,"field1",T_STRING,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Null SPFILE pointer failed\n");    if (sp_h_set_field(sp,CNULL,T_STRING,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Null field name failed\n");    if (sp_h_set_field(sp,"field1",4930,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Invalid field type failed\n");    if (sp_h_set_field(sp,"field1",T_STRING,(void *)CNULL) == 0)	fprintf(spfp,"    sp_h_set_field: Null value failed\n");    if (sp_h_set_field(sp,"field1",T_STRING,(void *)"string value1") != 0){	fprintf(spfp,"    sp_h_set_field: valid STRING command failed\n");	sp_print_return_status(spfp);    }    lint=1;    if (sp_h_set_field(sp,"field2",T_INTEGER,(void *)&lint) != 0){	fprintf(spfp,"    sp_h_set_field: valid INTEGER command failed\n");	sp_print_return_status(spfp);	exit(-1);    }    real=2.0;    if (sp_h_set_field(sp,"field3",T_REAL,(void *)&real) != 0){	fprintf(spfp,"    sp_h_set_field: valid REAL command failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Field access:\n");    if (sp_h_get_field(sp,"field1",T_STRING,(void *)&str) != 0){	fprintf(spfp,"    sp_h_get_field: valid STRING command failed\n");	sp_print_return_status(spfp);    }    lint=1;    free(str);    if (sp_h_get_field(sp,"field2",T_INTEGER,(void *)&lint) != 0){	fprintf(spfp,"    sp_h_get_field: valid INTEGER command failed\n");	sp_print_return_status(spfp);	exit(-1);    }    real=2.0;    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)&real)) != 0){      fprintf(spfp,	    "    sp_h_get_field: valid REAL command returned %d and failed\n",	     rtn);	sp_print_return_status(spfp);    }	       fprintf(spfp,"------ Illegal Field access:\n");    if ((rtn=sp_h_get_field(SPNULL,"field3",T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, SPNULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,CNULL,T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Field NULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);        sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",6,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Bad Type, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)CNULL)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Null value ");	fprintf(spfp,"pointer, returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_INTEGER,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command Accessed as ");	fprintf(spfp,"an INTEGER returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_STRING,(void *)&real)) < 100){	fprintf(spfp,		"    sp_h_get_field: Invalid REAL command Accessed as an ");	fprintf(spfp,"STRING returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_STRING,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a STRING failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_REAL,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_REAL,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_INTEGER,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a INTEGER failed\n");	sp_print_return_status(spfp);   }    fprintf(spfp,"------ Verifying 3 header fields\n");    if ((sp->write_spifr->header->fc != 3) ||	(sp->write_spifr->status->file_header->fc != 3)){	fprintf(spfp,"***************************************************\n");	fprintf(spfp,"*  The following header should have three fields  *\n");	fprintf(spfp,"***************************************************\n");	sp_file_dump(sp,spfp);	exit(-1);    }    fprintf(spfp,"------ Illegal Field Deletion:\n");    if ((rtn=sp_h_delete_field(SPNULL,"field1")) < 100){	fprintf(spfp,		"    sp_h_delete_field: Invalid Deletion, SPNULL, failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,CNULL)) < 100){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"Field name NULL, failed\n");	sp_print_return_status(spfp);    }    if (((rtn=sp_h_delete_field(sp,"field84")) == 0) && (rtn >= 100)){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"field already deleted, failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Legal Field Deletion:\n");    if ((rtn=sp_h_delete_field(sp,"field1")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid STRING Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field2")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid INTEGER Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field3")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid REAL Deletion failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Verifying an empty header\n");    if ((sp->write_spifr->header->fc != 0) ||	(sp->write_spifr->status->file_header->fc != 0)){	fprintf(spfp,"***************************************************\n");	fprintf(spfp,"*      The following header should be empty       *\n");	fprintf(spfp,"***************************************************\n");	sp_file_dump(sp,spfp);	exit(-1);    }        sp_close(sp);    system("rm -f testing.wav");    fprintf(spfp,"\n");        fprintf(spfp,"-- Read Mode header operations:\n");    if ((sp=sp_open(EX1_10,"r")) == SPNULL) {	fprintf(spfp,"   sp_open: Valid spopen for read of ");	fprintf(spfp,"file '%s' failed\n",EX1_10);	sp_print_return_status(spfp);	exit(-1);    }    fprintf(spfp,"---- Testing the file header io:\n");    fprintf(spfp,"------ Field creation:\n");    if (sp_h_set_field(SPNULL,"field1",T_STRING,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Null SPFILE pointer failed\n");    if (sp_h_set_field(sp,CNULL,T_STRING,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Null field name failed\n");    if (sp_h_set_field(sp,"field1",4930,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Invalid field type failed\n");    if (sp_h_set_field(sp,"field1",T_STRING,(void *)CNULL) == 0)	fprintf(spfp,"    sp_h_set_field: Null value failed\n");    if (sp_h_set_field(sp,"field1",T_STRING,(void *)"string value1") != 0){	fprintf(spfp,"    sp_h_set_field: valid STRING command failed\n");	sp_print_return_status(spfp);    }    lint=1;    if (sp_h_set_field(sp,"field2",T_INTEGER,(void *)&lint) != 0){	fprintf(spfp,"    sp_h_set_field: valid INTEGER command failed\n");	sp_print_return_status(spfp);	exit(-1);    }    real=2.0;    if (sp_h_set_field(sp,"field3",T_REAL,(void *)&real) != 0){	fprintf(spfp,"    sp_h_set_field: valid REAL command failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Field access:\n");    if (sp_h_get_field(sp,"field1",T_STRING,(void *)&str) != 0){	fprintf(spfp,"    sp_h_get_field: valid STRING command failed\n");	sp_print_return_status(spfp);    }    mtrf_free(str);    lint=1;    if (sp_h_get_field(sp,"field2",T_INTEGER,(void *)&lint) != 0){	fprintf(spfp,"    sp_h_get_field: valid INTEGER command failed\n");	sp_print_return_status(spfp);	exit(-1);    }    real=2.0;    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)&real)) != 0){	fprintf(spfp,"    sp_h_get_field: valid REAL command ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }	       fprintf(spfp,"------ Illegal Field access:\n");    if ((rtn=sp_h_get_field(SPNULL,"field3",T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, SPNULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,CNULL,T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Field NULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",6,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Bad Type, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)CNULL)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, ");	fprintf(spfp,"Null value pointer, returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_INTEGER,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command Accessed ");	fprintf(spfp,"as an INTEGER returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_STRING,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command Accessed as ");	fprintf(spfp,"an STRING returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_STRING,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a STRING failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_REAL,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_REAL,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_INTEGER,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a INTEGER failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Illegal Field Deletion:\n");    if ((rtn=sp_h_delete_field(SPNULL,"field1")) < 100){     fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, SPNULL, failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,CNULL)) < 100){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"Field name NULL, failed\n");	sp_print_return_status(spfp);    }    if (((rtn=sp_h_delete_field(sp,"field84")) == 0) && (rtn >= 100)){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"field already deleted, failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Legal Field Deletion:\n");    if ((rtn=sp_h_delete_field(sp,"field1")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid STRING Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field2")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid INTEGER Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field3")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid REAL Deletion failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"\n");    sp_close(sp);}/*****************************************************************************/void doc_example_2_test(int test){    SP_FILE *sp=SPNULL;    short *waveform;    SP_INTEGER channel_count, sample_n_bytes, sample_count;    int wave_byte_size, total_samples, samp_read;    fprintf(spfp,"Test %2d: Documentation Example 2\n",test);    if ((sp = sp_open(EX4_ULAW,"r")) == SPNULL) {        fprintf(spfp,"Error: Unable to open SPHERE file %s\n",EX4_ULAW);	sp_print_return_status(spfp);	exit(-1);    }    if (sp_set_data_mode(sp, "SE-PCM-2:SBF-01") > 0){	sp_print_return_status(spfp);	sp_close(sp);	exit(-1);    }    if (sp_h_get_field(sp,"channel_count",T_INTEGER

⌨️ 快捷键说明

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