📄 tsphere.c
字号:
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 + -