Stub out more Maki classes/methods

This commit is contained in:
Jordan Eldredge 2021-06-25 13:25:41 -07:00
parent fd93a84821
commit b2989778ba
10 changed files with 115 additions and 4 deletions

View file

@ -0,0 +1,8 @@
import Layer from "./Layer";
export default class AnimatedLayer extends Layer {
getlength(): number {
return 10;
}
gotoframe(framenum: number) {}
}

View file

@ -19,6 +19,10 @@ export default class Button extends GuiObj {
return true;
}
getactivated(): boolean {
return true;
}
getDebugDom(): HTMLDivElement {
const div = super.getDebugDom();
div.setAttribute("data-obj-name", "Button");
@ -42,7 +46,6 @@ export default class Button extends GuiObj {
extern Button.onRightClick();
extern Button.setActivated(Boolean onoff);
extern Button.setActivatedNoCallback(Boolean onoff);
extern Boolean Button.getActivated();
extern Button.leftClick();
extern Button.rightClick();e
*/

View file

@ -20,6 +20,15 @@ export default class Layer extends GuiObj {
return true;
}
/**
* Set the alphablending value of the object.
* Value ranges from 0 (fully transparent) to
* 255 (fully opaque).
*
* @param alpha The alpha value.
**/
setalpha(alpha: number) {}
getDebugDom(): HTMLDivElement {
const div = super.getDebugDom();
div.setAttribute("data-obj-name", "Layer");

View file

@ -0,0 +1,5 @@
import BaseObject from "./BaseObject";
export default class MakiMap extends BaseObject {
loadmap(bitmapId: string) {}
}

View file

@ -1,4 +1,5 @@
import GuiObj from "./GuiObj";
import { VM } from "./VM";
// http://wiki.winamp.com/wiki/XML_GUI_Objects#.3Cslider.2F.3E_.26_.3CWasabi:HSlider.2F.3E_.26_.3CWasabi:VSlider.2F.3E
export default class Slider extends GuiObj {
@ -13,12 +14,20 @@ export default class Slider extends GuiObj {
return true;
}
// extern Int Slider.getPosition();
getposition(): number {
return 0;
}
// extern Slider.onPostedPosition(int newpos);
onsetposition(newPos: number) {
VM.dispatch(this, "onsetposition", [{ type: "INT", value: newPos }]);
}
/*
extern Slider.onSetPosition(int newpos);
extern Slider.onPostedPosition(int newpos);
extern Slider.onSetFinalPosition(int pos);
extern Slider.setPosition(int pos);
extern Int Slider.getPosition();
extern Slider.lock(); // locks descendant core collbacks
extern Slider.unlock(); // unloads the
*/

View file

@ -153,6 +153,28 @@ export default class SystemObject extends BaseObject {
getviewportheight() {
return window.document.documentElement.clientHeight;
}
/**
* Get the value of an equalizer band. The bands
* are numbered from 0 (60Hz) to 9 (16kHz). The return
* value range is from -127 to +127.
*
* @ret The value of the band.
* @param band The eq band number you want to get.
*/
geteqband(band: number) {
return 100;
}
/**
* Get the equalizer state. 0 for off, 1 for on.
* Remember to compare return value to true and false.
*
* @ret The EQ's state.
*/
geteq(): number {
return 1;
}
}
function dumpScriptDebug(script: ParsedMaki) {

View file

@ -87,12 +87,19 @@ offsety - (int) Extra pixels to be added to or subtracted from the calculated x
return "Niente da Caprie (3";
case "songinfo":
return "112kbps stereo 44.";
case "componentbucket":
return "componentbucket";
default:
throw new Error(`Unknown text display name: "${this._display}".`);
}
return this._display ?? this._text;
}
// extern Text.setText(String txt); // changes the display/text="something" param
settext(txt: string) {
this._text = txt;
}
getDebugDom(): HTMLDivElement {
const div = super.getDebugDom();
div.innerText = this.getText();
@ -115,7 +122,6 @@ offsety - (int) Extra pixels to be added to or subtracted from the calculated x
/*
extern Text.setText(String txt); // changes the display/text="something" param
extern Text.setAlternateText(String txt); // overrides the display/text parameter with a custom string, set "" to cancel
extern String Text.getText();
extern int Text.getTextWidth();

View file

@ -0,0 +1,19 @@
import BaseObject from "./BaseObject";
export default class Timer extends BaseObject {
setdelay(millisec: number) {}
stop() {
//TODO
}
start() {
//TODO
}
/*
extern Timer.onTimer();
extern Timer.setDelay(int millisec);
extern Int Timer.getDelay();
extern Timer.isRunning();
extern Int Timer.getSkipped();
*/
}

View file

@ -0,0 +1,12 @@
import GuiObj from "./GuiObj";
export default class Vis extends GuiObj {
setmode(mode: number) {
// TODO
}
/*extern Vis.onFrame();
extern Vis.setRealtime(Boolean onoff);
extern Boolean Vis.getRealtime();
extern Int Vis.getMode();
extern Vis.nextMode();*/
}

View file

@ -4,15 +4,33 @@ import SystemObject from "./SystemObject";
import Container from "./Container";
import Layout from "./Layout";
import Layer from "./Layer";
import AnimatedLayer from "./AnimatedLayer";
import PopupMenu from "./PopupMenu";
import ToggleButton from "./ToggleButton";
import Status from "./Status";
import Text from "./Text";
import Group from "./Group";
import MakiMap from "./MakiMap";
import Timer from "./Timer";
import Slider from "./Slider";
import Vis from "./Vis";
// TODO: We could write a test using the data in object.ts which confirms that
// this is complete.
export function classResolver(guid: string): any {
switch (guid) {
case "ce4f97be4e1977b098d45699276cc933":
return Vis;
case "62b65e3f408d375e8176ea8d771bb94a":
return Slider;
case "6b64cd274c4b5a26a7e6598c3a49f60c":
return AnimatedLayer;
case "5d0c5bb64b1f7de1168d0fa741199459":
return Timer;
case "3860366542a7461b3fd875aa73bf6766":
return MakiMap;
case "45be95e5419120725fbb5c93fd17f1f9":
return Group;
case "d6f50f6449b793fa66baf193983eaeef":
return SystemObject;
case "e90dc47b4ae7840d0b042cb0fcf775d2":