David Fletcher / Mbed 2 deprecated cc3100_Test_websock_Camera_CM4F

Dependencies:   mbed

Committer:
dflet
Date:
Wed Jun 24 09:54:16 2015 +0000
Revision:
0:50cedd586816
First commit work in progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1 //*****************************************************************************
dflet 0:50cedd586816 2 // Copyright (C) 2014 Texas Instruments Incorporated
dflet 0:50cedd586816 3 //
dflet 0:50cedd586816 4 // All rights reserved. Property of Texas Instruments Incorporated.
dflet 0:50cedd586816 5 // Restricted rights to use, duplicate or disclose this code are
dflet 0:50cedd586816 6 // granted through contract.
dflet 0:50cedd586816 7 // The program may not be used without the written permission of
dflet 0:50cedd586816 8 // Texas Instruments Incorporated or against the terms and conditions
dflet 0:50cedd586816 9 // stipulated in the agreement under which this program has been supplied,
dflet 0:50cedd586816 10 // and under no circumstances can it be used with non-TI connectivity device.
dflet 0:50cedd586816 11 //
dflet 0:50cedd586816 12 //*****************************************************************************
dflet 0:50cedd586816 13
dflet 0:50cedd586816 14 /**
dflet 0:50cedd586816 15 * @defgroup base64_api
dflet 0:50cedd586816 16 *
dflet 0:50cedd586816 17 * @{
dflet 0:50cedd586816 18 */
dflet 0:50cedd586816 19 #include "base64.h"
dflet 0:50cedd586816 20
dflet 0:50cedd586816 21 static const char g_ccB64Tbl[65] =
dflet 0:50cedd586816 22 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
dflet 0:50cedd586816 23
dflet 0:50cedd586816 24
dflet 0:50cedd586816 25 void ConvertToBase64(char *pcOutStr, const char *pccInStr, int iLen)
dflet 0:50cedd586816 26 {
dflet 0:50cedd586816 27 const char* pccIn = (const char *)pccInStr;
dflet 0:50cedd586816 28 char* pcOut;
dflet 0:50cedd586816 29 int iCount;
dflet 0:50cedd586816 30 pcOut = pcOutStr;
dflet 0:50cedd586816 31
dflet 0:50cedd586816 32 //Loop in for Multiple of 24Bits and Convert to Base 64
dflet 0:50cedd586816 33 for (iCount = 0; iLen - iCount >=3 ; iCount += 3,pccIn += 3)
dflet 0:50cedd586816 34 {
dflet 0:50cedd586816 35 *pcOut++ = g_ccB64Tbl[pccIn[0] >> 2];
dflet 0:50cedd586816 36 *pcOut++ = g_ccB64Tbl[((pccIn[0] & 0x03)<<4) | (pccIn[1] >> 4)];
dflet 0:50cedd586816 37 *pcOut++ = g_ccB64Tbl[((pccIn[1] & 0x0F)<<2) | (pccIn[2] >> 6)];
dflet 0:50cedd586816 38 *pcOut++ = g_ccB64Tbl[pccIn[2] & 0x3f];
dflet 0:50cedd586816 39
dflet 0:50cedd586816 40 }
dflet 0:50cedd586816 41
dflet 0:50cedd586816 42 //Check if String is not multiple of 3 Bytes
dflet 0:50cedd586816 43 if (iCount != iLen)
dflet 0:50cedd586816 44 {
dflet 0:50cedd586816 45
dflet 0:50cedd586816 46 unsigned char ucLastByte;
dflet 0:50cedd586816 47
dflet 0:50cedd586816 48 *pcOut++ = g_ccB64Tbl[pccIn[0] >> 2];
dflet 0:50cedd586816 49 ucLastByte = ((pccIn[0] & 0x03)<<4);
dflet 0:50cedd586816 50
dflet 0:50cedd586816 51
dflet 0:50cedd586816 52 if (iLen - iCount > 1)
dflet 0:50cedd586816 53 {
dflet 0:50cedd586816 54 //If there are 2 Extra Bytes
dflet 0:50cedd586816 55 ucLastByte |= (pccIn[1] >> 4);
dflet 0:50cedd586816 56 *pcOut++ = g_ccB64Tbl[ucLastByte];
dflet 0:50cedd586816 57 *pcOut++ = g_ccB64Tbl[((pccIn[1] & 0x0F)<<2)];
dflet 0:50cedd586816 58 }
dflet 0:50cedd586816 59 else
dflet 0:50cedd586816 60 {
dflet 0:50cedd586816 61 //If there is only 1 Extra Byte
dflet 0:50cedd586816 62 *pcOut++ = g_ccB64Tbl[ucLastByte];
dflet 0:50cedd586816 63 *pcOut++ = '=';
dflet 0:50cedd586816 64 }
dflet 0:50cedd586816 65
dflet 0:50cedd586816 66 *pcOut++ = '=';
dflet 0:50cedd586816 67 }
dflet 0:50cedd586816 68
dflet 0:50cedd586816 69 *pcOut = '\0';
dflet 0:50cedd586816 70
dflet 0:50cedd586816 71 }
dflet 0:50cedd586816 72
dflet 0:50cedd586816 73 /// @}
dflet 0:50cedd586816 74
dflet 0:50cedd586816 75