Fix invalid format string
[platform/adaptation/samsung_exynos/audio-hal-max98090.git] / tizen-audio-comm.c
1 /*
2  * audio-hal
3  *
4  * Copyright (c) 2015 - 2016 Samsung Electronics Co., Ltd. All rights reserved.
5  *
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
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  *
18  */
19 #ifdef HAVE_CONFIG_H
20 #include <config.h>
21 #endif
22
23 #include "tizen-audio-internal.h"
24
25 static audio_return_t __set_message_callback(audio_hal_t *ah, message_cb callback, void *user_data)
26 {
27     audio_return_t audio_ret = AUDIO_RET_OK;
28
29     AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
30     AUDIO_RETURN_VAL_IF_FAIL(callback, AUDIO_ERR_PARAMETER);
31
32     ah->comm.msg_cb = callback;
33     ah->comm.user_data = user_data;
34
35     AUDIO_LOG_DEBUG("message callback is set, callback(%p), user_data(%p)", ah->comm.msg_cb, ah->comm.user_data);
36
37     return audio_ret;
38 }
39
40 static audio_return_t __unset_message_callback(audio_hal_t *ah)
41 {
42     audio_return_t audio_ret = AUDIO_RET_OK;
43
44     AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
45
46     ah->comm.msg_cb = NULL;
47     ah->comm.user_data = NULL;
48
49     AUDIO_LOG_DEBUG("message callback is unset");
50
51     return audio_ret;
52 }
53
54 audio_return_t _audio_comm_init(audio_hal_t *ah)
55 {
56     audio_return_t audio_ret = AUDIO_RET_OK;
57
58     AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
59
60     ah->comm.msg_cb = NULL;
61     ah->comm.user_data = NULL;
62
63     return audio_ret;
64 }
65
66 audio_return_t _audio_comm_deinit(audio_hal_t *ah)
67 {
68     audio_return_t audio_ret = AUDIO_RET_OK;
69
70     AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
71
72     ah->comm.msg_cb = NULL;
73     ah->comm.user_data = NULL;
74
75     return audio_ret;
76 }
77
78 audio_return_t _audio_comm_send_message(audio_hal_t *ah, const char *name, int value)
79 {
80     audio_return_t audio_ret = AUDIO_RET_OK;
81
82     AUDIO_RETURN_VAL_IF_FAIL(ah, AUDIO_ERR_PARAMETER);
83     AUDIO_RETURN_VAL_IF_FAIL(name, AUDIO_ERR_PARAMETER);
84
85     AUDIO_LOG_DEBUG("send message : name(%s), value(%d)", name, value);
86     if (ah->comm.msg_cb) {
87         ah->comm.msg_cb(name, value, ah->comm.user_data);
88     }
89
90     return audio_ret;
91 }
92
93 audio_return_t audio_add_message_cb(void *audio_handle, message_cb callback, void *user_data)
94 {
95     audio_return_t ret = AUDIO_RET_OK;
96
97     AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER);
98     AUDIO_RETURN_VAL_IF_FAIL(callback, AUDIO_ERR_PARAMETER);
99
100     /* NOTE: Management of several callbacks could be implemented.
101              But we do not care of it for now.*/
102     ret = __set_message_callback((audio_hal_t *)audio_handle, callback, user_data);
103
104     return ret;
105 }
106
107 audio_return_t audio_remove_message_cb(void *audio_handle, message_cb callback)
108 {
109     audio_return_t ret = AUDIO_RET_OK;
110
111     AUDIO_RETURN_VAL_IF_FAIL(audio_handle, AUDIO_ERR_PARAMETER);
112     AUDIO_RETURN_VAL_IF_FAIL(callback, AUDIO_ERR_PARAMETER);
113
114     ret = __unset_message_callback((audio_hal_t *)audio_handle);
115
116     return ret;
117 }