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.
23 #include "tizen-audio-internal.h"
25 static audio_return_e __set_message_callback(audio_hal_s *ah, message_cb callback, void *user_data)
27 audio_return_e audio_ret = AUDIO_RET_OK;
29 AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
30 AUDIO_RETURN_VAL_IF_FAIL(callback, AUDIO_ERR_PARAMETER);
32 ah->comm.msg_cb = callback;
33 ah->comm.user_data = user_data;
35 AUDIO_LOG_DEBUG("message callback is set, callback(%p), user_data(%p)", ah->comm.msg_cb, ah->comm.user_data);
40 static audio_return_e __unset_message_callback(audio_hal_s *ah)
42 audio_return_e audio_ret = AUDIO_RET_OK;
44 AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
46 ah->comm.msg_cb = NULL;
47 ah->comm.user_data = NULL;
49 AUDIO_LOG_DEBUG("message callback is unset");
54 audio_return_e _audio_comm_init(audio_hal_s *ah)
56 audio_return_e audio_ret = AUDIO_RET_OK;
58 AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
60 ah->comm.msg_cb = NULL;
61 ah->comm.user_data = NULL;
66 audio_return_e _audio_comm_deinit(audio_hal_s *ah)
68 audio_return_e audio_ret = AUDIO_RET_OK;
70 AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
72 ah->comm.msg_cb = NULL;
73 ah->comm.user_data = NULL;
78 audio_return_e _audio_comm_send_message(audio_hal_s *ah, const char *name, int value)
80 audio_return_e audio_ret = AUDIO_RET_OK;
82 AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
83 AUDIO_RETURN_VAL_IF_FAIL(name, AUDIO_ERR_PARAMETER);
85 AUDIO_LOG_DEBUG("send message : name(%s), value(%d)", name, value);
87 ah->comm.msg_cb(name, value, ah->comm.user_data);
92 audio_return_e audio_add_message_cb(void *audio_handle, message_cb callback, void *user_data)
94 audio_return_e ret = AUDIO_RET_OK;
96 AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER);
97 AUDIO_RETURN_VAL_IF_FAIL(callback, AUDIO_ERR_PARAMETER);
99 /* NOTE: Management of several callbacks could be implemented.
100 But we do not care of it for now.*/
101 ret = __set_message_callback((audio_hal_s *)audio_handle, callback, user_data);
106 audio_return_e audio_remove_message_cb(void *audio_handle, message_cb callback)
108 audio_return_e ret = AUDIO_RET_OK;
110 AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER);
111 AUDIO_RETURN_VAL_IF_FAIL(callback, AUDIO_ERR_PARAMETER);
113 ret = __unset_message_callback((audio_hal_s *)audio_handle);