javazoom.jl.decoder.LayerIIIDecoder.get_scale_factors C# (CSharp) Метод

get_scale_factors() приватный Метод

*
private get_scale_factors ( int ch, int gr ) : void
ch int
gr int
Результат void
        private void get_scale_factors(int ch, int gr)
        {
            int sfb, window;
            gr_info_s gr_info = (si.ch[ch].gr[gr]);
            int scale_comp = gr_info.scalefac_compress;
            int length0 = slen[0][scale_comp];
            int length1 = slen[1][scale_comp];

            if ((gr_info.window_switching_flag != 0) && (gr_info.block_type == 2))
            {
                if ((gr_info.mixed_block_flag) != 0)
                {
                    // MIXED
                    for (sfb = 0; sfb < 8; sfb++)
                        scalefac[ch].l[sfb] = br.hgetbits(slen[0][gr_info.scalefac_compress]);
                    for (sfb = 3; sfb < 6; sfb++)
                        for (window = 0; window < 3; window++)
                            scalefac[ch].s[window][sfb] = br.hgetbits(slen[0][gr_info.scalefac_compress]);
                    for (sfb = 6; sfb < 12; sfb++)
                        for (window = 0; window < 3; window++)
                            scalefac[ch].s[window][sfb] = br.hgetbits(slen[1][gr_info.scalefac_compress]);
                    for (sfb = 12, window = 0; window < 3; window++)
                        scalefac[ch].s[window][sfb] = 0;
                }
                else
                {
                    // SHORT

                    scalefac[ch].s[0][0] = br.hgetbits(length0);
                    scalefac[ch].s[1][0] = br.hgetbits(length0);
                    scalefac[ch].s[2][0] = br.hgetbits(length0);
                    scalefac[ch].s[0][1] = br.hgetbits(length0);
                    scalefac[ch].s[1][1] = br.hgetbits(length0);
                    scalefac[ch].s[2][1] = br.hgetbits(length0);
                    scalefac[ch].s[0][2] = br.hgetbits(length0);
                    scalefac[ch].s[1][2] = br.hgetbits(length0);
                    scalefac[ch].s[2][2] = br.hgetbits(length0);
                    scalefac[ch].s[0][3] = br.hgetbits(length0);
                    scalefac[ch].s[1][3] = br.hgetbits(length0);
                    scalefac[ch].s[2][3] = br.hgetbits(length0);
                    scalefac[ch].s[0][4] = br.hgetbits(length0);
                    scalefac[ch].s[1][4] = br.hgetbits(length0);
                    scalefac[ch].s[2][4] = br.hgetbits(length0);
                    scalefac[ch].s[0][5] = br.hgetbits(length0);
                    scalefac[ch].s[1][5] = br.hgetbits(length0);
                    scalefac[ch].s[2][5] = br.hgetbits(length0);
                    scalefac[ch].s[0][6] = br.hgetbits(length1);
                    scalefac[ch].s[1][6] = br.hgetbits(length1);
                    scalefac[ch].s[2][6] = br.hgetbits(length1);
                    scalefac[ch].s[0][7] = br.hgetbits(length1);
                    scalefac[ch].s[1][7] = br.hgetbits(length1);
                    scalefac[ch].s[2][7] = br.hgetbits(length1);
                    scalefac[ch].s[0][8] = br.hgetbits(length1);
                    scalefac[ch].s[1][8] = br.hgetbits(length1);
                    scalefac[ch].s[2][8] = br.hgetbits(length1);
                    scalefac[ch].s[0][9] = br.hgetbits(length1);
                    scalefac[ch].s[1][9] = br.hgetbits(length1);
                    scalefac[ch].s[2][9] = br.hgetbits(length1);
                    scalefac[ch].s[0][10] = br.hgetbits(length1);
                    scalefac[ch].s[1][10] = br.hgetbits(length1);
                    scalefac[ch].s[2][10] = br.hgetbits(length1);
                    scalefac[ch].s[0][11] = br.hgetbits(length1);
                    scalefac[ch].s[1][11] = br.hgetbits(length1);
                    scalefac[ch].s[2][11] = br.hgetbits(length1);
                    scalefac[ch].s[0][12] = 0;
                    scalefac[ch].s[1][12] = 0;
                    scalefac[ch].s[2][12] = 0;
                }
                // SHORT
            }
            else
            {
                // LONG types 0,1,3

                if ((si.ch[ch].scfsi[0] == 0) || (gr == 0))
                {
                    scalefac[ch].l[0] = br.hgetbits(length0);
                    scalefac[ch].l[1] = br.hgetbits(length0);
                    scalefac[ch].l[2] = br.hgetbits(length0);
                    scalefac[ch].l[3] = br.hgetbits(length0);
                    scalefac[ch].l[4] = br.hgetbits(length0);
                    scalefac[ch].l[5] = br.hgetbits(length0);
                }
                if ((si.ch[ch].scfsi[1] == 0) || (gr == 0))
                {
                    scalefac[ch].l[6] = br.hgetbits(length0);
                    scalefac[ch].l[7] = br.hgetbits(length0);
                    scalefac[ch].l[8] = br.hgetbits(length0);
                    scalefac[ch].l[9] = br.hgetbits(length0);
                    scalefac[ch].l[10] = br.hgetbits(length0);
                }
                if ((si.ch[ch].scfsi[2] == 0) || (gr == 0))
                {
                    scalefac[ch].l[11] = br.hgetbits(length1);
                    scalefac[ch].l[12] = br.hgetbits(length1);
                    scalefac[ch].l[13] = br.hgetbits(length1);
                    scalefac[ch].l[14] = br.hgetbits(length1);
                    scalefac[ch].l[15] = br.hgetbits(length1);
                }
                if ((si.ch[ch].scfsi[3] == 0) || (gr == 0))
                {
                    scalefac[ch].l[16] = br.hgetbits(length1);
                    scalefac[ch].l[17] = br.hgetbits(length1);
                    scalefac[ch].l[18] = br.hgetbits(length1);
                    scalefac[ch].l[19] = br.hgetbits(length1);
                    scalefac[ch].l[20] = br.hgetbits(length1);
                }

                scalefac[ch].l[21] = 0;
                scalefac[ch].l[22] = 0;
            }
        }