@supraio/client-daemon-js 0.0.0-master.312 → 0.0.0-master.314

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -64090,7 +64090,7 @@ $packages["github.com/supraio/client-daemon/pkg/config"] = (function() {
64090
64090
  defaultUsername = "unknown";
64091
64091
  };
64092
64092
  ParseConfig = function() {
64093
- var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, cfg, clientBaseDir, currentUser, err, err$1, homeDir, screenWindowCmd, $s, $r, $c} = $restore(this, {});
64093
+ var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, cfg, clientBaseDir, currentUser, err, err$1, homeDir, screenWindowCmd, $s, $r, $c} = $restore(this, {});
64094
64094
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
64095
64095
  cfg = [cfg];
64096
64096
  cfg[0] = new Config.ptr("", "", "", "", "", new time.Duration(0, 0), "");
@@ -64114,6 +64114,13 @@ $packages["github.com/supraio/client-daemon/pkg/config"] = (function() {
64114
64114
  _arg$1 = _r$2;
64115
64115
  _r$3 = _r$1.Load(_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
64116
64116
  err = _r$3;
64117
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
64118
+ _tmp$2 = $clone(cfg[0], Config);
64119
+ _tmp$3 = err;
64120
+ Config.copy(cfg[0], _tmp$2);
64121
+ err = _tmp$3;
64122
+ $s = -1; return [cfg[0], err];
64123
+ }
64117
64124
  if (cfg[0].RunDir === "") {
64118
64125
  cfg[0].RunDir = clientBaseDir + "/run";
64119
64126
  }
@@ -64148,10 +64155,10 @@ $packages["github.com/supraio/client-daemon/pkg/config"] = (function() {
64148
64155
  currentUser = _tuple$1[0];
64149
64156
  err$1 = _tuple$1[1];
64150
64157
  if (!($interfaceIsEqual(err$1, $ifaceNil))) {
64151
- _tmp$2 = $clone(cfg[0], Config);
64152
- _tmp$3 = err$1;
64153
- Config.copy(cfg[0], _tmp$2);
64154
- err = _tmp$3;
64158
+ _tmp$4 = $clone(cfg[0], Config);
64159
+ _tmp$5 = err$1;
64160
+ Config.copy(cfg[0], _tmp$4);
64161
+ err = _tmp$5;
64155
64162
  $s = -1; return [cfg[0], err];
64156
64163
  }
64157
64164
  cfg[0].Username = currentUser.Username;
@@ -64165,12 +64172,12 @@ $packages["github.com/supraio/client-daemon/pkg/config"] = (function() {
64165
64172
  }
64166
64173
  _r$5 = makeDirs($clone(cfg[0], Config)); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
64167
64174
  err = _r$5;
64168
- _tmp$4 = $clone(cfg[0], Config);
64169
- _tmp$5 = err;
64170
- Config.copy(cfg[0], _tmp$4);
64171
- err = _tmp$5;
64175
+ _tmp$6 = $clone(cfg[0], Config);
64176
+ _tmp$7 = err;
64177
+ Config.copy(cfg[0], _tmp$6);
64178
+ err = _tmp$7;
64172
64179
  $s = -1; return [cfg[0], err];
64173
- /* */ } return; } var $f = {$blk: ParseConfig, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, cfg, clientBaseDir, currentUser, err, err$1, homeDir, screenWindowCmd, $s};return $f;
64180
+ /* */ } return; } var $f = {$blk: ParseConfig, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, cfg, clientBaseDir, currentUser, err, err$1, homeDir, screenWindowCmd, $s};return $f;
64174
64181
  };
64175
64182
  $pkg.ParseConfig = ParseConfig;
64176
64183
  getConfigFilePaths = function(clientBaseDir) {
@@ -188891,44 +188898,40 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
188891
188898
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188892
188899
  d = this;
188893
188900
  frameType = "delta";
188894
- /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
188901
+ frameType = "key";
188902
+ /* */ if (d.jsVideoDecoder === ptrType.nil) { $s = 1; continue; }
188895
188903
  /* */ $s = 2; continue;
188896
- /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
188897
- frameType = "key";
188898
- /* */ if (d.jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
188899
- /* */ $s = 4; continue;
188900
- /* if (d.jsVideoDecoder === ptrType.nil) { */ case 3:
188901
- $r = d.configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188902
- /* } */ case 4:
188904
+ /* if (d.jsVideoDecoder === ptrType.nil) { */ case 1:
188905
+ $r = d.configure(nal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188903
188906
  /* } */ case 2:
188904
- /* */ if (d.jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
188905
- /* */ $s = 7; continue;
188906
- /* if (d.jsVideoDecoder === ptrType.nil) { */ case 6:
188907
- _r = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188907
+ /* */ if (d.jsVideoDecoder === ptrType.nil) { $s = 4; continue; }
188908
+ /* */ $s = 5; continue;
188909
+ /* if (d.jsVideoDecoder === ptrType.nil) { */ case 4:
188910
+ _r = errs.Errorf("VideoDecoder was not properly configured", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188908
188911
  $24r = _r;
188909
- $s = 9; case 9: return $24r;
188910
- /* } */ case 7:
188911
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188912
+ $s = 7; case 7: return $24r;
188913
+ /* } */ case 5:
188914
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188912
188915
  chunkOpts = $clone(_r$1, js.Value);
188913
- _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188916
+ _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188914
188917
  frameData = $clone(_r$2, js.Value);
188915
188918
  $clone(chunkOpts, js.Value).Set("type", new $String(frameType));
188916
188919
  $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData));
188917
188920
  $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0));
188918
- _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
188921
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
188919
188922
  chunk = $clone(_r$3, js.Value);
188920
- _r$4 = d.jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
188923
+ _r$4 = d.jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
188921
188924
  errDec = _r$4;
188922
- /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 14; continue; }
188923
- /* */ $s = 15; continue;
188924
- /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 14:
188925
- /* */ if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 16; continue; }
188926
- /* */ $s = 17; continue;
188927
- /* if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 16:
188928
- $r = d.releaseVideoDecoder(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188929
- /* } */ case 17:
188925
+ /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 12; continue; }
188926
+ /* */ $s = 13; continue;
188927
+ /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 12:
188928
+ /* */ if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 14; continue; }
188929
+ /* */ $s = 15; continue;
188930
+ /* if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 14:
188931
+ $r = d.releaseVideoDecoder(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188932
+ /* } */ case 15:
188930
188933
  $s = -1; return errDec;
