4 * Copyright (c) 2015 - 2016 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
24 #include "tizen-audio-internal.h"
26 audio_return_e audio_init(void **audio_handle)
29 audio_return_e ret = AUDIO_RET_OK;
31 AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER);
33 if (!(ah = calloc(1, sizeof(audio_hal_s)))) {
34 AUDIO_LOG_ERROR("failed to alloc()");
35 return AUDIO_ERR_RESOURCE;
38 if ((ret = _audio_ctrl_init(ah))) {
39 AUDIO_LOG_ERROR("failed to _audio_ctrl_init(), ret(0x%x)", ret);
42 if ((ret = _audio_volume_init(ah))) {
43 AUDIO_LOG_ERROR("failed to _audio_volume_init(), ret(0x%x)", ret);
46 if ((ret = _audio_routing_init(ah))) {
47 AUDIO_LOG_ERROR("failed to _audio_routing_init(), ret(0x%x)", ret);
50 if ((ret = _audio_stream_init(ah))) {
51 AUDIO_LOG_ERROR("failed to _audio_stream_init(), ret(0x%x)", ret);
54 if ((ret = _audio_pcm_init(ah))) {
55 AUDIO_LOG_ERROR("failed to _audio_pcm_init(), ret(0x%x)", ret);
58 if ((ret = _audio_comm_init(ah))) {
59 AUDIO_LOG_ERROR("failed to _audio_comm_init(), ret(0x%x)", ret);
63 *audio_handle = (void *)ah;
73 audio_return_e audio_deinit(void *audio_handle)
75 audio_hal_s *ah = (audio_hal_s *)audio_handle;
77 AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
79 _audio_volume_deinit(ah);
80 _audio_routing_deinit(ah);
81 _audio_stream_deinit(ah);
82 _audio_pcm_deinit(ah);
83 _audio_comm_deinit(ah);
84 _audio_ctrl_deinit(ah);