📄 testana.c
字号:
#include <stdio.h>#include <sps/sps.h>#include <sps/ana.h>#define max(a,b) (a>b) ? a : b;main (argc, argv)int argc;char **argv;{struct header *ih, *ah, *bh;struct header *oh;struct ana_data *dp, *np;int i,order;FILE *ostrm; ih = new_header(FT_ANA); strcpy(ih->common.prog,"testana"); strcpy(ih->common.vers,"1.0"); strcpy(ih->common.progdate,"April 3, 1986"); ih->common.ndrec = 5; ih ->hd.ana->start = 1; ih ->hd.ana->nan = 10000; /*this is a fake and may lead to trouble*/ ih ->hd.ana->frmlen = 180; ih ->hd.ana->order_vcd = 10; ih ->hd.ana->order_unvcd = 4; ih ->hd.ana->piq_method = 0; ih ->hd.ana->rcq_method = 0; ih ->hd.ana->pwq_method = 0; ih ->hd.ana->lpq_method = 0; ih ->hd.ana->src_sf = 8000.; ih ->hd.ana->psynch = 1; ih ->hd.ana->maxpulses = 10; ih ->hd.ana->maxraw = 10; ih ->hd.ana->maxlpc = 10; ih->variable.comment = (char *)calloc(1,sizeof "this is a test"); printf("%d\n",add_comment(ih,"hello, this is comment 1\n",NULL)); printf("%d\n",add_comment(ih,"hello, this is comment 1\n",NULL)); printf("%d\n",add_comment(ih,"this is the last one\n",NULL));/* first sub header */ ah = new_header(FT_ANA); strcpy(ah->common.prog,"testana1"); ah ->common.nchar = 3; ah ->hd.ana->start = 2; add_source_file (ih, "first", ah);/* second new header */ bh = new_header(FT_ANA); bh ->hd.ana->start = 2; bh ->hd.ana->p_offset =55; strcpy(bh->common.prog,"testana2"); bh ->common.nchar = 3; add_source_file (ih, "second", bh); TRYOPEN ( "testana","testana.ana", "w", ostrm ); write_header(ih, ostrm); /* write some data */ dp = allo_ana_rec(ih); /* get data structure */ order = max(ih->hd.ana->order_vcd,ih->hd.ana->order_unvcd);/* frist frame */ dp->tag = 1; dp->raw_power[0] = 10; dp->raw_power[1] = 10; dp->raw_power[2] = 50; dp->raw_power[3] = 500; dp->raw_power[4] = 800; dp->lpc_power[0] = 10; dp->lpc_power[1] = 10; dp->lpc_power[2] = 50; dp->lpc_power[3] = 500; dp->lpc_power[4] = 800; dp->p_pulse_len[0] = 20; dp->p_pulse_len[1] = 30; dp->p_pulse_len[2] = 50; dp->p_pulse_len[3] = 20; dp->p_pulse_len[4] = 40; dp->ref_coeff[0] = .004; dp->ref_coeff[1] = .001; dp->ref_coeff[2] = .09; dp->ref_coeff[3] = .4; dp->ref_coeff[4] = .9; dp->ref_coeff[5] = .001; dp->ref_coeff[6] = .01; dp->ref_coeff[7] = .08; dp->ref_coeff[8] = .0111; dp->ref_coeff[9] = .0983;printf("%f \n",dp->ref_coeff[8]); for (i=0; i<order; i++) dp->frame_len += dp->p_pulse_len[i]; printf("put_ana %d\n",put_ana_rec(dp,ih,ostrm));/* next frame */ dp->tag += dp->frame_len; dp->raw_power[0] = 10; dp->raw_power[1] = 10; dp->raw_power[2] = 50; dp->raw_power[3] = 500; dp->raw_power[4] = 800; dp->lpc_power[0] = 10; dp->lpc_power[1] = 10; dp->lpc_power[2] = 50; dp->lpc_power[3] = 500; dp->lpc_power[4] = 800; dp->p_pulse_len[0] = 20; dp->p_pulse_len[1] = 30; dp->p_pulse_len[2] = 50; dp->p_pulse_len[3] = 20; dp->p_pulse_len[4] = 40; dp->ref_coeff[0] = .004; dp->ref_coeff[1] = .001; dp->ref_coeff[2] = .09; dp->ref_coeff[3] = .4; dp->ref_coeff[4] = .9; dp->ref_coeff[5] = .001; dp->ref_coeff[6] = .04; dp->ref_coeff[7] = .08; dp->ref_coeff[8] = .0222; dp->ref_coeff[9] = .0983; dp->frame_len = 0; for (i=0; i<order; i++) dp->frame_len += dp->p_pulse_len[i]; printf("put_ana %d\n",put_ana_rec(dp,ih,ostrm));/* third frame */ dp->tag += dp->frame_len; dp->raw_power[0] = 10; dp->raw_power[1] = 0; dp->raw_power[2] = 0; dp->raw_power[3] = 0; dp->raw_power[4] = 0; dp->lpc_power[0] = 10; dp->lpc_power[1] = 0; dp->lpc_power[2] = 0; dp->lpc_power[3] = 0; dp->lpc_power[4] = 0; dp->p_pulse_len[0] = 0; dp->p_pulse_len[1] = 0; dp->p_pulse_len[2] = 0; dp->p_pulse_len[3] = 0; dp->p_pulse_len[4] = 0; dp->ref_coeff[0] = .004; dp->ref_coeff[1] = .001; dp->ref_coeff[2] = .09; dp->ref_coeff[3] = .4; dp->ref_coeff[4] = .9; dp->ref_coeff[5] = .001; dp->ref_coeff[6] = .04; dp->ref_coeff[7] = .08; dp->ref_coeff[8] = .0333; dp->ref_coeff[9] = .0983; dp->frame_len = 200; printf("put_ana %d\n",put_ana_rec(dp,ih,ostrm));/* frame 4 */ dp->tag += dp->frame_len; dp->raw_power[0] = 10; dp->raw_power[1] = 10; dp->raw_power[2] = 50; dp->raw_power[3] = 500; dp->raw_power[4] = 800; dp->lpc_power[0] = 10; dp->lpc_power[1] = 10; dp->lpc_power[2] = 50; dp->lpc_power[3] = 500; dp->lpc_power[4] = 800; dp->p_pulse_len[0] = 20; dp->p_pulse_len[1] = 30; dp->p_pulse_len[2] = 50; dp->p_pulse_len[3] = 20; dp->p_pulse_len[4] = 40; dp->ref_coeff[0] = .004; dp->ref_coeff[1] = .001; dp->ref_coeff[2] = .09; dp->ref_coeff[3] = .4; dp->ref_coeff[4] = .9; dp->ref_coeff[5] = .001; dp->ref_coeff[6] = .04; dp->ref_coeff[7] = .08; dp->ref_coeff[8] = .0555; dp->ref_coeff[9] = .0983; dp->frame_len = 0; for (i=0; i<order; i++) dp->frame_len += dp->p_pulse_len[i]; printf("put_ana %d\n",put_ana_rec(dp,ih,ostrm));/* frame 5 */ dp->tag += dp->frame_len; dp->raw_power[0] = 10; dp->raw_power[1] = 10; dp->raw_power[2] = 50; dp->raw_power[3] = 500; dp->raw_power[4] = 800; dp->lpc_power[0] = 10; dp->lpc_power[1] = 10; dp->lpc_power[2] = 50; dp->lpc_power[3] = 500; dp->lpc_power[4] = 800; dp->p_pulse_len[0] = 20; dp->p_pulse_len[1] = 30; dp->p_pulse_len[2] = 50; dp->p_pulse_len[3] = 20; dp->p_pulse_len[4] = 40; dp->ref_coeff[0] = .004; dp->ref_coeff[1] = .001; dp->ref_coeff[2] = .09; dp->ref_coeff[3] = .4; dp->ref_coeff[4] = .9; dp->ref_coeff[5] = .001; dp->ref_coeff[6] = .04; dp->ref_coeff[7] = .08; dp->ref_coeff[8] = .0666; dp->ref_coeff[9] = .0983; dp->frame_len = 0; for (i=0; i<order; i++) dp->frame_len += dp->p_pulse_len[i]; printf("put_ana %d\n",put_ana_rec(dp,ih,ostrm)); fclose(ostrm); TRYOPEN("testana", "testana.ana", "r", ostrm); oh = read_header(ostrm); printf("main header\n"); printf("type %d\n",ih->common.type); printf("check %d\n",ih->common.check); printf("prog %s\n",ih->common.prog); printf("nchar %d\n",ih->common.nchar); printf("start %d\n",ih->hd.ana->start); printf("order_vcd %d\n",ih->hd.ana->order_vcd); printf("order_unvcd %d\n",ih->hd.ana->order_unvcd); printf("comment %s\n",ih->variable.comment); printf("sub header 1\n"); printf("type %d\n",ih->variable.srchead[0]->common.type); printf("check %d\n",ih->variable.srchead[0]->common.check); printf("prog %s\n",ih->variable.srchead[0]->common.prog); printf("nchar %d\n",ih->variable.srchead[0]->common.nchar); printf("start %d\n",ih->variable.srchead[0]->hd.ana->start); printf("comment %s\n",ih->variable.srchead[0]->variable.comment); printf("sub header 2\n"); printf("type %d\n",ih->variable.srchead[1]->common.type); printf("check %d\n",ih->variable.srchead[1]->common.check); printf("prog %s\n",ih->variable.srchead[1]->common.prog); printf("nchar %d\n",ih->variable.srchead[1]->common.nchar); printf("start %d\n",ih->variable.srchead[1]->hd.ana->start); printf("p_offset %d\n",ih->variable.srchead[1]->hd.ana->p_offset); printf("comment %s\n",ih->variable.srchead[1]->variable.comment); np = allo_ana_rec(ih); order = max(ih->hd.ana->order_vcd,ih->hd.ana->order_unvcd); while(get_ana_rec(np,ih,ostrm))print_ana_rec(np,ih,stdout); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -