void ampegdecoder::seekinit3(int discard) { int i,j,k; int extra=(seekmode==seekmodeexact)?1:0; if ((discard>=seekinitframes)&&extra) for (i=0; i<2; i++) for (j=0; j<32; j++) for (k=0; k<18; k++) prevblck[i][j][k]=0; huffoffset=0; for (i=discard; i<seekinitframes; i++) if (i<(seekinitframes-extra)) for (j=0; j<(hdrlsf?2:1); j++) { if (!decodehdr(0)) return; readmain(0); } else { if (!decodehdr(0)) return; decode3(); } }
int main() { int ch,e; while(1) { system("cls"); printf("\n\n\t\tASSEMBLER"); printf("\n\t\t1.Get Object Program Of a Program File"); printf("\n\t\t2.Text Files"); printf("\n\t\t3.Exit"); fflush(stdin); printf("\n\t\tEnter Your Choice [1..3]:"); scanf("%d",&ch); switch(ch) { case 1:e=mainp(); if(e==1) { printf("\n Additional files can have Wrong data"); } else printf("\nObject Program is stored in Oprogram.txt"); getch(); break; case 2:readmain(); break; case 3:exit(1); default:printf("\n Invalid Input!!"); } } return 0; }
void ampegdecoder::decode3() { int fr,gr,ch,sb,ss; for (fr=0; fr<(hdrlsf?2:1); fr++) { grsistruct si0[2][2]; if (fr) decodehdr(0); if (!hdrbitrate) { for (gr=fr; gr<2; gr++) for (ch=0; ch<2; ch++) for (sb=0; sb<32; sb++) for (ss=0; ss<18; ss++) { fraction[ch][gr*18+ss][sb]=((sb&ss&1)?-1:1)*prevblck[ch][sb][ss]; prevblck[ch][sb][ss]=0; } return; } readmain(si0); int stereo=(hdrmode==3)?1:2; int ngr=hdrlsf?1:2; for (gr=0;gr<ngr;gr++) { for (ch=0; ch<stereo; ch++) { readscalefac(si0[ch][gr], scalefac0[ch]); readhuffman(si0[ch][gr], xr0[ch]); doscale(si0[ch][gr], xr0[ch], scalefac0[ch]); } if (hdrmode==1) jointstereo(si0[1][gr], xr0, scalefac0[1]); for (ch=0; ch<stereo; ch++) hybrid(si0[ch][gr], fraction[ch]+(fr+gr)*18, prevblck[ch], xr0[ch]); } } }