diff options
-rw-r--r-- | audio_hw.c | 12 | ||||
-rw-r--r-- | audio_hw.h | 3 |
2 files changed, 13 insertions, 2 deletions
@@ -125,9 +125,17 @@ static int audio_hw_set_mode(struct audio_hw_device *dev, int mode) device = (struct tinyalsa_audio_device *) dev; - device->mode = mode; + if(mode != device->mode) { + device->mode = mode; - // TODO: If mode changed, change routing + if(device->stream_out != NULL) { + audio_out_set_route(device->stream_out, + device->stream_out->device_current); + // TODO: audio_input_set_route + } + } + + device->mode = mode; return 0; } @@ -79,6 +79,9 @@ int audio_hw_open_output_stream(struct audio_hw_device *dev, void audio_hw_close_output_stream(struct audio_hw_device *dev, struct audio_stream_out *stream); +int audio_out_set_route(struct tinyalsa_audio_stream_out *stream_out, + audio_devices_t device); + 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); |