MCPcopy Create free account
hub / github.com/diffusionstudio/vits-web / stringToUTF8Array

Function stringToUTF8Array

src/piper.js:1329–1361  ·  view source on GitHub ↗
(str, heap, outIdx, maxBytesToWrite)

Source from the content-addressed store, hash-verified

1327 return len;
1328 };
1329 var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
1330 if (!(maxBytesToWrite > 0)) return 0;
1331 var startIdx = outIdx;
1332 var endIdx = outIdx + maxBytesToWrite - 1;
1333 for (var i = 0; i < str.length; ++i) {
1334 var u = str.charCodeAt(i);
1335 if (u >= 55296 && u <= 57343) {
1336 var u1 = str.charCodeAt(++i);
1337 u = (65536 + ((u & 1023) << 10)) | (u1 & 1023);
1338 }
1339 if (u <= 127) {
1340 if (outIdx >= endIdx) break;
1341 heap[outIdx++] = u;
1342 } else if (u <= 2047) {
1343 if (outIdx + 1 >= endIdx) break;
1344 heap[outIdx++] = 192 | (u >> 6);
1345 heap[outIdx++] = 128 | (u & 63);
1346 } else if (u <= 65535) {
1347 if (outIdx + 2 >= endIdx) break;
1348 heap[outIdx++] = 224 | (u >> 12);
1349 heap[outIdx++] = 128 | ((u >> 6) & 63);
1350 heap[outIdx++] = 128 | (u & 63);
1351 } else {
1352 if (outIdx + 3 >= endIdx) break;
1353 heap[outIdx++] = 240 | (u >> 18);
1354 heap[outIdx++] = 128 | ((u >> 12) & 63);
1355 heap[outIdx++] = 128 | ((u >> 6) & 63);
1356 heap[outIdx++] = 128 | (u & 63);
1357 }
1358 }
1359 heap[outIdx] = 0;
1360 return outIdx - startIdx;
1361 };
1362 function intArrayFromString(stringy, dontAddNull, length) {
1363 var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
1364 var u8array = new Array(len);

Callers 3

intArrayFromStringFunction · 0.85
writeFileFunction · 0.85
stringToUTF8Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected