diff options
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/pcm_playback.h | 1 | ||||
-rw-r--r-- | firmware/export/pcm_record.h | 17 |
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) */ |
25 | typedef void (*pcm_more_callback_type)(unsigned char **start, | 25 | typedef void (*pcm_more_callback_type)(unsigned char **start, |
26 | size_t *size); | 26 | size_t *size); |
27 | typedef int (*pcm_more_callback_type2)(int status); | ||
27 | 28 | ||
28 | void pcm_init(void); | 29 | void 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); | |||
36 | void pcm_close_recording(void); | 36 | void pcm_close_recording(void); |
37 | 37 | ||
38 | /* Start recording "raw" PCM data */ | 38 | /* Start recording "raw" PCM data */ |
39 | void pcm_record_data(pcm_more_callback_type more_ready, | 39 | void 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 */ |
43 | void pcm_stop_recording(void); | 43 | void pcm_stop_recording(void); |
44 | 44 | ||
45 | /* Continue transferring data in - call during interrupt handler */ | ||
46 | void pcm_record_more(void *start, size_t size); | ||
47 | |||
45 | void pcm_calculate_rec_peaks(int *left, int *right); | 48 | void 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 */ |
67 | extern volatile pcm_more_callback_type pcm_callback_more_ready; | 70 | extern volatile pcm_more_callback_type2 pcm_callback_more_ready; |
68 | /* DMA transfer in is currently active */ | 71 | /* DMA transfer in is currently active */ |
69 | extern volatile bool pcm_recording; | 72 | extern volatile bool pcm_recording; |
70 | 73 | ||
71 | /* APIs implemented in the target-specific portion */ | 74 | /* APIs implemented in the target-specific portion */ |
72 | extern void pcm_rec_dma_start(const void *addr, size_t size); | 75 | extern void pcm_rec_dma_start(void *addr, size_t size); |
73 | extern void pcm_rec_dma_stop(void); | 76 | extern void pcm_rec_dma_stop(void); |
74 | 77 | ||
75 | #endif /* PCM_RECORD_H */ | 78 | #endif /* PCM_RECORD_H */ |