From: Jaechul Lee Date: Tue, 26 Jan 2021 04:50:39 +0000 (+0900) Subject: Use hal interface X-Git-Tag: accepted/tizen/unified/20210204.134555^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F47%2F252247%2F10;p=platform%2Fadaptation%2Fap_broadcom%2Faudio-hal-bcm2837.git Use hal interface hal interfaces were added. Besides, structure and enum names were changed for better readability. In case of enum, audio_return_t is changed to audio_return_'e', and device_info_t is changed to device_info_'s'. [Version] 0.1.9 [Issue Type] None Change-Id: I88005d26198d0453d07d08059f58e4cdf2206cb3 Signed-off-by: Jaechul Lee --- diff --git a/Makefile.am b/Makefile.am index ef960b6..ef9d5be 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ -lib_LTLIBRARIES = libtizen-audio.la +lib_LTLIBRARIES = libhal-backend-audio.la -libtizen_audio_la_SOURCES = tizen-audio.c \ +libhal_backend_audio_la_SOURCES = tizen-audio.c \ tizen-audio-volume.c \ tizen-audio-routing.c \ tizen-audio-stream.c \ @@ -8,13 +8,14 @@ libtizen_audio_la_SOURCES = tizen-audio.c \ tizen-audio-util.c \ tizen-audio-ctrl.c \ tizen-audio-impl-pcm.c \ - tizen-audio-impl-ctrl.c -libtizen_audio_la_LDFLAGS = $(AM_LDFLAGS) -disable-static -avoid-version -libtizen_audio_la_LIBADD = $(AM_LDADD) $(ASOUNDLIB_LIBS) $(VCONF_LIBS) $(DLOG_LIBS) $(INIPARSER_LIBS) $(SYSTEM_INFO_LIBS) -libtizen_audio_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) $(VCONF_CFLAGS) $(DLOG_CFLAGS) $(INIPARSER_CFLAGS) $(SYSTEM_INFO_CFLAGS) -DUSE_DLOG + tizen-audio-impl-ctrl.c \ + hal-backend-audio.c +libhal_backend_audio_la_LDFLAGS = $(AM_LDFLAGS) -disable-static -avoid-version +libhal_backend_audio_la_LIBADD = $(AM_LDADD) $(ASOUNDLIB_LIBS) $(VCONF_LIBS) $(DLOG_LIBS) $(INIPARSER_LIBS) $(SYSTEM_INFO_LIBS) +libhal_backend_audio_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) $(VCONF_CFLAGS) $(DLOG_CFLAGS) $(INIPARSER_CFLAGS) $(SYSTEM_INFO_CFLAGS) $(HALAPICOMMON) -DUSE_DLOG if USE_TINYALSA -libtizen_audio_la_LIBADD += $(TINYALSA_LIBS) -libtizen_audio_la_CFLAGS += $(TINYALSA_CFLAGS) -D__USE_TINYALSA__ +libhal_backend_audio_la_LIBADD += $(TINYALSA_LIBS) +libhal_backend_audio_la_CFLAGS += $(TINYALSA_CFLAGS) -D__USE_TINYALSA__ endif diff --git a/configure.ac b/configure.ac index a8b820b..199769c 100644 --- a/configure.ac +++ b/configure.ac @@ -51,6 +51,10 @@ PKG_CHECK_MODULES(SYSTEM_INFO, capi-system-info) AC_SUBST(SYSTEM_INFO_CFLAGS) AC_SUBST(SYSTEM_INFO_LIBS) +PKG_CHECK_MODULES(HALAPICOMMON, hal-api-common) +AC_SUBST(HALAPICOMMON_CFLAGS) +AC_SUBST(HALAPICOMMON_LIBS) + # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. diff --git a/hal-backend-audio.c b/hal-backend-audio.c new file mode 100644 index 0000000..5b4c181 --- /dev/null +++ b/hal-backend-audio.c @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include +#include + +static int audio_rpi_init(void **data) +{ + hal_backend_audio_funcs *funcs; + + funcs = calloc(1, sizeof(hal_backend_audio_funcs)); + if (!funcs) + return -ENOMEM; + + funcs->init = audio_init; + funcs->deinit = audio_deinit; + funcs->get_volume_level_max = audio_get_volume_level_max; + funcs->set_volume_level = audio_set_volume_level; + funcs->get_volume_value = audio_get_volume_value; + funcs->get_volume_mute = audio_get_volume_mute; + funcs->set_volume_mute = audio_set_volume_mute; + funcs->set_volume_ratio = audio_set_volume_ratio; + funcs->update_route = audio_update_route; + funcs->update_route_option = audio_update_route_option; + funcs->notify_stream_connection_changed = audio_notify_stream_connection_changed; + funcs->pcm_open = audio_pcm_open; + funcs->pcm_start = audio_pcm_start; + funcs->pcm_stop = audio_pcm_stop; + funcs->pcm_close = audio_pcm_close; + funcs->pcm_avail = audio_pcm_avail; + funcs->pcm_write = audio_pcm_write; + funcs->pcm_read = audio_pcm_read; + funcs->pcm_get_fd = audio_pcm_get_fd; + funcs->pcm_recover = audio_pcm_recover; + funcs->pcm_get_params = audio_pcm_get_params; + funcs->pcm_set_params = audio_pcm_set_params; + + *data = (void *)funcs; + + return 0; +} + +static void audio_rpi_exit(void *data) +{ + if (!data) + return; + + free(data); +} + +hal_backend hal_backend_audio_data = { + .name = "audio-rpi", + .vendor = "Broadcom", + .abi_version = HAL_ABI_VERSION_TIZEN_6_5, + .init = audio_rpi_init, + .exit = audio_rpi_exit, +}; diff --git a/packaging/audio-hal-bcm2837.spec b/packaging/audio-hal-bcm2837.spec index aba5387..4b219ef 100644 --- a/packaging/audio-hal-bcm2837.spec +++ b/packaging/audio-hal-bcm2837.spec @@ -1,6 +1,6 @@ Name: audio-hal-bcm2837 Summary: TIZEN Audio HAL for BCM2837 -Version: 0.1.8 +Version: 0.1.9 Release: 0 Group: System/Libraries License: Apache-2.0 @@ -11,8 +11,10 @@ BuildRequires: pkgconfig(iniparser) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(capi-system-info) +BuildRequires: pkgconfig(hal-api-common) +BuildRequires: pkgconfig(hal-api-audio) #BuildRequires: pkgconfig(tinyalsa) -Provides: libtizen-audio.so +Provides: libhal-backend-audio.so %description TIZEN Audio HAL for BCM2837 @@ -28,7 +30,7 @@ export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" export USE_TINYALSA="0" %autogen -%configure +./configure --libdir=%{_hal_libdir} make %{?jobs:-j%jobs} @@ -45,5 +47,5 @@ rm -rf %{buildroot} %files %manifest audio-hal-bcm2837.manifest %defattr(-,root,root,-) -%{_libdir}/libtizen-audio.so +%{_hal_libdir}/libhal-backend-audio.so %license LICENSE.Apache-2.0 diff --git a/tizen-audio-ctrl.c b/tizen-audio-ctrl.c index 2b9bacd..40c5d6c 100644 --- a/tizen-audio-ctrl.c +++ b/tizen-audio-ctrl.c @@ -23,9 +23,9 @@ #include "tizen-audio-internal.h" #include "tizen-audio-impl.h" -audio_return_t _audio_ctrl_init(audio_hal_t *ah) +audio_return_e _audio_ctrl_init(audio_hal_t *ah) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -34,9 +34,9 @@ audio_return_t _audio_ctrl_init(audio_hal_t *ah) return audio_ret; } -audio_return_t _audio_ctrl_deinit(audio_hal_t *ah) +audio_return_e _audio_ctrl_deinit(audio_hal_t *ah) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); diff --git a/tizen-audio-impl-ctrl.c b/tizen-audio-impl-ctrl.c index c52715a..9f59871 100644 --- a/tizen-audio-impl-ctrl.c +++ b/tizen-audio-impl-ctrl.c @@ -47,7 +47,7 @@ static void __dump_mixer_param(char *dump, long *param, int size) } #endif -audio_return_t _mixer_control_init(audio_hal_t *ah) +audio_return_e _mixer_control_init(audio_hal_t *ah) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -55,7 +55,7 @@ audio_return_t _mixer_control_init(audio_hal_t *ah) return AUDIO_RET_OK; } -audio_return_t _mixer_control_deinit(audio_hal_t *ah) +audio_return_e _mixer_control_deinit(audio_hal_t *ah) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -63,7 +63,7 @@ audio_return_t _mixer_control_deinit(audio_hal_t *ah) return AUDIO_RET_OK; } -audio_return_t _mixer_control_set_param(audio_hal_t *ah, const char* ctl_name, snd_ctl_elem_value_t* param, int size) +audio_return_e _mixer_control_set_param(audio_hal_t *ah, const char* ctl_name, snd_ctl_elem_value_t* param, int size) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -71,7 +71,7 @@ audio_return_t _mixer_control_set_param(audio_hal_t *ah, const char* ctl_name, s return AUDIO_RET_OK; } -audio_return_t _mixer_control_get_value(audio_hal_t *ah, const char *ctl_name, int *val) +audio_return_e _mixer_control_get_value(audio_hal_t *ah, const char *ctl_name, int *val) { snd_ctl_t *handle; snd_ctl_elem_value_t *control; @@ -151,7 +151,7 @@ close: return AUDIO_ERR_UNDEFINED; } -audio_return_t _mixer_control_set_value(audio_hal_t *ah, const char *ctl_name, int val) +audio_return_e _mixer_control_set_value(audio_hal_t *ah, const char *ctl_name, int val) { snd_ctl_t *handle; snd_ctl_elem_value_t *control; @@ -230,7 +230,7 @@ close: return AUDIO_ERR_UNDEFINED; } -audio_return_t _mixer_control_set_value_string(audio_hal_t *ah, const char* ctl_name, const char* value) +audio_return_e _mixer_control_set_value_string(audio_hal_t *ah, const char* ctl_name, const char* value) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(ctl_name, AUDIO_ERR_PARAMETER); @@ -240,7 +240,7 @@ audio_return_t _mixer_control_set_value_string(audio_hal_t *ah, const char* ctl_ } -audio_return_t _mixer_control_get_element(audio_hal_t *ah, const char *ctl_name, snd_hctl_elem_t **elem) +audio_return_e _mixer_control_get_element(audio_hal_t *ah, const char *ctl_name, snd_hctl_elem_t **elem) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(ctl_name, AUDIO_ERR_PARAMETER); diff --git a/tizen-audio-impl-pcm.c b/tizen-audio-impl-pcm.c index dc93a90..093ad06 100644 --- a/tizen-audio-impl-pcm.c +++ b/tizen-audio-impl-pcm.c @@ -156,7 +156,7 @@ static int __make_alsa_device_name(const char *card, const char *device, char de } #endif -audio_return_t _pcm_open(const char *card, const char *device, uint32_t direction, void *sample_spec, +audio_return_e _pcm_open(const char *card, const char *device, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods, void **pcm_handle) { int err; @@ -186,7 +186,7 @@ audio_return_t _pcm_open(const char *card, const char *device, uint32_t directio #else /* alsa-lib */ int mode; - audio_return_t ret; + audio_return_e ret; char device_name[DEVICE_NAME_MAX]; __make_alsa_device_name(card, device, device_name); @@ -208,7 +208,7 @@ audio_return_t _pcm_open(const char *card, const char *device, uint32_t directio return AUDIO_RET_OK; } -audio_return_t _pcm_start(void *pcm_handle) +audio_return_e _pcm_start(void *pcm_handle) { int err; @@ -228,7 +228,7 @@ audio_return_t _pcm_start(void *pcm_handle) return AUDIO_RET_OK; } -audio_return_t _pcm_stop(void *pcm_handle) +audio_return_e _pcm_stop(void *pcm_handle) { int err; @@ -248,7 +248,7 @@ audio_return_t _pcm_stop(void *pcm_handle) return AUDIO_RET_OK; } -audio_return_t _pcm_close(void *pcm_handle) +audio_return_e _pcm_close(void *pcm_handle) { int err; @@ -269,7 +269,7 @@ audio_return_t _pcm_close(void *pcm_handle) return AUDIO_RET_OK; } -audio_return_t _pcm_avail(void *pcm_handle, uint32_t *avail) +audio_return_e _pcm_avail(void *pcm_handle, uint32_t *avail) { #ifdef __USE_TINYALSA__ struct timespec tspec; @@ -305,7 +305,7 @@ audio_return_t _pcm_avail(void *pcm_handle, uint32_t *avail) return AUDIO_RET_OK; } -audio_return_t _pcm_write(void *pcm_handle, const void *buffer, uint32_t frames) +audio_return_e _pcm_write(void *pcm_handle, const void *buffer, uint32_t frames) { #ifdef __USE_TINYALSA__ int err; @@ -338,7 +338,7 @@ audio_return_t _pcm_write(void *pcm_handle, const void *buffer, uint32_t frames) return AUDIO_RET_OK; } -audio_return_t _pcm_read(void *pcm_handle, void *buffer, uint32_t frames) +audio_return_e _pcm_read(void *pcm_handle, void *buffer, uint32_t frames) { #ifdef __USE_TINYALSA__ int err; @@ -369,7 +369,7 @@ audio_return_t _pcm_read(void *pcm_handle, void *buffer, uint32_t frames) return AUDIO_RET_OK; } -audio_return_t _pcm_get_fd(void *pcm_handle, int *fd) +audio_return_e _pcm_get_fd(void *pcm_handle, int *fd) { /* we use an internal API of the (tiny)alsa library, so it causes warning message during compile */ #ifdef __USE_TINYALSA__ @@ -380,7 +380,7 @@ audio_return_t _pcm_get_fd(void *pcm_handle, int *fd) return AUDIO_RET_OK; } -audio_return_t _pcm_recover(void *pcm_handle, int revents) +audio_return_e _pcm_recover(void *pcm_handle, int revents) { int state, err; @@ -460,7 +460,7 @@ audio_return_t _pcm_recover(void *pcm_handle, int revents) return AUDIO_RET_OK; } -audio_return_t _pcm_get_params(void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods) +audio_return_e _pcm_get_params(void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods) { #ifdef __USE_TINYALSA__ audio_pcm_sample_spec_t *ss; @@ -542,7 +542,7 @@ audio_return_t _pcm_get_params(void *pcm_handle, uint32_t direction, void **samp return AUDIO_RET_OK; } -audio_return_t _pcm_set_params(void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods) +audio_return_e _pcm_set_params(void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods) { #ifdef __USE_TINYALSA__ /* Parameters are only acceptable in pcm_open() function */ @@ -657,9 +657,9 @@ audio_return_t _pcm_set_params(void *pcm_handle, uint32_t direction, void *sampl } /* Generic snd pcm interface APIs */ -audio_return_t _pcm_set_hw_params(snd_pcm_t *pcm, audio_pcm_sample_spec_t *sample_spec, uint8_t *use_mmap, snd_pcm_uframes_t *period_size, snd_pcm_uframes_t *buffer_size) +audio_return_e _pcm_set_hw_params(snd_pcm_t *pcm, audio_pcm_sample_spec_t *sample_spec, uint8_t *use_mmap, snd_pcm_uframes_t *period_size, snd_pcm_uframes_t *buffer_size) { - audio_return_t ret = AUDIO_RET_OK; + audio_return_e ret = AUDIO_RET_OK; snd_pcm_hw_params_t *hwparams; int err = 0; int dir; @@ -763,7 +763,7 @@ error: return AUDIO_ERR_RESOURCE; } -audio_return_t _pcm_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min, uint8_t period_event) +audio_return_e _pcm_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min, uint8_t period_event) { snd_pcm_sw_params_t *swparams; snd_pcm_uframes_t boundary; diff --git a/tizen-audio-impl.h b/tizen-audio-impl.h index 70b4993..ca1bc05 100644 --- a/tizen-audio-impl.h +++ b/tizen-audio-impl.h @@ -21,27 +21,27 @@ */ /* PCM */ -audio_return_t _pcm_open(const char *card, const char *device, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods, void **pcm_handle); -audio_return_t _pcm_start(void *pcm_handle); -audio_return_t _pcm_stop(void *pcm_handle); -audio_return_t _pcm_close(void *pcm_handle); -audio_return_t _pcm_avail(void *pcm_handle, uint32_t *avail); -audio_return_t _pcm_write(void *pcm_handle, const void *buffer, uint32_t frames); -audio_return_t _pcm_read(void *pcm_handle, void *buffer, uint32_t frames); -audio_return_t _pcm_get_fd(void *pcm_handle, int *fd); -audio_return_t _pcm_recover(void *pcm_handle, int revents); -audio_return_t _pcm_get_params(void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods); -audio_return_t _pcm_set_params(void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods); -audio_return_t _pcm_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min, uint8_t period_event); -audio_return_t _pcm_set_hw_params(snd_pcm_t *pcm, audio_pcm_sample_spec_t *sample_spec, uint8_t *use_mmap, snd_pcm_uframes_t *period_size, snd_pcm_uframes_t *buffer_size); +audio_return_e _pcm_open(const char *card, const char *device, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods, void **pcm_handle); +audio_return_e _pcm_start(void *pcm_handle); +audio_return_e _pcm_stop(void *pcm_handle); +audio_return_e _pcm_close(void *pcm_handle); +audio_return_e _pcm_avail(void *pcm_handle, uint32_t *avail); +audio_return_e _pcm_write(void *pcm_handle, const void *buffer, uint32_t frames); +audio_return_e _pcm_read(void *pcm_handle, void *buffer, uint32_t frames); +audio_return_e _pcm_get_fd(void *pcm_handle, int *fd); +audio_return_e _pcm_recover(void *pcm_handle, int revents); +audio_return_e _pcm_get_params(void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods); +audio_return_e _pcm_set_params(void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods); +audio_return_e _pcm_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min, uint8_t period_event); +audio_return_e _pcm_set_hw_params(snd_pcm_t *pcm, audio_pcm_sample_spec_t *sample_spec, uint8_t *use_mmap, snd_pcm_uframes_t *period_size, snd_pcm_uframes_t *buffer_size); /* Control */ -audio_return_t _mixer_control_init(audio_hal_t *ah); -audio_return_t _mixer_control_deinit(audio_hal_t *ah); -audio_return_t _mixer_control_set_param(audio_hal_t *ah, const char* ctl_name, snd_ctl_elem_value_t* value, int size); -audio_return_t _mixer_control_set_value(audio_hal_t *ah, const char *ctl_name, int val); -audio_return_t _mixer_control_set_value_string(audio_hal_t *ah, const char* ctl_name, const char* value); -audio_return_t _mixer_control_get_value(audio_hal_t *ah, const char *ctl_name, int *val); -audio_return_t _mixer_control_get_element(audio_hal_t *ah, const char *ctl_name, snd_hctl_elem_t **elem); +audio_return_e _mixer_control_init(audio_hal_t *ah); +audio_return_e _mixer_control_deinit(audio_hal_t *ah); +audio_return_e _mixer_control_set_param(audio_hal_t *ah, const char* ctl_name, snd_ctl_elem_value_t* value, int size); +audio_return_e _mixer_control_set_value(audio_hal_t *ah, const char *ctl_name, int val); +audio_return_e _mixer_control_set_value_string(audio_hal_t *ah, const char* ctl_name, const char* value); +audio_return_e _mixer_control_get_value(audio_hal_t *ah, const char *ctl_name, int *val); +audio_return_e _mixer_control_get_element(audio_hal_t *ah, const char *ctl_name, snd_hctl_elem_t **elem); #endif diff --git a/tizen-audio-internal.h b/tizen-audio-internal.h index 485e0bb..35dede3 100644 --- a/tizen-audio-internal.h +++ b/tizen-audio-internal.h @@ -237,16 +237,16 @@ typedef struct audio_hal { audio_hal_mixer_t mixer; } audio_hal_t; -audio_return_t _audio_ctrl_init(audio_hal_t *ah); -audio_return_t _audio_ctrl_deinit(audio_hal_t *ah); -audio_return_t _audio_volume_init(audio_hal_t *ah); -audio_return_t _audio_volume_deinit(audio_hal_t *ah); -audio_return_t _audio_routing_init(audio_hal_t *ah); -audio_return_t _audio_routing_deinit(audio_hal_t *ah); -audio_return_t _audio_stream_init(audio_hal_t *ah); -audio_return_t _audio_stream_deinit(audio_hal_t *ah); -audio_return_t _audio_pcm_init(audio_hal_t *ah); -audio_return_t _audio_pcm_deinit(audio_hal_t *ah); +audio_return_e _audio_ctrl_init(audio_hal_t *ah); +audio_return_e _audio_ctrl_deinit(audio_hal_t *ah); +audio_return_e _audio_volume_init(audio_hal_t *ah); +audio_return_e _audio_volume_deinit(audio_hal_t *ah); +audio_return_e _audio_routing_init(audio_hal_t *ah); +audio_return_e _audio_routing_deinit(audio_hal_t *ah); +audio_return_e _audio_stream_init(audio_hal_t *ah); +audio_return_e _audio_stream_deinit(audio_hal_t *ah); +audio_return_e _audio_pcm_init(audio_hal_t *ah); +audio_return_e _audio_pcm_deinit(audio_hal_t *ah); typedef struct _dump_data { char *strbuf; diff --git a/tizen-audio-pcm.c b/tizen-audio-pcm.c index c12c196..098e21e 100644 --- a/tizen-audio-pcm.c +++ b/tizen-audio-pcm.c @@ -24,7 +24,7 @@ #include "tizen-audio-internal.h" #include "tizen-audio-impl.h" -audio_return_t _audio_pcm_init(audio_hal_t *ah) +audio_return_e _audio_pcm_init(audio_hal_t *ah) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -36,7 +36,7 @@ audio_return_t _audio_pcm_init(audio_hal_t *ah) return AUDIO_RET_OK; } -audio_return_t _audio_pcm_deinit(audio_hal_t *ah) +audio_return_e _audio_pcm_deinit(audio_hal_t *ah) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -45,10 +45,10 @@ audio_return_t _audio_pcm_deinit(audio_hal_t *ah) return AUDIO_RET_OK; } -audio_return_t audio_pcm_open(void *audio_handle, const char *card, const char *device, uint32_t direction, void *sample_spec, +audio_return_e audio_pcm_open(void *audio_handle, const char *card, const char *device, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods, void **pcm_handle) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = NULL; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); @@ -67,9 +67,9 @@ audio_return_t audio_pcm_open(void *audio_handle, const char *card, const char * return AUDIO_RET_OK; } -audio_return_t audio_pcm_start(void *audio_handle, void *pcm_handle) +audio_return_e audio_pcm_start(void *audio_handle, void *pcm_handle) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -79,9 +79,9 @@ audio_return_t audio_pcm_start(void *audio_handle, void *pcm_handle) return audio_ret; } -audio_return_t audio_pcm_stop(void *audio_handle, void *pcm_handle) +audio_return_e audio_pcm_stop(void *audio_handle, void *pcm_handle) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -91,9 +91,9 @@ audio_return_t audio_pcm_stop(void *audio_handle, void *pcm_handle) return audio_ret; } -audio_return_t audio_pcm_close(void *audio_handle, void *pcm_handle) +audio_return_e audio_pcm_close(void *audio_handle, void *pcm_handle) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = NULL; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); @@ -111,9 +111,9 @@ audio_return_t audio_pcm_close(void *audio_handle, void *pcm_handle) return audio_ret; } -audio_return_t audio_pcm_avail(void *audio_handle, void *pcm_handle, uint32_t *avail) +audio_return_e audio_pcm_avail(void *audio_handle, void *pcm_handle, uint32_t *avail) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -124,9 +124,9 @@ audio_return_t audio_pcm_avail(void *audio_handle, void *pcm_handle, uint32_t *a return audio_ret; } -audio_return_t audio_pcm_write(void *audio_handle, void *pcm_handle, const void *buffer, uint32_t frames) +audio_return_e audio_pcm_write(void *audio_handle, void *pcm_handle, const void *buffer, uint32_t frames) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -136,9 +136,9 @@ audio_return_t audio_pcm_write(void *audio_handle, void *pcm_handle, const void return audio_ret; } -audio_return_t audio_pcm_read(void *audio_handle, void *pcm_handle, void *buffer, uint32_t frames) +audio_return_e audio_pcm_read(void *audio_handle, void *pcm_handle, void *buffer, uint32_t frames) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -148,9 +148,9 @@ audio_return_t audio_pcm_read(void *audio_handle, void *pcm_handle, void *buffer return audio_ret; } -audio_return_t audio_pcm_get_fd(void *audio_handle, void *pcm_handle, int *fd) +audio_return_e audio_pcm_get_fd(void *audio_handle, void *pcm_handle, int *fd) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -161,9 +161,9 @@ audio_return_t audio_pcm_get_fd(void *audio_handle, void *pcm_handle, int *fd) return audio_ret; } -audio_return_t audio_pcm_recover(void *audio_handle, void *pcm_handle, int revents) +audio_return_e audio_pcm_recover(void *audio_handle, void *pcm_handle, int revents) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -173,9 +173,9 @@ audio_return_t audio_pcm_recover(void *audio_handle, void *pcm_handle, int reven return audio_ret; } -audio_return_t audio_pcm_get_params(void *audio_handle, void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods) +audio_return_e audio_pcm_get_params(void *audio_handle, void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); @@ -188,9 +188,9 @@ audio_return_t audio_pcm_get_params(void *audio_handle, void *pcm_handle, uint32 return audio_ret; } -audio_return_t audio_pcm_set_params(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods) +audio_return_e audio_pcm_set_params(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(pcm_handle, AUDIO_ERR_PARAMETER); diff --git a/tizen-audio-routing.c b/tizen-audio-routing.c index ce7613c..feeed5d 100644 --- a/tizen-audio-routing.c +++ b/tizen-audio-routing.c @@ -80,9 +80,9 @@ static uint32_t __convert_device_string_to_enum(const char* device_str, uint32_t return device; } -static audio_return_t __set_devices(audio_hal_t *ah, const char *verb, device_info_t *devices, uint32_t num_of_devices) +static audio_return_e __set_devices(audio_hal_t *ah, const char *verb, device_info_s *devices, uint32_t num_of_devices) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; uint32_t new_device = 0; const char *active_devices[MAX_DEVICES] = {NULL,}; int i = 0, j = 0, dev_idx = 0; @@ -146,10 +146,10 @@ static audio_return_t __set_devices(audio_hal_t *ah, const char *verb, device_in return audio_ret; } -static audio_return_t __update_route_ap_playback_capture(audio_hal_t *ah, audio_route_info_t *route_info) +static audio_return_e __update_route_ap_playback_capture(audio_hal_t *ah, audio_route_info_s *route_info) { - audio_return_t audio_ret = AUDIO_RET_OK; - device_info_t *devices = NULL; + audio_return_e audio_ret = AUDIO_RET_OK; + device_info_s *devices = NULL; const char *verb = mode_to_verb_str[VERB_NORMAL]; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -175,9 +175,9 @@ static audio_return_t __update_route_ap_playback_capture(audio_hal_t *ah, audio_ return audio_ret; } -static audio_return_t __update_route_voip(audio_hal_t *ah, device_info_t *devices, int32_t num_of_devices) +static audio_return_e __update_route_voip(audio_hal_t *ah, device_info_s *devices, int32_t num_of_devices) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; const char *verb = mode_to_verb_str[VERB_NORMAL]; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -197,9 +197,9 @@ static audio_return_t __update_route_voip(audio_hal_t *ah, device_info_t *device return audio_ret; } -static audio_return_t __update_route_reset(audio_hal_t *ah, uint32_t direction) +static audio_return_e __update_route_reset(audio_hal_t *ah, uint32_t direction) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; const char *active_devices[MAX_DEVICES] = {NULL,}; int i = 0, dev_idx = 0; @@ -262,9 +262,9 @@ static void __audio_routing_playback_rpi3(audio_hal_t *ah) } } -audio_return_t _audio_routing_init(audio_hal_t *ah) +audio_return_e _audio_routing_init(audio_hal_t *ah) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -278,20 +278,20 @@ audio_return_t _audio_routing_init(audio_hal_t *ah) return audio_ret; } -audio_return_t _audio_routing_deinit(audio_hal_t *ah) +audio_return_e _audio_routing_deinit(audio_hal_t *ah) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); return audio_ret; } -audio_return_t audio_update_route(void *audio_handle, audio_route_info_t *info) +audio_return_e audio_update_route(void *audio_handle, audio_route_info_s *info) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = (audio_hal_t *)audio_handle; - device_info_t *devices = NULL; + device_info_s *devices = NULL; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); AUDIO_RETURN_VAL_IF_FAIL(info, AUDIO_ERR_PARAMETER); @@ -317,9 +317,9 @@ audio_return_t audio_update_route(void *audio_handle, audio_route_info_t *info) return audio_ret; } -audio_return_t audio_update_route_option(void *audio_handle, audio_route_option_t *option) +audio_return_e audio_update_route_option(void *audio_handle, audio_route_option_s *option) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = (audio_hal_t *)audio_handle; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); diff --git a/tizen-audio-stream.c b/tizen-audio-stream.c index c60a443..918ea30 100644 --- a/tizen-audio-stream.c +++ b/tizen-audio-stream.c @@ -23,23 +23,23 @@ #include "tizen-audio-internal.h" -audio_return_t _audio_stream_init(audio_hal_t *ah) +audio_return_e _audio_stream_init(audio_hal_t *ah) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); return AUDIO_RET_OK; } -audio_return_t _audio_stream_deinit(audio_hal_t *ah) +audio_return_e _audio_stream_deinit(audio_hal_t *ah) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); return AUDIO_RET_OK; } -audio_return_t audio_notify_stream_connection_changed(void *audio_handle, audio_stream_info_t *info, uint32_t is_connected) +audio_return_e audio_notify_stream_connection_changed(void *audio_handle, audio_stream_info_s *info, uint32_t is_connected) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = (audio_hal_t *)audio_handle; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); diff --git a/tizen-audio-volume.c b/tizen-audio-volume.c index 20f701e..8025b5f 100644 --- a/tizen-audio-volume.c +++ b/tizen-audio-volume.c @@ -176,7 +176,7 @@ static void __dump_tb(audio_hal_t *ah) } -static audio_return_t __load_volume_value_table_from_ini(audio_hal_t *ah) +static audio_return_e __load_volume_value_table_from_ini(audio_hal_t *ah) { dictionary * dict = NULL; uint32_t vol_type_idx, vol_level_idx, gain_type_idx; @@ -256,11 +256,11 @@ static audio_return_t __load_volume_value_table_from_ini(audio_hal_t *ah) return AUDIO_RET_OK; } -audio_return_t _audio_volume_init(audio_hal_t *ah) +audio_return_e _audio_volume_init(audio_hal_t *ah) { int i; int val = 0; - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; int init_value[AUDIO_VOLUME_TYPE_MAX] = { 9, 11, 7, 11, 7, 4, 4, 7 }; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -296,7 +296,7 @@ audio_return_t _audio_volume_init(audio_hal_t *ah) return audio_ret; } -audio_return_t _audio_volume_deinit(audio_hal_t *ah) +audio_return_e _audio_volume_deinit(audio_hal_t *ah) { AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -308,7 +308,7 @@ audio_return_t _audio_volume_deinit(audio_hal_t *ah) return AUDIO_RET_OK; } -audio_return_t audio_get_volume_level_max(void *audio_handle, audio_volume_info_t *info, uint32_t *level) +audio_return_e audio_get_volume_level_max(void *audio_handle, audio_volume_info_s *info, uint32_t *level) { audio_hal_t *ah = (audio_hal_t *)audio_handle; @@ -324,7 +324,7 @@ audio_return_t audio_get_volume_level_max(void *audio_handle, audio_volume_info_ return AUDIO_RET_OK; } -audio_return_t audio_get_volume_level(void *audio_handle, audio_volume_info_t *info, uint32_t *level) +audio_return_e audio_get_volume_level(void *audio_handle, audio_volume_info_s *info, uint32_t *level) { audio_hal_t *ah = (audio_hal_t *)audio_handle; @@ -344,7 +344,7 @@ audio_return_t audio_get_volume_level(void *audio_handle, audio_volume_info_t *i return AUDIO_RET_OK; } -audio_return_t audio_get_volume_value(void *audio_handle, audio_volume_info_t *info, uint32_t level, double *value) +audio_return_e audio_get_volume_value(void *audio_handle, audio_volume_info_s *info, uint32_t level, double *value) { audio_hal_t *ah = (audio_hal_t *)audio_handle; audio_volume_value_table_t *volume_value_table; @@ -368,9 +368,9 @@ audio_return_t audio_get_volume_value(void *audio_handle, audio_volume_info_t *i return AUDIO_RET_OK; } -audio_return_t audio_set_volume_level(void *audio_handle, audio_volume_info_t *info, uint32_t level) +audio_return_e audio_set_volume_level(void *audio_handle, audio_volume_info_s *info, uint32_t level) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = (audio_hal_t *)audio_handle; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -390,9 +390,9 @@ audio_return_t audio_set_volume_level(void *audio_handle, audio_volume_info_t *i return audio_ret; } -audio_return_t audio_get_volume_mute(void *audio_handle, audio_volume_info_t *info, uint32_t *mute) +audio_return_e audio_get_volume_mute(void *audio_handle, audio_volume_info_s *info, uint32_t *mute) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = (audio_hal_t *)audio_handle; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -404,9 +404,9 @@ audio_return_t audio_get_volume_mute(void *audio_handle, audio_volume_info_t *in return audio_ret; } -audio_return_t audio_set_volume_mute(void *audio_handle, audio_volume_info_t *info, uint32_t mute) +audio_return_e audio_set_volume_mute(void *audio_handle, audio_volume_info_s *info, uint32_t mute) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = (audio_hal_t *)audio_handle; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); @@ -417,9 +417,9 @@ audio_return_t audio_set_volume_mute(void *audio_handle, audio_volume_info_t *in return audio_ret; } -audio_return_t audio_set_volume_ratio(void *audio_handle, audio_stream_info_t *info, double ratio) +audio_return_e audio_set_volume_ratio(void *audio_handle, audio_stream_info_s *info, double ratio) { - audio_return_t audio_ret = AUDIO_RET_OK; + audio_return_e audio_ret = AUDIO_RET_OK; audio_hal_t *ah = (audio_hal_t *)audio_handle; AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER); diff --git a/tizen-audio.c b/tizen-audio.c index 6128feb..7f3866d 100644 --- a/tizen-audio.c +++ b/tizen-audio.c @@ -23,10 +23,10 @@ #include "tizen-audio-internal.h" -audio_return_t audio_init(void **audio_handle) +audio_return_e audio_init(void **audio_handle) { audio_hal_t *ah; - audio_return_t ret = AUDIO_RET_OK; + audio_return_e ret = AUDIO_RET_OK; AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER); @@ -66,7 +66,7 @@ error_exit: return ret; } -audio_return_t audio_deinit(void *audio_handle) +audio_return_e audio_deinit(void *audio_handle) { audio_hal_t *ah = (audio_hal_t *)audio_handle; diff --git a/tizen-audio.h b/tizen-audio.h index 9c893db..1f2289f 100644 --- a/tizen-audio.h +++ b/tizen-audio.h @@ -21,6 +21,7 @@ #define footizenaudiofoo #include +#include /** * @file tizen-audio.h @@ -33,113 +34,6 @@ */ /** - * @brief Enumeration for return codes. - * @since_tizen 3.0 - */ -typedef enum audio_return { - AUDIO_RET_OK = 0, - AUDIO_ERR_UNDEFINED = (int32_t)0x80001000, - AUDIO_ERR_RESOURCE = (int32_t)0x80001001, - AUDIO_ERR_PARAMETER = (int32_t)0x80001002, - AUDIO_ERR_IOCTL = (int32_t)0x80001003, - AUDIO_ERR_INVALID_STATE = (int32_t)0x80001004, - AUDIO_ERR_INTERNAL = (int32_t)0x80001005, - /* add new enemerator here */ - AUDIO_ERR_NOT_IMPLEMENTED = (int32_t)0x80001100, -} audio_return_t ; - -/** - * @brief Enumeration for audio direction. - * @since_tizen 3.0 - */ -typedef enum audio_direction { - AUDIO_DIRECTION_IN, /**< Capture */ - AUDIO_DIRECTION_OUT, /**< Playback */ -} audio_direction_t; - -/** - * @brief Device information including type, direction and id. - * @since_tizen 3.0 - */ -typedef struct device_info { - const char *type; - uint32_t direction; - uint32_t id; -} device_info_t; - -/** - * @brief Volume information including type, gain and direction. - * @since_tizen 3.0 - */ -typedef struct audio_volume_info { - const char *type; - const char *gain; - uint32_t direction; -} audio_volume_info_t ; - -/** - * @brief Route information including role and device. - * @since_tizen 3.0 - */ -typedef struct audio_route_info { - const char *role; - device_info_t *device_infos; - uint32_t num_of_devices; -} audio_route_info_t; - -/** - * @brief Route option including role, name and value. - * @since_tizen 3.0 - */ -typedef struct audio_route_option { - const char *role; - const char *name; - int32_t value; -} audio_route_option_t; - -/** - * @brief Stream information including role, direction and index. - * @since_tizen 3.0 - */ -typedef struct audio_stream_info { - const char *role; - uint32_t direction; - uint32_t idx; -} audio_stream_info_t ; - -/* Overall */ -typedef struct audio_interface { - /* Initialization & de-initialization */ - audio_return_t (*init)(void **audio_handle); - audio_return_t (*deinit)(void *audio_handle); - /* Volume */ - audio_return_t (*get_volume_level_max)(void *audio_handle, audio_volume_info_t *info, uint32_t *level); - audio_return_t (*get_volume_level)(void *audio_handle, audio_volume_info_t *info, uint32_t *level); - audio_return_t (*set_volume_level)(void *audio_handle, audio_volume_info_t *info, uint32_t level); - audio_return_t (*get_volume_value)(void *audio_handle, audio_volume_info_t *info, uint32_t level, double *value); - audio_return_t (*get_volume_mute)(void *audio_handle, audio_volume_info_t *info, uint32_t *mute); - audio_return_t (*set_volume_mute)(void *audio_handle, audio_volume_info_t *info, uint32_t mute); - audio_return_t (*set_volume_ratio)(void *audio_handle, audio_stream_info_t *info, double ratio); - /* Routing */ - audio_return_t (*update_route)(void *audio_handle, audio_route_info_t *info); - audio_return_t (*update_route_option)(void *audio_handle, audio_route_option_t *option); - /* Stream */ - audio_return_t (*notify_stream_connection_changed)(void *audio_handle, audio_stream_info_t *info, uint32_t is_connected); - /* PCM */ - audio_return_t (*pcm_open)(void *audio_handle, const char *card, const char *device, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods, void **pcm_handle); - audio_return_t (*pcm_start)(void *audio_handle, void *pcm_handle); - audio_return_t (*pcm_stop)(void *audio_handle, void *pcm_handle); - audio_return_t (*pcm_close)(void *audio_handle, void *pcm_handle); - audio_return_t (*pcm_avail)(void *audio_handle, void *pcm_handle, uint32_t *avail); - audio_return_t (*pcm_write)(void *audio_handle, void *pcm_handle, const void *buffer, uint32_t frames); - audio_return_t (*pcm_read)(void *audio_handle, void *pcm_handle, void *buffer, uint32_t frames); - audio_return_t (*pcm_get_fd)(void *audio_handle, void *pcm_handle, int *fd); - audio_return_t (*pcm_recover)(void *audio_handle, void *pcm_handle, int revents); - audio_return_t (*pcm_get_params)(void *audio_handle, void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods); - audio_return_t (*pcm_set_params)(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods); -} audio_interface_t; - -/** * @brief Initializes audio hal. * @since_tizen 3.0 * @param[out] audio_handle The audio hal handle @@ -149,7 +43,7 @@ typedef struct audio_interface { * @retval #AUDIO_RET_OK Success * @see audio_deinit() */ -audio_return_t audio_init(void **audio_handle); +audio_return_e audio_init(void **audio_handle); /** * @brief De-initializes audio hal. @@ -161,7 +55,7 @@ audio_return_t audio_init(void **audio_handle); * @retval #AUDIO_RET_OK Success * @see audio_init() */ -audio_return_t audio_deinit(void *audio_handle); +audio_return_e audio_deinit(void *audio_handle); /** * @brief Gets the maximum volume level supported for a particular volume information. @@ -177,7 +71,7 @@ audio_return_t audio_deinit(void *audio_handle); * @see audio_get_volume_level() * @see audio_get_volume_value() */ -audio_return_t audio_get_volume_level_max(void *audio_handle, audio_volume_info_t *info, uint32_t *level); +audio_return_e audio_get_volume_level_max(void *audio_handle, audio_volume_info_s *info, uint32_t *level); /** * @brief Gets the volume level specified for a particular volume information. @@ -193,7 +87,7 @@ audio_return_t audio_get_volume_level_max(void *audio_handle, audio_volume_info_ * @see audio_get_volume_level_max() * @see audio_get_volume_value() */ -audio_return_t audio_get_volume_level(void *audio_handle, audio_volume_info_t *info, uint32_t *level); +audio_return_e audio_get_volume_level(void *audio_handle, audio_volume_info_s *info, uint32_t *level); /** * @brief Sets the volume level specified for a particular volume information. @@ -209,7 +103,7 @@ audio_return_t audio_get_volume_level(void *audio_handle, audio_volume_info_t *i * @see audio_get_volume_level_max() * @see audio_get_volume_value() */ -audio_return_t audio_set_volume_level(void *audio_handle, audio_volume_info_t *info, uint32_t level); +audio_return_e audio_set_volume_level(void *audio_handle, audio_volume_info_s *info, uint32_t level); /** * @brief Gets the volume value specified for a particular volume information and level. @@ -226,7 +120,7 @@ audio_return_t audio_set_volume_level(void *audio_handle, audio_volume_info_t *i * @see audio_get_volume_level() * @see audio_get_volume_level_max() */ -audio_return_t audio_get_volume_value(void *audio_handle, audio_volume_info_t *info, uint32_t level, double *value); +audio_return_e audio_get_volume_value(void *audio_handle, audio_volume_info_s *info, uint32_t level, double *value); /** * @brief Gets the volume mute specified for a particular volume information. @@ -240,7 +134,7 @@ audio_return_t audio_get_volume_value(void *audio_handle, audio_volume_info_t *i * @retval #AUDIO_RET_OK Success * @see audio_set_volume_mute() */ -audio_return_t audio_get_volume_mute(void *audio_handle, audio_volume_info_t *info, uint32_t *mute); +audio_return_e audio_get_volume_mute(void *audio_handle, audio_volume_info_s *info, uint32_t *mute); /** * @brief Sets the volume mute specified for a particular volume information. @@ -254,7 +148,20 @@ audio_return_t audio_get_volume_mute(void *audio_handle, audio_volume_info_t *in * @retval #AUDIO_RET_OK Success * @see audio_get_volume_mute() */ -audio_return_t audio_set_volume_mute(void *audio_handle, audio_volume_info_t *info, uint32_t mute); +audio_return_e audio_set_volume_mute(void *audio_handle, audio_volume_info_s *info, uint32_t mute); + +/** + * @brief Sets the volume ratio specified for a particular volume information. (optional) + * @since_tizen 5.5 + * @param[in] audio_handle The audio hal handle + * @param[in] info The audio volume information + * @param[in] ratio The volume ratio to be set (Min.:0.0 ~ Max.:1.0, default:1.0) + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #AUDIO_RET_OK Success + */ +audio_return_e audio_set_volume_ratio(void *audio_handle, audio_stream_info_s *info, double ratio); /** * @brief Updates the audio routing according to audio route information. @@ -267,7 +174,7 @@ audio_return_t audio_set_volume_mute(void *audio_handle, audio_volume_info_t *in * @retval #AUDIO_RET_OK Success * @see audio_update_route_option() */ -audio_return_t audio_update_route(void *audio_handle, audio_route_info_t *info); +audio_return_e audio_update_route(void *audio_handle, audio_route_info_s *info); /** * @brief Updates audio routing option according to audio route option. @@ -283,7 +190,7 @@ audio_return_t audio_update_route(void *audio_handle, audio_route_info_t *info); * @retval #AUDIO_RET_OK Success * @see audio_update_route() */ -audio_return_t audio_update_route_option(void *audio_handle, audio_route_option_t *option); +audio_return_e audio_update_route_option(void *audio_handle, audio_route_option_s *option); /** * @brief Gets notified when a stream is connected and disconnected. @@ -298,7 +205,7 @@ audio_return_t audio_update_route_option(void *audio_handle, audio_route_option_ * otherwise a negative error value * @retval #AUDIO_RET_OK Success */ -audio_return_t audio_notify_stream_connection_changed(void *audio_handle, audio_stream_info_t *info, uint32_t is_connected); +audio_return_e audio_notify_stream_connection_changed(void *audio_handle, audio_stream_info_s *info, uint32_t is_connected); /** * @brief Opens a PCM device. @@ -317,7 +224,7 @@ audio_return_t audio_notify_stream_connection_changed(void *audio_handle, audio_ * @retval #AUDIO_RET_OK Success * @see audio_pcm_close() */ -audio_return_t audio_pcm_open(void *audio_handle, const char *card, const char *device, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods, void **pcm_handle); +audio_return_e audio_pcm_open(void *audio_handle, const char *card, const char *device, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods, void **pcm_handle); /** * @brief Starts a PCM device. @@ -334,7 +241,7 @@ audio_return_t audio_pcm_open(void *audio_handle, const char *card, const char * * @see audio_pcm_stop() * @see audio_pcm_recover() */ -audio_return_t audio_pcm_start(void *audio_handle, void *pcm_handle); +audio_return_e audio_pcm_start(void *audio_handle, void *pcm_handle); /** * @brief Stops a PCM device. @@ -347,7 +254,7 @@ audio_return_t audio_pcm_start(void *audio_handle, void *pcm_handle); * @retval #AUDIO_RET_OK Success * @see audio_pcm_start() */ -audio_return_t audio_pcm_stop(void *audio_handle, void *pcm_handle); +audio_return_e audio_pcm_stop(void *audio_handle, void *pcm_handle); /** * @brief Closes a PCM device. @@ -360,7 +267,7 @@ audio_return_t audio_pcm_stop(void *audio_handle, void *pcm_handle); * @retval #AUDIO_RET_OK Success * @see audio_pcm_open() */ -audio_return_t audio_pcm_close(void *audio_handle, void *pcm_handle); +audio_return_e audio_pcm_close(void *audio_handle, void *pcm_handle); /** * @brief Gets available number of frames. @@ -375,7 +282,7 @@ audio_return_t audio_pcm_close(void *audio_handle, void *pcm_handle); * @see audio_pcm_write() * @see audio_pcm_read() */ -audio_return_t audio_pcm_avail(void *audio_handle, void *pcm_handle, uint32_t *avail); +audio_return_e audio_pcm_avail(void *audio_handle, void *pcm_handle, uint32_t *avail); /** * @brief Writes frames to a PCM device. @@ -391,7 +298,7 @@ audio_return_t audio_pcm_avail(void *audio_handle, void *pcm_handle, uint32_t *a * @see audio_pcm_avail() * @see audio_pcm_recover() */ -audio_return_t audio_pcm_write(void *audio_handle, void *pcm_handle, const void *buffer, uint32_t frames); +audio_return_e audio_pcm_write(void *audio_handle, void *pcm_handle, const void *buffer, uint32_t frames); /** * @brief Reads frames from a PCM device. @@ -407,7 +314,7 @@ audio_return_t audio_pcm_write(void *audio_handle, void *pcm_handle, const void * @see audio_pcm_avail() * @see audio_pcm_recover() */ -audio_return_t audio_pcm_read(void *audio_handle, void *pcm_handle, void *buffer, uint32_t frames); +audio_return_e audio_pcm_read(void *audio_handle, void *pcm_handle, void *buffer, uint32_t frames); /** * @brief Gets poll descriptor for a PCM handle. @@ -422,7 +329,7 @@ audio_return_t audio_pcm_read(void *audio_handle, void *pcm_handle, void *buffer * @see audio_pcm_open() * @see audio_pcm_recover() */ -audio_return_t audio_pcm_get_fd(void *audio_handle, void *pcm_handle, int *fd); +audio_return_e audio_pcm_get_fd(void *audio_handle, void *pcm_handle, int *fd); /** * @brief Recovers the PCM state. @@ -439,7 +346,7 @@ audio_return_t audio_pcm_get_fd(void *audio_handle, void *pcm_handle, int *fd); * @see audio_pcm_read() * @see audio_pcm_get_fd() */ -audio_return_t audio_pcm_recover(void *audio_handle, void *pcm_handle, int revents); +audio_return_e audio_pcm_recover(void *audio_handle, void *pcm_handle, int revents); /** * @brief Gets parameters of a PCM device. @@ -456,7 +363,7 @@ audio_return_t audio_pcm_recover(void *audio_handle, void *pcm_handle, int reven * @retval #AUDIO_RET_OK Success * @see audio_pcm_set_params() */ -audio_return_t audio_pcm_get_params(void *audio_handle, void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods); +audio_return_e audio_pcm_get_params(void *audio_handle, void *pcm_handle, uint32_t direction, void **sample_spec, uint32_t *period_size, uint32_t *periods); /** * @brief Sets hardware and software parameters of a PCM device. @@ -473,7 +380,7 @@ audio_return_t audio_pcm_get_params(void *audio_handle, void *pcm_handle, uint32 * @retval #AUDIO_RET_OK Success * @see audio_pcm_set_params() */ -audio_return_t audio_pcm_set_params(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods); +audio_return_e audio_pcm_set_params(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods); /** * @}