summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/pcm_playback.h1
-rw-r--r--firmware/export/pcm_record.h17
2 files changed, 11 insertions, 7 deletions
diff --git a/firmware/export/pcm_playback.h b/firmware/export/pcm_playback.h
index e7c00edeed..80a1f557fe 100644
--- a/firmware/export/pcm_playback.h
+++ b/firmware/export/pcm_playback.h
@@ -24,6 +24,7 @@
24/* Typedef for registered callback (play and record) */ 24/* Typedef for registered callback (play and record) */
25typedef void (*pcm_more_callback_type)(unsigned char **start, 25typedef void (*pcm_more_callback_type)(unsigned char **start,
26 size_t *size); 26 size_t *size);
27typedef int (*pcm_more_callback_type2)(int status);
27 28
28void pcm_init(void); 29void pcm_init(void);
29 30
diff --git a/firmware/export/pcm_record.h b/firmware/export/pcm_record.h
index 30d2dc7e6f..f6dddb3424 100644
--- a/firmware/export/pcm_record.h
+++ b/firmware/export/pcm_record.h
@@ -20,9 +20,9 @@
20#ifndef PCM_RECORD_H 20#ifndef PCM_RECORD_H
21#define PCM_RECORD_H 21#define PCM_RECORD_H
22 22
23#define DMA_REC_ERROR_DMA ((size_t)-1) 23#define DMA_REC_ERROR_DMA (-1)
24#ifdef HAVE_SPDIF_IN 24#ifdef HAVE_SPDIF_IN
25#define DMA_REC_ERROR_SPDIF ((size_t)-2) 25#define DMA_REC_ERROR_SPDIF (-2)
26#endif 26#endif
27 27
28/** 28/**
@@ -36,12 +36,15 @@ void pcm_init_recording(void);
36void pcm_close_recording(void); 36void pcm_close_recording(void);
37 37
38/* Start recording "raw" PCM data */ 38/* Start recording "raw" PCM data */
39void pcm_record_data(pcm_more_callback_type more_ready, 39void pcm_record_data(pcm_more_callback_type2 more_ready,
40 unsigned char *start, size_t size); 40 void *start, size_t size);
41 41
42/* Stop tranferring data into supplied buffer */ 42/* Stop tranferring data into supplied buffer */
43void pcm_stop_recording(void); 43void pcm_stop_recording(void);
44 44
45/* Continue transferring data in - call during interrupt handler */
46void pcm_record_more(void *start, size_t size);
47
45void pcm_calculate_rec_peaks(int *left, int *right); 48void pcm_calculate_rec_peaks(int *left, int *right);
46 49
47/** General functions for high level codec recording **/ 50/** General functions for high level codec recording **/
@@ -64,12 +67,12 @@ int pcm_get_num_unprocessed(void);
64/** The following are for internal use between pcm_record.c and target- 67/** The following are for internal use between pcm_record.c and target-
65 specific portion **/ 68 specific portion **/
66/* the registered callback function for when more data is available */ 69/* the registered callback function for when more data is available */
67extern volatile pcm_more_callback_type pcm_callback_more_ready; 70extern volatile pcm_more_callback_type2 pcm_callback_more_ready;
68/* DMA transfer in is currently active */ 71/* DMA transfer in is currently active */
69extern volatile bool pcm_recording; 72extern volatile bool pcm_recording;
70 73
71/* APIs implemented in the target-specific portion */ 74/* APIs implemented in the target-specific portion */
72extern void pcm_rec_dma_start(const void *addr, size_t size); 75extern void pcm_rec_dma_start(void *addr, size_t size);
73extern void pcm_rec_dma_stop(void); 76extern void pcm_rec_dma_stop(void);
74 77
75#endif /* PCM_RECORD_H */ 78#endif /* PCM_RECORD_H */