diff options
Diffstat (limited to 'mm_session.h')
-rw-r--r-- | mm_session.h | 130 |
1 files changed, 121 insertions, 9 deletions
diff --git a/mm_session.h b/mm_session.h index bc343d9..c38a709 100644 --- a/mm_session.h +++ b/mm_session.h @@ -1,9 +1,9 @@ /* * libmm-session * - * 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. @@ -31,6 +31,8 @@ #ifndef _MM_SESSION_H_ #define _MM_SESSION_H_ +#include <audio-session-manager-types.h> + #ifdef __cplusplus extern "C" { #endif @@ -45,12 +47,37 @@ extern "C" { * This enumeration defines application's session types. */ enum MMSessionType { - MM_SESSION_TYPE_SHARE = 0, /**< Share type : this type shares it's session with other share type application */ - MM_SESSION_TYPE_EXCLUSIVE, /**< Exclusive type : this type make previous session stop. And it does not allow other share type session start */ - MM_SESSION_TYPE_NUM, + MM_SESSION_TYPE_MEDIA = 0, + MM_SESSION_TYPE_MEDIA_RECORD, + MM_SESSION_TYPE_ALARM, + MM_SESSION_TYPE_NOTIFY, + MM_SESSION_TYPE_EMERGENCY, + MM_SESSION_TYPE_CALL, + MM_SESSION_TYPE_VIDEOCALL, + MM_SESSION_TYPE_VOIP, + MM_SESSION_TYPE_VOICE_RECOGNITION, + MM_SESSION_TYPE_RECORD_AUDIO, + MM_SESSION_TYPE_RECORD_VIDEO, + MM_SESSION_TYPE_NUM }; /** + * This enumeration defines behavior of update. + */ +typedef enum { + MM_SESSION_UPDATE_TYPE_ADD, + MM_SESSION_UPDATE_TYPE_REMOVE, + MM_SESSION_UPDATE_TYPE_NUM +}session_update_type_t; + +/** + * This define is for session options + */ +#define MM_SESSION_OPTION_PAUSE_OTHERS ASM_SESSION_OPTION_PAUSE_OTHERS +#define MM_SESSION_OPTION_UNINTERRUPTIBLE ASM_SESSION_OPTION_UNINTERRUPTIBLE +#define MM_SESSION_OPTION_RESUME_BY_SYSTEM_OR_MEDIA_PAUSED ASM_SESSION_OPTION_RESUME_BY_MEDIA_PAUSED + +/** * This enumeration defines session callback message type. */ typedef enum { @@ -62,14 +89,31 @@ typedef enum { }session_msg_t; typedef enum { - MM_SESSION_EVENT_OTHER_APP = 0, + MM_SESSION_EVENT_MEDIA = 0, MM_SESSION_EVENT_CALL, MM_SESSION_EVENT_ALARM, MM_SESSION_EVENT_EARJACK_UNPLUG, MM_SESSION_EVENT_RESOURCE_CONFLICT, + MM_SESSION_EVENT_EMERGENCY, + MM_SESSION_EVENT_NOTIFICATION, }session_event_t; +typedef enum { + MM_SESSION_WATCH_EVENT_IGNORE = -1, + MM_SESSION_WATCH_EVENT_CALL = 0, + MM_SESSION_WATCH_EVENT_VIDEO_CALL, + MM_SESSION_WATCH_EVENT_ALARM, + MM_SESSION_WATCH_EVENT_NUM +}session_watch_event_t; + +typedef enum { + MM_SESSION_WATCH_STATE_STOP = 0, + MM_SESSION_WATCH_STATE_PLAYING, + MM_SESSION_WATCH_STATE_NUM +}session_watch_state_t; + typedef void (*session_callback_fn) (session_msg_t msg, session_event_t event, void *user_param); +typedef void (*watch_callback_fn) (session_watch_event_t event, session_watch_state_t state, void *user_param); /** * This function defines application's Multimedia Session policy @@ -93,7 +137,7 @@ static int _create(void *data) int ret = 0; // Initialize Multimedia Session Type - ret = mm_session_init(MM_SESSION_TYPE_SHARE); + ret = mm_session_init(MM_SESSION_TYPE_MEDIA); if(ret < 0) { printf("Can not initialize session \n"); @@ -181,7 +225,7 @@ static int _create(void *data) int ret = 0; // Initialize Multimedia Session Type with callback - ret = mm_session_init_ex(MM_SESSION_TYPE_SHARE, session_cb, (void*)ad); + ret = mm_session_init_ex(MM_SESSION_TYPE_MEDIA, session_cb, (void*)ad); if(ret < 0) { printf("Can not initialize session \n"); @@ -244,7 +288,7 @@ static int _create(void *data) int ret = 0; // Initialize Multimedia Session Type - ret = mm_session_init(MM_SESSION_TYPE_SHARE); + ret = mm_session_init(MM_SESSION_TYPE_MEDIA); if(ret < 0) { printf("Can not initialize session \n"); @@ -282,7 +326,75 @@ int main() */ int mm_session_finish(void); +/** + * This function get current application's Multimedia Session type + * + * @param sessiontype [out] Current Multimedia Session type + * @return This function returns MM_ERROR_NONE on success, or negative value + * with error code. + * @see mm_session_init + * @since + */ +int mm_session_get_current_type(int *sessiontype); + +/** + * This function get current application's Multimedia Session information + * + * @param session_type [out] Current Multimedia Session type + * @param session_options [out] Current Multimedia Session options + * @return This function returns MM_ERROR_NONE on success, or negative value + * with error code. + * @see + * @since + */ +int mm_session_get_current_information(int *session_type, int *session_options); + +/** + * This function update application's Multimedia Session options + * + * @param update_type [in] add or remove options + * @param session_options [in] Multimedia Session options to be updated + * @return This function returns MM_ERROR_NONE on success, or negative value + * with error code. + * @see + * @since + */ +int mm_session_update_option(session_update_type_t update_type, int options); + +/** + * This function add a watch callback + * + * @param watchevent [in] The session type to be watched + * @param watchstate [in] The session state of the session type of first argument to be watched + * @param callback [in] The callback which will be called when the watched session state was activated + * @param user_param [in] The user param passed from the callback registration function + * @return This function returns MM_ERROR_NONE on success, or negative value + * with error code. + * @see + * @since + */ +int mm_session_add_watch_callback(int watchevent, int watchstate, watch_callback_fn callback, void* user_param); + +/** + * This function removes a watch callback corresponding with two arguments + * + * @param watchevent [in] The session type to be removed + * @param watchstate [in] The session state to be removed + * @return This function returns MM_ERROR_NONE on success, or negative value + * with error code. + * @see + * @since + */ +int mm_session_remove_watch_callback(int watchevent, int watchstate); +/** + * This function initialize resumption of other ASM handles which were paused by this session + * It can be used only when call series or voice recognition session is set + * + * @return This function returns MM_ERROR_NONE on success, or negative value + * with error code. + */ +int mm_session_reset_resumption_info(void); /** @} |