188931
- /* } */ case 15:
188934
+ /* } */ case 13:
188932
188935
  $s = -1; return $ifaceNil;
188933
188936
  /* */ } return; } var $f = {$blk: WebCodecsDecoder.ptr.prototype.Write, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, chunk, chunkOpts, d, errDec, frameData, frameType, nal, $s};return $f;
188934
188937
  };
@@ -191184,39 +191187,357 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/h264decoder"] = (functio
191184
191187
  $pkg.$init = $init;
191185
191188
  return $pkg;
191186
191189
  })();
191190
+ $packages["github.com/supraio/client-daemon/pkg/videostream"] = (function() {
191191
+ var $pkg = {}, $init, UnavailableVideoStreamer, Protocol, ptrType, videoStreamer, Get, Register;
191192
+ UnavailableVideoStreamer = $pkg.UnavailableVideoStreamer = $newType(0, $kindStruct, "videostream.UnavailableVideoStreamer", true, "github.com/supraio/client-daemon/pkg/videostream", true, function() {
191193
+ this.$val = this;
191194
+ if (arguments.length === 0) {
191195
+ return;
191196
+ }
191197
+ });
191198
+ Protocol = $pkg.Protocol = $newType(1, $kindUint8, "videostream.Protocol", true, "github.com/supraio/client-daemon/pkg/videostream", true, null);
191199
+ ptrType = $ptrType(UnavailableVideoStreamer);
191200
+ Get = function() {
191201
+ if ($interfaceIsEqual(videoStreamer, $ifaceNil)) {
191202
+ return new UnavailableVideoStreamer.ptr();
191203
+ }
191204
+ return videoStreamer;
191205
+ };
191206
+ $pkg.Get = Get;
191207
+ Register = function(newVideoStreamer) {
191208
+ var newVideoStreamer;
191209
+ if (!($interfaceIsEqual(videoStreamer, $ifaceNil))) {
191210
+ $panic(new $String("VideoStreamer already registered"));
191211
+ }
191212
+ videoStreamer = newVideoStreamer;
191213
+ };
191214
+ $pkg.Register = Register;
191215
+ UnavailableVideoStreamer.ptr.prototype.IsAvailable = function() {
191216
+ var u;
191217
+ u = this;
191218
+ return false;
191219
+ };
191220
+ UnavailableVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
191221
+ UnavailableVideoStreamer.ptr.prototype.GetProtocol = function() {
191222
+ var u;
191223
+ u = this;
191224
+ $panic(new $String("not implemented GetProtocol"));
191225
+ };
191226
+ UnavailableVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
191227
+ UnavailableVideoStreamer.ptr.prototype.GetPort = function() {
191228
+ var u;
191229
+ u = this;
191230
+ $panic(new $String("not implemented GetPort"));
191231
+ };
191232
+ UnavailableVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
191233
+ UnavailableVideoStreamer.ptr.prototype.GetHostname = function() {
191234
+ var u;
191235
+ u = this;
191236
+ $panic(new $String("not implemented GetHostname"));
191237
+ };
191238
+ UnavailableVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
191239
+ ptrType.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}];
191240
+ UnavailableVideoStreamer.init("", []);
191241
+ $init = function() {
191242
+ $pkg.$init = function() {};
191243
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191244
+ videoStreamer = $ifaceNil;
191245
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191246
+ };
191247
+ $pkg.$init = $init;
191248
+ return $pkg;
191249
+ })();
191250
+ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function() {
191251
+ var $pkg = {}, $init, fmt, general, errs, jshelper, videostream, js, SOSVideoStreamer, SOSStreamDecoder, funcType, arrayType, sliceType, ptrType, ptrType$1, sliceType$1, ptrType$2, init, NewDecoder;
191252
+ fmt = $packages["fmt"];
191253
+ general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
191254
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191255
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
191256
+ videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
191257
+ js = $packages["syscall/js"];
191258
+ SOSVideoStreamer = $pkg.SOSVideoStreamer = $newType(0, $kindStruct, "sosstream.SOSVideoStreamer", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_) {
191259
+ this.$val = this;
191260
+ if (arguments.length === 0) {
191261
+ this.sos = new js.Value.ptr(null, false, arrayType.zero());
191262
+ return;
191263
+ }
191264
+ this.sos = sos_;
191265
+ });
191266
+ SOSStreamDecoder = $pkg.SOSStreamDecoder = $newType(0, $kindStruct, "sosstream.SOSStreamDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_, started_) {
191267
+ this.$val = this;
191268
+ if (arguments.length === 0) {
191269
+ this.sos = new js.Value.ptr(null, false, arrayType.zero());
191270
+ this.started = false;
191271
+ return;
191272
+ }
191273
+ this.sos = sos_;
191274
+ this.started = started_;
191275
+ });
191276
+ funcType = $funcType([], [], false);
191277
+ arrayType = $arrayType(funcType, 0);
191278
+ sliceType = $sliceType($emptyInterface);
191279
+ ptrType = $ptrType(js.Value);
191280
+ ptrType$1 = $ptrType(SOSVideoStreamer);
191281
+ sliceType$1 = $sliceType($Uint8);
191282
+ ptrType$2 = $ptrType(SOSStreamDecoder);
191283
+ init = function() {
191284
+ var videoStreamer;
191285
+ videoStreamer = new SOSVideoStreamer.ptr($clone($clone(js.Global(), js.Value).Get("sos"), js.Value));
191286
+ videostream.Register(videoStreamer);
191287
+ };
191288
+ SOSVideoStreamer.ptr.prototype.IsAvailable = function() {
191289
+ var m;
191290
+ m = this;
191291
+ return !$clone(m.sos, js.Value).IsUndefined() && $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("stream"), js.Value).Truthy();
191292
+ };
191293
+ SOSVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
191294
+ SOSVideoStreamer.ptr.prototype.GetProtocol = function() {
191295
+ var _1, m, protocol, protocolValue;
191296
+ m = this;
191297
+ protocolValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamProtocol"), js.Value);
191298
+ protocol = 0;
191299
+ if (!$clone(protocolValue, js.Value).IsUndefined() && ($clone(protocolValue, js.Value).Type() === 4)) {
191300
+ _1 = $clone(protocolValue, js.Value).String();
191301
+ if (_1 === ("UDP")) {
191302
+ protocol = 0;
191303
+ } else if (_1 === ("HTTP")) {
191304
+ protocol = 1;
191305
+ } else if (_1 === ("HTTPMP4")) {
191306
+ protocol = 2;
191307
+ } else if (_1 === ("RTP")) {
191308
+ protocol = 3;
191309
+ } else {
191310
+ protocol = 0;
191311
+ }
191312
+ }
191313
+ return protocol;
191314
+ };
191315
+ SOSVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
191316
+ SOSVideoStreamer.ptr.prototype.GetPort = function() {
191317
+ var m, port, portValue;
191318
+ m = this;
191319
+ portValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamPort"), js.Value);
191320
+ port = 5000;
191321
+ if (!$clone(portValue, js.Value).IsUndefined() && ($clone(portValue, js.Value).Type() === 3)) {
191322
+ port = $clone(portValue, js.Value).Int();
191323
+ }
191324
+ return ((port << 16 >>> 16));
191325
+ };
191326
+ SOSVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
191327
+ SOSVideoStreamer.ptr.prototype.GetHostname = function() {
191328
+ var hostname, hostnameValue, m;
191329
+ m = this;
191330
+ hostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamHostname"), js.Value);
191331
+ hostname = "";
191332
+ if (!$clone(hostnameValue, js.Value).IsUndefined() && ($clone(hostnameValue, js.Value).Type() === 4)) {
191333
+ hostname = $clone(hostnameValue, js.Value).String();
191334
+ }
191335
+ return hostname;
191336
+ };
191337
+ SOSVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
191338
+ NewDecoder = function(header) {
191339
+ var header, sos;
191340
+ sos = $clone($clone(js.Global(), js.Value).Get("sos"), js.Value);
191341
+ return [new SOSStreamDecoder.ptr($clone(sos, js.Value), false), $ifaceNil];
191342
+ };
191343
+ $pkg.NewDecoder = NewDecoder;
191344
+ SOSStreamDecoder.ptr.prototype.Write = function(nal) {
191345
+ var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, err, height, hostname, m, nal, options, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s, $r, $c} = $restore(this, {nal});
191346
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191347
+ m = this;
191348
+ /* */ if (!m.started) { $s = 1; continue; }
191349
+ /* */ $s = 2; continue;
191350
+ /* if (!m.started) { */ case 1:
191351
+ protocol = m.getProtocol();
191352
+ port = m.getPort();
191353
+ hostname = m.getStreamHostname(protocol);
191354
+ urlProtocol = m.getURLProtocol(protocol);
191355
+ sosProtocol = m.getSOSProtocol(protocol);
191356
+ _r = fmt.Sprintf("%s://%s:%d", new sliceType([new $String(urlProtocol), new $String(hostname), new $Uint16(port)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191357
+ url = _r;
191358
+ width = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
191359
+ height = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
191360
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191361
+ options = $clone(_r$1, js.Value);
191362
+ $clone(options, js.Value).Set("protocol", new $String(sosProtocol));
191363
+ _r$2 = $clone($clone(m.sos, js.Value).Get("stream"), js.Value).Call("prepare", new sliceType([new $String(url), new $Int(0), new $Int(0), new $Int(width), new $Int(height), new options.constructor.elem(options)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191364
+ preparePromise = $clone(_r$2, js.Value);
191365
+ _r$3 = jshelper.Await($clone(preparePromise, js.Value)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191366
+ _tuple = _r$3;
191367
+ err = _tuple[1];
191368
+ /* */ if (!(err === ptrType.nil)) { $s = 7; continue; }
191369
+ /* */ $s = 8; continue;
191370
+ /* if (!(err === ptrType.nil)) { */ case 7:
191371
+ _r$4 = jshelper.GetError(err); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191372
+ _r$5 = _r$4.Error(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191373
+ _arg = new $String(_r$5);
191374
+ _r$6 = errs.Errorf("Failed to prepare sos video stream: %s", new sliceType([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191375
+ $24r = _r$6;
191376
+ $s = 12; case 12: return $24r;
191377
+ /* } */ case 8:
191378
+ _r$7 = $clone($clone(m.sos, js.Value).Get("stream"), js.Value).Call("play", new sliceType([new $String(url), new $Int(0), new $Int(0), new $Int(width), new $Int(height), new options.constructor.elem(options)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
191379
+ playStream = $clone(_r$7, js.Value);
191380
+ _r$8 = jshelper.Await($clone(playStream, js.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
191381
+ _tuple$1 = _r$8;
191382
+ err = _tuple$1[1];
191383
+ /* */ if (!(err === ptrType.nil)) { $s = 15; continue; }
191384
+ /* */ $s = 16; continue;
191385
+ /* if (!(err === ptrType.nil)) { */ case 15:
191386
+ _r$9 = jshelper.GetError(err); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
191387
+ _r$10 = _r$9.Error(); /* */ $s = 18; case 18: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
191388
+ _arg$1 = new $String(_r$10);
191389
+ _r$11 = errs.Errorf("Failed to play sos video stream: %s", new sliceType([_arg$1])); /* */ $s = 19; case 19: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
191390
+ $24r$1 = _r$11;
191391
+ $s = 20; case 20: return $24r$1;
191392
+ /* } */ case 16:
191393
+ m.started = true;
191394
+ /* } */ case 2:
191395
+ $s = -1; return $ifaceNil;
191396
+ /* */ } return; } var $f = {$blk: SOSStreamDecoder.ptr.prototype.Write, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, err, height, hostname, m, nal, options, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s};return $f;
191397
+ };
191398
+ SOSStreamDecoder.prototype.Write = function(nal) { return this.$val.Write(nal); };
191399
+ SOSStreamDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
191400
+ var m, outputBuffer;
191401
+ m = this;
191402
+ return $ifaceNil;
191403
+ };
191404
+ SOSStreamDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
191405
+ SOSStreamDecoder.ptr.prototype.Release = function(outputBuffer) {
191406
+ var m, outputBuffer;
191407
+ m = this;
191408
+ };
191409
+ SOSStreamDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
191410
+ SOSStreamDecoder.ptr.prototype.getProtocol = function() {
191411
+ var m, videoStreamer;
191412
+ m = this;
191413
+ videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
191414
+ return videoStreamer.GetProtocol();
191415
+ };
191416
+ SOSStreamDecoder.prototype.getProtocol = function() { return this.$val.getProtocol(); };
191417
+ SOSStreamDecoder.ptr.prototype.getPort = function() {
191418
+ var m, videoStreamer;
191419
+ m = this;
191420
+ videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
191421
+ return videoStreamer.GetPort();
191422
+ };
191423
+ SOSStreamDecoder.prototype.getPort = function() { return this.$val.getPort(); };
191424
+ SOSStreamDecoder.ptr.prototype.getServerHostname = function() {
191425
+ var m, serverHostname, serverHostnameValue;
191426
+ m = this;
191427
+ serverHostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("hostname"), js.Value);
191428
+ serverHostname = "";
191429
+ if (!$clone(serverHostnameValue, js.Value).IsUndefined() && ($clone(serverHostnameValue, js.Value).Type() === 4)) {
191430
+ serverHostname = $clone(serverHostnameValue, js.Value).String();
191431
+ }
191432
+ return serverHostname;
191433
+ };
191434
+ SOSStreamDecoder.prototype.getServerHostname = function() { return this.$val.getServerHostname(); };
191435
+ SOSStreamDecoder.ptr.prototype.getStreamHostname = function(protocol) {
191436
+ var _1, hostname, m, protocol, videoStreamer;
191437
+ m = this;
191438
+ videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
191439
+ hostname = videoStreamer.GetHostname();
191440
+ if (!(hostname === "")) {
191441
+ return hostname;
191442
+ }
191443
+ _1 = protocol;
191444
+ if ((_1 === (0)) || (_1 === (3))) {
191445
+ hostname = "0.0.0.0";
191446
+ } else if ((_1 === (1)) || (_1 === (2))) {
191447
+ hostname = m.getServerHostname();
191448
+ }
191449
+ return hostname;
191450
+ };
191451
+ SOSStreamDecoder.prototype.getStreamHostname = function(protocol) { return this.$val.getStreamHostname(protocol); };
191452
+ SOSStreamDecoder.ptr.prototype.getURLProtocol = function(protocol) {
191453
+ var _1, m, protocol;
191454
+ m = this;
191455
+ _1 = protocol;
191456
+ if (_1 === (0)) {
191457
+ return "udp";
191458
+ } else if ((_1 === (1)) || (_1 === (2))) {
191459
+ return "http";
191460
+ } else if (_1 === (3)) {
191461
+ return "rtp";
191462
+ } else {
191463
+ $panic(new $String("Unknown url protocol"));
191464
+ }
191465
+ };
191466
+ SOSStreamDecoder.prototype.getURLProtocol = function(protocol) { return this.$val.getURLProtocol(protocol); };
191467
+ SOSStreamDecoder.ptr.prototype.getSOSProtocol = function(protocol) {
191468
+ var _1, m, protocol;
191469
+ m = this;
191470
+ _1 = protocol;
191471
+ if (_1 === (0)) {
191472
+ return "UDP";
191473
+ } else if ((_1 === (1)) || (_1 === (2))) {
191474
+ return "HTTP";
191475
+ } else if (_1 === (3)) {
191476
+ return "RTP";
191477
+ } else {
191478
+ $panic(new $String("Unknown sos protocol"));
191479
+ }
191480
+ };
191481
+ SOSStreamDecoder.prototype.getSOSProtocol = function(protocol) { return this.$val.getSOSProtocol(protocol); };
191482
+ ptrType$1.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [videostream.Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}];
191483
+ ptrType$2.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "getProtocol", name: "getProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([], [videostream.Protocol], false)}, {prop: "getPort", name: "getPort", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([], [$Uint16], false)}, {prop: "getServerHostname", name: "getServerHostname", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([], [$String], false)}, {prop: "getStreamHostname", name: "getStreamHostname", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}, {prop: "getURLProtocol", name: "getURLProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}, {prop: "getSOSProtocol", name: "getSOSProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}];
191484
+ SOSVideoStreamer.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191485
+ SOSStreamDecoder.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "started", name: "started", embedded: false, exported: false, typ: $Bool, tag: ""}]);
191486
+ $init = function() {
191487
+ $pkg.$init = function() {};
191488
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191489
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191490
+ $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191491
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191492
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191493
+ $r = videostream.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191494
+ $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191495
+ init();
191496
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191497
+ };
191498
+ $pkg.$init = $init;
191499
+ return $pkg;
191500
+ })();
191187
191501
  $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
191188
- var $pkg = {}, $init, general, h264decoder, nacldecoder, webcodecs, errs, Decoder, sliceType, sliceType$1, NewDecoder;
191502
+ var $pkg = {}, $init, general, h264decoder, nacldecoder, sosstream, webcodecs, errs, videostream, Decoder, sliceType, sliceType$1, NewDecoder;
191189
191503
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
191190
191504
  h264decoder = $packages["github.com/supraio/client-daemon/pkg/decoder/h264decoder"];
191191
191505
  nacldecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"];
191506
+ sosstream = $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"];
191192
191507
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
191193
191508
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191509
+ videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
191194
191510
  Decoder = $pkg.Decoder = $newType(8, $kindInterface, "decoder.Decoder", true, "github.com/supraio/client-daemon/pkg/decoder", true, null);
191195
191511
  sliceType = $sliceType($emptyInterface);
191196
191512
  sliceType$1 = $sliceType($Uint8);
191197
191513
  NewDecoder = function(header) {
191198
- var {$24r, _r, _returncast, _returncast$1, _returncast$2, header, $s, $r, $c} = $restore(this, {header});
191514
+ var {$24r, _r, _r$1, _returncast, _returncast$1, _returncast$2, _returncast$3, header, $s, $r, $c} = $restore(this, {header});
191199
191515
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191200
- /* */ if (nacldecoder.IsAvailable()) { $s = 1; continue; }
191201
- /* */ if (webcodecs.IsAvailable()) { $s = 2; continue; }
191202
- /* */ if (h264decoder.IsAvailable()) { $s = 3; continue; }
191203
- /* */ $s = 4; continue;
191204
- /* if (nacldecoder.IsAvailable()) { */ case 1:
191205
- _returncast = nacldecoder.NewDecoder(header);
191516
+ _r = videostream.Get().IsAvailable(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191517
+ /* */ if (_r) { $s = 1; continue; }
191518
+ /* */ if (nacldecoder.IsAvailable()) { $s = 2; continue; }
191519
+ /* */ if (webcodecs.IsAvailable()) { $s = 3; continue; }
191520
+ /* */ if (h264decoder.IsAvailable()) { $s = 4; continue; }
191521
+ /* */ $s = 5; continue;
191522
+ /* if (_r) { */ case 1:
191523
+ _returncast = sosstream.NewDecoder(header);
191206
191524
  $s = -1; return [_returncast[0], _returncast[1]];
191207
- /* } else if (webcodecs.IsAvailable()) { */ case 2:
191208
- _returncast$1 = webcodecs.NewDecoder(header);
191525
+ /* } else if (nacldecoder.IsAvailable()) { */ case 2:
191526
+ _returncast$1 = nacldecoder.NewDecoder(header);
191209
191527
  $s = -1; return [_returncast$1[0], _returncast$1[1]];
191210
- /* } else if (h264decoder.IsAvailable()) { */ case 3:
191211
- _returncast$2 = h264decoder.NewDecoder(header);
191528
+ /* } else if (webcodecs.IsAvailable()) { */ case 3:
191529
+ _returncast$2 = webcodecs.NewDecoder(header);
191212
191530
  $s = -1; return [_returncast$2[0], _returncast$2[1]];
191213
- /* } else { */ case 4:
191214
- _r = errs.Errorf("Not available any decoder adapter in JS", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191215
- $24r = [$ifaceNil, _r];
191216
- $s = 7; case 7: return $24r;
191217
- /* } */ case 5:
191531
+ /* } else if (h264decoder.IsAvailable()) { */ case 4:
191532
+ _returncast$3 = h264decoder.NewDecoder(header);
191533
+ $s = -1; return [_returncast$3[0], _returncast$3[1]];
191534
+ /* } else { */ case 5:
191535
+ _r$1 = errs.Errorf("Not available any decoder adapter in JS", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191536
+ $24r = [$ifaceNil, _r$1];
191537
+ $s = 9; case 9: return $24r;
191538
+ /* } */ case 6:
191218
191539
  $s = -1; return [$ifaceNil, $ifaceNil];
191219
- /* */ } return; } var $f = {$blk: NewDecoder, $c: true, $r, $24r, _r, _returncast, _returncast$1, _returncast$2, header, $s};return $f;
191540
+ /* */ } return; } var $f = {$blk: NewDecoder, $c: true, $r, $24r, _r, _r$1, _returncast, _returncast$1, _returncast$2, _returncast$3, header, $s};return $f;
191220
191541
  };
191221
191542
  $pkg.NewDecoder = NewDecoder;
191222
191543
  Decoder.init([{prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]);
@@ -191226,8 +191547,10 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
191226
191547
  $r = general.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191227
191548
  $r = h264decoder.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191228
191549
  $r = nacldecoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191229
- $r = webcodecs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191230
- $r = errs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191550
+ $r = sosstream.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191551
+ $r = webcodecs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191552
+ $r = errs.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191553
+ $r = videostream.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191231
191554
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191232
191555
  };
191233
191556
  $pkg.$init = $init;
@@ -192561,6 +192884,321 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
192561
192884
  $pkg.$init = $init;
192562
192885
  return $pkg;
192563
192886
  })();
192887
+ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (function() {
192888
+ var $pkg = {}, $init, errs, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, funcType, arrayType, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, newWindow, newScreenImpl, Main, main, newBuffer;
192889
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
192890
+ dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
192891
+ screen = $packages["golang.org/x/exp/shiny/screen"];
192892
+ f64 = $packages["golang.org/x/image/math/f64"];
192893
+ image = $packages["image"];
192894
+ color = $packages["image/color"];
192895
+ draw = $packages["image/draw"];
192896
+ sync = $packages["sync"];
192897
+ js = $packages["syscall/js"];
192898
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "overlaydriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", false, function(screen_, mutex_, renderingInProgress_, domEvents_, released_) {
192899
+ this.$val = this;
192900
+ if (arguments.length === 0) {
192901
+ this.screen = ptrType.nil;
192902
+ this.mutex = ptrType$1.nil;
192903
+ this.renderingInProgress = false;
192904
+ this.domEvents = ptrType$2.nil;
192905
+ this.released = false;
192906
+ return;
192907
+ }
192908
+ this.screen = screen_;
192909
+ this.mutex = mutex_;
192910
+ this.renderingInProgress = renderingInProgress_;
192911
+ this.domEvents = domEvents_;
192912
+ this.released = released_;
192913
+ });
192914
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "overlaydriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", false, function(doc_) {
192915
+ this.$val = this;
192916
+ if (arguments.length === 0) {
192917
+ this.doc = new js.Value.ptr(null, false, arrayType.zero());
192918
+ return;
192919
+ }
192920
+ this.doc = doc_;
192921
+ });
192922
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "overlaydriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", true, function(screen_, size_) {
192923
+ this.$val = this;
192924
+ if (arguments.length === 0) {
192925
+ this.screen = ptrType.nil;
192926
+ this.size = new image.Point.ptr(0, 0);
192927
+ return;
192928
+ }
192929
+ this.screen = screen_;
192930
+ this.size = size_;
192931
+ });
192932
+ sliceType = $sliceType($emptyInterface);
192933
+ ptrType = $ptrType(screenImpl);
192934
+ ptrType$1 = $ptrType(sync.Mutex);
192935
+ ptrType$2 = $ptrType(dom.DomEvents);
192936
+ funcType = $funcType([], [], false);
192937
+ arrayType = $arrayType(funcType, 0);
192938
+ ptrType$3 = $ptrType(image.RGBA);
192939
+ sliceType$1 = $sliceType($Uint8);
192940
+ ptrType$4 = $ptrType(screen.DrawOptions);
192941
+ ptrType$5 = $ptrType(windowImpl);
192942
+ ptrType$6 = $ptrType(screen.NewWindowOptions);
192943
+ ptrType$7 = $ptrType(image.YCbCr);
192944
+ ptrType$8 = $ptrType(BufferImpl);
192945
+ newWindow = function(screen$1, opts) {
192946
+ var {_r, _r$1, domEvents, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
192947
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192948
+ /* */ if (!(opts.Title === "")) { $s = 1; continue; }
192949
+ /* */ $s = 2; continue;
192950
+ /* if (!(opts.Title === "")) { */ case 1:
192951
+ _r = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192952
+ _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192953
+ $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192954
+ /* } */ case 2:
192955
+ domEvents = dom.NewDomEvents();
192956
+ w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), false, domEvents, false);
192957
+ $r = domEvents.BindEvents(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192958
+ $s = -1; return w;
192959
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, domEvents, opts, screen$1, w, $s};return $f;
192960
+ };
192961
+ windowImpl.ptr.prototype.Release = function() {
192962
+ var {w, $s, $deferred, $r, $c} = $restore(this, {});
192963
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
192964
+ w = this;
192965
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192966
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
192967
+ /* */ if (w.released) { $s = 2; continue; }
192968
+ /* */ $s = 3; continue;
192969
+ /* if (w.released) { */ case 2:
192970
+ $s = 4; case 4: return;
192971
+ /* } */ case 3:
192972
+ $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192973
+ w.released = true;
192974
+ $s = -1; return;
192975
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, w, $s, $deferred};return $f; } }
192976
+ };
192977
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
192978
+ windowImpl.ptr.prototype.Publish = function() {
192979
+ var w;
192980
+ w = this;
192981
+ if (w.released) {
192982
+ return new screen.PublishResult.ptr(false);
192983
+ }
192984
+ return new screen.PublishResult.ptr(false);
192985
+ };
192986
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
192987
+ windowImpl.ptr.prototype.Send = function(event) {
192988
+ var event, w;
192989
+ w = this;
192990
+ if (w.released) {
192991
+ return;
192992
+ }
192993
+ $panic(new $String("Not implemented"));
192994
+ };
192995
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
192996
+ windowImpl.ptr.prototype.SendFirst = function(event) {
192997
+ var event, w;
192998
+ w = this;
192999
+ if (w.released) {
193000
+ return;
193001
+ }
193002
+ $panic(new $String("Not implemented"));
193003
+ };
193004
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
193005
+ windowImpl.ptr.prototype.NextEvent = function() {
193006
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
193007
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193008
+ w = this;
193009
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193010
+ ev = _r[0];
193011
+ $s = -1; return ev;
193012
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
193013
+ };
193014
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
193015
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
193016
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
193017
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193018
+ w = this;
193019
+ if (w.released) {
193020
+ $s = -1; return;
193021
+ }
193022
+ _r = errs.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193023
+ $panic(_r);
193024
+ $s = -1; return;
193025
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
193026
+ };
193027
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
193028
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
193029
+ var dp, sr, src, w;
193030
+ w = this;
193031
+ if (w.released) {
193032
+ return;
193033
+ }
193034
+ };
193035
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
193036
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
193037
+ var dr, op, src, w;
193038
+ w = this;
193039
+ if (w.released) {
193040
+ return;
193041
+ }
193042
+ $panic(new $String("Not implemented"));
193043
+ };
193044
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
193045
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
193046
+ var op, opts, sr, src, src2dst, w;
193047
+ w = this;
193048
+ if (w.released) {
193049
+ return;
193050
+ }
193051
+ $panic(new $String("Not implemented"));
193052
+ };
193053
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
193054
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
193055
+ var op, opts, sr, src, src2dst, w;
193056
+ w = this;
193057
+ if (w.released) {
193058
+ return;
193059
+ }
193060
+ $panic(new $String("Not implemented"));
193061
+ };
193062
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
193063
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
193064
+ var dp, op, opts, sr, src, w;
193065
+ w = this;
193066
+ if (w.released) {
193067
+ return;
193068
+ }
193069
+ $panic(new $String("Not implemented"));
193070
+ };
193071
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
193072
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
193073
+ var dr, op, opts, sr, src, w;
193074
+ w = this;
193075
+ if (w.released) {
193076
+ return;
193077
+ }
193078
+ $panic(new $String("Not implemented"));
193079
+ };
193080
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
193081
+ newScreenImpl = function() {
193082
+ var s;
193083
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
193084
+ return [s, $ifaceNil];
193085
+ };
193086
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
193087
+ var buffer, s, size;
193088
+ s = this;
193089
+ buffer = newBuffer(s, $clone(size, image.Point));
193090
+ return [buffer, $ifaceNil];
193091
+ };
193092
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
193093
+ screenImpl.ptr.prototype.NewTexture = function(size) {
193094
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
193095
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193096
+ s = this;
193097
+ _r = errs.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193098
+ $24r = [$ifaceNil, _r];
193099
+ $s = 2; case 2: return $24r;
193100
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
193101
+ };
193102
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
193103
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
193104
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
193105
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193106
+ s = this;
193107
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193108
+ window = _r;
193109
+ $s = -1; return [window, $ifaceNil];
193110
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
193111
+ };
193112
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
193113
+ Main = function(f) {
193114
+ var {_r, err, f, $s, $r, $c} = $restore(this, {f});
193115
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193116
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193117
+ err = _r;
193118
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
193119
+ $panic(err);
193120
+ }
193121
+ $s = -1; return;
193122
+ /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
193123
+ };
193124
+ $pkg.Main = Main;
193125
+ main = function(f) {
193126
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
193127
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193128
+ retErr = $ifaceNil;
193129
+ _tuple = newScreenImpl();
193130
+ s = _tuple[0];
193131
+ err = _tuple[1];
193132
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
193133
+ retErr = err;
193134
+ $s = -1; return retErr;
193135
+ }
193136
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193137
+ retErr = $ifaceNil;
193138
+ $s = -1; return retErr;
193139
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
193140
+ };
193141
+ newBuffer = function(screen$1, size) {
193142
+ var b, screen$1, size;
193143
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point));
193144
+ return b;
193145
+ };
193146
+ BufferImpl.ptr.prototype.Size = function() {
193147
+ var b;
193148
+ b = this;
193149
+ return b.size;
193150
+ };
193151
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
193152
+ BufferImpl.ptr.prototype.Bounds = function() {
193153
+ var b;
193154
+ b = this;
193155
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
193156
+ };
193157
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
193158
+ BufferImpl.ptr.prototype.RGBA = function() {
193159
+ var {_r, b, $s, $r, $c} = $restore(this, {});
193160
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193161
+ b = this;
193162
+ _r = errs.Errorf("Not implemented RGBA(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193163
+ $panic(_r);
193164
+ $s = -1; return ptrType$3.nil;
193165
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.RGBA, $c: true, $r, _r, b, $s};return $f;
193166
+ };
193167
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
193168
+ BufferImpl.ptr.prototype.YCbCr = function() {
193169
+ var b;
193170
+ b = this;
193171
+ return new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, $clone(b.Bounds(), image.Rectangle));
193172
+ };
193173
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
193174
+ BufferImpl.ptr.prototype.Release = function() {
193175
+ var b;
193176
+ b = this;
193177
+ };
193178
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
193179
+ ptrType$5.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$4], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$4], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$4], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$4], [], false)}];
193180
+ ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$6], [screen.Window, $error], false)}];
193181
+ ptrType$8.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
193182
+ windowImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "renderingInProgress", name: "renderingInProgress", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
193183
+ screenImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
193184
+ BufferImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
193185
+ $init = function() {
193186
+ $pkg.$init = function() {};
193187
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
193188
+ $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193189
+ $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193190
+ $r = screen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193191
+ $r = f64.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193192
+ $r = image.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193193
+ $r = color.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193194
+ $r = draw.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193195
+ $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193196
+ $r = js.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193197
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
193198
+ };
193199
+ $pkg.$init = $init;
193200
+ return $pkg;
193201
+ })();
192564
193202
  $packages["github.com/supraio/client-daemon/pkg/window"] = (function() {
192565
193203
  var $pkg = {}, $init, binary, errs, message, size, SizeHandler, sliceType, ptrType, chanType, NewSizeHandler;
192566
193204
  binary = $packages["encoding/binary"];
@@ -192739,7 +193377,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
192739
193377
  return $pkg;
192740
193378
  })();
192741
193379
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192742
- var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, stats, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, ScreenWindow, ProcessInfo, ProcessInfoManager, ptrType, ptrType$1, funcType, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, structType, sliceType$3, funcType$1, ptrType$10, ptrType$11, chanType, chanType$1, chanType$2, chanType$3, chanType$4, NewScreenWindow, MainDriver, NewProcessInfoManager;
193380
+ var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, overlaydriver, stats, videostream, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, ScreenWindow, ProcessInfo, ProcessInfoManager, ptrType, ptrType$1, funcType, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, structType, sliceType$3, funcType$1, ptrType$10, ptrType$11, chanType, chanType$1, chanType$2, chanType$3, chanType$4, NewScreenWindow, MainDriver, NewProcessInfoManager;
192743
193381
  binary = $packages["encoding/binary"];
192744
193382
  json = $packages["encoding/json"];
192745
193383
  query = $packages["github.com/google/go-querystring/query"];
@@ -192757,7 +193395,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192757
193395
  netstream = $packages["github.com/supraio/client-daemon/pkg/netstream"];
192758
193396
  netframe = $packages["github.com/supraio/client-daemon/pkg/render/netframe"];
192759
193397
  player = $packages["github.com/supraio/client-daemon/pkg/render/player"];
193398
+ overlaydriver = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"];
192760
193399
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
193400
+ videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
192761
193401
  window = $packages["github.com/supraio/client-daemon/pkg/window"];
