From cdbf33adf719a54221f4f5aac4b15b0dfe54d24d Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Tue, 22 May 2007 15:56:05 +0000 Subject: * move audio settings into audio codec drivers * add mas35xx driver for all mas35xx targets. Later mas35xx code from sound.c will move to this new driver git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13464 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/as3514.h | 1 + firmware/export/audiohw.h | 73 +++++++++++++++++++++++++++++++++++++++++++++++ firmware/export/config.h | 5 ++++ firmware/export/mas35xx.h | 27 ++++++++++++++++++ firmware/export/sound.h | 37 ++---------------------- firmware/export/tlv320.h | 2 ++ firmware/export/uda1380.h | 2 ++ firmware/export/wm8731l.h | 2 ++ firmware/export/wm8751.h | 2 ++ firmware/export/wm8758.h | 2 ++ firmware/export/wm8975.h | 2 ++ 11 files changed, 120 insertions(+), 35 deletions(-) create mode 100644 firmware/export/audiohw.h create mode 100644 firmware/export/mas35xx.h (limited to 'firmware/export') diff --git a/firmware/export/as3514.h b/firmware/export/as3514.h index 5f37fd7fcf..406857f491 100644 --- a/firmware/export/as3514.h +++ b/firmware/export/as3514.h @@ -21,6 +21,7 @@ #define _AS3514_H #include +#include "audiohw.h" extern int tenthdb2master(int db); diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h new file mode 100644 index 0000000000..38e68138c9 --- /dev/null +++ b/firmware/export/audiohw.h @@ -0,0 +1,73 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2007 by Christian Gmeiner + * + * 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 _AUDIOHW_H_ +#define _AUDIOHW_H_ + +#include "config.h" + +enum { + SOUND_VOLUME = 0, + SOUND_BASS, + SOUND_TREBLE, + SOUND_BALANCE, + SOUND_CHANNELS, + SOUND_STEREO_WIDTH, +#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) + SOUND_LOUDNESS, + SOUND_AVC, + SOUND_MDB_STRENGTH, + SOUND_MDB_HARMONICS, + SOUND_MDB_CENTER, + SOUND_MDB_SHAPE, + SOUND_MDB_ENABLE, + SOUND_SUPERBASS, +#endif +#if CONFIG_CODEC == MAS3587F || defined(HAVE_UDA1380) || defined(HAVE_TLV320)\ + || defined(HAVE_WM8975) || defined(HAVE_WM8758) || defined(HAVE_WM8731) + SOUND_LEFT_GAIN, + SOUND_RIGHT_GAIN, + SOUND_MIC_GAIN, +#endif +}; + +enum Channel { + SOUND_CHAN_STEREO, + SOUND_CHAN_MONO, + SOUND_CHAN_CUSTOM, + SOUND_CHAN_MONO_LEFT, + SOUND_CHAN_MONO_RIGHT, + SOUND_CHAN_KARAOKE, + SOUND_CHAN_NUM_MODES, +}; + +struct sound_settings_info { + const char *unit; + int numdecimals; + int steps; + int minval; + int maxval; + int defaultval; +}; + +/* This struct is used by every driver to export its min/max/default values for + * its audio settings. Keep in mind that the order must be correct! */ +extern const struct sound_settings_info audiohw_settings[]; + +#endif /* _AUDIOHW_H_ */ diff --git a/firmware/export/config.h b/firmware/export/config.h index 0ad4fabbe1..dd4eaf4488 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -253,6 +253,11 @@ #endif #endif +/* Add one HAVE_ define for all mas35xx targets */ +#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3507D) || (CONFIG_CODEC == MAS3539F) +#define HAVE_MAS35XX +#endif + #if CONFIG_CODEC == SWCODEC && !defined(BOOTLOADER) #define HAVE_EXTENDED_MESSAGING_AND_NAME #endif diff --git a/firmware/export/mas35xx.h b/firmware/export/mas35xx.h new file mode 100644 index 0000000000..1239454a3f --- /dev/null +++ b/firmware/export/mas35xx.h @@ -0,0 +1,27 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Implementation of MAS35xx audiohw api driver. + * + * Copyright (C) 2007 by Christian Gmeiner + * + * 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 _MAS35XX_H +#define _MAS35XX_H + +#include "audiohw.h" + +#endif /* _MAS35XX_H */ diff --git a/firmware/export/sound.h b/firmware/export/sound.h index b060b97312..d405e99fbf 100644 --- a/firmware/export/sound.h +++ b/firmware/export/sound.h @@ -34,45 +34,12 @@ #include "tlv320.h" #elif defined(HAVE_AS3514) #include "as3514.h" +#elif defined(HAVE_MAS35XX) +#include "mas35xx.h" #endif extern void audiohw_postinit(void); -enum { - SOUND_VOLUME = 0, - SOUND_BASS, - SOUND_TREBLE, - SOUND_BALANCE, - SOUND_CHANNELS, - SOUND_STEREO_WIDTH, -#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) - SOUND_LOUDNESS, - SOUND_AVC, - SOUND_MDB_STRENGTH, - SOUND_MDB_HARMONICS, - SOUND_MDB_CENTER, - SOUND_MDB_SHAPE, - SOUND_MDB_ENABLE, - SOUND_SUPERBASS, -#endif -#if CONFIG_CODEC == MAS3587F || defined(HAVE_UDA1380) || defined(HAVE_TLV320)\ - || defined(HAVE_WM8975) || defined(HAVE_WM8758) || defined(HAVE_WM8731) - SOUND_LEFT_GAIN, - SOUND_RIGHT_GAIN, - SOUND_MIC_GAIN, -#endif -}; - -enum { - SOUND_CHAN_STEREO = 0, - SOUND_CHAN_MONO, - SOUND_CHAN_CUSTOM, - SOUND_CHAN_MONO_LEFT, - SOUND_CHAN_MONO_RIGHT, - SOUND_CHAN_KARAOKE, - SOUND_CHAN_NUM_MODES -}; - typedef void sound_set_type(int value); const char *sound_unit(int setting); diff --git a/firmware/export/tlv320.h b/firmware/export/tlv320.h index ebb126ddf5..73cf297a3e 100644 --- a/firmware/export/tlv320.h +++ b/firmware/export/tlv320.h @@ -23,6 +23,8 @@ #define VOLUME_MIN -730 #define VOLUME_MAX 60 +#include "audiohw.h" + extern int tenthdb2master(int db); /*** definitions ***/ diff --git a/firmware/export/uda1380.h b/firmware/export/uda1380.h index c1fb6421ff..a92e2a3212 100644 --- a/firmware/export/uda1380.h +++ b/firmware/export/uda1380.h @@ -20,6 +20,8 @@ #ifndef _UDA1380_H #define _UDA1380_H +#include "audiohw.h" + /* volume/balance/treble/bass interdependency */ #define VOLUME_MIN -840 #define VOLUME_MAX 0 diff --git a/firmware/export/wm8731l.h b/firmware/export/wm8731l.h index 5ef6d694e5..76b2a9c960 100644 --- a/firmware/export/wm8731l.h +++ b/firmware/export/wm8731l.h @@ -24,6 +24,8 @@ #define VOLUME_MIN -730 #define VOLUME_MAX 60 +#include "audiohw.h" + extern int tenthdb2master(int db); extern int tenthdb2mixer(int db); diff --git a/firmware/export/wm8751.h b/firmware/export/wm8751.h index efeaa3609d..85d206cae4 100644 --- a/firmware/export/wm8751.h +++ b/firmware/export/wm8751.h @@ -23,6 +23,8 @@ #define VOLUME_MIN -730 #define VOLUME_MAX 60 +#include "audiohw.h" + extern int tenthdb2master(int db); extern int tenthdb2mixer(int db); diff --git a/firmware/export/wm8758.h b/firmware/export/wm8758.h index 5715f100da..7fa2181679 100644 --- a/firmware/export/wm8758.h +++ b/firmware/export/wm8758.h @@ -24,6 +24,8 @@ #define VOLUME_MIN -570 #define VOLUME_MAX 60 +#include "audiohw.h" + extern int tenthdb2master(int db); extern int tenthdb2mixer(int db); diff --git a/firmware/export/wm8975.h b/firmware/export/wm8975.h index c00303a6a8..bbaa8d3554 100644 --- a/firmware/export/wm8975.h +++ b/firmware/export/wm8975.h @@ -24,6 +24,8 @@ #define VOLUME_MIN -730 #define VOLUME_MAX 60 +#include "audiohw.h" + extern int tenthdb2master(int db); extern int tenthdb2mixer(int db); -- cgit v1.2.3