From a8cc6a74547e6485f3aa9fe597f5d1dc176cca8a Mon Sep 17 00:00:00 2001 From: Thom Johansen Date: Sun, 29 Jan 2006 02:10:28 +0000 Subject: Initial multi-band EQ support for software codec platforms. Now go start making that user interface! git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8478 a1c6a512-1295-4272-9138-f99709370657 --- apps/eq.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 apps/eq.h (limited to 'apps/eq.h') diff --git a/apps/eq.h b/apps/eq.h new file mode 100644 index 0000000..f761638 --- /dev/null +++ b/apps/eq.h @@ -0,0 +1,41 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 Thom Johansen + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef _EQ_H +#define _EQ_H + +/* These depend on the fixed point formats used by the different filter types + and need to be changed when they change. + */ +#define EQ_PEAK_SHIFT 3 +#define EQ_SHELF_SHIFT 7 + +struct eqfilter { + long coefs[5]; /* Order is b0, b1, b2, a1, a2 */ + long history[2][4]; +}; + +void eq_pk_coefs(unsigned long cutoff, unsigned long Q, long db, long *c); +void eq_ls_coefs(unsigned long cutoff, unsigned long Q, long db, long *c); +void eq_hs_coefs(unsigned long cutoff, unsigned long Q, long db, long *c); +void eq_filter(long **x, struct eqfilter *f, unsigned num, + unsigned samples, unsigned shift); + +#endif + -- cgit v1.1