4 * Copyright (c) 2000 - 2016 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Seungbae Shin <seungbae.shin@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
23 * @file mm_sound_intf.h
24 * @brief Internal audio interfaces for audio module.
28 * Internal audio interfaces for audio module.
29 * Client or Service providers can request(or handle) services,
30 * or be notified events.
33 #ifndef __MM_SOUND_INTF_H__
34 #define __MM_SOUND_INTF_H__
36 /* audio service(methods, signals) providers */
37 typedef enum audio_provider {
38 AUDIO_PROVIDER_SOUND_SERVER,
39 AUDIO_PROVIDER_DEVICE_MANAGER,
40 AUDIO_PROVIDER_STREAM_MANAGER,
41 AUDIO_PROVIDER_FOCUS_SERVER,
42 AUDIO_PROVIDER_AUDIO_CLIENT,
46 typedef enum audio_method {
48 AUDIO_METHOD_PLAY_FILE_START,
49 AUDIO_METHOD_PLAY_FILE_START_WITH_STREAM_INFO,
50 AUDIO_METHOD_PLAY_FILE_STOP,
51 AUDIO_METHOD_PLAY_DTMF,
52 AUDIO_METHOD_PLAY_DTMF_WITH_STREAM_INFO,
53 AUDIO_METHOD_CLEAR_FOCUS, /* Not original focus feature, only for tone/wav player internal focus usage. */
54 AUDIO_METHOD_GET_BT_A2DP_STATUS,
55 AUDIO_METHOD_SET_PATH_FOR_ACTIVE_DEVICE,
56 AUDIO_METHOD_GET_CONNECTED_DEVICE_LIST,
57 AUDIO_METHOD_GET_DEVICE_BY_ID,
58 AUDIO_METHOD_IS_STREAM_ON_DEVICE,
59 AUDIO_METHOD_GET_AUDIO_PATH,
60 AUDIO_METHOD_SET_VOLUME_LEVEL,
62 AUDIO_METHOD_GET_UNIQUE_ID,
63 AUDIO_METHOD_REGISTER_FOCUS,
64 AUDIO_METHOD_UNREGISTER_FOCUS,
65 AUDIO_METHOD_SET_FOCUS_REACQUISITION,
66 AUDIO_METHOD_GET_ACQUIRED_FOCUS_STREAM_TYPE,
67 AUDIO_METHOD_ACQUIRE_FOCUS,
68 AUDIO_METHOD_RELEASE_FOCUS,
69 AUDIO_METHOD_UPDATE_STREAM_FOCUS_STATUS, /* It communicates with stream-manager to update focus status. */
70 AUDIO_METHOD_WATCH_FOCUS,
71 AUDIO_METHOD_UNWATCH_FOCUS,
72 AUDIO_METHOD_DELIVER_FOCUS,
74 AUDIO_METHOD_SET_FILTER,
75 AUDIO_METHOD_UNSET_FILTER,
76 AUDIO_METHOD_CONTROL_FILTER,
81 typedef enum audio_event {
83 AUDIO_EVENT_PLAY_FILE_END,
84 AUDIO_EVENT_VOLUME_CHANGED,
85 AUDIO_EVENT_DEVICE_CONNECTED,
86 AUDIO_EVENT_DEVICE_INFO_CHANGED,
87 AUDIO_EVENT_DEVICE_STATE_CHANGED,
88 AUDIO_EVENT_FOCUS_CHANGED,
89 AUDIO_EVENT_FOCUS_WATCH,
90 AUDIO_EVENT_EMERGENT_EXIT,
91 AUDIO_EVENT_CLIENT_SUBSCRIBED, /* Clients send this signal when they subscribed some signal. */
92 AUDIO_EVENT_CLIENT_HANDLED, /* Clients send this siganl when they handled some signal. */
96 #endif /* __MM_SOUND_INTF_H__ */