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.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/firmware/export/audio.h b/firmware/export/audio.h
index 9e3499e81f..2ee7f89dbd 100644
--- a/firmware/export/audio.h
+++ b/firmware/export/audio.h
@@ -31,6 +31,9 @@
31#define AUDIO_STATUS_PRERECORD 8 31#define AUDIO_STATUS_PRERECORD 8
32#define AUDIO_STATUS_ERROR 16 32#define AUDIO_STATUS_ERROR 16
33 33
34#define AUDIO_STATUS_STAYON_FLAGS \
35 (AUDIO_STATUS_PLAY | AUDIO_STATUS_PAUSE | AUDIO_STATUS_RECORD | AUDIO_)
36
34#define AUDIOERR_DISK_FULL 1 37#define AUDIOERR_DISK_FULL 1
35 38
36#define AUDIO_GAIN_LINEIN 0 39#define AUDIO_GAIN_LINEIN 0
@@ -69,6 +72,7 @@ void audio_resume(void);
69void audio_next(void); 72void audio_next(void);
70void audio_prev(void); 73void audio_prev(void);
71int audio_status(void); 74int audio_status(void);
75bool audio_query_poweroff(void);
72int audio_track_count(void); /* SWCODEC only */ 76int audio_track_count(void); /* SWCODEC only */
73void audio_pre_ff_rewind(void); /* SWCODEC only */ 77void audio_pre_ff_rewind(void); /* SWCODEC only */
74void audio_ff_rewind(long newtime); 78void audio_ff_rewind(long newtime);
@@ -93,14 +97,56 @@ void audio_stop_recording(void);
93void audio_pause_recording(void); 97void audio_pause_recording(void);
94void audio_resume_recording(void); 98void audio_resume_recording(void);
95void audio_new_file(const char *filename); 99void audio_new_file(const char *filename);
100
101/* audio sources */
102enum
103{
104 AUDIO_SRC_PLAYBACK = -1, /* for audio playback (default) */
105 AUDIO_SRC_MIC, /* monitor mic */
106 AUDIO_SRC_LINEIN, /* monitor line in */
107#ifdef HAVE_SPDIF_IN
108 AUDIO_SRC_SPDIF, /* monitor spdif */
109#endif
110#if defined(HAVE_FMRADIO_IN) || defined(CONFIG_TUNER)
111 AUDIO_SRC_FMRADIO, /* monitor fm radio */
112#endif
113 /* define new audio sources above this line */
114 AUDIO_SOURCE_LIST_END,
115 /* AUDIO_SRC_FMRADIO must be declared #ifdef CONFIG_TUNER but is not in
116 the list of recordable sources. HAVE_FMRADIO_IN implies CONFIG_TUNER. */
117#if defined(HAVE_FMRADIO_IN) || !defined(CONFIG_TUNER)
118 AUDIO_NUM_SOURCES = AUDIO_SOURCE_LIST_END,
119#else
120 AUDIO_NUM_SOURCES = AUDIO_SOURCE_LIST_END-1,
121#endif
122 AUDIO_SRC_MAX = AUDIO_NUM_SOURCES-1
123};
124
125/* channel modes */
126enum
127{
128 CHN_MODE_MONO = 1,
129 CHN_MODE_STEREO,
130};
96void audio_set_recording_options(int frequency, int quality, 131void audio_set_recording_options(int frequency, int quality,
97 int source, int channel_mode, 132 int source, int channel_mode,
98 bool editable, int prerecord_time); 133 bool editable, int prerecord_time);
99void audio_set_recording_gain(int left, int right, int type); 134void audio_set_recording_gain(int left, int right, int type);
100unsigned long audio_recorded_time(void); 135unsigned long audio_recorded_time(void);
101unsigned long audio_num_recorded_bytes(void); 136unsigned long audio_num_recorded_bytes(void);
137#if 0
138#ifdef HAVE_SPDIF_POWER
102void audio_set_spdif_power_setting(bool on); 139void audio_set_spdif_power_setting(bool on);
140#endif
141#endif
103unsigned long audio_get_spdif_sample_rate(void); 142unsigned long audio_get_spdif_sample_rate(void);
143#if CONFIG_CODEC == SWCODEC
144/* audio encoder functions (defined in playback.c) */
145int audio_get_encoder_id(void);
146void audio_load_encoder(int enc_id);
147void audio_remove_encoder(void);
148#endif /* CONFIG_CODEC == SWCODEC */
149
104 150
105 151
106 152