diff options
-rw-r--r-- | firmware/export/audio.h | 5 | ||||
-rw-r--r-- | firmware/pcm_record.c | 58 | ||||
-rw-r--r-- | firmware/target/coldfire/iaudio/x5/audio-x5.c | 15 | ||||
-rw-r--r-- | firmware/target/coldfire/iriver/audio-iriver.c | 15 |
4 files changed, 33 insertions, 60 deletions
diff --git a/firmware/export/audio.h b/firmware/export/audio.h index 6a98d6f4c5..716b1ad5d3 100644 --- a/firmware/export/audio.h +++ b/firmware/export/audio.h | |||
@@ -186,7 +186,12 @@ void audio_record(const char *filename); | |||
186 | void audio_stop_recording(void); | 186 | void audio_stop_recording(void); |
187 | void audio_pause_recording(void); | 187 | void audio_pause_recording(void); |
188 | void audio_resume_recording(void); | 188 | void audio_resume_recording(void); |
189 | #if CONFIG_CODEC == SWCODEC | ||
190 | static inline void audio_new_file(const char *filename) | ||
191 | { audio_record(filename); } | ||
192 | #else | ||
189 | void audio_new_file(const char *filename); | 193 | void audio_new_file(const char *filename); |
194 | #endif /* CONFIG_CODEC == SWCODEC */ | ||
190 | void audio_set_recording_options(struct audio_recording_options *options); | 195 | void audio_set_recording_options(struct audio_recording_options *options); |
191 | void audio_set_recording_gain(int left, int right, int type); | 196 | void audio_set_recording_gain(int left, int right, int type); |
192 | unsigned long audio_recorded_time(void); | 197 | unsigned long audio_recorded_time(void); |
diff --git a/firmware/pcm_record.c b/firmware/pcm_record.c index 7aa81f35a0..f03939bd3c 100644 --- a/firmware/pcm_record.c +++ b/firmware/pcm_record.c | |||
@@ -19,18 +19,12 @@ | |||
19 | #include "system.h" | 19 | #include "system.h" |
20 | #include "kernel.h" | 20 | #include "kernel.h" |
21 | #include "logf.h" | 21 | #include "logf.h" |
22 | #include "panic.h" | ||
23 | #include "thread.h" | 22 | #include "thread.h" |
24 | #include <string.h> | 23 | #include <string.h> |
25 | #include "ata.h" | 24 | #include "ata.h" |
26 | #include "usb.h" | 25 | #include "usb.h" |
27 | #if defined(HAVE_UDA1380) | ||
28 | #include "uda1380.h" | ||
29 | #include "general.h" | ||
30 | #elif defined(HAVE_TLV320) | ||
31 | #include "tlv320.h" | ||
32 | #endif | ||
33 | #include "buffer.h" | 26 | #include "buffer.h" |
27 | #include "general.h" | ||
34 | #include "audio.h" | 28 | #include "audio.h" |
35 | #include "sound.h" | 29 | #include "sound.h" |
36 | #include "id3.h" | 30 | #include "id3.h" |
@@ -45,7 +39,6 @@ | |||
45 | * Public - | 39 | * Public - |
46 | * pcm_init_recording | 40 | * pcm_init_recording |
47 | * pcm_close_recording | 41 | * pcm_close_recording |
48 | * pcm_rec_mux | ||
49 | * Semi-private - | 42 | * Semi-private - |
50 | * pcm_rec_dma_start | 43 | * pcm_rec_dma_start |
51 | * pcm_rec_dma_stop | 44 | * pcm_rec_dma_stop |
@@ -234,11 +227,10 @@ enum | |||
234 | PCMREC_INIT, /* enable recording */ | 227 | PCMREC_INIT, /* enable recording */ |
235 | PCMREC_CLOSE, /* close recording */ | 228 | PCMREC_CLOSE, /* close recording */ |
236 | PCMREC_OPTIONS, /* set recording options */ | 229 | PCMREC_OPTIONS, /* set recording options */ |
237 | PCMREC_START, /* start recording */ | 230 | PCMREC_RECORD, /* record a new file */ |
238 | PCMREC_STOP, /* stop the current recording */ | 231 | PCMREC_STOP, /* stop the current recording */ |
239 | PCMREC_PAUSE, /* pause the current recording */ | 232 | PCMREC_PAUSE, /* pause the current recording */ |
240 | PCMREC_RESUME, /* resume the current recording */ | 233 | PCMREC_RESUME, /* resume the current recording */ |
241 | PCMREC_NEW_FILE, /* start new file */ | ||
242 | #if 0 | 234 | #if 0 |
243 | PCMREC_FLUSH_NUM, /* flush a number of files out */ | 235 | PCMREC_FLUSH_NUM, /* flush a number of files out */ |
244 | #endif | 236 | #endif |
@@ -427,21 +419,11 @@ void audio_set_recording_options(struct audio_recording_options *options) | |||
427 | void audio_record(const char *filename) | 419 | void audio_record(const char *filename) |
428 | { | 420 | { |
429 | logf("audio_record: %s", filename); | 421 | logf("audio_record: %s", filename); |
430 | queue_send(&pcmrec_queue, PCMREC_START, (void *)filename); | 422 | queue_send(&pcmrec_queue, PCMREC_RECORD, (void *)filename); |
431 | logf("audio_record_done"); | 423 | logf("audio_record_done"); |
432 | } /* audio_record */ | 424 | } /* audio_record */ |
433 | 425 | ||
434 | /** | 426 | /** |
435 | * Equivalent to audio_record() | ||
436 | */ | ||
437 | void audio_new_file(const char *filename) | ||
438 | { | ||
439 | logf("audio_new_file: %s", filename); | ||
440 | queue_send(&pcmrec_queue, PCMREC_NEW_FILE, (void *)filename); | ||
441 | logf("audio_new_file done"); | ||
442 | } /* audio_new_file */ | ||
443 | |||
444 | /** | ||
445 | * Stop current recording if recording | 427 | * Stop current recording if recording |
446 | */ | 428 | */ |
447 | void audio_stop_recording(void) | 429 | void audio_stop_recording(void) |
@@ -471,6 +453,19 @@ void audio_resume_recording(void) | |||
471 | logf("audio_resume_recording done"); | 453 | logf("audio_resume_recording done"); |
472 | } /* audio_resume_recording */ | 454 | } /* audio_resume_recording */ |
473 | 455 | ||
456 | /** | ||
457 | * Note that microphone is mono, only left value is used | ||
458 | * See audiohw_set_recvol() for exact ranges. | ||
459 | * | ||
460 | * @param type AUDIO_GAIN_MIC, AUDIO_GAIN_LINEIN | ||
461 | * | ||
462 | */ | ||
463 | void audio_set_recording_gain(int left, int right, int type) | ||
464 | { | ||
465 | //logf("rcmrec: t=%d l=%d r=%d", type, left, right); | ||
466 | audiohw_set_recvol(left, right, type); | ||
467 | } /* audio_set_recording_gain */ | ||
468 | |||
474 | /** Information about current state **/ | 469 | /** Information about current state **/ |
475 | 470 | ||
476 | /** | 471 | /** |
@@ -1203,14 +1198,14 @@ static void pcmrec_set_recording_options(struct audio_recording_options *options | |||
1203 | } | 1198 | } |
1204 | } /* pcmrec_set_recording_options */ | 1199 | } /* pcmrec_set_recording_options */ |
1205 | 1200 | ||
1206 | /* PCMREC_START/PCMREC_NEW_FILE - start recording (not gapless) | 1201 | /* PCMREC_RECORD - start recording (not gapless) |
1207 | or split stream (gapless) */ | 1202 | or split stream (gapless) */ |
1208 | static void pcmrec_start(const char *filename) | 1203 | static void pcmrec_record(const char *filename) |
1209 | { | 1204 | { |
1210 | unsigned long pre_sample_ticks; | 1205 | unsigned long pre_sample_ticks; |
1211 | int rd_start; | 1206 | int rd_start; |
1212 | 1207 | ||
1213 | logf("pcmrec_start: %s", filename); | 1208 | logf("pcmrec_record: %s", filename); |
1214 | 1209 | ||
1215 | /* reset stats */ | 1210 | /* reset stats */ |
1216 | num_rec_bytes = 0; | 1211 | num_rec_bytes = 0; |
@@ -1223,7 +1218,7 @@ static void pcmrec_start(const char *filename) | |||
1223 | pcmrec_new_stream(filename, | 1218 | pcmrec_new_stream(filename, |
1224 | CHUNKF_START_FILE | CHUNKF_END_FILE, | 1219 | CHUNKF_START_FILE | CHUNKF_END_FILE, |
1225 | 0); | 1220 | 0); |
1226 | goto start_done; | 1221 | goto record_done; |
1227 | } | 1222 | } |
1228 | 1223 | ||
1229 | #if 0 | 1224 | #if 0 |
@@ -1299,9 +1294,9 @@ static void pcmrec_start(const char *filename) | |||
1299 | (pre_sample_ticks > 0 ? CHUNKF_PRERECORD : 0), | 1294 | (pre_sample_ticks > 0 ? CHUNKF_PRERECORD : 0), |
1300 | enc_rd_index); | 1295 | enc_rd_index); |
1301 | 1296 | ||
1302 | start_done: | 1297 | record_done: |
1303 | logf("pcmrec_start done"); | 1298 | logf("pcmrec_record done"); |
1304 | } /* pcmrec_start */ | 1299 | } /* pcmrec_record */ |
1305 | 1300 | ||
1306 | /* PCMREC_STOP */ | 1301 | /* PCMREC_STOP */ |
1307 | static void pcmrec_stop(void) | 1302 | static void pcmrec_stop(void) |
@@ -1445,9 +1440,8 @@ static void pcmrec_thread(void) | |||
1445 | (struct audio_recording_options *)ev.data); | 1440 | (struct audio_recording_options *)ev.data); |
1446 | break; | 1441 | break; |
1447 | 1442 | ||
1448 | case PCMREC_START: | 1443 | case PCMREC_RECORD: |
1449 | case PCMREC_NEW_FILE: | 1444 | pcmrec_record((const char *)ev.data); |
1450 | pcmrec_start((const char *)ev.data); | ||
1451 | break; | 1445 | break; |
1452 | 1446 | ||
1453 | case PCMREC_STOP: | 1447 | case PCMREC_STOP: |
diff --git a/firmware/target/coldfire/iaudio/x5/audio-x5.c b/firmware/target/coldfire/iaudio/x5/audio-x5.c index 0e2ba60c1d..23aaa42cd6 100644 --- a/firmware/target/coldfire/iaudio/x5/audio-x5.c +++ b/firmware/target/coldfire/iaudio/x5/audio-x5.c | |||
@@ -19,20 +19,7 @@ | |||
19 | #include "system.h" | 19 | #include "system.h" |
20 | #include "cpu.h" | 20 | #include "cpu.h" |
21 | #include "audio.h" | 21 | #include "audio.h" |
22 | #include "tlv320.h" | 22 | #include "sound.h" |
23 | |||
24 | /** | ||
25 | * Note that microphone is mono, only left value is used | ||
26 | * See audiohw_set_recvol() for exact ranges. | ||
27 | * | ||
28 | * @param type AUDIO_GAIN_MIC, AUDIO_GAIN_LINEIN | ||
29 | * | ||
30 | */ | ||
31 | void audio_set_recording_gain(int left, int right, int type) | ||
32 | { | ||
33 | //logf("rcmrec: t=%d l=%d r=%d", type, left, right); | ||
34 | audiohw_set_recvol(left, right, type); | ||
35 | } /* audio_set_recording_gain */ | ||
36 | 23 | ||
37 | void audio_set_output_source(int source) | 24 | void audio_set_output_source(int source) |
38 | { | 25 | { |
diff --git a/firmware/target/coldfire/iriver/audio-iriver.c b/firmware/target/coldfire/iriver/audio-iriver.c index 5a5e80bc46..751025d08a 100644 --- a/firmware/target/coldfire/iriver/audio-iriver.c +++ b/firmware/target/coldfire/iriver/audio-iriver.c | |||
@@ -19,20 +19,7 @@ | |||
19 | #include "system.h" | 19 | #include "system.h" |
20 | #include "cpu.h" | 20 | #include "cpu.h" |
21 | #include "audio.h" | 21 | #include "audio.h" |
22 | #include "uda1380.h" | 22 | #include "sound.h" |
23 | |||
24 | /** | ||
25 | * Note that microphone is mono, only left value is used | ||
26 | * See audiohw_set_recvol() for exact ranges. | ||
27 | * | ||
28 | * @param type AUDIO_GAIN_MIC, AUDIO_GAIN_LINEIN | ||
29 | * | ||
30 | */ | ||
31 | void audio_set_recording_gain(int left, int right, int type) | ||
32 | { | ||
33 | //logf("rcmrec: t=%d l=%d r=%d", type, left, right); | ||
34 | audiohw_set_recvol(left, right, type); | ||
35 | } /* audio_set_recording_gain */ | ||
36 | 23 | ||
37 | void audio_set_output_source(int source) | 24 | void audio_set_output_source(int source) |
38 | { | 25 | { |