summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2015-01-09 17:03:27 -0800
committerEric Laurent <elaurent@google.com>2015-01-09 17:04:40 -0800
commite64994292cb02fae66f04002e1121d29979503d1 (patch)
treefe748753812ebc4dcd93f7230b524ffafd45e0d9 /modules
parent7e9abab1940091b4c4d7589160855870fdda437e (diff)
parent83b47a6891a5bf3d546f0f7a8976132e45169075 (diff)
downloadhardware_libhardware-e64994292cb02fae66f04002e1121d29979503d1.zip
hardware_libhardware-e64994292cb02fae66f04002e1121d29979503d1.tar.gz
hardware_libhardware-e64994292cb02fae66f04002e1121d29979503d1.tar.bz2
Merge commit '83b47a68' into manualmerge
Diffstat (limited to 'modules')
-rw-r--r--modules/usbaudio/audio_hw.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/usbaudio/audio_hw.c b/modules/usbaudio/audio_hw.c
index 4188373..ad01833 100644
--- a/modules/usbaudio/audio_hw.c
+++ b/modules/usbaudio/audio_hw.c
@@ -775,6 +775,7 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer, size_t byte
size_t num_read_buff_bytes = 0;
void * read_buff = buffer;
void * out_buff = buffer;
+ int ret = 0;
struct stream_in * in = (struct stream_in *)stream;
@@ -824,7 +825,8 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer, size_t byte
read_buff = in->conversion_buffer;
}
- if (proxy_read(&in->proxy, read_buff, num_read_buff_bytes) == 0) {
+ ret = proxy_read(&in->proxy, read_buff, num_read_buff_bytes);
+ if (ret == 0) {
/*
* Do any conversions necessary to send the data in the format specified to/by the HAL
* (but different from the ALSA format), such as 24bit ->16bit, or 4chan -> 2chan.
@@ -868,7 +870,7 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer, size_t byte
if (num_read_buff_bytes > 0 && in->dev->mic_muted)
memset(buffer, 0, num_read_buff_bytes);
} else {
- num_read_buff_bytes = 0;
+ num_read_buff_bytes = 0; // reset the value after USB headset is unplugged
}
err: