summaryrefslogtreecommitdiff
path: root/firmware/export/audio.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/audio.h')
-rw-r--r--firmware/export/audio.h61
1 files changed, 28 insertions, 33 deletions
diff --git a/firmware/export/audio.h b/firmware/export/audio.h
index 6236c6d5d1..1ce023a5e5 100644
--- a/firmware/export/audio.h
+++ b/firmware/export/audio.h
@@ -53,6 +53,31 @@
53#define AUDIO_GAIN_MIC 1 53#define AUDIO_GAIN_MIC 1
54 54
55 55
56void audio_init(void);
57void audio_play(long offset);
58void audio_stop(void);
59void audio_pause(void);
60void audio_resume(void);
61void audio_next(void);
62void audio_prev(void);
63int audio_status(void);
64void audio_ff_rewind(long newpos);
65void audio_flush_and_reload_tracks(void);
66struct mp3entry* audio_current_track(void);
67struct mp3entry* audio_next_track(void);
68#ifdef HAVE_DISK_STORAGE
69void audio_set_buffer_margin(int setting);
70#endif
71void audio_error_clear(void);
72int audio_get_file_pos(void);
73void audio_beep(int duration);
74
75#if CONFIG_CODEC == SWCODEC
76/* Required call when audio buffer is required for some other purpose */
77unsigned char *audio_get_buffer(bool talk_buf, size_t *buffer_size);
78/* only implemented in playback.c, but called from firmware */
79
80#else /* hwcodec only */
56struct audio_debug 81struct audio_debug
57{ 82{
58 int audiobuflen; 83 int audiobuflen;
@@ -77,40 +102,9 @@ struct audio_debug
77 int lowest_watermark_level; 102 int lowest_watermark_level;
78}; 103};
79 104
80void audio_init(void);
81void audio_play(long offset);
82void audio_stop(void);
83void audio_pause(void);
84void audio_resume(void);
85void audio_next(void);
86void audio_prev(void);
87int audio_status(void);
88void audio_ff_rewind(long newtime);
89void audio_flush_and_reload_tracks(void);
90struct mp3entry* audio_current_track(void);
91struct mp3entry* audio_next_track(void);
92void audio_get_debugdata(struct audio_debug *dbgdata); 105void audio_get_debugdata(struct audio_debug *dbgdata);
93#ifdef HAVE_DISK_STORAGE 106/* unsigned int audio_error(void); - unused function */
94void audio_set_buffer_margin(int seconds);
95#endif
96unsigned int audio_error(void);
97void audio_error_clear(void);
98int audio_get_file_pos(void);
99void audio_beep(int duration);
100void audio_init_playback(void); 107void audio_init_playback(void);
101
102/* Required call when audio buffer is required for some other purpose */
103unsigned char *audio_get_buffer(bool talk_buf, size_t *buffer_size);
104/* only implemented in playback.c, but called from firmware */
105
106#if CONFIG_CODEC == SWCODEC
107enum audio_buffer_state
108{
109 AUDIOBUF_STATE_TRASHED = -1, /* trashed; must be reset */
110 AUDIOBUF_STATE_INITIALIZED = 0, /* voice+audio OR audio-only */
111 AUDIOBUF_STATE_VOICED_ONLY = 1, /* voice-only */
112};
113int audio_buffer_state(void);
114#endif 108#endif
115 109
116/* channel modes */ 110/* channel modes */
@@ -237,7 +231,7 @@ void audio_spdif_set_monitor(int monitor_spdif);
237 231
238unsigned long audio_prev_elapsed(void); 232unsigned long audio_prev_elapsed(void);
239 233
240 234#if CONFIG_CODEC != SWCODEC
241/***********************************************************************/ 235/***********************************************************************/
242/* audio event handling */ 236/* audio event handling */
243 237
@@ -279,3 +273,4 @@ void audio_register_event_handler(AUDIO_EVENT_HANDLER handler, unsigned short ma
279 processing */ 273 processing */
280 274
281#endif 275#endif
276#endif