diff options
author | Brian Picciano <mediocregopher@gmail.com> | 2020-04-26 18:15:15 -0600 |
---|---|---|
committer | Brian Picciano <mediocregopher@gmail.com> | 2020-04-26 18:15:15 -0600 |
commit | 6c4da7fac6ea909adac1be00e238d213e84c0ec6 (patch) | |
tree | 5d1de0a1ef2aae046093fed2fe2c9c83a1f9448d /assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js | |
parent | 40ce9c4b7e6b2c04e84db88c17a5bada40084974 (diff) |
add trading in the rain post
Diffstat (limited to 'assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js')
-rw-r--r-- | assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js b/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js new file mode 100644 index 0000000..b5a59ce --- /dev/null +++ b/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js @@ -0,0 +1,61 @@ +//https://github.com/davidchambers/Base64.js + +;(function () { + var object = typeof exports != 'undefined' ? exports : this; // #8: web workers + var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + + function InvalidCharacterError(message) { + this.message = message; + } + InvalidCharacterError.prototype = new Error; + InvalidCharacterError.prototype.name = 'InvalidCharacterError'; + + // encoder + // [https://gist.github.com/999166] by [https://github.com/nignag] + object.btoa || ( + object.btoa = function (input) { + for ( + // initialize result and counter + var block, charCode, idx = 0, map = chars, output = ''; + // if the next input index does not exist: + // change the mapping table to "=" + // check if d has no fractional digits + input.charAt(idx | 0) || (map = '=', idx % 1); + // "8 - idx % 1 * 8" generates the sequence 2, 4, 6, 8 + output += map.charAt(63 & block >> 8 - idx % 1 * 8) + ) { + charCode = input.charCodeAt(idx += 3/4); + if (charCode > 0xFF) { + throw new InvalidCharacterError("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range."); + } + block = block << 8 | charCode; + } + return output; + }); + + // decoder + // [https://gist.github.com/1020396] by [https://github.com/atk] + object.atob || ( + object.atob = function (input) { + input = input.replace(/=+$/, '') + if (input.length % 4 == 1) { + throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded."); + } + for ( + // initialize result and counters + var bc = 0, bs, buffer, idx = 0, output = ''; + // get next character + buffer = input.charAt(idx++); + // character found in table? initialize bit storage and add its ascii value; + ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, + // and if not first of each 4 characters, + // convert the first 8 bits to one ascii character + bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0 + ) { + // try to find character in table (0-63, not found => -1) + buffer = chars.indexOf(buffer); + } + return output; + }); + +}());
\ No newline at end of file |