net_stream_if.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #ifndef _NET_STREAM_IF_H_
  2. #define _NET_STREAM_IF_H_
  3. #include <stdio.h>
  4. #include <types.h>
  5. //#include <gsl.h>
  6. #include "net_stream_error.h"
  7. #define NR_MESSAGE_QUEUE_MESSAGE_MASK (0x0000FFFF)
  8. #define NR_MESSAGE_QUEUE_TYPE_MASK (0xFFFF0000)
  9. #define NR_MESSAGE_QUEUE_TYPE_INTERNAL (1<<16)
  10. #define NR_MESSAGE_QUEUE_TYPE_EXTERNAL (1<<17)
  11. #define NR_MESSAGE_QUEUE_TYPE_NET_TRANS (1<<18)
  12. enum {
  13. NR_MSG_FINALIZE = 0x01,
  14. NR_MSG_DATA_RETRIEVE,
  15. NR_MSG_ADD_NEW_TASK,
  16. NR_MSG_DELETE_TASK,
  17. };
  18. enum {
  19. NR_SEEK_SET = SEEK_SET,
  20. NR_SEEK_CUR = SEEK_CUR,
  21. };
  22. enum {
  23. NR_MSG_NET_TRANS_RESPONSE_DATA_IN_DONE = 0x1000,
  24. NR_MSG_NET_TRANS_RESPONSE_DATA_IN_FULL,
  25. NR_MSG_NET_TRANS_RESPONSE_DATA_IN_ERROR,
  26. NR_MSG_NET_TRANS_RESPONSE_DATA_IN_PREPARE_NEXT,
  27. };
  28. typedef struct NR_MessageBody_t_
  29. {
  30. UINT32 dMessageType;
  31. UINT32 dParam1;
  32. UINT32 dParam2;
  33. } NR_MessageBody_t;
  34. #define NR_MESSAGE_BODY_SIZE (sizeof(NR_MessageBody_t))
  35. #ifndef HANDLE_
  36. #define HANDLE_
  37. typedef UINT32 HANDLE;
  38. #endif
  39. enum {
  40. NETTASK_TRANSFER_ENCODING_NULL = 0,
  41. NETTASK_TRANSFER_ENCODING_GZIP = 3,
  42. };
  43. //Drv_GetTaskInfo->eCmd
  44. typedef enum {
  45. NETTASK_BUFFER_PERCENT = 100,
  46. NETTASK_DOWNLOAD_SPEED,
  47. NETTASK_RECEIVE_DATALEN,
  48. NETTASK_FILESIZE,
  49. NETTASK_STATUSCODE,
  50. NETTASK_TRANSFER_ENCODING,
  51. NETTASK_DLONCE_STATUS,
  52. //for debug use only
  53. NETTASK_DEBUG_INFO = 600,
  54. NETTASK_DUMP_TASK,
  55. } NETTASK_INFO_e;
  56. typedef enum {
  57. NETTASK_SETMODE_PREPARSE = 0x01,
  58. NETTASK_SETMODE_PLAYING,
  59. NETTASK_SET_STARTUP,
  60. NETTASK_SET_SECOND_URL,
  61. NETTASK_SET_COOKIE,
  62. NETTASK_SET_REFERER,
  63. NETTASK_SET_USERAGENT,
  64. //for DLNA test by zhanglong 02/24/2012
  65. NETTASK_SET_MKPACKET_POINT,
  66. NETTASK_SET_MKPACKET_DATA,
  67. NETTASK_SET_STREAM_TYPE,
  68. NETTASK_SET_PAUSE_CONDITION,//cmd data: 1 pause transfer,0 go on transfer
  69. NETTASK_SET_RANGE_END_FLAG,
  70. NETATSK_SET_MAX_SOCKET,
  71. NETTASK_SET_POST_DATA,
  72. NETTASK_SET_DOWNLOAD_PATH,
  73. NETTASK_SET_DOWNLOAD_FILENAME,
  74. NETTASK_SET_AUTHORIZATION
  75. } NETTASK_SETPARAM_e;
  76. //this assigned to dType
  77. enum {
  78. NETTASK_DOWNLOADONCE = (1<<0), //usually for getting xml and small file
  79. NETTASK_DOWNLOADLOOP = (1<<1), //usually for getting video/audio stream
  80. NETTASK_DOWNLOADDISC = (1<<2), //used to download the file to HDD/usb/card
  81. NETTASK_TYPE_CUSTOM = (1<<8),
  82. };
  83. //this assigned to NetStream_PrivateDrv_t->dFlags
  84. #define NETSTREAM_DRV_RUNNING_NOW 0x01
  85. #define NETSTREAM_DRV_RUNNING_ON_REGISTER 0x02
  86. typedef struct NetStream_PrivateDrv_t_
  87. {
  88. const UINT32 dSupportedTaskType;
  89. UINT32 dFlags;
  90. INT32 (*Drv_Initialize_Func)( void **Drv_PrivateData );
  91. INT32 (*Drv_Finalize_Func)( void **Drv_PrivateData );
  92. INT32 (*Drv_CreateTask_Func)( void *Drv_PrivateData,
  93. HANDLE *pHandle,
  94. char *pBuf,
  95. UINT32 dBufSize,
  96. UINT32 dType,
  97. const char *pUrl,
  98. UINT32 dIdentify,
  99. GL_Queue_t MwQueueHandle );
  100. INT32 (*Drv_DeleteTask_Func)( void *Drv_PrivateData, HANDLE handle);
  101. INT64 (*Drv_Seek_Func)( void *Drv_PrivateData, HANDLE handle, UINT64 lOffset, UINT32 dSeekCtrl );
  102. INT32 (*Drv_Read_Func)( void *Drv_PrivateData,
  103. HANDLE handle,
  104. UINT64 lOffset,
  105. UINT32 dReadLen,
  106. char *pBuf,
  107. UINT32 *pdRealReadLen );
  108. INT32 (*Drv_GetTaskInfo_Func)( void *Drv_PrivateData,
  109. HANDLE handle,
  110. INT32 eCmd,
  111. void * pdData );
  112. INT32 (*Drv_SetTaskParam_Func)( void *Drv_PrivateData,
  113. HANDLE handle,
  114. INT32 eCmd,
  115. const void * pdData );
  116. HANDLE (*Drv_CheckHandle_Func)( void*Drv_PrivateData,HANDLE handle);
  117. void *pDrv_PrivateData;
  118. struct NetStream_PrivateDrv_t_ *pNext;
  119. } NetStream_PrivateDrv_t;
  120. INT32 NetStream_IF_Initialize(void);
  121. INT32 NetStream_IF_Finalize(void);
  122. INT32 NetStream_IF_CreateTask( HANDLE *pHandle,
  123. char *pBuf,
  124. UINT32 dBufSize,
  125. UINT32 dType,
  126. const char *pUrl,
  127. UINT32 dIdentify,
  128. GL_Queue_t MwQueueHandle );
  129. INT32 NetStream_IF_SetTaskParam( HANDLE handle, INT32 eCmd, const void *pdParam );
  130. INT32 NetStream_IF_StartTask( HANDLE handle);
  131. INT64 NetStream_IF_Seek( HANDLE handle, UINT64 lOffset, UINT32 dSeekCtrl );
  132. INT32 NetStream_IF_Read( HANDLE handle,
  133. UINT64 lOffset,
  134. UINT32 dReadLen,
  135. char *pBuf,
  136. UINT32 *pdRealReadLen );
  137. INT32 NetStream_IF_GetDataLen( HANDLE handle, UINT32 *pdLen );
  138. INT32 NetStream_IF_GetBufPercent( HANDLE handle, UINT32 *psdPercent );
  139. INT32 NetStream_IF_GetFileSize(HANDLE handle, UINT64 *plLen);
  140. INT32 NetStream_IF_GetDownLoadSpeed( HANDLE handle, UINT32 *pdSpeed );
  141. #ifdef LG_APP_SUPPORT
  142. INT32 NetStream_IF_GetTaskInfo( HANDLE handle, UINT32 dCmd, void *pInfo );
  143. #endif
  144. INT32 NetStream_IF_DeleteTask( HANDLE handle);
  145. INT32 NetStream_IF_RegisterPrivateDrv( NetStream_PrivateDrv_t *pDrv, UINT32 *pdType );
  146. INT32 NetStream_IF_unRegisterPrivateDrv( NetStream_PrivateDrv_t *pDrv );
  147. #endif