Loading hal/audio_extn/audio_extn.h +2 −2 Original line number Diff line number Diff line Loading @@ -275,7 +275,7 @@ void audio_extn_compr_cap_deinit(); #ifndef DTS_EAGLE #define audio_extn_dts_eagle_set_parameters(adev, parms) (0) #define audio_extn_dts_eagle_get_parameters(adev, query, reply) (0) #define audio_extn_dts_eagle_fade(adev, fade_in) (0) #define audio_extn_dts_eagle_fade(adev, fade_in, out) (0) #define audio_extn_dts_create_state_notifier_node(stream_out) (0) #define audio_extn_dts_notify_playback_state(stream_out, has_video, sample_rate, \ channels, is_playing) (0) Loading @@ -286,7 +286,7 @@ void audio_extn_dts_eagle_set_parameters(struct audio_device *adev, struct str_parms *parms); int audio_extn_dts_eagle_get_parameters(const struct audio_device *adev, struct str_parms *query, struct str_parms *reply); int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in); int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in, const struct stream_out *out); void audio_extn_dts_create_state_notifier_node(int stream_out); void audio_extn_dts_notify_playback_state(int stream_out, int has_video, int sample_rate, int channels, int is_playing); Loading hal/audio_extn/dts_eagle.c +25 −16 Original line number Diff line number Diff line Loading @@ -88,24 +88,33 @@ static int do_DTS_Eagle_params_stream(struct stream_out *out, struct dts_eagle_p return -EINVAL; } static int do_DTS_Eagle_params(const struct audio_device *adev, struct dts_eagle_param_desc_alsa *t, bool get) { static int do_DTS_Eagle_params(const struct audio_device *adev, struct dts_eagle_param_desc_alsa *t, bool get, const struct stream_out *out) { struct listnode *node; struct audio_usecase *usecase; int ret = 0, sent = 0; int ret = 0, sent = 0, tret = 0; ALOGV("DTS_EAGLE_HAL (%s): enter", __func__); if (out) { /* if valid out stream is given, then send params to this stream only */ tret = do_DTS_Eagle_params_stream(out, t, get); if (tret < 0) ret = tret; else sent = 1; } else { list_for_each(node, &adev->usecase_list) { usecase = node_to_item(node, struct audio_usecase, list); /* set/get eagle params for offload usecases only */ if ((usecase->type == PCM_PLAYBACK) && is_offload_usecase(usecase->id)) { int tret = do_DTS_Eagle_params_stream(usecase->stream.out, t, get); tret = do_DTS_Eagle_params_stream(usecase->stream.out, t, get); if (tret < 0) ret = tret; else sent = 1; } } } if (!sent) { int fd = open(DEVICE_NODE, O_RDWR); Loading Loading @@ -163,7 +172,7 @@ static void fade_node(bool need_data) { ALOGE("DTS_EAGLE_HAL (%s): error writing to fade notifier node", __func__); } int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in) { int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in, const struct stream_out *out) { char prop[PROPERTY_VALUE_MAX]; ALOGV("DTS_EAGLE_HAL (%s): enter with fade %s requested", __func__, fade_in ? "in" : "out"); Loading @@ -177,10 +186,10 @@ int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in) { if (fade_in) { if (fade_in_data) return do_DTS_Eagle_params(adev, fade_in_data, false); return do_DTS_Eagle_params(adev, fade_in_data, false, out); } else { if (fade_out_data) return do_DTS_Eagle_params(adev, fade_out_data, false); return do_DTS_Eagle_params(adev, fade_out_data, false, out); } return 0; } Loading Loading @@ -297,7 +306,7 @@ void audio_extn_dts_eagle_set_parameters(struct audio_device *adev, struct str_p ALOGD("DTS_EAGLE_HAL (%s): id: 0x%X, size: %d, offset: %d, device: %d", __func__, (*t)->d.id, (*t)->d.size, (*t)->d.offset, (*t)->d.device); if (!fade_in) { ret = do_DTS_Eagle_params(adev, *t, false); ret = do_DTS_Eagle_params(adev, *t, false, NULL); if (ret < 0) ALOGE("DTS_EAGLE_HAL (%s): failed setting params in kernel with error %i", __func__, ret); } Loading Loading @@ -378,7 +387,7 @@ int audio_extn_dts_eagle_get_parameters(const struct audio_device *adev, ALOGE("%s: requested data too large", __func__); return -1; } ret = do_DTS_Eagle_params(adev, t, true); ret = do_DTS_Eagle_params(adev, t, true, NULL); if (ret >= 0) { data = (int*)(params + sizeof(struct dts_eagle_param_desc_alsa)); for (i = 0; i < count; i++) Loading hal/audio_hw.c +2 −2 Original line number Diff line number Diff line Loading @@ -2322,7 +2322,7 @@ static int out_pause(struct audio_stream_out* stream) out->offload_state = OFFLOAD_STATE_PAUSED; audio_extn_dts_eagle_fade(adev, false); audio_extn_dts_eagle_fade(adev, false, out); audio_extn_dts_notify_playback_state(out->usecase, 0, out->sample_rate, popcount(out->channel_mask), 0); Loading Loading @@ -2350,7 +2350,7 @@ static int out_resume(struct audio_stream_out* stream) out->offload_state = OFFLOAD_STATE_PLAYING; audio_extn_dts_eagle_fade(adev, true); audio_extn_dts_eagle_fade(adev, true, out); audio_extn_dts_notify_playback_state(out->usecase, 0, out->sample_rate, popcount(out->channel_mask), 1); } Loading Loading
hal/audio_extn/audio_extn.h +2 −2 Original line number Diff line number Diff line Loading @@ -275,7 +275,7 @@ void audio_extn_compr_cap_deinit(); #ifndef DTS_EAGLE #define audio_extn_dts_eagle_set_parameters(adev, parms) (0) #define audio_extn_dts_eagle_get_parameters(adev, query, reply) (0) #define audio_extn_dts_eagle_fade(adev, fade_in) (0) #define audio_extn_dts_eagle_fade(adev, fade_in, out) (0) #define audio_extn_dts_create_state_notifier_node(stream_out) (0) #define audio_extn_dts_notify_playback_state(stream_out, has_video, sample_rate, \ channels, is_playing) (0) Loading @@ -286,7 +286,7 @@ void audio_extn_dts_eagle_set_parameters(struct audio_device *adev, struct str_parms *parms); int audio_extn_dts_eagle_get_parameters(const struct audio_device *adev, struct str_parms *query, struct str_parms *reply); int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in); int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in, const struct stream_out *out); void audio_extn_dts_create_state_notifier_node(int stream_out); void audio_extn_dts_notify_playback_state(int stream_out, int has_video, int sample_rate, int channels, int is_playing); Loading
hal/audio_extn/dts_eagle.c +25 −16 Original line number Diff line number Diff line Loading @@ -88,24 +88,33 @@ static int do_DTS_Eagle_params_stream(struct stream_out *out, struct dts_eagle_p return -EINVAL; } static int do_DTS_Eagle_params(const struct audio_device *adev, struct dts_eagle_param_desc_alsa *t, bool get) { static int do_DTS_Eagle_params(const struct audio_device *adev, struct dts_eagle_param_desc_alsa *t, bool get, const struct stream_out *out) { struct listnode *node; struct audio_usecase *usecase; int ret = 0, sent = 0; int ret = 0, sent = 0, tret = 0; ALOGV("DTS_EAGLE_HAL (%s): enter", __func__); if (out) { /* if valid out stream is given, then send params to this stream only */ tret = do_DTS_Eagle_params_stream(out, t, get); if (tret < 0) ret = tret; else sent = 1; } else { list_for_each(node, &adev->usecase_list) { usecase = node_to_item(node, struct audio_usecase, list); /* set/get eagle params for offload usecases only */ if ((usecase->type == PCM_PLAYBACK) && is_offload_usecase(usecase->id)) { int tret = do_DTS_Eagle_params_stream(usecase->stream.out, t, get); tret = do_DTS_Eagle_params_stream(usecase->stream.out, t, get); if (tret < 0) ret = tret; else sent = 1; } } } if (!sent) { int fd = open(DEVICE_NODE, O_RDWR); Loading Loading @@ -163,7 +172,7 @@ static void fade_node(bool need_data) { ALOGE("DTS_EAGLE_HAL (%s): error writing to fade notifier node", __func__); } int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in) { int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in, const struct stream_out *out) { char prop[PROPERTY_VALUE_MAX]; ALOGV("DTS_EAGLE_HAL (%s): enter with fade %s requested", __func__, fade_in ? "in" : "out"); Loading @@ -177,10 +186,10 @@ int audio_extn_dts_eagle_fade(const struct audio_device *adev, bool fade_in) { if (fade_in) { if (fade_in_data) return do_DTS_Eagle_params(adev, fade_in_data, false); return do_DTS_Eagle_params(adev, fade_in_data, false, out); } else { if (fade_out_data) return do_DTS_Eagle_params(adev, fade_out_data, false); return do_DTS_Eagle_params(adev, fade_out_data, false, out); } return 0; } Loading Loading @@ -297,7 +306,7 @@ void audio_extn_dts_eagle_set_parameters(struct audio_device *adev, struct str_p ALOGD("DTS_EAGLE_HAL (%s): id: 0x%X, size: %d, offset: %d, device: %d", __func__, (*t)->d.id, (*t)->d.size, (*t)->d.offset, (*t)->d.device); if (!fade_in) { ret = do_DTS_Eagle_params(adev, *t, false); ret = do_DTS_Eagle_params(adev, *t, false, NULL); if (ret < 0) ALOGE("DTS_EAGLE_HAL (%s): failed setting params in kernel with error %i", __func__, ret); } Loading Loading @@ -378,7 +387,7 @@ int audio_extn_dts_eagle_get_parameters(const struct audio_device *adev, ALOGE("%s: requested data too large", __func__); return -1; } ret = do_DTS_Eagle_params(adev, t, true); ret = do_DTS_Eagle_params(adev, t, true, NULL); if (ret >= 0) { data = (int*)(params + sizeof(struct dts_eagle_param_desc_alsa)); for (i = 0; i < count; i++) Loading
hal/audio_hw.c +2 −2 Original line number Diff line number Diff line Loading @@ -2322,7 +2322,7 @@ static int out_pause(struct audio_stream_out* stream) out->offload_state = OFFLOAD_STATE_PAUSED; audio_extn_dts_eagle_fade(adev, false); audio_extn_dts_eagle_fade(adev, false, out); audio_extn_dts_notify_playback_state(out->usecase, 0, out->sample_rate, popcount(out->channel_mask), 0); Loading Loading @@ -2350,7 +2350,7 @@ static int out_resume(struct audio_stream_out* stream) out->offload_state = OFFLOAD_STATE_PLAYING; audio_extn_dts_eagle_fade(adev, true); audio_extn_dts_eagle_fade(adev, true, out); audio_extn_dts_notify_playback_state(out->usecase, 0, out->sample_rate, popcount(out->channel_mask), 1); } Loading