Hardware->modify headphone audio

This commit is contained in:
cjp
2017-11-25 12:44:35 +08:00
parent d54475edf8
commit 6ce8f7a0de

View File

@ -890,10 +890,13 @@ static int out_standby(struct audio_stream *stream)
{
struct stream_out *out = (struct stream_out *)stream;
struct audio_device *adev = out->dev;
char value[PROPERTY_VALUE_MAX];
lock_all_outputs(adev);
property_get("media.audio.close", value, NULL);
if (atoi(value) != 3) {
do_out_standby(out);
}
unlock_all_outputs(adev, NULL);
@ -936,9 +939,8 @@ static int out_set_parameters(struct audio_stream *stream, const char *kvpairs)
char value[32];
int ret;
unsigned int val;
char value1[PROPERTY_VALUE_MAX];
parms = str_parms_create_str(kvpairs);
ret = str_parms_get_str(parms, AUDIO_PARAMETER_STREAM_ROUTING,
value, sizeof(value));
lock_all_outputs(adev);
@ -956,8 +958,11 @@ static int out_set_parameters(struct audio_stream *stream, const char *kvpairs)
/* force output standby to start or stop SCO pcm stream if needed */
if ((val & AUDIO_DEVICE_OUT_ALL_SCO) ^
(out->device & AUDIO_DEVICE_OUT_ALL_SCO)) {
property_get("media.audio.close", value1, NULL);
if (atoi(value1) != 3) {
do_out_standby(out);
}
}
if (!out->standby && (out == adev->outputs[OUTPUT_HDMI_MULTI] ||
!adev->outputs[OUTPUT_HDMI_MULTI] ||
@ -1103,7 +1108,7 @@ static int out_set_volume(struct audio_stream_out *stream, float left,
static void reset_bitstream_buf(struct stream_out *out)
{
if (direct_mode.output_mode == HW_PARAMS_FLAG_NLPCM) {
ALOGD("reset_bitstream_buf");
// ALOGD("reset_bitstream_buf");
do_out_standby(out);
if (direct_mode.hbr_Buf) {
free (direct_mode.hbr_Buf);
@ -1172,13 +1177,13 @@ static ssize_t out_write(struct audio_stream_out *stream, const void* buffer,
do_out_standby(out);
//reset_bitstream_buf(out);
}
if (atoi(value) == 3) {
usleep(bytes * 1000000 / audio_stream_out_frame_size(stream) /
out_get_sample_rate(&stream->common));
return bytes;
}
pthread_mutex_lock(&out->lock);
if (out->standby) {
pthread_mutex_unlock(&out->lock);