javazoom.jl.decoder.LayerIIDecoder.SubbandLayer2IntensityStereo.put_next_sample C# (CSharp) Method

put_next_sample() public method

*
public put_next_sample ( int channels, SynthesisFilter filter1, SynthesisFilter filter2 ) : bool
channels int
filter1 SynthesisFilter
filter2 SynthesisFilter
return bool
            public override bool put_next_sample(int channels, SynthesisFilter filter1, SynthesisFilter filter2)
            {
                if (allocation != 0)
                {
                    float sample = samples[samplenumber];

                    if (groupingtable[0] == null)
                        sample = (sample + d[0]) * c[0];
                    if (channels == OutputChannels.BOTH_CHANNELS)
                    {
                        float sample2 = sample;
                        if (groupnumber <= 4)
                        {
                            sample *= scalefactor1;
                            sample2 *= channel2_scalefactor1;
                        }
                        else if (groupnumber <= 8)
                        {
                            sample *= scalefactor2;
                            sample2 *= channel2_scalefactor2;
                        }
                        else
                        {
                            sample *= scalefactor3;
                            sample2 *= channel2_scalefactor3;
                        }
                        filter1.input_sample(sample, subbandnumber);
                        filter2.input_sample(sample2, subbandnumber);
                    }
                    else if (channels == OutputChannels.LEFT_CHANNEL)
                    {
                        if (groupnumber <= 4)
                            sample *= scalefactor1;
                        else if (groupnumber <= 8)
                            sample *= scalefactor2;
                        else
                            sample *= scalefactor3;
                        filter1.input_sample(sample, subbandnumber);
                    }
                    else
                    {
                        if (groupnumber <= 4)
                            sample *= channel2_scalefactor1;
                        else if (groupnumber <= 8)
                            sample *= channel2_scalefactor2;
                        else
                            sample *= channel2_scalefactor3;
                        filter1.input_sample(sample, subbandnumber);
                    }
                }

                if (++samplenumber == 3)
                    return true;
                else
                    return false;
            }