private boolean vorbis_encode_setup_setting(int channels, int rate) { int i, is; codec_setup_info ci = vi.codec_setup; highlevel_encode_setup hi = ci.hi; ve_setup_data_template setup = hi.setup; float ds; // double // vorbis_encode_toplevel_setup(vorbis_info *vi,int ch,long rate) vi.version = 0; vi.channels = channels; vi.rate = rate; is = new Float(hi.base_setting).intValue(); ds = hi.base_setting - is; hi.short_setting = hi.base_setting; hi.long_setting = hi.base_setting; hi.managed = 0; hi.impulse_block_p = 1; hi.noise_normalize_p = 1; hi.stereo_point_setting = hi.base_setting; hi.lowpass_kHz = setup.psy_lowpass[is] * (1.0f - ds) + setup.psy_lowpass[is + 1] * ds; hi.ath_floating_dB = setup.psy_ath_float[is] * (1.0f - ds) + setup.psy_ath_float[is + 1] * ds; hi.ath_absolute_dB = setup.psy_ath_abs[is] * (1.0f - ds) + setup.psy_ath_abs[is + 1] * ds; hi.amplitude_track_dBpersec = -6.0f; hi.trigger_setting = hi.base_setting; for (i = 0; i < 4; i++) hi.block[i] = new highlevel_byblocktype( hi.base_setting, hi.base_setting, hi.base_setting, hi.base_setting); return true; }