192762
193402
  canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
192763
193403
  webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
@@ -193422,7 +194062,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
193422
194062
  };
193423
194063
  ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
193424
194064
  ScreenWindow.ptr.prototype.openScreen = function() {
193425
- var {_r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, frameCollector, maxPacketSize, msgData, screenSender, w, $s, $r, $c} = $restore(this, {});
194065
+ var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, conn, connect, data, err, frameCollector, maxPacketSize, msgData, screenSender, streamHostname, videoStreamer, w, $s, $r, $c} = $restore(this, {});
193426
194066
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193427
194067
  err = [err];
193428
194068
  screenSender = [screenSender];
@@ -193461,17 +194101,40 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
193461
194101
  }
193462
194102
  w[0].pinger = netclient.NewPinger(screenSender[0]);
193463
194103
  w[0].pinger.Start();
194104
+ videoStreamer = videostream.Get();
194105
+ _r$3 = videoStreamer.IsAvailable(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
194106
+ /* */ if (_r$3) { $s = 4; continue; }
194107
+ /* */ $s = 5; continue;
194108
+ /* if (_r$3) { */ case 4:
194109
+ data = $makeSlice(sliceType$2, 3);
194110
+ _r$4 = videoStreamer.GetProtocol(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
194111
+ (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0] = ((_r$4 << 24 >>> 24)));
194112
+ _arg = $subslice(data, 1);
194113
+ _r$5 = videoStreamer.GetPort(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
194114
+ _arg$1 = (_r$5);
194115
+ $r = $clone(binary.BigEndian, binary.bigEndian).PutUint16(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194116
+ _r$6 = videoStreamer.GetHostname(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
194117
+ streamHostname = _r$6;
194118
+ if (!(streamHostname === "")) {
194119
+ data = $appendSlice(data, (new sliceType$2($stringToBytes(streamHostname))));
194120
+ }
194121
+ _r$7 = screenSender[0].Send(5, data); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
194122
+ err[0] = _r$7;
194123
+ if (!($interfaceIsEqual(err[0], $ifaceNil))) {
194124
+ $s = -1; return err[0];
194125
+ }
194126
+ /* } */ case 5:
193464
194127
  $go((function(err, screenSender, w) { return function $b() {
193465
- var {_r$3, _r$4, _r$5, _r$6, _r$7, err$1, $s, $r, $c} = $restore(this, {});
194128
+ var {_r$10, _r$11, _r$12, _r$8, _r$9, err$1, $s, $r, $c} = $restore(this, {});
193466
194129
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193467
194130
  /* while (true) { */ case 1:
193468
194131
  /* if (!(!w[0].closed)) { break; } */ if(!(!w[0].closed)) { $s = 2; continue; }
193469
194132
  $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193470
- _r$3 = time.Now(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
193471
- _r$4 = $clone($clone(w[0].stats.GetLastFrameAt(), time.Time).Add(w[0].getFrameHealthCheckTimeout()), time.Time).Before($clone(_r$3, time.Time)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
193472
- /* */ if (_r$4) { $s = 4; continue; }
194133
+ _r$8 = time.Now(); /* */ $s = 6; case 6: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
194134
+ _r$9 = $clone($clone(w[0].stats.GetLastFrameAt(), time.Time).Add(w[0].getFrameHealthCheckTimeout()), time.Time).Before($clone(_r$8, time.Time)); /* */ $s = 7; case 7: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
194135
+ /* */ if (_r$9) { $s = 4; continue; }
193473
194136
  /* */ $s = 5; continue;
193474
- /* if (_r$4) { */ case 4:
194137
+ /* if (_r$9) { */ case 4:
193475
194138
  if (!(w[0].pinger === ptrType$9.nil)) {
193476
194139
  w[0].pinger.Close();
193477
194140
  w[0].pinger = ptrType$9.nil;
@@ -193488,22 +194151,22 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
193488
194151
  w[0].renderingLoop.Stop();
193489
194152
  w[0].renderingLoop = ptrType$5.nil;
193490
194153
  }
193491
- _r$5 = screenSender[0].Send(3, new sliceType$2([])); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
193492
- err[0] = _r$5;
194154
+ _r$10 = screenSender[0].Send(3, new sliceType$2([])); /* */ $s = 8; case 8: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
194155
+ err[0] = _r$10;
193493
194156
  /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 9; continue; }
193494
194157
  /* */ $s = 10; continue;
193495
194158
  /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 9:
193496
194159
  $r = errs.Print("Could not send disconnect msg to screen", err[0]); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193497
194160
  /* } */ case 10:
193498
- _r$6 = w[0].screenConn.Close(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
193499
- err[0] = _r$6;
194161
+ _r$11 = w[0].screenConn.Close(); /* */ $s = 12; case 12: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
194162
+ err[0] = _r$11;
193500
194163
  /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 13; continue; }
193501
194164
  /* */ $s = 14; continue;
193502
194165
  /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 13:
193503
194166
  $r = errs.Print("Could not disconnect screen", err[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193504
194167
  /* } */ case 14:
193505
- _r$7 = w[0].retriableOpen(-1, $methodVal(w[0], "openScreen")); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
193506
- err$1 = _r$7;
194168
+ _r$12 = w[0].retriableOpen(-1, $methodVal(w[0], "openScreen")); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
194169
+ err$1 = _r$12;
193507
194170
  /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 17; continue; }
193508
194171
  /* */ $s = 18; continue;
193509
194172
  /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 17:
@@ -193514,10 +194177,10 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
193514
194177
  $s = 1; continue;
193515
194178
  case 2:
193516
194179
  $s = -1; return;
193517
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _r$7, err$1, $s};return $f;
194180
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$10, _r$11, _r$12, _r$8, _r$9, err$1, $s};return $f;
193518
194181
  }; })(err, screenSender, w), []);
193519
194182
  $s = -1; return $ifaceNil;
193520
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openScreen, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, frameCollector, maxPacketSize, msgData, screenSender, w, $s};return $f;
194183
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openScreen, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, conn, connect, data, err, frameCollector, maxPacketSize, msgData, screenSender, streamHostname, videoStreamer, w, $s};return $f;
193521
194184
  };
193522
194185
  ScreenWindow.prototype.openScreen = function() { return this.$val.openScreen(); };
193523
194186
  ScreenWindow.ptr.prototype.createScreenBuffer = function() {
@@ -193542,22 +194205,27 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
193542
194205
  };
193543
194206
  ScreenWindow.prototype.createScreenBuffer = function() { return this.$val.createScreenBuffer(); };
193544
194207
  MainDriver = function(f) {
193545
- var {f, $s, $r, $c} = $restore(this, {f});
194208
+ var {_r, f, $s, $r, $c} = $restore(this, {f});
193546
194209
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193547
- /* */ if (nacldecoder.IsAvailable()) { $s = 1; continue; }
193548
- /* */ if (webcodecs.IsAvailable()) { $s = 2; continue; }
193549
- /* */ $s = 3; continue;
193550
- /* if (nacldecoder.IsAvailable()) { */ case 1:
193551
- $r = nacldriver.Main(f); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193552
- $s = 4; continue;
193553
- /* } else if (webcodecs.IsAvailable()) { */ case 2:
193554
- $r = canvasdriver.Main(f); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193555
- $s = 4; continue;
193556
- /* } else { */ case 3:
193557
- $r = webgldriver.Main(f); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193558
- /* } */ case 4:
194210
+ _r = videostream.Get().IsAvailable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
194211
+ /* */ if (_r) { $s = 1; continue; }
194212
+ /* */ if (nacldecoder.IsAvailable()) { $s = 2; continue; }
194213
+ /* */ if (webcodecs.IsAvailable()) { $s = 3; continue; }
194214
+ /* */ $s = 4; continue;
194215
+ /* if (_r) { */ case 1:
194216
+ $r = overlaydriver.Main(f); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194217
+ $s = 5; continue;
194218
+ /* } else if (nacldecoder.IsAvailable()) { */ case 2:
194219
+ $r = nacldriver.Main(f); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194220
+ $s = 5; continue;
194221
+ /* } else if (webcodecs.IsAvailable()) { */ case 3:
194222
+ $r = canvasdriver.Main(f); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194223
+ $s = 5; continue;
194224
+ /* } else { */ case 4:
194225
+ $r = webgldriver.Main(f); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194226
+ /* } */ case 5:
193559
194227
  $s = -1; return;
193560
- /* */ } return; } var $f = {$blk: MainDriver, $c: true, $r, f, $s};return $f;
194228
+ /* */ } return; } var $f = {$blk: MainDriver, $c: true, $r, _r, f, $s};return $f;
193561
194229
  };
