run dos2unix to get rid of ^M
[platform/core/multimedia/libmm-wfd.git] / src / include / mm_wfd_proxy.h
index 5fdcebb..e1a067d 100755 (executable)
  *
  */
 
-#ifndef _WFDSOURCEPROXY_H_\r
-#define _WFDSOURCEPROXY_H_\r
-\r
-/*******************\r
-  * Allow for C++ users\r
-  */\r
-#ifdef __cplusplus\r
-extern "C"\r
-{\r
-#endif\r
-\r
-#include <string.h>\r
-#include <glib.h>\r
-#include <mm_message.h>\r
-#include <mm_error.h>\r
-#include <mm_types.h>\r
-#include <mm_debug.h>\r
-#include <sys/types.h>\r
-#include <sys/socket.h>\r
-#include <netinet/in.h>\r
-#include <netdb.h>\r
-\r
-/**\r
- * Enumerations of wifi-display states.\r
- */\r
-typedef enum {\r
-  WFDSRC_STATE_NULL = 0,                         /**< wifi-display is created, but not realized yet */\r
-  WFDSRC_STATE_READY,                      /**< wifi-display is ready to play media */\r
-  WFDSRC_STATE_CONNECTION_WAIT, /** < wifi-display is waiting for connection */\r
-  WFDSRC_STATE_CONNECTED,             /** < wifi-display is connected */\r
-  WFDSRC_STATE_PLAYING,                  /**< wifi-display is now playing media */\r
-  WFDSRC_STATE_PAUSED,                   /**< wifi-display is paused while playing media */\r
-  WFDSRC_STATE_NONE,                       /**< wifi-display is not created yet */\r
-  WFDSRC_STATE_NUM                        /**< Number of wifi-display states */\r
-} WfdSrcProxyState;\r
-\r
-typedef enum {\r
-  WFDSRC_COMMAND_NONE = 0,\r
-  WFDSRC_COMMAND_CREATE,\r
-  WFDSRC_COMMAND_DESTROY,\r
-  WFDSRC_COMMAND_REALIZE,\r
-  WFDSRC_COMMAND_UNREALIZE,\r
-  WFDSRC_COMMAND_CONNECT,\r
-  WFDSRC_COMMAND_START,\r
-  WFDSRC_COMMAND_STOP,\r
-  WFDSRC_COMMAND_PAUSE,\r
-  WFDSRC_COMMAND_RESUME,\r
-  WFDSRC_COMMAND_NUM,\r
-}WfdSrcProxyCmd;\r
-\r
-/**\r
- * Enumerations of wifi-display source module errors and proxy errors\r
- * Note: Ensure appending of proxy errors after WFD source module errors\r
- */\r
-typedef enum {\r
-  WFDSRC_ERROR_NONE = 0,\r
-  WFDSRC_ERROR_UNKNOWN,\r
-  WFDSRC_ERROR_WFD_INVALID_ARGUMENT,\r
-  WFDSRC_ERROR_WFD_NO_FREE_SPACE,\r
-  WFDSRC_ERROR_WFD_NOT_INITIALIZED,\r
-  WFDSRC_ERROR_WFD_NO_OP,\r
-  WFDSRC_ERROR_WFD_INVALID_STATE,\r
-  WFDSRC_ERROR_WFD_INTERNAL\r
-} WfdSrcProxyRet;\r
-\r
-/**\r
-  * Application callback,\r
-  */\r
-typedef void (*WfdSrcProxyStateError_cb) (MMHandleType pHandle,\r
-                                   WfdSrcProxyRet error_code,\r
-                                   WfdSrcProxyState state,\r
-                                   void *user_data);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyInit\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API does the following\r
-  *   - creates handle\r
-  *   - creates socket and connect to server address ( IPC)\r
-  *        - This ensures socket listen on server to be successful\r
-  *   - call back registration\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *    appCb - pointer to application callback\r
-  *\r
-  * Return : return WfdSrcProxyRet\r
-  * ====\r
-  *******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyInit(\r
-    MMHandleType *pHandle,\r
-    WfdSrcProxyStateError_cb *appCb,\r
-    void *user_data );\r
-\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyDeInit\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  *  - Free the handle\r
-  *  - close the sockets\r
-  *\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return WfdSrcProxyRet\r
-  * ====\r
-  *******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyDeInit(MMHandleType pHandle );\r
-\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxySetIPAddrAndPort\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API sets IP address and port number to be used by WFD source.\r
-  * Application should call this API after Initialize is called.\r
-  * IP address and port number is sent to WFD source Server (daemon)\r
-  * on IPC\r
-  *\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *    wfdsrcIP - IP address string\r
-  *    wfdsrcPort : Port no string\r
-  *\r
-  * Return : return WfdSrcProxyRet\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyRet WfdSrcProxySetIPAddrAndPort(\r
-     MMHandleType pHandle,\r
-     char *wfdsrcIP,\r
-     char *wfdsrcPort);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyConnect\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API is used to connect WiFi display source to client.\r
-  * After return, display mode should be set to X\r
-  * refer to utilx_scrnconf_set_dispmode()\r
-  *\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return WfdSrcProxyRet\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyConnect(MMHandleType pHandle);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyStart\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API is used to start WiFi display source to start sending data\r
-  *  to client.\r
-  *\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return WfdSrcProxyRet\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyStart(MMHandleType pHandle);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyPause\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API is used to pause WFD streaming between source and sink.\r
-  * This pauses the streaming between WFD source and sink. So that\r
-  * when user resumes back, streaming does not continue from the point\r
-  * where it stopped, instead it will start from current content.\r
-  *\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return WfdSrcProxyRet\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyPause(MMHandleType pHandle);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyResume\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API is used to resume WFD streaming between source and sink\r
-  * Resume after pause starts from current content that is viewed on source\r
-  * No caching of content from the time it is paused is done.\r
-  *\r
-  * Arguments:\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return WfdSrcProxyRet\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyResume(MMHandleType pHandle);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyStop\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API stops WFD streaming between source and sink.\r
-  * The Server(daemon) will be still running even after stop.\r
-  *\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return one of WfdSrcProxyRet\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyStop(MMHandleType pHandle);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyDestroyServer\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API destroy WFD server which is already in STOP state.\r
-  * The Server(daemon) will be destroyed after this call.\r
-  *\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return one of WfdSrcProxyRet\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyRet WfdSrcProxyDestroyServer(MMHandleType pHandle);\r
-\r
-/*******************************************************\r
-  * Function Name:  WfdSrcProxyGetCurrentState\r
-  * =========\r
-  * Description:\r
-  * =======\r
-  * This API is a provision given to Application, if in any case\r
-  * application needs to know the status of WiFi Source server state.\r
-  * This is a synchronous call.\r
-  * Arguments:\r
-  * =======\r
-  *    pHandle - pointer to WfdSrcProxyInfo\r
-  *\r
-  * Return : return one of the states from WfdSrcProxyState\r
-  * ====\r
-  ******************************************************/\r
-WfdSrcProxyState WfdSrcProxyGetCurrentState(MMHandleType pHandle);\r
-\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif //__cplusplus\r
-\r
+#ifndef _WFDSOURCEPROXY_H_
+#define _WFDSOURCEPROXY_H_
+
+/*******************
+  * Allow for C++ users
+  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <string.h>
+#include <glib.h>
+#include <mm_message.h>
+#include <mm_error.h>
+#include <mm_types.h>
+#include <mm_debug.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+/**
+ * Enumerations of wifi-display states.
+ */
+typedef enum {
+  WFDSRC_STATE_NULL = 0,                         /**< wifi-display is created, but not realized yet */
+  WFDSRC_STATE_READY,                      /**< wifi-display is ready to play media */
+  WFDSRC_STATE_CONNECTION_WAIT, /** < wifi-display is waiting for connection */
+  WFDSRC_STATE_CONNECTED,             /** < wifi-display is connected */
+  WFDSRC_STATE_PLAYING,                  /**< wifi-display is now playing media */
+  WFDSRC_STATE_PAUSED,                   /**< wifi-display is paused while playing media */
+  WFDSRC_STATE_NONE,                       /**< wifi-display is not created yet */
+  WFDSRC_STATE_NUM                        /**< Number of wifi-display states */
+} WfdSrcProxyState;
+
+typedef enum {
+  WFDSRC_COMMAND_NONE = 0,
+  WFDSRC_COMMAND_CREATE,
+  WFDSRC_COMMAND_DESTROY,
+  WFDSRC_COMMAND_REALIZE,
+  WFDSRC_COMMAND_UNREALIZE,
+  WFDSRC_COMMAND_CONNECT,
+  WFDSRC_COMMAND_START,
+  WFDSRC_COMMAND_STOP,
+  WFDSRC_COMMAND_PAUSE,
+  WFDSRC_COMMAND_RESUME,
+  WFDSRC_COMMAND_NUM,
+}WfdSrcProxyCmd;
+
+/**
+ * Enumerations of wifi-display source module errors and proxy errors
+ * Note: Ensure appending of proxy errors after WFD source module errors
+ */
+typedef enum {
+  WFDSRC_ERROR_NONE = 0,
+  WFDSRC_ERROR_UNKNOWN,
+  WFDSRC_ERROR_WFD_INVALID_ARGUMENT,
+  WFDSRC_ERROR_WFD_NO_FREE_SPACE,
+  WFDSRC_ERROR_WFD_NOT_INITIALIZED,
+  WFDSRC_ERROR_WFD_NO_OP,
+  WFDSRC_ERROR_WFD_INVALID_STATE,
+  WFDSRC_ERROR_WFD_INTERNAL
+} WfdSrcProxyRet;
+
+/**
+  * Application callback,
+  */
+typedef void (*WfdSrcProxyStateError_cb) (MMHandleType pHandle,
+                                   WfdSrcProxyRet error_code,
+                                   WfdSrcProxyState state,
+                                   void *user_data);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyInit
+  * =========
+  * Description:
+  * =======
+  * This API does the following
+  *   - creates handle
+  *   - creates socket and connect to server address ( IPC)
+  *        - This ensures socket listen on server to be successful
+  *   - call back registration
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *    appCb - pointer to application callback
+  *
+  * Return : return WfdSrcProxyRet
+  * ====
+  *******************************************************/
+WfdSrcProxyRet WfdSrcProxyInit(
+    MMHandleType *pHandle,
+    WfdSrcProxyStateError_cb *appCb,
+    void *user_data );
+
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyDeInit
+  * =========
+  * Description:
+  * =======
+  *  - Free the handle
+  *  - close the sockets
+  *
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return WfdSrcProxyRet
+  * ====
+  *******************************************************/
+WfdSrcProxyRet WfdSrcProxyDeInit(MMHandleType pHandle );
+
+
+/*******************************************************
+  * Function Name:  WfdSrcProxySetIPAddrAndPort
+  * =========
+  * Description:
+  * =======
+  * This API sets IP address and port number to be used by WFD source.
+  * Application should call this API after Initialize is called.
+  * IP address and port number is sent to WFD source Server (daemon)
+  * on IPC
+  *
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *    wfdsrcIP - IP address string
+  *    wfdsrcPort : Port no string
+  *
+  * Return : return WfdSrcProxyRet
+  * ====
+  ******************************************************/
+WfdSrcProxyRet WfdSrcProxySetIPAddrAndPort(
+     MMHandleType pHandle,
+     char *wfdsrcIP,
+     char *wfdsrcPort);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyConnect
+  * =========
+  * Description:
+  * =======
+  * This API is used to connect WiFi display source to client.
+  * After return, display mode should be set to X
+  * refer to utilx_scrnconf_set_dispmode()
+  *
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return WfdSrcProxyRet
+  * ====
+  ******************************************************/
+WfdSrcProxyRet WfdSrcProxyConnect(MMHandleType pHandle);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyStart
+  * =========
+  * Description:
+  * =======
+  * This API is used to start WiFi display source to start sending data
+  *  to client.
+  *
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return WfdSrcProxyRet
+  * ====
+  ******************************************************/
+WfdSrcProxyRet WfdSrcProxyStart(MMHandleType pHandle);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyPause
+  * =========
+  * Description:
+  * =======
+  * This API is used to pause WFD streaming between source and sink.
+  * This pauses the streaming between WFD source and sink. So that
+  * when user resumes back, streaming does not continue from the point
+  * where it stopped, instead it will start from current content.
+  *
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return WfdSrcProxyRet
+  * ====
+  ******************************************************/
+WfdSrcProxyRet WfdSrcProxyPause(MMHandleType pHandle);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyResume
+  * =========
+  * Description:
+  * =======
+  * This API is used to resume WFD streaming between source and sink
+  * Resume after pause starts from current content that is viewed on source
+  * No caching of content from the time it is paused is done.
+  *
+  * Arguments:
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return WfdSrcProxyRet
+  * ====
+  ******************************************************/
+WfdSrcProxyRet WfdSrcProxyResume(MMHandleType pHandle);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyStop
+  * =========
+  * Description:
+  * =======
+  * This API stops WFD streaming between source and sink.
+  * The Server(daemon) will be still running even after stop.
+  *
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return one of WfdSrcProxyRet
+  * ====
+  ******************************************************/
+WfdSrcProxyRet WfdSrcProxyStop(MMHandleType pHandle);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyDestroyServer
+  * =========
+  * Description:
+  * =======
+  * This API destroy WFD server which is already in STOP state.
+  * The Server(daemon) will be destroyed after this call.
+  *
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return one of WfdSrcProxyRet
+  * ====
+  ******************************************************/
+WfdSrcProxyRet WfdSrcProxyDestroyServer(MMHandleType pHandle);
+
+/*******************************************************
+  * Function Name:  WfdSrcProxyGetCurrentState
+  * =========
+  * Description:
+  * =======
+  * This API is a provision given to Application, if in any case
+  * application needs to know the status of WiFi Source server state.
+  * This is a synchronous call.
+  * Arguments:
+  * =======
+  *    pHandle - pointer to WfdSrcProxyInfo
+  *
+  * Return : return one of the states from WfdSrcProxyState
+  * ====
+  ******************************************************/
+WfdSrcProxyState WfdSrcProxyGetCurrentState(MMHandleType pHandle);
+
+
+#ifdef __cplusplus
+}
+#endif //__cplusplus
+
 #endif //_WFDSOURCEPROXY_H_