Remove dsp_callback because DSP is now library code, not app code.

Yep, nope, not necessary anymore. Just call functions directly.

Change-Id: I21dc35f8d674c2a9c8379b7cebd5613c1f05b5eb
This commit is contained in:
Michael Sevakis 2013-05-23 14:19:06 -04:00
parent b7e0e1a0a3
commit 6e211ab3ac
6 changed files with 21 additions and 81 deletions

View file

@ -722,9 +722,6 @@ void settings_apply_pm_range(void)
void sound_settings_apply(void)
{
#if CONFIG_CODEC == SWCODEC
audiohw_swcodec_set_callback(dsp_callback);
#endif
#ifdef AUDIOHW_HAVE_BASS
sound_set(SOUND_BASS, global_settings.bass);
#endif

View file

@ -21,56 +21,51 @@
#include "config.h"
#include "system.h"
#include "sound.h"
#ifdef HAVE_SW_TONE_CONTROLS
#include "tone_controls.h"
#endif
#include "channel_mode.h"
#include "dsp_misc.h"
/* Linking audio hardware calls to SWCODEC DSP emulation */
static audiohw_swcodec_cb_type callback = NULL;
void audiohw_swcodec_set_callback(audiohw_swcodec_cb_type func)
{
callback = func;
}
/** Functions exported by audiohw.h **/
/** Functions exported by audiohw.h but implemented in DSP **/
void audiohw_set_channel(int value)
{
callback(DSP_CALLBACK_SET_CHANNEL_CONFIG, value);
channel_mode_set_config(value);
}
void audiohw_set_stereo_width(int value)
{
callback(DSP_CALLBACK_SET_STEREO_WIDTH, value);
channel_mode_custom_set_width(value);
}
#ifdef HAVE_SW_TONE_CONTROLS
void audiohw_set_bass(int value)
{
callback(DSP_CALLBACK_SET_BASS, value*10);
tone_set_bass(value*10);
}
void audiohw_set_treble(int value)
{
callback(DSP_CALLBACK_SET_TREBLE, value*10);
tone_set_treble(value*10);
}
#endif /* HAVE_SW_TONE_CONTROLS */
#ifndef AUDIOHW_HAVE_PRESCALER
void audiohw_set_prescaler(int value)
{
callback(DSP_CALLBACK_SET_PRESCALE, value);
tone_set_prescale(value);
}
#endif /* AUDIOHW_HAVE_PRESCALER */
#ifdef HAVE_PITCHCONTROL
void audiohw_set_pitch(int32_t value)
{
callback(DSP_CALLBACK_SET_PITCH, value);
dsp_set_pitch(value);
}
int32_t audiohw_get_pitch(void)
{
return callback(DSP_CALLBACK_GET_PITCH, 0);
return dsp_get_pitch();
}
#endif /* HAVE_PITCHCONTROL */

View file

@ -529,11 +529,6 @@ void audiohw_set_stereo_width(int val);
void audiohw_enable_speaker(bool on);
#endif /* HAVE_SPEAKER */
#if CONFIG_CODEC == SWCODEC
typedef int (*audiohw_swcodec_cb_type)(int msg, intptr_t param);
void audiohw_swcodec_set_callback(audiohw_swcodec_cb_type func);
#endif /* CONFIG_CODEC == SWCODEC */
/**
* Some setting are the same for every codec and can be defined here.
*/

View file

@ -116,7 +116,7 @@ static void dsp_pitch_update(struct dsp_config *dsp)
fp_div(pitch_ratio, PITCH_SPEED_100, 16));
}
static void dsp_set_pitch(int32_t percent)
void dsp_set_pitch(int32_t percent)
{
if (percent <= 0)
percent = PITCH_SPEED_100;
@ -128,50 +128,12 @@ static void dsp_set_pitch(int32_t percent)
dsp_pitch_update(dsp_get_config(CODEC_IDX_AUDIO));
}
#endif /* HAVE_PITCHCONTROL */
/** Firmware callback interface **/
/* Hook back from firmware/ part of audio, which can't/shouldn't call apps/
* code directly. */
int dsp_callback(int msg, intptr_t param)
int32_t dsp_get_pitch(void)
{
int retval = 0;
switch (msg)
{
#ifdef HAVE_SW_TONE_CONTROLS
case DSP_CALLBACK_SET_PRESCALE:
tone_set_prescale(param);
break;
case DSP_CALLBACK_SET_BASS:
tone_set_bass(param);
break;
case DSP_CALLBACK_SET_TREBLE:
tone_set_treble(param);
break;
#endif /* HAVE_SW_TONE_CONTROLS */
case DSP_CALLBACK_SET_CHANNEL_CONFIG:
channel_mode_set_config(param);
break;
case DSP_CALLBACK_SET_STEREO_WIDTH:
channel_mode_custom_set_width(param);
break;
#ifdef HAVE_PITCHCONTROL
case DSP_CALLBACK_SET_PITCH:
dsp_set_pitch(param);
break;
case DSP_CALLBACK_GET_PITCH:
retval = pitch_ratio;
break;
#endif /* HAVE_PITCHCONTROL */
default:
break;
}
return retval;
return pitch_ratio;
}
#endif /* HAVE_PITCHCONTROL */
static void INIT_ATTR misc_dsp_init(struct dsp_config *dsp,
enum dsp_ids dsp_id)

View file

@ -54,18 +54,9 @@ struct dsp_replay_gains
void dsp_replaygain_set_settings(const struct replaygain_settings *settings);
/* Callback for firmware layers to interface */
enum
{
DSP_CALLBACK_SET_PRESCALE = 0,
DSP_CALLBACK_SET_BASS,
DSP_CALLBACK_SET_TREBLE,
DSP_CALLBACK_SET_CHANNEL_CONFIG,
DSP_CALLBACK_SET_STEREO_WIDTH,
DSP_CALLBACK_SET_PITCH,
DSP_CALLBACK_GET_PITCH,
};
int dsp_callback(int msg, intptr_t param);
#ifdef HAVE_PITCHCONTROL
void dsp_set_pitch(int32_t pitch);
int32_t dsp_get_pitch(void);
#endif /* HAVE_PITCHCONTROL */
#endif /* DSP_MISC_H */

View file

@ -387,7 +387,7 @@ static void perform_config(void)
} else if (!strncmp(name, "offset=", 7)) {
ci.id3->offset = atoi(val);
} else if (!strncmp(name, "rate=", 5)) {
dsp_callback(DSP_CALLBACK_SET_PITCH, atof(val) * PITCH_SPEED_100);
dsp_set_pitch(atof(val) * PITCH_SPEED_100);
} else if (!strncmp(name, "seek=", 5)) {
codec_action = CODEC_ACTION_SEEK_TIME;
codec_action_param = atoi(val);