/* * Copyright (C) 2012 Paul Kocialkowski * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef TINYALSA_AUDIO_HW_H #define TINYALSA_AUDIO_HW_H #include #include #include struct tinyalsa_audio_stream_out { struct audio_stream_out stream; struct tinyalsa_audio_device *device; struct tinyalsa_mixer_io_props *mixer_props; int rate; audio_channels_t channels; audio_format_t format; audio_devices_t device_current; struct pcm *pcm; int standby; }; struct tinyalsa_audio_stream_in { struct audio_stream_in stream; struct tinyalsa_audio_device *device; struct tinyalsa_mixer_io_props *mixer_props; int rate; audio_channels_t channels; audio_format_t format; audio_devices_t device_current; struct pcm *pcm; int standby; }; struct tinyalsa_audio_device { struct audio_hw_device device; struct tinyalsa_audio_stream_out *stream_out; struct tinyalsa_audio_stream_in *stream_in; struct tinyalsa_mixer *mixer; audio_mode_t mode; int mic_mute; }; int audio_hw_open_output_stream(struct audio_hw_device *dev, uint32_t devices, int *format, uint32_t *channels, uint32_t *sample_rate, struct audio_stream_out **stream_out); void audio_hw_close_output_stream(struct audio_hw_device *dev, struct audio_stream_out *stream); int audio_hw_open_input_stream(struct audio_hw_device *dev, uint32_t devices, int *format, uint32_t *channels, uint32_t *sample_rate, audio_in_acoustics_t acoustics, struct audio_stream_in **stream_in); void audio_hw_close_input_stream(struct audio_hw_device *dev, struct audio_stream_in *stream); #endif