mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-19 17:43:50 +00:00
Stub out more Maki classes/methods
This commit is contained in:
parent
fd93a84821
commit
b2989778ba
10 changed files with 115 additions and 4 deletions
8
packages/webamp-modern-2/src/skin/AnimatedLayer.ts
Normal file
8
packages/webamp-modern-2/src/skin/AnimatedLayer.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import Layer from "./Layer";
|
||||
|
||||
export default class AnimatedLayer extends Layer {
|
||||
getlength(): number {
|
||||
return 10;
|
||||
}
|
||||
gotoframe(framenum: number) {}
|
||||
}
|
||||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
5
packages/webamp-modern-2/src/skin/MakiMap.ts
Normal file
5
packages/webamp-modern-2/src/skin/MakiMap.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import BaseObject from "./BaseObject";
|
||||
|
||||
export default class MakiMap extends BaseObject {
|
||||
loadmap(bitmapId: string) {}
|
||||
}
|
||||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
19
packages/webamp-modern-2/src/skin/Timer.ts
Normal file
19
packages/webamp-modern-2/src/skin/Timer.ts
Normal 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();
|
||||
*/
|
||||
}
|
||||
12
packages/webamp-modern-2/src/skin/Vis.ts
Normal file
12
packages/webamp-modern-2/src/skin/Vis.ts
Normal 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();*/
|
||||
}
|
||||
|
|
@ -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":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue