INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-SET(PKG_MODULES hal-api-common)
+SET(PKG_MODULES hal-api-common capi-base-common)
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
#include <stdlib.h>
#include <hal/hal-common.h>
+#include <tizen.h>
#include "hal-audio.h"
#define AUDIO_RETURN_VAL_IF_FAIL(expr, val) do { \
- if (!(expr)) { \
- return val; \
- } \
+ if (!(expr)) { \
+ return val; \
+ } \
} while (0)
static hal_backend_audio_funcs *g_hal_audio_funcs = NULL;
{
audio_return_e ret;
- if (g_hal_audio_funcs)
- return AUDIO_RET_OK;
+ AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER);
+ AUDIO_RETURN_VAL_IF_FAIL(!g_hal_audio_funcs, AUDIO_ERR_INTERNAL);
ret = hal_common_get_backend(HAL_MODULE_AUDIO, (void **)&g_hal_audio_funcs);
+ if (ret != TIZEN_ERROR_NONE)
+ return ret;
- AUDIO_RETURN_VAL_IF_FAIL(ret == 0, AUDIO_ERR_INTERNAL);
- AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs->init, AUDIO_ERR_NOT_IMPLEMENTED);
+ if (!g_hal_audio_funcs->init) {
+ ret = AUDIO_ERR_NOT_IMPLEMENTED;
+ goto fail;
+ }
- return g_hal_audio_funcs->init(audio_handle);
+ ret = g_hal_audio_funcs->init(audio_handle);
+ if (ret != AUDIO_RET_OK)
+ goto fail;
+
+ return AUDIO_RET_OK;
+
+fail:
+ hal_common_put_backend(HAL_MODULE_AUDIO, (void *)g_hal_audio_funcs);
+ g_hal_audio_funcs = NULL;
+
+ return ret;
}
audio_return_e hal_audio_deinit(void *audio_handle)
{
audio_return_e ret;
+ AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER);
AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs, AUDIO_ERR_INTERNAL);
AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs->deinit, AUDIO_ERR_NOT_IMPLEMENTED);