193562
194230
  $pkg.MainDriver = MainDriver;
193563
194231
  NewProcessInfoManager = function(username, processDir) {
@@ -193754,26 +194422,28 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
193754
194422
  $r = netstream.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193755
194423
  $r = netframe.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193756
194424
  $r = player.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193757
- $r = stats.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193758
- $r = window.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193759
- $r = canvasdriver.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193760
- $r = webgldriver.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193761
- $r = screen.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193762
- $r = focus.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193763
- $r = key.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193764
- $r = lifecycle.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193765
- $r = mouse.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193766
- $r = size.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193767
- $r = image.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193768
- $r = io.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193769
- $r = ioutil.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193770
- $r = log.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193771
- $r = os.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193772
- $r = path.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193773
- $r = strings.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193774
- $r = sync.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193775
- $r = js.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193776
- $r = time.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194425
+ $r = overlaydriver.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194426
+ $r = stats.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194427
+ $r = videostream.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194428
+ $r = window.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194429
+ $r = canvasdriver.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194430
+ $r = webgldriver.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194431
+ $r = screen.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194432
+ $r = focus.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194433
+ $r = key.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194434
+ $r = lifecycle.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194435
+ $r = mouse.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194436
+ $r = size.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194437
+ $r = image.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194438
+ $r = io.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194439
+ $r = ioutil.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194440
+ $r = log.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194441
+ $r = os.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194442
+ $r = path.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194443
+ $r = strings.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194444
+ $r = sync.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194445
+ $r = js.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194446
+ $r = time.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193777
194447
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
193778
194448
  };
193779
194449
  $pkg.$init = $init;