diff options
author | Seungbae Shin <seungbae.shin@samsung.com> | 2015-04-15 14:11:48 +0900 |
---|---|---|
committer | Seungbae Shin <seungbae.shin@samsung.com> | 2015-04-27 17:58:32 +0900 |
commit | cba5a315ca8abb87ec935048647feaa129f5c277 (patch) | |
tree | 72535d0c0d9b040deb99eb6deea58e5f69565864 /include/audio-session-manager-types.h | |
parent | 29a4f95f385ed365e824a9563b9ae45ab8fc2eaa (diff) | |
download | audio-session-manager-cba5a315ca8abb87ec935048647feaa129f5c277.tar.gz audio-session-manager-cba5a315ca8abb87ec935048647feaa129f5c277.tar.bz2 audio-session-manager-cba5a315ca8abb87ec935048647feaa129f5c277.zip |
rebase code with tizen 2.3submit/tizen_common/20150505.090000submit/tizen/20150429.013912accepted/tizen/wearable/20150506.234518accepted/tizen/tv/20150506.233449accepted/tizen/mobile/20150511.004058accepted/tizen/common/20150506.091346tizen_3.0.2015.q2_common
remove smack label for vconf
replace/remove deprecated glib functions
set static declaration on global variables / local functions
Change-Id: Idc5eb38eda9e45943010815d984f4d2548fd4311
Diffstat (limited to 'include/audio-session-manager-types.h')
-rw-r--r-- | include/audio-session-manager-types.h | 281 |
1 files changed, 160 insertions, 121 deletions
diff --git a/include/audio-session-manager-types.h b/include/audio-session-manager-types.h index 7160a15..beb0c1b 100644 --- a/include/audio-session-manager-types.h +++ b/include/audio-session-manager-types.h @@ -1,9 +1,9 @@ /* * audio-session-manager * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved. * - * Contact: Seungbae Shin <seungbae.shin@samsung.com> + * Contact: Seungbae Shin <seungbae.shin at samsung.com>, Sangchul Lee <sc11.lee at samsung.com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,28 +30,46 @@ #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_CANNOT_PLAY_BY_CALL 0x11 /* CALL / VIDEOCALL / RICH_CALL */ -#define ERR_ASM_POLICY_CANNOT_PLAY_BY_ALARM 0x12 -#define ERR_ASM_POLICY_INVALID_HANDLE 0x1f -#define ERR_ASM_INVALID_PARAMETER 0x20 -#define ERR_ASM_VCONF_ERROR 0x21 -#define ERR_ASM_UNKNOWN_ERROR 0x2F -#define ERR_ASM_HANDLE_IS_FULL 0x30 +#define ERR_ASM_ERROR_NONE 0x00 +#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_LOCAL_HANDLE_IS_FULL 0x09 +#define ERR_ASM_LOCAL_HANDLE_IS_INVALID 0x0A +#define ERR_ASM_POLICY_CANNOT_PLAY 0x10 +#define ERR_ASM_POLICY_CANNOT_PLAY_BY_CALL 0x11 /* CALL / VIDEOCALL / VOIP */ +#define ERR_ASM_POLICY_CANNOT_PLAY_BY_ALARM 0x12 /* ALARM */ +#define ERR_ASM_POLICY_CANNOT_PLAY_BY_PROFILE 0x13 /* blocked by sound profile */ +#define ERR_ASM_POLICY_CANNOT_PLAY_BY_CUSTOM 0x14 /* blocked by custom reason */ +#define ERR_ASM_INVALID_PARAMETER 0x20 +#define ERR_ASM_VCONF_ERROR 0x21 +#define ERR_ASM_NOT_SUPPORTED 0x22 +#define ERR_ASM_NO_OPERATION 0x23 +#define ERR_ASM_UNKNOWN_ERROR 0x2F +#define ERR_ASM_SERVER_HANDLE_IS_FULL 0x30 +#define ERR_ASM_SERVER_HANDLE_IS_INVALID 0x31 +#define ERR_ASM_WATCH_ALREADY_REQUESTED 0x40 +#define ERR_ASM_WATCH_ALREADY_UNREQUESTED 0x41 +#define ERR_ASM_WATCH_NOT_SUPPORTED 0x42 +#define ERR_ASM_ADD_WATCH_LIST_FAILURE 0x43 +#define ERR_ASM_DEL_WATCH_LIST_FAILURE 0x44 + +/* Session Option */ +#define ASM_SESSION_OPTION_PAUSE_OTHERS 0x0001 +#define ASM_SESSION_OPTION_UNINTERRUPTIBLE 0x0002 +#define ASM_SESSION_OPTION_RESUME_BY_MEDIA_PAUSED 0x0010 +#define ASM_SESSION_OPTION_RESUME_BY_MEDIA_STOPPED 0x0020 #define ASM_PRIORITY_MATRIX_MIN (ASM_EVENT_MAX-1) -#define ASM_SERVER_HANDLE_MAX 256 - +#define ASM_PRIORITY_SUB_MATRIX_MIN (ASM_SUB_EVENT_MAX-1) +#define ASM_SERVER_HANDLE_MAX 256 +#define ASM_HANDLE_INIT_VAL -1 #define SOUND_STATUS_KEY "memory/Sound/SoundStatus" /** @@ -59,7 +77,7 @@ */ typedef enum { - ASM_REQUEST_REGISTER = 0, + ASM_REQUEST_REGISTER = 0, ASM_REQUEST_UNREGISTER, ASM_REQUEST_GETSTATE, ASM_REQUEST_GETMYSTATE, @@ -68,39 +86,62 @@ typedef enum ASM_REQUEST_DUMP, ASM_REQUEST_SET_SUBSESSION, ASM_REQUEST_GET_SUBSESSION, + ASM_REQUEST_REGISTER_WATCHER, + ASM_REQUEST_UNREGISTER_WATCHER, + ASM_REQUEST_SET_SUBEVENT, + ASM_REQUEST_GET_SUBEVENT, + ASM_REQUEST_RESET_RESUME_TAG, + ASM_REQUEST_SET_SESSION_OPTIONS, + ASM_REQUEST_GET_SESSION_OPTIONS } 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_NONE = -1, // [Notice] Don't use it in application (Never use it), it is internal sound event + ASM_EVENT_MEDIA_MMPLAYER = 0, + ASM_EVENT_MEDIA_MMCAMCORDER, + ASM_EVENT_MEDIA_MMSOUND, + ASM_EVENT_MEDIA_OPENAL, + ASM_EVENT_MEDIA_FMRADIO, + ASM_EVENT_MEDIA_WEBKIT, ASM_EVENT_NOTIFY, - ASM_EVENT_CALL, - ASM_EVENT_SHARE_FMRADIO, - ASM_EVENT_EXCLUSIVE_FMRADIO, - ASM_EVENT_EARJACK_UNPLUG, ASM_EVENT_ALARM, + ASM_EVENT_EARJACK_UNPLUG, + ASM_EVENT_CALL, ASM_EVENT_VIDEOCALL, + ASM_EVENT_VOIP, ASM_EVENT_MONITOR, - ASM_EVENT_RICH_CALL, ASM_EVENT_EMERGENCY, ASM_EVENT_EXCLUSIVE_RESOURCE, + ASM_EVENT_VOICE_RECOGNITION, + ASM_EVENT_MMCAMCORDER_AUDIO, + ASM_EVENT_MMCAMCORDER_VIDEO, ASM_EVENT_MAX } ASM_sound_events_t; +typedef enum +{ + ASM_SUB_EVENT_NONE = 0, + ASM_SUB_EVENT_SHARE, + ASM_SUB_EVENT_EXCLUSIVE, + ASM_SUB_EVENT_MAX +} ASM_sound_sub_events_t; + +typedef enum { + ASM_SUB_SESSION_TYPE_VOICE = 0, + ASM_SUB_SESSION_TYPE_RINGTONE, + ASM_SUB_SESSION_TYPE_MEDIA, + ASM_SUB_SESSION_TYPE_INIT, + ASM_SUB_SESSION_TYPE_VR_NORMAL, + ASM_SUB_SESSION_TYPE_VR_DRIVE, + ASM_SUB_SESSION_TYPE_RECORD_STEREO, + ASM_SUB_SESSION_TYPE_RECORD_MONO, + ASM_SUB_SESSION_TYPE_MAX +} ASM_sound_sub_sessions_t; + /* * This enumeration defines event source for sound conflict scenario */ @@ -108,6 +149,7 @@ typedef enum { ASM_EVENT_SOURCE_MEDIA = 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, @@ -115,53 +157,50 @@ typedef enum ASM_EVENT_SOURCE_EMERGENCY_START, ASM_EVENT_SOURCE_EMERGENCY_END, ASM_EVENT_SOURCE_OTHER_PLAYER_APP, - ASM_EVENT_SOURCE_RESUMABLE_MEDIA, + ASM_EVENT_SOURCE_NOTIFY_START, + ASM_EVENT_SOURCE_NOTIFY_END } 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_CASE_RESOURCE_CHECK = 9 + ASM_CASE_NONE = 0, + ASM_CASE_1PLAY_2STOP, + ASM_CASE_1STOP_2PLAY, + ASM_CASE_1PAUSE_2PLAY, + ASM_CASE_1PLAY_2PLAY_MIX, + ASM_CASE_RESOURCE_CHECK, + ASM_CASE_SUB_EVENT, } 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_STATUS_RICH_CALL = 0x40000000, //Watch out - ASM_STATUS_EMERGENCY = 0x00004000, - ASM_STATUS_EXCLUSIVE_RESOURCE = 0x00008000, + ASM_STATUS_NONE = 0x00000000, + ASM_STATUS_MEDIA_MMPLAYER = 0x00000001, + ASM_STATUS_MEDIA_MMCAMCORDER = 0x00000002, + ASM_STATUS_MEDIA_MMSOUND = 0x00000004, + ASM_STATUS_MEDIA_OPENAL = 0x00000008, + ASM_STATUS_MEDIA_FMRADIO = 0x00000010, + ASM_STATUS_MEDIA_WEBKIT = 0x00000020, + ASM_STATUS_NOTIFY = 0x00000040, + ASM_STATUS_ALARM = 0x00000080, + ASM_STATUS_EARJACK_UNPLUG = 0x00001000, + ASM_STATUS_CALL = 0x10000000, + ASM_STATUS_VIDEOCALL = 0x20000000, + ASM_STATUS_VOIP = 0x40000000, + ASM_STATUS_MONITOR = 0x80000000, + ASM_STATUS_EMERGENCY = 0x00002000, + ASM_STATUS_EXCLUSIVE_RESOURCE = 0x00004000, + ASM_STATUS_VOICE_RECOGNITION = 0x00010000, + ASM_STATUS_MMCAMCORDER_AUDIO = 0x00020000, + ASM_STATUS_MMCAMCORDER_VIDEO = 0x00040000 } ASM_sound_status_t; @@ -170,13 +209,11 @@ typedef enum */ typedef enum { - 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_STATE_IGNORE = 6, + ASM_STATE_NONE = 0, + ASM_STATE_PLAYING = 1, + ASM_STATE_WAITING = 2, + ASM_STATE_STOP = 3, + ASM_STATE_PAUSE = 4 } ASM_sound_states_t; @@ -185,19 +222,19 @@ typedef enum */ typedef enum { - ASM_NEED_NOT_RESUME = 0, - ASM_NEED_RESUME = 1, + 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_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; /* @@ -206,29 +243,28 @@ typedef enum 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_NONE = 0x0000, + ASM_RESOURCE_CAMERA = 0x0001, + ASM_RESOURCE_VIDEO_OVERLAY = 0x0002, + ASM_RESOURCE_STREAMING = 0x0004, + ASM_RESOURCE_HW_DECODER = 0x0100, + ASM_RESOURCE_HW_ENCODER = 0x0200, + ASM_RESOURCE_RADIO_TUNNER = 0x1000, + ASM_RESOURCE_TV_TUNNER = 0x2000, + ASM_RESOURCE_VOICECONTROL = 0x10000, }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_COMMAND_NONE = 0, + ASM_COMMAND_PLAY = 2, + ASM_COMMAND_STOP = 3, + ASM_COMMAND_PAUSE = 4, + ASM_COMMAND_RESUME = 5, } ASM_sound_commands_t; - /** * This structure defines the message data from library to conflict manager. */ @@ -250,7 +286,9 @@ typedef struct int cmd_handle; ASM_sound_commands_t result_sound_command; ASM_sound_states_t result_sound_state; - ASM_sound_events_t former_sound_event; + ASM_requests_t source_request_id; + int option_flags; + int error_code; } __ASM_msg_data_asm_to_lib_t; /** @@ -296,37 +334,29 @@ typedef struct 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_MEDIA_MMPLAYER, ASM_STATUS_MEDIA_MMPLAYER }, + { ASM_EVENT_MEDIA_MMCAMCORDER, ASM_STATUS_MEDIA_MMCAMCORDER }, + { ASM_EVENT_MEDIA_MMSOUND, ASM_STATUS_MEDIA_MMSOUND }, + { ASM_EVENT_MEDIA_OPENAL, ASM_STATUS_MEDIA_OPENAL }, + { ASM_EVENT_MEDIA_FMRADIO, ASM_STATUS_MEDIA_FMRADIO }, + { ASM_EVENT_MEDIA_WEBKIT, ASM_STATUS_MEDIA_WEBKIT }, { 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_EARJACK_UNPLUG, ASM_STATUS_EARJACK_UNPLUG }, + { ASM_EVENT_CALL, ASM_STATUS_CALL }, + { ASM_EVENT_VIDEOCALL, ASM_STATUS_VIDEOCALL }, + { ASM_EVENT_VOIP, ASM_STATUS_VOIP }, { ASM_EVENT_MONITOR, ASM_STATUS_MONITOR }, - { ASM_EVENT_RICH_CALL, ASM_STATUS_RICH_CALL }, { ASM_EVENT_EMERGENCY, ASM_STATUS_EMERGENCY }, { ASM_EVENT_EXCLUSIVE_RESOURCE, ASM_STATUS_EXCLUSIVE_RESOURCE }, + { ASM_EVENT_VOICE_RECOGNITION, ASM_STATUS_VOICE_RECOGNITION }, + { ASM_EVENT_MMCAMCORDER_AUDIO, ASM_STATUS_MMCAMCORDER_AUDIO }, + { ASM_EVENT_MMCAMCORDER_VIDEO, ASM_STATUS_MMCAMCORDER_VIDEO } }; - - - - /** * This callback function is called when sound status of other sound event is changed * @@ -335,4 +365,13 @@ static const ASM_sound_event_type_t ASM_sound_type[] = { */ 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); + +/** + * This callback function is called when sound status of other sound event and state that you want to watch is changed + * + * @return No return value + * @param[in] sound_status Argument passed when callback was set + */ +typedef ASM_cb_result_t (*ASM_watch_cb_t) (int handle, ASM_sound_events_t sound_event, ASM_sound_states_t sound_state, void* cb_data); + #endif |