📄 tsphere.c
字号:
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(void){ 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,"-- Documentation Example 2\n"); 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,(void *)&channel_count)>0){ fprintf(spfp,"Error: Unable to get the '%s' field\n","channel_count"); sp_close(sp); exit(-1); } if (sp_h_get_field(sp,"sample_n_bytes", T_INTEGER,(void *)&sample_n_bytes) > 0){ fprintf(spfp,"Error: Unable to get the '%s' field\n", "sample_n_bytes"); sp_close(sp); exit(-1); } if (sp_h_get_field(sp,"sample_count",T_INTEGER,(void *)&sample_count) > 0){ fprintf(spfp,"Error: Unable to get the '%s' field\n","sample_count"); sp_close(sp); exit(-1); } total_samples=sample_count * channel_count; wave_byte_size=sample_n_bytes * total_samples; fprintf(spfp,"---- Example 2: Expected channel_count=1, "); fprintf(spfp,"Actually=%d\n",channel_count); fprintf(spfp,"---- Example 2: Expected sample_n_bytes=2, "); fprintf(spfp,"Actually=%d\n",sample_n_bytes); fprintf(spfp,"---- Example 2: Expected sample_count=16000, "); fprintf(spfp,"Actually=%d\n",sample_count); fprintf(spfp,"---- Example 2: Expected total_samples=16000, "); fprintf(spfp,"Actually=%d\n",total_samples); fprintf(spfp,"---- Example 2: Expected wave_byte_size=32000, "); fprintf(spfp,"Actually=%d\n",wave_byte_size); if ((waveform=(short *)mtrf_malloc(wave_byte_size)) == (short *)0){ fprintf(spfp,"Error: Unable to allocate %d bytes for the waveform\n", wave_byte_size); sp_close(sp); exit(-1); } if ((samp_read=sp_read_data(waveform,sample_n_bytes,total_samples,sp)) != total_samples){ fprintf(spfp,"Error: Unable to read speech waveform, "); fprintf(spfp,"%d samples read\n",samp_read); sp_print_return_status(spfp); sp_close(sp); mtrf_free((char *)waveform); exit(-1); } mtrf_free((char *)waveform); sp_close(sp); fprintf(spfp,"\n");}void doc_example_4_test(void){ SP_FILE *spp; short *wavbuf; SP_INTEGER lint; SP_INTEGER buf_nsamp = 16000; SP_INTEGER nbyte = 2; SP_INTEGER srate = 16000; int stow, i; int samps_written=0, size=64000, status; char *name="example4.wav"; double factor; fprintf(spfp,"-- Documentation Example 4: File Creation example\n"); fprintf(spfp,"---- filename: %s\n",name); if ((spp = sp_open(name, "w")) == SPNULL){ fprintf(spfp,"Couldn't open NIST waveform file: %s\n", name); sp_print_return_status(spfp); exit(-1); } fprintf(spfp,"---- Setting header fields\n"); lint = size; if (sp_h_set_field(spp, "sample_count", T_INTEGER,(void *) &lint) != 0){ fprintf(spfp,"Error: unable to set sample_count field\n"); sp_print_return_status(spfp); exit(-1); } if (sp_h_set_field(spp, "sample_rate", T_INTEGER,(void *) &srate)){ fprintf(spfp,"Error: unable to set sample_rate field\n"); sp_print_return_status(spfp); exit(-1); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -