summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-12-17 11:03:19 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-12-17 11:03:19 +0000
commit36c940555c7f5a4f991937ff5a4c2214b6323f8e (patch)
tree7ded0875cac25d7385d01874de1cc2e23089e8e6
parent0025a97b95b55365869cb14a3b6bb116739a5b9e (diff)
downloadrockbox-36c940555c7f5a4f991937ff5a4c2214b6323f8e.tar.gz
rockbox-36c940555c7f5a4f991937ff5a4c2214b6323f8e.zip
SWCODEC recording: More cleanup of stuff after queue additions and audio driver unification.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11783 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/audio.h5
-rw-r--r--firmware/pcm_record.c58
-rw-r--r--firmware/target/coldfire/iaudio/x5/audio-x5.c15
-rw-r--r--firmware/target/coldfire/iriver/audio-iriver.c15
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);
186void audio_stop_recording(void); 186void audio_stop_recording(void);
187void audio_pause_recording(void); 187void audio_pause_recording(void);
188void audio_resume_recording(void); 188void audio_resume_recording(void);
189#if CONFIG_CODEC == SWCODEC
190static inline void audio_new_file(const char *filename)
191 { audio_record(filename); }
192#else
189void audio_new_file(const char *filename); 193void audio_new_file(const char *filename);
194#endif /* CONFIG_CODEC == SWCODEC */
190void audio_set_recording_options(struct audio_recording_options *options); 195void audio_set_recording_options(struct audio_recording_options *options);
191void audio_set_recording_gain(int left, int right, int type); 196void audio_set_recording_gain(int left, int right, int type);
192unsigned long audio_recorded_time(void); 197unsigned 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)
427void audio_record(const char *filename) 419void 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 */
437void 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 */
447void audio_stop_recording(void) 429void 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 */
463void 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) */
1208static void pcmrec_start(const char *filename) 1203static 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
1302start_done: 1297record_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 */
1307static void pcmrec_stop(void) 1302static 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 */
31void 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
37void audio_set_output_source(int source) 24void 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 */
31void 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
37void audio_set_output_source(int source) 24void audio_set_output_source(int source)
38{ 25{