/*************************************************************************** * __________ __ ___. * Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * \/ \/ \/ \/ \/ * $Id$ * * Copyright (C) 2005 Miika Pekkarinen * Copyright (C) 2005 Magnus Holmgren * Copyright (C) 2007 Thom Johansen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/ #ifndef DSP_MISC_H #define DSP_MISC_H /* Set the tri-pdf dithered output */ void dsp_dither_enable(bool enable); /* in dsp_sample_output.c */ enum replaygain_types { REPLAYGAIN_TRACK = 0, REPLAYGAIN_ALBUM, REPLAYGAIN_SHUFFLE, REPLAYGAIN_OFF }; struct replaygain_settings { bool noclip; /* scale to prevent clips */ int type; /* 0=track gain, 1=album gain, 2=track gain if shuffle is on, album gain otherwise, 4=off */ int preamp; /* scale replaygained tracks by this */ }; /* Structure used with REPLAYGAIN_SET_GAINS message */ #define REPLAYGAIN_SET_GAINS (DSP_PROC_SETTING+DSP_PROC_MISC_HANDLER) struct dsp_replay_gains { long track_gain; long album_gain; long track_peak; long album_peak; }; void dsp_replaygain_set_settings(const struct replaygain_settings *settings); #ifdef HAVE_PITCHCONTROL void dsp_set_pitch(int32_t pitch); int32_t dsp_get_pitch(void); #endif /* HAVE_PITCHCONTROL */ /* Set output samplerate for all DSPs */ void dsp_set_all_output_frequency(unsigned int samplerate); /* Return DSP's output samplerate */ struct dsp_config; unsigned int dsp_get_output_frequency(struct dsp_config *dsp); #endif /* DSP_MISC_H */