diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2007-06-08 23:42:04 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2007-06-08 23:42:04 +0000 |
commit | 2d48d0ffa6baddd19e6ff077f25068f90af7be3d (patch) | |
tree | 68c80646a748496fee423d77aa43afafb783b269 /firmware/export | |
parent | a85793fc54a0079f5483d5a5c6c60b7d17ca688c (diff) |
Straighten out some audio path APIs and misc. audio stuff. Having recording is not a prerequisite to having input/output source selection which is probably most useful when adding a audio input features like FM to a new port without forcing recording to be implemented first.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13599 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/audio.h | 20 | ||||
-rw-r--r-- | firmware/export/config_caps.h | 9 | ||||
-rw-r--r-- | firmware/export/spdif.h | 8 |
3 files changed, 29 insertions, 8 deletions
diff --git a/firmware/export/audio.h b/firmware/export/audio.h index a79a734e29..e6fed90069 100644 --- a/firmware/export/audio.h +++ b/firmware/export/audio.h @@ -194,12 +194,7 @@ void audio_record(const char *filename); void audio_stop_recording(void); void audio_pause_recording(void); void audio_resume_recording(void); -#if CONFIG_CODEC == SWCODEC -static inline void audio_new_file(const char *filename) - { audio_record(filename); } -#else void audio_new_file(const char *filename); -#endif /* CONFIG_CODEC == SWCODEC */ void audio_set_recording_options(struct audio_recording_options *options); void audio_set_recording_gain(int left, int right, int type); unsigned long audio_recorded_time(void); @@ -211,11 +206,22 @@ unsigned long audio_num_recorded_bytes(void); bool audio_load_encoder(int afmt); void audio_remove_encoder(void); unsigned char *audio_get_recording_buffer(size_t *buffer_size); -void audio_set_source(int source, unsigned flags); -void audio_set_output_source(int source); #endif /* CONFIG_CODEC == SWCODEC */ + #endif /* HAVE_RECORDING */ +#if CONFIG_CODEC == SWCODEC +/* SWCODEC misc. audio functions */ +#if INPUT_SRC_CAPS != 0 +/* audio.c */ +void audio_set_input_source(int source, unsigned flags); +/* audio_input_mux: target-specific implementation used by audio_set_source + to set hardware inputs and audio paths */ +void audio_input_mux(int source, unsigned flags); +void audio_set_output_source(int source); +#endif /* INPUT_SRC_CAPS */ +#endif /* CONFIG_CODEC == SWCODEC */ + #ifdef HAVE_SPDIF_IN /* returns index into rec_master_sampr_list */ int audio_get_spdif_sample_rate(void); diff --git a/firmware/export/config_caps.h b/firmware/export/config_caps.h index 8e3832d3a7..62cae8f8d8 100644 --- a/firmware/export/config_caps.h +++ b/firmware/export/config_caps.h @@ -66,6 +66,10 @@ #define HAVE_FMRADIO_IN_(...) #endif +#if INPUT_SRC_CAPS != 0 && (INPUT_SRC_CAPS & (INPUT_SRC_CAPS-1)) != 0 +#define HAVE_MULTI_INPUT_SRC +#endif + #ifdef HAVE_RECORDING /* Recordable source implies it has the input as well */ @@ -104,4 +108,9 @@ #else #define HAVE_FMRADIO_REC_(...) #endif + +#if REC_SRC_CAPS != 0 && (REC_SRC_CAPS & (REC_SRC_CAPS-1)) != 0 +#define HAVE_MULTI_REC_SRC +#endif + #endif /* HAVE_RECORDING */ diff --git a/firmware/export/spdif.h b/firmware/export/spdif.h index f4712fb88f..4179c7873f 100644 --- a/firmware/export/spdif.h +++ b/firmware/export/spdif.h @@ -20,6 +20,12 @@ #ifndef SPDIF_H #define SPDIF_H +#ifdef HAVE_SPDIF_POWER +#define IF_SPDIF_POWER_(...) __VA_ARGS__ +#else +#define IF_SPDIF_POWER_(...) +#endif + /* Initialize the S/PDIF driver */ void spdif_init(void); /* Return the S/PDIF frequency in herz - unrounded */ @@ -27,7 +33,7 @@ unsigned long spdif_measure_frequency(void); #ifdef HAVE_SPDIF_OUT /* Set the S/PDIF audio feed - Use AUDIO_SRC_* values - will be off if not powered or !on */ -void spdif_set_output_source(int source, bool on); +void spdif_set_output_source(int source IF_SPDIF_POWER_(, bool on)); /* Return the last set S/PDIF audio source - literally the last value passed to spdif_set_monitor regardless of power state */ int spdif_get_output_source(bool *src_on); |