(fileNames)
| 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) => { |
no test coverage detected