diff options
author | Kibum Kim <kb0929.kim@samsung.com> | 2012-02-27 21:15:48 +0900 |
---|---|---|
committer | Kibum Kim <kb0929.kim@samsung.com> | 2012-02-27 21:15:48 +0900 |
commit | 10c786e725207327fb35035100b391d073da6aeb (patch) | |
tree | 27e35f47dfbe9651647e8df83be258ceff8796df /include | |
download | audio-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-x | include/asm-error.h | 71 | ||||
-rwxr-xr-x | include/asm-log.h | 79 | ||||
-rwxr-xr-x | include/audio-session-manager-types.h | 332 | ||||
-rwxr-xr-x | include/audio-session-manager.h | 143 |
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 |