aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/JsApi.hx
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2020-06-05 16:39:39 +0300
committerRblSb <msrblsb@gmail.com>2020-06-05 16:39:39 +0300
commit8506b4edcb0a9bb1973bb38fcca4bcdc21e397c1 (patch)
treecbdc7d1d04807df61f15c6ef53b06b3616676f49 /src/client/JsApi.hx
parent2c22d551877e262740f524da6e2704bec19b46e7 (diff)
More api methods
Diffstat (limited to 'src/client/JsApi.hx')
-rw-r--r--src/client/JsApi.hx46
1 files changed, 39 insertions, 7 deletions
diff --git a/src/client/JsApi.hx b/src/client/JsApi.hx
index 071dbee..7528f42 100644
--- a/src/client/JsApi.hx
+++ b/src/client/JsApi.hx
@@ -9,15 +9,27 @@ private typedef VideoChangeFunc = (item:VideoItem)->Void;
class JsApi {
+ static var main:Main;
+ static var player:Player;
static final videoChange:Array<VideoChangeFunc> = [];
static final videoRemove:Array<VideoChangeFunc> = [];
+ public static function init(main:Main, player:Player):Void {
+ JsApi.main = main;
+ JsApi.player = player;
+ initPluginsSpace();
+ }
+
+ static function initPluginsSpace():Void {
+ final w:Dynamic = window;
+ if (w.synctube == null) w.synctube = {};
+ }
+
@:expose
static function addPlugin(id:String, ?onLoaded:()->Void):Void {
- initPluginsSpace();
addScriptToHead('/plugins/$id/index.js', () -> {
final obj = {
- api: JsApi,
+ api: Syntax.plainCode("client.JsApi"),
id: id,
path: '/plugins/$id'
}
@@ -30,11 +42,6 @@ class JsApi {
});
}
- static function initPluginsSpace():Void {
- final w:Dynamic = window;
- if (w.synctube == null) w.synctube = {};
- }
-
@:expose
public static function addScriptToHead(url:String, ?onLoaded:()->Void):Void {
var script = document.createScriptElement();
@@ -53,6 +60,31 @@ class JsApi {
}
@:expose
+ static function getTime():Float {
+ return player.getTime();
+ }
+
+ @:expose
+ static function setTime(time:Float):Void {
+ player.setTime(time);
+ }
+
+ @:expose
+ static function isLeader():Bool {
+ return main.isLeader();
+ }
+
+ @:expose
+ static function forceSyncNextTick(flag:Bool):Void {
+ main.forceSyncNextTick = flag;
+ }
+
+ @:expose
+ static function setVideoSrc(src:String):Void {
+ player.changeVideoSrc(src);
+ }
+
+ @:expose
static function notifyOnVideoChange(func:VideoChangeFunc):Void {
videoChange.push(func);
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage