diff options
| author | Thom Johansen <thomj@rockbox.org> | 2006-01-29 02:10:28 +0000 |
|---|---|---|
| committer | Thom Johansen <thomj@rockbox.org> | 2006-01-29 02:10:28 +0000 |
| commit | a8cc6a74547e6485f3aa9fe597f5d1dc176cca8a (patch) | |
| tree | 4606e1a8470f699cefab39357f7f6d38984eff20 /apps/eq.h | |
| parent | b0302f0cbb4674d9ff1584b87628f2bfaafa7a0a (diff) | |
| download | rockbox-a8cc6a74547e6485f3aa9fe597f5d1dc176cca8a.zip rockbox-a8cc6a74547e6485f3aa9fe597f5d1dc176cca8a.tar.gz rockbox-a8cc6a74547e6485f3aa9fe597f5d1dc176cca8a.tar.bz2 rockbox-a8cc6a74547e6485f3aa9fe597f5d1dc176cca8a.tar.xz | |
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
Diffstat (limited to 'apps/eq.h')
| -rw-r--r-- | apps/eq.h | 41 |
1 files changed, 41 insertions, 0 deletions
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 + |