diff options
Diffstat (limited to 'src/output')
-rw-r--r-- | src/output/alsa_plugin.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/output/alsa_plugin.c b/src/output/alsa_plugin.c index 114355ba8..3ad502ba2 100644 --- a/src/output/alsa_plugin.c +++ b/src/output/alsa_plugin.c @@ -41,18 +41,36 @@ typedef snd_pcm_sframes_t alsa_writei_t(snd_pcm_t * pcm, const void *buffer, snd_pcm_uframes_t size); struct alsa_data { + /** the configured name of the ALSA device; NULL for the + default device */ char *device; + /** use memory mapped I/O? */ + bool use_mmap; + + /** libasound's buffer_time setting (in microseconds) */ + unsigned int buffer_time; + + /** libasound's period_time setting (in microseconds) */ + unsigned int period_time; + /** the mode flags passed to snd_pcm_open */ int mode; + /** the libasound PCM device handle */ snd_pcm_t *pcm; + + /** + * a pointer to the libasound writei() function, which is + * snd_pcm_writei() or snd_pcm_mmap_writei(), depending on the + * use_mmap configuration + */ alsa_writei_t *writei; - unsigned int buffer_time; - unsigned int period_time; + + /** the size of one audio frame */ size_t frame_size; - bool use_mmap; + /** the mixer object associated with this output */ struct mixer mixer; }; |