csvorbis.Residue0.look C# (CSharp) Method

look() public method

public look ( DspState vd, InfoMode vm, Object vr ) : Object
vd DspState
vm InfoMode
vr Object
return Object
        public override Object look(DspState vd, InfoMode vm, Object vr)
        {
            InfoResidue0 info=(InfoResidue0)vr;
            LookResidue0 look=new LookResidue0();
            int acc=0;
            int dim;
            int maxstage=0;
            look.info=info;
            look.map=vm.mapping;

            look.parts=info.partitions;
            look.fullbooks=vd.fullbooks;
            look.phrasebook=vd.fullbooks[info.groupbook];

            dim=look.phrasebook.dim;

            look.partbooks=new int[look.parts][];

            for(int j=0;j<look.parts;j++)
            {
                int stages=ilog(info.secondstages[j]);
                if(stages!=0)
                {
                    if(stages>maxstage)maxstage=stages;
                    look.partbooks[j]=new int[stages];
                    for(int k=0; k<stages; k++)
                    {
                        if((info.secondstages[j]&(1<<k))!=0)
                        {
                            look.partbooks[j][k]=info.booklist[acc++];
                        }
                    }
                }
            }

            look.partvals=(int)Math.Round(Math.Pow(look.parts,dim));
            look.stages=maxstage;
            look.decodemap=new int[look.partvals][];
            for(int j=0;j<look.partvals;j++)
            {
                int val=j;
                int mult=look.partvals/look.parts;
                look.decodemap[j]=new int[dim];

                for(int k=0;k<dim;k++)
                {
                    int deco=val/mult;
                    val-=deco*mult;
                    mult/=look.parts;
                    look.decodemap[j][k]=deco;
                }
            }
            return(look);
        }