summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKibum Kim <kb0929.kim@samsung.com>2012-02-27 21:15:48 +0900
committerKibum Kim <kb0929.kim@samsung.com>2012-02-27 21:15:48 +0900
commit10c786e725207327fb35035100b391d073da6aeb (patch)
tree27e35f47dfbe9651647e8df83be258ceff8796df /include
downloadaudio-session-manager-10c786e725207327fb35035100b391d073da6aeb.tar.gz
audio-session-manager-10c786e725207327fb35035100b391d073da6aeb.tar.bz2
audio-session-manager-10c786e725207327fb35035100b391d073da6aeb.zip
tizen beta release
Diffstat (limited to 'include')
-rwxr-xr-xinclude/asm-error.h71
-rwxr-xr-xinclude/asm-log.h79
-rwxr-xr-xinclude/audio-session-manager-types.h332
-rwxr-xr-xinclude/audio-session-manager.h143
4 files changed, 625 insertions, 0 deletions
diff --git a/include/asm-error.h b/include/asm-error.h
new file mode 100755
index 0000000..9084444
--- /dev/null
+++ b/include/asm-error.h
@@ -0,0 +1,71 @@
+/*
+ * audio-session-manager
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Seungbae Shin <seungbae.shin@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __ASM_ERROR_H__
+#define __ASM_ERROR_H__
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/**
+ * ASM CLASS
+ */
+#define ASM_STATE_SUCCESS (0x00000000) /**< No Error */
+#define ASM_STATE_ERROR (0x80000000) /**< Error Class */
+#define ASM_STATE_WARING (0x70000000) /**< Waring Class */
+
+/*
+ * Detail enumeration
+ */
+enum {
+ ASM_IN_UNKNOWN = 0,
+ ASM_IN_PARAMETER,
+ ASM_IN_HANDLE,
+ ASM_IN_MEMORY,
+};
+
+/*
+ * ASM_WARING
+ */
+#define ASM_STATE_WAR_INVALID_PARAMETER (ASM_STATE_WARING | ASM_IN_PARAMETER)
+#define ASM_STATE_WAR_INVALID_HANDLE (ASM_STATE_WARING | ASM_IN_HANDLE)
+#define ASM_STATE_WAR_INVALID_MEMORY (ASM_STATE_WARING | ASM_IN_MEMORY)
+
+
+/**
+ * ASM_ERROR
+ */
+#define ASM_STATE_ERR_INVALID_PARAMETER (ASM_STATE_ERROR | ASM_IN_PARAMETER)
+#define ASM_STATE_ERR_INVALID_HANDLE (ASM_STATE_ERROR | ASM_IN_HANDLE)
+#define ASM_STATE_ERR_INVALID_MEMORY (ASM_STATE_ERROR | ASM_IN_MEMORY)
+
+
+#define ASM_FAIL(_A_) (ASM_STATE_ERROR & (_A_))
+#define ASM_SUCCESS(_A_) (!ASM_FAIL(_A_))
+#define ASM_WARING(_A_) (ASM_STATE_WARING & (_A_))
+#define ASM_ERROR(_A_) (ASM_STATE_ERROR & (_A_))
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* __ASM_ERROR_H__ */
diff --git a/include/asm-log.h b/include/asm-log.h
new file mode 100755
index 0000000..e945238
--- /dev/null
+++ b/include/asm-log.h
@@ -0,0 +1,79 @@
+/*
+ * audio-session-manager
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Seungbae Shin <seungbae.shin@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __ASM_LOG_H__
+#define __ASM_LOG_H__
+
+#ifdef __DEBUG_MODE__
+#include <stdio.h>
+#ifdef __USE_LOGMANAGER__
+#include <mm_log.h>
+#endif
+#endif
+
+#ifdef __DEBUG_MODE__
+
+#ifdef __USE_LOGMANAGER__
+#define asm_info_r(msg, args...) log_print_rel((LOG_SESSIONMGR), (LOG_CLASS_INFO), (msg), ##args)
+#define asm_warning_r(msg, args...) log_print_rel((LOG_SESSIONMGR), (LOG_CLASS_WARNING), (msg), ##args)
+#define asm_error_r(msg, args...) log_print_rel((LOG_SESSIONMGR), (LOG_CLASS_ERR), (msg), ##args)
+#define asm_critical_r(msg, args...) log_print_rel((LOG_SESSIONMGR), (LOG_CLASS_CRITICAL), (msg), ##args)
+#define asm_assert_r(condition) log_assert_rel((condition))
+
+#define asm_info(msg, args...) log_print_dbg((LOG_SESSIONMGR), LOG_CLASS_INFO, (msg), ##args)
+#define asm_warning(msg, args...) log_print_dbg((LOG_SESSIONMGR), LOG_CLASS_WARNING, (msg), ##args)
+#define asm_error(msg, args...) log_print_dbg((LOG_SESSIONMGR), LOG_CLASS_ERR, (msg), ##args)
+#define asm_critical(msg, args...) log_print_dbg((LOG_SESSIONMGR), LOG_CLASS_CRITICAL, (msg), ##args)
+#define asm_assert(condition) log_assert_dbg((condition))
+
+#else //__USE_LOGMANAGER__
+
+#define asm_info_r(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_warning_r(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_error_r(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_critical_r(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_assert_r(condition) (condition)
+
+#define asm_info(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_warning(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_error(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_critical(msg, args...) fprintf(stderr, msg, ##args)
+#define asm_assert(condition) (condition)
+
+#endif //__USE_LOGMANAGER__
+
+#else //__DEBUG_MODE__
+
+#define asm_info_r(msg, args...)
+#define asm_warning_r(msg, args...)
+#define asm_error_r(msg, args...)
+#define asm_critical_r(msg, args...)
+#define asm_assert_r(condition) (condition)
+
+#define asm_info(msg, args...)
+#define asm_warning(msg, args...)
+#define asm_error(msg, args...)
+#define asm_critical(msg, args...)
+#define asm_assert(condition) (condition)
+
+#endif // __DEBUG_MODE__
+
+#endif /* __ASM_LOG_H__ */
diff --git a/include/audio-session-manager-types.h b/include/audio-session-manager-types.h
new file mode 100755
index 0000000..f2ab404
--- /dev/null
+++ b/include/audio-session-manager-types.h
@@ -0,0 +1,332 @@
+/*
+ * audio-session-manager
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Seungbae Shin <seungbae.shin@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _ASM_TYPES_H_
+#define _ASM_TYPES_H_
+
+/**
+ * @ingroup AUDIO_SESSION_MANAGER
+ * @defgroup AUDIO_SESSION_MANAGER Audio Session Manager
+ * @{
+ */
+#include <stdbool.h>
+
+/* Error codes */
+#define ERR_ASM_THREAD_CREATE_ERROR 0x01
+#define ERR_ASM_THREAD_CANCEL_ERROR 0x02
+#define ERR_ASM_MSG_QUEUE_MSGID_GET_FAILED 0x03
+#define ERR_ASM_MSG_QUEUE_SND_ERROR 0x04
+#define ERR_ASM_MSG_QUEUE_RCV_ERROR 0x05
+#define ERR_ASM_ALREADY_REGISTERED 0x06
+#define ERR_ASM_ALREADY_UNREGISTERED 0x07
+#define ERR_ASM_EVENT_IS_INVALID 0x08
+#define ERR_ASM_EVENT_IS_FULL 0x09
+#define ERR_ASM_POLICY_CANNOT_PLAY 0x10
+#define ERR_ASM_POLICY_INVALID_HANDLE 0x11
+#define ERR_ASM_INVALID_PARAMETER 0x12
+#define ERR_ASM_VCONF_ERROR 0x13
+#define ERR_ASM_UNKNOWN_ERROR 0x0F
+#define ERR_ASM_HANDLE_IS_FULL 0x20
+#ifdef USE_SECURITY
+#define ERR_ASM_CHECK_PRIVILEGE_FAILED 0x30
+#define COOKIE_SIZE 20
+#endif
+
+
+#define ASM_PRIORITY_MATRIX_MIN (ASM_EVENT_MAX-1)//13
+#define ASM_SERVER_HANDLE_MAX 256
+
+
+#define SOUND_STATUS_KEY "memory/Sound/SoundStatus"
+/**
+ * This enumeration defines sound request.
+ */
+typedef enum
+{
+ ASM_REQUEST_REGISTER = 0,
+ ASM_REQUEST_UNREGISTER = 1,
+ ASM_REQUEST_GETSTATE = 2,
+ ASM_REQUEST_GETMYSTATE = 3,
+ ASM_REQUEST_SETSTATE = 4,
+ ASM_REQUEST_EMERGENT_EXIT = 5,
+ ASM_REQUEST_DUMP = 6,
+} ASM_requests_t;
+
+
+/**
+ * This enumeration defines sound event for Sound Scenario in Multimedia Resources Conflict Manager.
+ */
+
+typedef enum
+{
+ ASM_EVENT_NONE = -1, // [Notice] Don't use it in application (Never use it), it is internal sound event
+ ASM_EVENT_SHARE_MMPLAYER = 0,
+ ASM_EVENT_SHARE_MMCAMCORDER,
+ ASM_EVENT_SHARE_MMSOUND,
+ ASM_EVENT_SHARE_OPENAL,
+ ASM_EVENT_SHARE_AVSYSTEM,
+ ASM_EVENT_EXCLUSIVE_MMPLAYER,
+ ASM_EVENT_EXCLUSIVE_MMCAMCORDER,
+ ASM_EVENT_EXCLUSIVE_MMSOUND,
+ ASM_EVENT_EXCLUSIVE_OPENAL,
+ ASM_EVENT_EXCLUSIVE_AVSYSTEM,
+ ASM_EVENT_NOTIFY,
+ ASM_EVENT_CALL,
+ ASM_EVENT_SHARE_FMRADIO,
+ ASM_EVENT_EXCLUSIVE_FMRADIO,
+ ASM_EVENT_EARJACK_UNPLUG,
+ ASM_EVENT_ALARM,
+ ASM_EVENT_VIDEOCALL,
+ ASM_EVENT_MONITOR,
+ ASM_EVENT_MAX
+} ASM_sound_events_t;
+
+/*
+ * This enumeration defines event source for sound conflict scenario
+ */
+typedef enum
+{
+ ASM_EVENT_SOURCE_OTHER_APP = 0,
+ ASM_EVENT_SOURCE_CALL_START,
+ ASM_EVENT_SOURCE_CALL_END,
+ ASM_EVENT_SOURCE_EARJACK_UNPLUG,
+ ASM_EVENT_SOURCE_RESOURCE_CONFLICT,
+ ASM_EVENT_SOURCE_ALARM_START,
+ ASM_EVENT_SOURCE_ALARM_END,
+ ASM_EVENT_SOURCE_OTHER_PLAYER_APP,
+} ASM_event_sources_t;
+
+/**
+ * This enumeration defines sound case between playing sound and request sound
+ * ALTER_PLAY : DTMF tone
+ */
+typedef enum
+{
+ ASM_CASE_NONE = 0,
+ ASM_CASE_1PLAY_2STOP = 1,
+ ASM_CASE_1STOP_2PLAY = 5,
+ ASM_CASE_1PAUSE_2PLAY = 6,
+ ASM_CASE_1PLAY_2PLAY_MIX = 8
+} ASM_sound_cases_t;
+
+
+
+/*
+ * This enumeration defines Sound Playing Status Information
+ * Each bit is Sound Status Type( 0 : None , 1 : Playing)
+ */
+typedef enum
+{
+ ASM_STATUS_NONE = 0x00000000,
+ ASM_STATUS_SHARE_MMPLAYER = 0x00000001,
+ ASM_STATUS_SHARE_MMCAMCORDER = 0x00000002,
+ ASM_STATUS_SHARE_MMSOUND = 0x00000004,
+ ASM_STATUS_SHARE_OPENAL = 0x00000008,
+ ASM_STATUS_SHARE_AVSYSTEM = 0x00000010,
+ ASM_STATUS_EXCLUSIVE_MMPLAYER = 0x00000020,
+ ASM_STATUS_EXCLUSIVE_MMCAMCORDER = 0x00000040,
+ ASM_STATUS_EXCLUSIVE_MMSOUND = 0x00000080,
+ ASM_STATUS_EXCLUSIVE_OPENAL = 0x00000100,
+ ASM_STATUS_EXCLUSIVE_AVSYSTEM = 0x00000200,
+ ASM_STATUS_NOTIFY = 0x00000400,
+ ASM_STATUS_CALL = 0x10000000, //Watch out
+ ASM_STATUS_SHARE_FMRADIO = 0x00000800,
+ ASM_STATUS_EXCLUSIVE_FMRADIO = 0x00001000,
+ ASM_STATUS_EARJACK_UNPLUG = 0x00002000,
+ ASM_STATUS_ALARM = 0x00100000,
+ ASM_STATUS_VIDEOCALL = 0x20000000, //Watch out
+ ASM_STATUS_MONITOR = 0x80000000, //watch out
+} ASM_sound_status_t;
+
+
+/**
+ * This enumeration defines sound state.
+ */
+typedef enum
+{
+ ASM_STATE_IGNORE = -1,
+ ASM_STATE_NONE = 0,
+ ASM_STATE_PLAYING = 1,
+ ASM_STATE_WAITING = 2,
+ ASM_STATE_STOP = 3,
+ ASM_STATE_PAUSE = 4,
+ ASM_STATE_PAUSE_BY_APP = 5,
+} ASM_sound_states_t;
+
+
+/*
+ * This enumeration defines resume state
+ */
+typedef enum
+{
+ ASM_NEED_NOT_RESUME = 0,
+ ASM_NEED_RESUME = 1,
+}ASM_resume_states_t;
+/*
+ * This enumeration defines state return of client.
+ */
+typedef enum
+{
+ ASM_CB_RES_IGNORE = -1,
+ ASM_CB_RES_NONE = 0,
+ ASM_CB_RES_PLAYING = 1,
+ ASM_CB_RES_STOP = 2,
+ ASM_CB_RES_PAUSE = 3,
+}ASM_cb_result_t;
+
+/*
+ * This enumeration defines type of multimedia resource
+ */
+
+typedef enum
+{
+ ASM_RESOURCE_NONE = 0x0000,
+ ASM_RESOURCE_CAMERA = 0x0001,
+ ASM_RESOURCE_VIDEO_OVERLAY = 0x0002,
+ ASM_RESOURCE_HW_DECORDER = 0x0100, //this should be removed. miss type
+ ASM_RESOURCE_HW_ENCORDER = 0x0200, //this should be removed. miss type
+ ASM_RESOURCE_HW_DECODER = 0x0100,
+ ASM_RESOURCE_HW_ENCODER = 0x0200,
+ ASM_RESOURCE_RADIO_TUNNER = 0x1000,
+ ASM_RESOURCE_TV_TUNNER = 0x2000,
+}ASM_resource_t;
+
+
+/* Sound command for applications */
+typedef enum
+{
+ ASM_COMMAND_NONE = 0x0,
+ ASM_COMMAND_PLAY = 0x2,
+ ASM_COMMAND_STOP = 0x3,
+ ASM_COMMAND_PAUSE = 0x4,
+ ASM_COMMAND_RESUME = 0x5,
+} ASM_sound_commands_t;
+
+
+/**
+ * This structure defines the message data from library to conflict manager.
+ */
+typedef struct
+{
+ int handle;
+ ASM_requests_t request_id;
+ ASM_sound_events_t sound_event;
+ ASM_sound_states_t sound_state;
+ ASM_resource_t system_resource;
+#ifdef USE_SECURITY
+ unsigned char cookie [COOKIE_SIZE];
+#endif
+} __ASM_msg_data_lib_to_asm_t;
+
+/**
+ * This structure defines the message data from conflict manager to library.
+ */
+typedef struct
+{
+ int alloc_handle;
+ int cmd_handle;
+ ASM_sound_commands_t result_sound_command;
+ ASM_sound_states_t result_sound_state;
+#ifdef USE_SECURITY
+ int check_privilege;
+#endif
+} __ASM_msg_data_asm_to_lib_t;
+
+/**
+ * This structure defines the message data from conflict manager to library.
+ */
+typedef struct
+{
+ int handle;
+ ASM_sound_commands_t result_sound_command;
+} __ASM_msg_data_asm_to_cb_t;
+
+/**
+ * This structure defines the message from library to conflict manager.
+ */
+typedef struct
+{
+ long int instance_id;
+ __ASM_msg_data_lib_to_asm_t data;
+} ASM_msg_lib_to_asm_t;
+
+/**
+ * This structure defines the message from conflict manager to library.
+ */
+typedef struct
+{
+ long int instance_id;
+ __ASM_msg_data_asm_to_lib_t data;
+} ASM_msg_asm_to_lib_t;
+
+/**
+ * This structure defines the message from conflict manager to library.
+ */
+typedef struct
+{
+ long int instance_id;
+ __ASM_msg_data_asm_to_cb_t data;
+} ASM_msg_asm_to_cb_t;
+
+
+typedef struct
+{
+ ASM_sound_events_t sound_event;
+ ASM_sound_status_t sound_status;
+}ASM_sound_event_type_t;
+
+
+static const ASM_sound_event_type_t ASM_sound_type[] = {
+ { ASM_EVENT_NONE, ASM_STATUS_NONE },
+ { ASM_EVENT_SHARE_MMPLAYER, ASM_STATUS_SHARE_MMPLAYER },
+ { ASM_EVENT_SHARE_MMCAMCORDER, ASM_STATUS_SHARE_MMCAMCORDER },
+ { ASM_EVENT_SHARE_MMSOUND, ASM_STATUS_SHARE_MMSOUND },
+ { ASM_EVENT_SHARE_OPENAL, ASM_STATUS_SHARE_OPENAL },
+ { ASM_EVENT_SHARE_AVSYSTEM, ASM_STATUS_SHARE_AVSYSTEM },
+ { ASM_EVENT_EXCLUSIVE_MMPLAYER, ASM_STATUS_EXCLUSIVE_MMPLAYER },
+ { ASM_EVENT_EXCLUSIVE_MMCAMCORDER, ASM_STATUS_EXCLUSIVE_MMCAMCORDER },
+ { ASM_EVENT_EXCLUSIVE_MMSOUND, ASM_STATUS_EXCLUSIVE_MMSOUND },
+ { ASM_EVENT_EXCLUSIVE_OPENAL, ASM_STATUS_EXCLUSIVE_OPENAL },
+ { ASM_EVENT_EXCLUSIVE_AVSYSTEM, ASM_STATUS_EXCLUSIVE_AVSYSTEM },
+ { ASM_EVENT_NOTIFY, ASM_STATUS_NOTIFY },
+ { ASM_EVENT_CALL, ASM_STATUS_CALL },
+ { ASM_EVENT_SHARE_FMRADIO, ASM_STATUS_SHARE_FMRADIO },
+ { ASM_EVENT_EXCLUSIVE_FMRADIO, ASM_STATUS_EXCLUSIVE_FMRADIO },
+ { ASM_EVENT_EARJACK_UNPLUG, ASM_STATUS_EARJACK_UNPLUG },
+ { ASM_EVENT_ALARM, ASM_STATUS_ALARM },
+ { ASM_EVENT_VIDEOCALL, ASM_STATUS_VIDEOCALL },
+ { ASM_EVENT_MONITOR, ASM_STATUS_MONITOR },
+};
+
+
+
+
+
+
+/**
+ * This callback function is called when sound status of other sound event is changed
+ *
+ * @return No return value
+ * @param[in] sound_status Argument passed when callback was set
+ */
+typedef ASM_cb_result_t (*ASM_sound_cb_t) (int handle, ASM_event_sources_t event_source, ASM_sound_commands_t command, unsigned int sound_status, void* cb_data);
+
+#endif
diff --git a/include/audio-session-manager.h b/include/audio-session-manager.h
new file mode 100755
index 0000000..9a74181
--- /dev/null
+++ b/include/audio-session-manager.h
@@ -0,0 +1,143 @@
+/*
+ * audio-session-manager
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Seungbae Shin <seungbae.shin@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _ASM_LIB_H_
+#define _ASM_LIB_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <audio-session-manager-types.h>
+/**
+ * @ingroup AUDIO_SESSION_MANAGER
+ * @defgroup AUDIO_SESSION_MANAGER Audio Session Manager
+ * @{
+ */
+
+/**
+ * This function register session to ASM server.
+ *
+ * @return This function returns @c true on success; @c false otherwise.
+ * @param[in] application_pid set (-1) if this library attached to application process.
+ * or set pid of actual application if this library attached to separated working process
+ * (e.g. client server style framework)
+ * @param[out] asm_handle handle of asm.
+ * @param[in] sound_event sound event of instance to requested register
+ * @param[in] sound_state set sound state ( 0 : None , 1 : Playing )
+ * @param[in] callback This callback function is called when sound status of other sound event is changed
+ * @param[in] cb_data This is data of callback function
+ * @param[in] mm_resource System resources will be used.
+ * @param[out] error_code specifies the error code
+ * @exception
+ */
+bool
+ASM_register_sound(const int application_pid, int *asm_handle, ASM_sound_events_t sound_event,
+ ASM_sound_states_t sound_state, ASM_sound_cb_t callback, void* cb_data, ASM_resource_t mm_resource, int *error_code);
+
+
+/**
+ * This function unregister sound event to ASM server. If unregistered, sound event is not playing.
+ *
+ * @return This function returns @c true on success; @c false otherwise.
+ * @param[in] sound_event sound event of instance to requested unregister
+ * @param[out] error_code specifies the error code
+ * @exception
+ */
+bool
+ASM_unregister_sound(const int asm_handle, ASM_sound_events_t sound_event, int *error_code);
+
+
+
+/**
+ * This function gets sound status from ASM server
+ *
+ * @return This function returns @c true on success; @c false otherwise.
+ * @param[out] all_sound_status Current Sound status of All sound events defined in sound conflict manager
+ * return value defined in ASM_sound_status_t
+ * Each bit is Sound Status Type( 0 : None , 1 : Playing )
+ * @param[out] error_code specifies the error code
+ * @exception
+ */
+bool
+ASM_get_sound_status(unsigned int *all_sound_status, int *error_code);
+
+
+/**
+ * This function gets sound state of sound event from ASM server
+ *
+ * @return This method returns @c true on success; @c false otherwise.
+ * @param[in] sound_event sound event for want to know sound state
+ * @param[out] sound_state result of sound state
+ * @param[out] error_code specifies the error code
+ * @exception
+ */
+bool
+ASM_get_sound_state(const int asm_handle, ASM_sound_events_t sound_event, ASM_sound_states_t *sound_state, int *error_code);
+
+/**
+ * This function gets sound state of given process from ASM server
+ *
+ * @return This method returns @c true on success; @c false otherwise.
+ * @param[in] asm_handle asm_handle.
+ * @param[out] sound_state result of sound state
+ * @param[out] error_code specifies the error code
+ * @exception
+ */
+bool
+ASM_get_process_session_state(const int asm_handle, ASM_sound_states_t *sound_state, int *error_code);
+
+/**
+ * This function set sound state to ASM server.
+ *
+ * @return This function returns @c true on success; @c false otherwise.
+ * @param[in] sound_event sound event of instance to requested setting
+ * @param[in] sound_state set sound state ( 0(ASM_SND_STATE_NONE) : None , 1(ASM_SND_STATE_PLAYING) : Playing )
+ * @param[in] mm_resource system resources will be used.
+ * @param[out] error_code specifies the error code
+ * @exception #ERR_asm_MSG_QUEUE_SND_ERROR - Is is failed to send to message queue.
+ */
+bool
+ASM_set_sound_state(const int asm_handle, ASM_sound_events_t sound_event, ASM_sound_states_t sound_state, ASM_resource_t mm_resource, int *error_code);
+
+
+
+/**
+ * This function ask sound policy to ASM server.
+ *
+ * @return No return value
+ * @param[in] playing_sound playing sound event
+ * @param[in] request_sound request sound event
+ * @param[out] sound_policy Return sound case between playing sound and request sound
+ */
+void
+ASM_ask_sound_policy(ASM_sound_events_t playing_sound, ASM_sound_events_t request_sound, ASM_sound_cases_t *sound_policy) __attribute__((deprecated)) ;
+
+bool
+ASM_change_callback(const int asm_handle, ASM_sound_events_t sound_event, ASM_sound_cb_t callback, void* cb_data, int *error_code);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif