73 lines
2.3 KiB
C
73 lines
2.3 KiB
C
//----------------------------------------------------------------------------//
|
|
/**
|
|
******************************************************************************
|
|
* @file net_download.h
|
|
* @author
|
|
* @version
|
|
* @brief This file provides the api of net audio download.
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* Copyright(c) 2017, ZhuHai JieLi Technology Co.Ltd. All rights reserved.
|
|
******************************************************************************
|
|
*/
|
|
|
|
#ifndef NET_DOWNLOAD_H
|
|
#define NET_DOWNLOAD_H
|
|
|
|
#include "typedef.h"
|
|
|
|
struct net_download_parm {
|
|
const char *url;
|
|
u32 seek_low_range;
|
|
u32 seek_high_range;
|
|
u32 cbuf_size;
|
|
u32 timeout_millsec; //socket的连接和读数的超时
|
|
u32 read_timeout; //解码器读网络buf的超时(ms)
|
|
u8 prio;
|
|
u8 max_reconnect_cnt;
|
|
u8 save_file;
|
|
u8 no_wait_close;
|
|
const char *file_dir;
|
|
u16 dir_len; //路径长度
|
|
u8 cpu_index;
|
|
void *net_buf; //填NULL由库分配
|
|
u32 start_play_threshold;//下载缓存了多少个字节才开始播放
|
|
u32 seek_threshold;//跳转范围超过此值就直接重建链接
|
|
};
|
|
|
|
enum {
|
|
AI_SPEAK_PRIO,
|
|
AI_ALARM_PRIO,
|
|
AI_MEDIA_PRIO,
|
|
};
|
|
|
|
enum {
|
|
NET_DOWNLOAD_STATUS_NONE = 0,
|
|
NET_DOWNLOAD_CONNECT_OK = 1,
|
|
NET_DOWNLOAD_COMPLETE = 2,
|
|
NET_DOWNLOAD_CONNECT_FAIL = -1,
|
|
NET_DOWNLOAD_RECONNECT_MAX = -2,
|
|
NET_DOWNLOAD_CLOSED_MANUAL = -3,
|
|
};
|
|
|
|
int net_download_open(void **priv, struct net_download_parm *parm);
|
|
int net_download_read(void *priv, void *buf, u32 len);
|
|
int net_download_seek(void *priv, u32 offset, int orig);
|
|
int net_download_close(void *priv);
|
|
int net_download_check_ready(void *priv);
|
|
char *net_download_get_media_type(void *priv);
|
|
int net_download_get_file_len(void *priv);
|
|
u32 net_download_get_tmp_data_size(void *priv);
|
|
void net_download_set_tmp_data_threshold(void *priv, u32 threshold);
|
|
int net_download_set_pp(void *priv, u8 pp);
|
|
int net_download_set_read_timeout(void *priv, u32 timeout_ms);
|
|
void net_download_buf_inactive(void *priv);
|
|
int net_download_restart(void *priv, struct net_download_parm *parm);
|
|
void net_download_get_status(void *priv, int *download_status, int *http_err_status);
|
|
int net_download_exit_flag(void *priv);
|
|
int net_download_check_if_is_m3u8_url(void *priv);
|
|
|
|
#endif
|
|
|