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) | |
download | rockbox-2d48d0ffa6baddd19e6ff077f25068f90af7be3d.tar.gz rockbox-2d48d0ffa6baddd19e6ff077f25068f90af7be3d.zip |
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); | |||
194 | void audio_stop_recording(void); | 194 | void audio_stop_recording(void); |
195 | void audio_pause_recording(void); | 195 | void audio_pause_recording(void); |
196 | void audio_resume_recording(void); | 196 | void audio_resume_recording(void); |
197 | #if CONFIG_CODEC == SWCODEC | ||
198 | static inline void audio_new_file(const char *filename) | ||
199 | { audio_record(filename); } | ||
200 | #else | ||
201 | void audio_new_file(const char *filename); | 197 | void audio_new_file(const char *filename); |
202 | #endif /* CONFIG_CODEC == SWCODEC */ | ||
203 | void audio_set_recording_options(struct audio_recording_options *options); | 198 | void audio_set_recording_options(struct audio_recording_options *options); |
204 | void audio_set_recording_gain(int left, int right, int type); | 199 | void audio_set_recording_gain(int left, int right, int type); |
205 | unsigned long audio_recorded_time(void); | 200 | unsigned long audio_recorded_time(void); |
@@ -211,11 +206,22 @@ unsigned long audio_num_recorded_bytes(void); | |||
211 | bool audio_load_encoder(int afmt); | 206 | bool audio_load_encoder(int afmt); |
212 | void audio_remove_encoder(void); | 207 | void audio_remove_encoder(void); |
213 | unsigned char *audio_get_recording_buffer(size_t *buffer_size); | 208 | unsigned char *audio_get_recording_buffer(size_t *buffer_size); |
214 | void audio_set_source(int source, unsigned flags); | ||
215 | void audio_set_output_source(int source); | ||
216 | #endif /* CONFIG_CODEC == SWCODEC */ | 209 | #endif /* CONFIG_CODEC == SWCODEC */ |
210 | |||
217 | #endif /* HAVE_RECORDING */ | 211 | #endif /* HAVE_RECORDING */ |
218 | 212 | ||
213 | #if CONFIG_CODEC == SWCODEC | ||
214 | /* SWCODEC misc. audio functions */ | ||
215 | #if INPUT_SRC_CAPS != 0 | ||
216 | /* audio.c */ | ||
217 | void audio_set_input_source(int source, unsigned flags); | ||
218 | /* audio_input_mux: target-specific implementation used by audio_set_source | ||
219 | to set hardware inputs and audio paths */ | ||
220 | void audio_input_mux(int source, unsigned flags); | ||
221 | void audio_set_output_source(int source); | ||
222 | #endif /* INPUT_SRC_CAPS */ | ||
223 | #endif /* CONFIG_CODEC == SWCODEC */ | ||
224 | |||
219 | #ifdef HAVE_SPDIF_IN | 225 | #ifdef HAVE_SPDIF_IN |
220 | /* returns index into rec_master_sampr_list */ | 226 | /* returns index into rec_master_sampr_list */ |
221 | int audio_get_spdif_sample_rate(void); | 227 | 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 @@ | |||
66 | #define HAVE_FMRADIO_IN_(...) | 66 | #define HAVE_FMRADIO_IN_(...) |
67 | #endif | 67 | #endif |
68 | 68 | ||
69 | #if INPUT_SRC_CAPS != 0 && (INPUT_SRC_CAPS & (INPUT_SRC_CAPS-1)) != 0 | ||
70 | #define HAVE_MULTI_INPUT_SRC | ||
71 | #endif | ||
72 | |||
69 | #ifdef HAVE_RECORDING | 73 | #ifdef HAVE_RECORDING |
70 | /* Recordable source implies it has the input as well */ | 74 | /* Recordable source implies it has the input as well */ |
71 | 75 | ||
@@ -104,4 +108,9 @@ | |||
104 | #else | 108 | #else |
105 | #define HAVE_FMRADIO_REC_(...) | 109 | #define HAVE_FMRADIO_REC_(...) |
106 | #endif | 110 | #endif |
111 | |||
112 | #if REC_SRC_CAPS != 0 && (REC_SRC_CAPS & (REC_SRC_CAPS-1)) != 0 | ||
113 | #define HAVE_MULTI_REC_SRC | ||
114 | #endif | ||
115 | |||
107 | #endif /* HAVE_RECORDING */ | 116 | #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 @@ | |||
20 | #ifndef SPDIF_H | 20 | #ifndef SPDIF_H |
21 | #define SPDIF_H | 21 | #define SPDIF_H |
22 | 22 | ||
23 | #ifdef HAVE_SPDIF_POWER | ||
24 | #define IF_SPDIF_POWER_(...) __VA_ARGS__ | ||
25 | #else | ||
26 | #define IF_SPDIF_POWER_(...) | ||
27 | #endif | ||
28 | |||
23 | /* Initialize the S/PDIF driver */ | 29 | /* Initialize the S/PDIF driver */ |
24 | void spdif_init(void); | 30 | void spdif_init(void); |
25 | /* Return the S/PDIF frequency in herz - unrounded */ | 31 | /* Return the S/PDIF frequency in herz - unrounded */ |
@@ -27,7 +33,7 @@ unsigned long spdif_measure_frequency(void); | |||
27 | #ifdef HAVE_SPDIF_OUT | 33 | #ifdef HAVE_SPDIF_OUT |
28 | /* Set the S/PDIF audio feed - Use AUDIO_SRC_* values - | 34 | /* Set the S/PDIF audio feed - Use AUDIO_SRC_* values - |
29 | will be off if not powered or !on */ | 35 | will be off if not powered or !on */ |
30 | void spdif_set_output_source(int source, bool on); | 36 | void spdif_set_output_source(int source IF_SPDIF_POWER_(, bool on)); |
31 | /* Return the last set S/PDIF audio source - literally the last value passed | 37 | /* Return the last set S/PDIF audio source - literally the last value passed |
32 | to spdif_set_monitor regardless of power state */ | 38 | to spdif_set_monitor regardless of power state */ |
33 | int spdif_get_output_source(bool *src_on); | 39 | int spdif_get_output_source(bool *src_on); |