156 lines
6.6 KiB
C
156 lines
6.6 KiB
C
/*
|
|
*********************************************************************************************************
|
|
* EXAMPLE CODE
|
|
*
|
|
* This file is provided as an example on how to use Micrium products.
|
|
*
|
|
* Please feel free to use any application code labeled as 'EXAMPLE CODE' in
|
|
* your application products. Example code may be used as is, in whole or in
|
|
* part, or may be used as a reference only. This file can be modified as
|
|
* required to meet the end-product requirements.
|
|
*
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*
|
|
* HTTP CLIENT SOUNDCLOUD SOURCE CODE
|
|
*
|
|
* Filename : soundcloud.h
|
|
* Version : V3.01.00
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* MODULE
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#ifndef SOUNDCLOUD_MODULE_PRESENT
|
|
#define SOUNDCLOUD_MODULE_PRESENT
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* INCLUDE FILES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#include "http-c.h"
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* EXTERNS
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#ifdef SOUNDCLOUD_MODULE
|
|
#define SOUNDCLOUD_EXT
|
|
#else
|
|
#define SOUNDCLOUD_EXT extern
|
|
#endif
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* DEFAULT CONFIGURATION
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
void SoundCloudTask_Init(void);
|
|
|
|
void SoundCloudTask(void *p_data);
|
|
|
|
|
|
typedef struct stream_buffer {
|
|
CPU_INT08U *WrAddress;
|
|
CPU_INT08U *Start;
|
|
CPU_BOOLEAN DecodingStarted;
|
|
void *p_msg;
|
|
} STREAM_BUFFER;
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* DEFINES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
|
|
#define SOUNDCLOUD_CFG_REQ_NBR_MAX 2u
|
|
|
|
#define SOUNDCLOUD_CFG_CONN_NBR_MAX 3u
|
|
#define SOUNDCLOUD_CFG_CONN_BUF_SIZE 5*1460u
|
|
|
|
#define SOUNDCLOUD_CFG_HDR_NBR_MAX 10u
|
|
#define SOUNDCLOUD_CFG_HDR_VAL_LEN_MAX 300u
|
|
|
|
#define SOUNDCLOUD_URL_LEN_MAX 100u
|
|
|
|
#define SOUNDCLOUD_CONN_RETRY_MAX 5
|
|
|
|
|
|
#define SOUNDCLOUD_API_HOSTNAME "api.soundcloud.com"
|
|
|
|
#define SOUNDCLOUD_URL_TRACKS "/tracks/"
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* GLOBAL VARIABLES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
SOUNDCLOUD_EXT CPU_INT16U SoundCloud_Buf[40];
|
|
|
|
SOUNDCLOUD_EXT STREAM_BUFFER stream_buff;
|
|
|
|
SOUNDCLOUD_EXT HTTPc_CONN_OBJ SoundCloud_ConnTbl[SOUNDCLOUD_CFG_CONN_NBR_MAX];
|
|
SOUNDCLOUD_EXT HTTPc_REQ_OBJ SoundCloud_ReqTbl[SOUNDCLOUD_CFG_REQ_NBR_MAX];
|
|
SOUNDCLOUD_EXT HTTPc_RESP_OBJ SoundCloud_RespTbl[SOUNDCLOUD_CFG_REQ_NBR_MAX];
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* FUNCTION PROTOTYPES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
CPU_BOOLEAN SoundCloud_GetStream(CPU_CHAR *p_url);
|
|
|
|
CPU_BOOLEAN SoundCloud_PlayStream(CPU_CHAR *p_host,
|
|
CPU_CHAR *p_url,
|
|
CPU_CHAR *p_buf);
|
|
|
|
CPU_INT32U SoundCloud_MP3Decode(void);
|
|
|
|
void SoundCloud_PlaytTrack(CPU_CHAR *track_id,
|
|
CPU_CHAR *client_id);
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* MODULE END
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#endif /* SOUNDCLOUD_MODULE_PRESENT */
|