#include "base64.h"
-static char base64_chars[] =
+static const char base64_chars[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static int pos(char c)
{
- char *p;
- for (p = base64_chars; *p; p++)
- if (*p == c)
- return p - base64_chars;
- return -1;
+ if (c >= 'A' && c <= 'Z') return c - 'A' + 0;
+ if (c >= 'a' && c <= 'z') return c - 'a' + 26;
+ if (c >= '0' && c <= '9') return c - '0' + 52;
+ if (c == '+') return 62;
+ if (c == '/') return 63;
}
int pa_base64_encode(const void *data, int size, char **str)
/* Now write the actual samples */
bp = b + header_size;
size = bpos = 0;
- bit_writer(&bp,&bpos,&size,1,3); // channel=1, stereo
- bit_writer(&bp,&bpos,&size,0,4); // unknown
- bit_writer(&bp,&bpos,&size,0,8); // unknown
- bit_writer(&bp,&bpos,&size,0,4); // unknown
- bit_writer(&bp,&bpos,&size,1,1); // hassize
- bit_writer(&bp,&bpos,&size,0,2); // unused
- bit_writer(&bp,&bpos,&size,1,1); // is-not-compressed
+ bit_writer(&bp,&bpos,&size,1,3); /* channel=1, stereo */
+ bit_writer(&bp,&bpos,&size,0,4); /* unknown */
+ bit_writer(&bp,&bpos,&size,0,8); /* unknown */
+ bit_writer(&bp,&bpos,&size,0,4); /* unknown */
+ bit_writer(&bp,&bpos,&size,1,1); /* hassize */
+ bit_writer(&bp,&bpos,&size,0,2); /* unused */
+ bit_writer(&bp,&bpos,&size,1,1); /* is-not-compressed */
/* size of data, integer, big endian */
bit_writer(&bp,&bpos,&size,(bsize>>24)&0xff,8);