MCPcopy Index your code
hub / github.com/EmulatorJS/EmulatorJS / createCueFile

Method createCueFile

data/src/GameManager.js:300–343  ·  view source on GitHub ↗
(fileNames)

Source from the content-addressed store, hash-verified

298 }
299 }
300 createCueFile(fileNames) {
301 try {
302 if (fileNames.length > 1) {
303 fileNames = fileNames.filter((item) => {
304 return this.getFileNames().includes(item.split(".").pop().toLowerCase());
305 })
306 fileNames = fileNames.sort((a, b) => {
307 if (isNaN(a.charAt()) || isNaN(b.charAt())) throw new Error("Incorrect file name format");
308 return (parseInt(a.charAt()) > parseInt(b.charAt())) ? 1 : -1;
309 })
310 }
311 } catch(e) {
312 if (fileNames.length > 1) {
313 console.warn("Could not auto-create cue file(s).");
314 return null;
315 }
316 }
317 for (let i = 0; i < fileNames.length; i++) {
318 if (fileNames[i].split(".").pop().toLowerCase() === "ccd") {
319 console.warn("Did not auto-create cue file(s). Found a ccd.");
320 return null;
321 }
322 }
323 if (fileNames.length === 0) {
324 console.warn("Could not auto-create cue file(s).");
325 return null;
326 }
327 let baseFileName = fileNames[0].split("/").pop();
328 if (baseFileName.includes(".")) {
329 baseFileName = baseFileName.substring(0, baseFileName.length - baseFileName.split(".").pop().length - 1);
330 }
331 for (let i = 0; i < fileNames.length; i++) {
332 const contents = " FILE \"" + fileNames[i] + "\" BINARY\n TRACK 01 MODE1/2352\n INDEX 01 00:00:00";
333 this.FS.writeFile("/" + baseFileName + "-" + i + ".cue", contents);
334 }
335 if (fileNames.length > 1) {
336 let contents = "";
337 for (let i = 0; i < fileNames.length; i++) {
338 contents += "/" + baseFileName + "-" + i + ".cue\n";
339 }
340 this.FS.writeFile("/" + baseFileName + ".m3u", contents);
341 }
342 return (fileNames.length === 1) ? baseFileName + "-0.cue" : baseFileName + ".m3u";
343 }
344 loadPpssppAssets() {
345 return new Promise(resolve => {
346 this.EJS.downloadFile("cores/ppsspp-assets.zip", null, false, { responseType: "arraybuffer", method: "GET" }).then((res) => {

Callers 1

gotGameDataMethod · 0.80

Calls 2

getFileNamesMethod · 0.95
writeFileMethod · 0.80

Tested by

no test coverage detected