/* ********************************************************************************************************* * 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 */