csvorbis.Floor0.unpack C# (CSharp) Method

unpack() public method

public unpack ( Info vi, csBuffer opb ) : Object
vi Info
opb csogg.csBuffer
return Object
        public override Object unpack(Info vi , csBuffer opb)
        {
            InfoFloor0 info=new InfoFloor0();
            info.order=opb.read(8);
            info.rate=opb.read(16);
            info.barkmap=opb.read(16);
            info.ampbits=opb.read(6);
            info.ampdB=opb.read(8);
            info.numbooks=opb.read(4)+1;

            if((info.order<1)||
                (info.rate<1)||
                (info.barkmap<1)||
                (info.numbooks<1))
            {
                //free_info(info);
                return(null);
            }

            for(int j=0;j<info.numbooks;j++)
            {
                info.books[j]=opb.read(8);
                if(info.books[j]<0 || info.books[j]>=vi.books)
                {
                    //free_info(info);
                    return(null);
                }
            }
            return(info);
            //  err_out:
            //    free_info(info);
            //    return(NULL);
        }