From d3f881a0e331d040eaa374153a770aeb7fc74921 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Sat, 28 Sep 2019 15:09:48 -0700 Subject: [PATCH] Upgrade pldir to 5.66. Adds more methods --- .../maki-interpreter/objectData/pldir.json | 256 ++++++++++++++++++ .../tools/extract-object-types.js | 4 +- .../maki-interpreter/tools/parse-mi.test.js | 4 +- modern/src/runtime/PlDir.ts | 30 ++ 4 files changed, 290 insertions(+), 4 deletions(-) diff --git a/modern/src/maki-interpreter/objectData/pldir.json b/modern/src/maki-interpreter/objectData/pldir.json index 125a5359..d96969fa 100644 --- a/modern/src/maki-interpreter/objectData/pldir.json +++ b/modern/src/maki-interpreter/objectData/pldir.json @@ -1,11 +1,267 @@ { + "345BEEBC0229492190BE6CB6A49A79D9": { + "parent": "Object", + "functions": [ + { + "result": "int", + "name": "getNumTracks", + "parameters": [] + }, + { + "result": "int", + "name": "getCurrentIndex", + "parameters": [] + }, + { + "result": "int", + "name": "getNumSelectedTracks", + "parameters": [] + }, + { + "result": "int", + "name": "getNextSelectedTrack", + "parameters": [ + [ + "int", + "i" + ] + ] + }, + { + "result": "", + "name": "showCurrentlyPlayingTrack", + "parameters": [] + }, + { + "result": "", + "name": "showTrack", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "", + "name": "enqueueFile", + "parameters": [ + [ + "string", + "file" + ] + ] + }, + { + "result": "", + "name": "clear", + "parameters": [] + }, + { + "result": "", + "name": "removeTrack", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "", + "name": "swapTracks", + "parameters": [ + [ + "int", + "item1" + ], + [ + "int", + "item2" + ] + ] + }, + { + "result": "", + "name": "moveUp", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "", + "name": "moveDown", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "", + "name": "moveTo", + "parameters": [ + [ + "int", + "item" + ], + [ + "int", + "pos" + ] + ] + }, + { + "result": "", + "name": "playTrack", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "int", + "name": "getRating", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "", + "name": "setRating", + "parameters": [ + [ + "int", + "item" + ], + [ + "int", + "rating" + ] + ] + }, + { + "result": "String", + "name": "getTitle", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "String", + "name": "getLength", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "String", + "name": "getMetaData", + "parameters": [ + [ + "int", + "item" + ], + [ + "String", + "metadatastring" + ] + ] + }, + { + "result": "String", + "name": "getFileName", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "", + "name": "onPleditModified", + "parameters": [] + } + ], + "name": "PlEdit" + }, "61A7ABAD7D7941f6B1D0E1808603A4F4": { "parent": "Object", "functions": [ + { + "result": "int", + "name": "getNumItems", + "parameters": [] + }, + { + "result": "String", + "name": "getItemName", + "parameters": [ + [ + "int", + "item" + ] + ] + }, { "result": "", "name": "showCurrentlyPlayingEntry", "parameters": [] + }, + { + "result": "", + "name": "refresh", + "parameters": [] + }, + { + "result": "", + "name": "renameItem", + "parameters": [ + [ + "int", + "item" + ], + [ + "String", + "name" + ] + ] + }, + { + "result": "", + "name": "enqueueItem", + "parameters": [ + [ + "int", + "item" + ] + ] + }, + { + "result": "", + "name": "playItem", + "parameters": [ + [ + "int", + "item" + ] + ] } ], "name": "PlDir" diff --git a/modern/src/maki-interpreter/tools/extract-object-types.js b/modern/src/maki-interpreter/tools/extract-object-types.js index e4d0fc47..8bf99d59 100644 --- a/modern/src/maki-interpreter/tools/extract-object-types.js +++ b/modern/src/maki-interpreter/tools/extract-object-types.js @@ -4,12 +4,12 @@ import fs from "fs"; const compilers = path.join(__dirname, "../../../resources/maki_compiler/"); -const lib30full = path.join(compilers, "v1.1.1.b3 (Winamp 3.0 full)/Lib/"); const libUnknown = path.join(compilers, "Unknown (Winamp 5.03)/lib/"); const lib502 = path.join(compilers, "v1.1.13 (Winamp 5.02)/lib/"); +const lib566 = path.join(compilers, "v1.2.0 (Winamp 5.66)/lib/"); const files = { - pldir: path.join(lib30full, "pldir.mi"), + pldir: path.join(lib566, "pldir.mi"), config: path.join(libUnknown, "config.mi"), std: path.join(lib502, "std.mi"), }; diff --git a/modern/src/maki-interpreter/tools/parse-mi.test.js b/modern/src/maki-interpreter/tools/parse-mi.test.js index 5a48df4f..67273d20 100644 --- a/modern/src/maki-interpreter/tools/parse-mi.test.js +++ b/modern/src/maki-interpreter/tools/parse-mi.test.js @@ -10,8 +10,8 @@ import path from "path"; const compilers = path.join(__dirname, "../../../resources/maki_compiler/"); -const lib30full = path.join(compilers, "v1.1.1.b3 (Winamp 3.0 full)/Lib/"); const lib502 = path.join(compilers, "v1.1.13 (Winamp 5.02)/lib/"); +const lib566 = path.join(compilers, "v1.2.0 (Winamp 5.66)/lib/"); const libUnknown = path.join(compilers, "Unknown (Winamp 5.03)/lib/"); test("std.mi", () => { @@ -25,6 +25,6 @@ test("config.mi", () => { }); test("pldir.mi", () => { - const parsedObjects = parseFile(path.join(lib30full, "pldir.mi")); + const parsedObjects = parseFile(path.join(lib566, "pldir.mi")); expect(parsedObjects).toEqual(pldir); }); diff --git a/modern/src/runtime/PlDir.ts b/modern/src/runtime/PlDir.ts index cf258770..c8d97542 100644 --- a/modern/src/runtime/PlDir.ts +++ b/modern/src/runtime/PlDir.ts @@ -16,4 +16,34 @@ export default class PlDir extends MakiObject { Utils.unimplementedWarning("showcurrentlyplayingentry"); return; } + + getnumitems() { + Utils.unimplementedWarning("getnumitems"); + return; + } + + getitemname(item: number) { + Utils.unimplementedWarning("getitemname"); + return; + } + + refresh() { + Utils.unimplementedWarning("refresh"); + return; + } + + renameitem(item: number, name: string) { + Utils.unimplementedWarning("renameitem"); + return; + } + + enqueueitem(item: number) { + Utils.unimplementedWarning("enqueueitem"); + return; + } + + playitem(item: number) { + Utils.unimplementedWarning("playitem"); + return; + } }