private void get_LSF_scale_factors(int ch, int gr)
{
int m = 0;
int sfb, window;
gr_info_s gr_info = (si.ch[ch].gr[gr]);
get_LSF_scale_data(ch, gr);
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] = scalefac_buffer[m];
m++;
}
for (sfb = 3; sfb < 12; sfb++)
{
for (window = 0; window < 3; window++)
{
scalefac[ch].s[window][sfb] = scalefac_buffer[m];
m++;
}
}
for (window = 0; window < 3; window++)
scalefac[ch].s[window][12] = 0;
}
else
{
// SHORT
for (sfb = 0; sfb < 12; sfb++)
{
for (window = 0; window < 3; window++)
{
scalefac[ch].s[window][sfb] = scalefac_buffer[m];
m++;
}
}
for (window = 0; window < 3; window++)
scalefac[ch].s[window][12] = 0;
}
}
else
{
// LONG types 0,1,3
for (sfb = 0; sfb < 21; sfb++)
{
scalefac[ch].l[sfb] = scalefac_buffer[m];
m++;
}
scalefac[ch].l[21] = 0; // Jeff
scalefac[ch].l[22] = 0;
}
}