@supraio/client-daemon-js 0.0.0-jvmaster.366-jvmaster.392 → 0.0.0-jvmaster.366-jvdevelop.396

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.
@@ -65042,7 +65042,7 @@ $packages["log"] = (function() {
65042
65042
  return $pkg;
65043
65043
  })();
65044
65044
  $packages["github.com/supraio/client-daemon/pkg/errs"] = (function() {
65045
- var $pkg = {}, $init, errors, log, sliceType, ptrType, Print, Errorf;
65045
+ var $pkg = {}, $init, errors, log, sliceType, ptrType, Print, Errorf, CombineErrors;
65046
65046
  errors = $packages["github.com/go-errors/errors"];
65047
65047
  log = $packages["log"];
65048
65048
  sliceType = $sliceType($emptyInterface);
@@ -65081,6 +65081,26 @@ $packages["github.com/supraio/client-daemon/pkg/errs"] = (function() {
65081
65081
  /* */ } return; } var $f = {$blk: Errorf, $c: true, $r, $24r, _r, extra, msg, $s};return $f;
65082
65082
  };
65083
65083
  $pkg.Errorf = Errorf;
65084
+ CombineErrors = function(errs) {
65085
+ var {$24r, _i, _r, _ref, err, errs, message, untypedErrs, $s, $r, $c} = $restore(this, {errs});
65086
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65087
+ untypedErrs = new sliceType([]);
65088
+ message = "";
65089
+ _ref = errs;
65090
+ _i = 0;
65091
+ while (true) {
65092
+ if (!(_i < _ref.$length)) { break; }
65093
+ err = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
65094
+ message = message + "%s\n";
65095
+ untypedErrs = $append(untypedErrs, err);
65096
+ _i++;
65097
+ }
65098
+ _r = errors.Errorf(message, untypedErrs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65099
+ $24r = _r;
65100
+ $s = 2; case 2: return $24r;
65101
+ /* */ } return; } var $f = {$blk: CombineErrors, $c: true, $r, $24r, _i, _r, _ref, err, errs, message, untypedErrs, $s};return $f;
65102
+ };
65103
+ $pkg.CombineErrors = CombineErrors;
65084
65104
  $init = function() {
65085
65105
  $pkg.$init = function() {};
65086
65106
  /* */ 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:
@@ -186571,6 +186591,140 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"] = (functio
186571
186591
  $pkg.$init = $init;
186572
186592
  return $pkg;
186573
186593
  })();
186594
+ $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder/jsdecoder"] = (function() {
186595
+ var $pkg = {}, $init, js, ptrType, jsSamsungWasmDecoder, IsAvailable, CreateJsSamsungWasmDecoder, GetJsSamsungWasmDecoder;
186596
+ js = $packages["syscall/js"];
186597
+ ptrType = $ptrType(js.Value);
186598
+ IsAvailable = function() {
186599
+ return !$clone($clone(js.Global(), js.Value).Get("samsungWasmDecoder"), js.Value).IsUndefined();
186600
+ };
186601
+ $pkg.IsAvailable = IsAvailable;
186602
+ CreateJsSamsungWasmDecoder = function() {
186603
+ var createdJsSamsungWasmDecoder;
186604
+ if (!(jsSamsungWasmDecoder === ptrType.nil)) {
186605
+ $panic(new $String("JsSamsungWasmDecoder already created"));
186606
+ }
186607
+ createdJsSamsungWasmDecoder = $clone($clone(js.Global(), js.Value).Get("samsungWasmDecoder"), js.Value);
186608
+ jsSamsungWasmDecoder = createdJsSamsungWasmDecoder;
186609
+ return jsSamsungWasmDecoder;
186610
+ };
186611
+ $pkg.CreateJsSamsungWasmDecoder = CreateJsSamsungWasmDecoder;
186612
+ GetJsSamsungWasmDecoder = function() {
186613
+ return jsSamsungWasmDecoder;
186614
+ };
186615
+ $pkg.GetJsSamsungWasmDecoder = GetJsSamsungWasmDecoder;
186616
+ $init = function() {
186617
+ $pkg.$init = function() {};
186618
+ /* */ 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:
186619
+ $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186620
+ jsSamsungWasmDecoder = ptrType.nil;
186621
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
186622
+ };
186623
+ $pkg.$init = $init;
186624
+ return $pkg;
186625
+ })();
186626
+ $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"] = (function() {
186627
+ var $pkg = {}, $init, general, jsdecoder, errs, jshelper, sync, js, time, SamsungWasmDecoder, sliceType, ptrType, sliceType$1, ptrType$1, IsAvailable, NewDecoder;
186628
+ general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
186629
+ jsdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder/jsdecoder"];
186630
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
186631
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
186632
+ sync = $packages["sync"];
186633
+ js = $packages["syscall/js"];
186634
+ time = $packages["time"];
186635
+ SamsungWasmDecoder = $pkg.SamsungWasmDecoder = $newType(0, $kindStruct, "samsungwasmdecoder.SamsungWasmDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder", true, function(mutexDecode_, mutexGetPicture_) {
186636
+ this.$val = this;
186637
+ if (arguments.length === 0) {
186638
+ this.mutexDecode = new sync.Mutex.ptr(0, 0);
186639
+ this.mutexGetPicture = new sync.Mutex.ptr(0, 0);
186640
+ return;
186641
+ }
186642
+ this.mutexDecode = mutexDecode_;
186643
+ this.mutexGetPicture = mutexGetPicture_;
186644
+ });
186645
+ sliceType = $sliceType($emptyInterface);
186646
+ ptrType = $ptrType(js.Value);
186647
+ sliceType$1 = $sliceType($Uint8);
186648
+ ptrType$1 = $ptrType(SamsungWasmDecoder);
186649
+ IsAvailable = function() {
186650
+ return jsdecoder.IsAvailable();
186651
+ };
186652
+ $pkg.IsAvailable = IsAvailable;
186653
+ NewDecoder = function(header) {
186654
+ var header;
186655
+ return [new SamsungWasmDecoder.ptr($clone(new sync.Mutex.ptr(0, 0), sync.Mutex), $clone(new sync.Mutex.ptr(0, 0), sync.Mutex)), $ifaceNil];
186656
+ };
186657
+ $pkg.NewDecoder = NewDecoder;
186658
+ SamsungWasmDecoder.ptr.prototype.Write = function(nal, timestamp) {
186659
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, decodePromise, decodeResult, err, jsSamsungWasmDecoder, m, nal, pictureBuffer, pictureUint8Array, timestamp, $s, $r, $c} = $restore(this, {nal, timestamp});
186660
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186661
+ m = this;
186662
+ jsSamsungWasmDecoder = jsdecoder.GetJsSamsungWasmDecoder();
186663
+ if (jsSamsungWasmDecoder === ptrType.nil) {
186664
+ jsSamsungWasmDecoder = jsdecoder.CreateJsSamsungWasmDecoder();
186665
+ }
186666
+ _r = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186667
+ pictureBuffer = $clone(_r, js.Value);
186668
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186669
+ pictureUint8Array = $clone(_r$1, js.Value);
186670
+ js.CopyBytesToJS($clone(pictureUint8Array, js.Value), nal);
186671
+ $r = m.mutexDecode.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186672
+ _r$2 = $clone(jsSamsungWasmDecoder, js.Value).Call("decodeAndRender", new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
186673
+ decodePromise = $clone(_r$2, js.Value);
186674
+ _r$3 = jshelper.Await($clone(decodePromise, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
186675
+ _tuple = _r$3;
186676
+ decodeResult = _tuple[0];
186677
+ err = _tuple[1];
186678
+ $r = m.mutexDecode.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186679
+ /* */ if (!(err === ptrType.nil)) { $s = 7; continue; }
186680
+ /* */ $s = 8; continue;
186681
+ /* if (!(err === ptrType.nil)) { */ case 7:
186682
+ _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; }
186683
+ _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; }
186684
+ _arg = new $String(_r$5);
186685
+ _r$6 = errs.Errorf("Failed to decode frame: %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; }
186686
+ $24r = _r$6;
186687
+ $s = 12; case 12: return $24r;
186688
+ /* } */ case 8:
186689
+ /* */ if (!(($clone(decodeResult, js.Value).Float() === 0))) { $s = 13; continue; }
186690
+ /* */ $s = 14; continue;
186691
+ /* if (!(($clone(decodeResult, js.Value).Float() === 0))) { */ case 13:
186692
+ _r$7 = errs.Errorf("Failed to decode frame with code: %f", new sliceType([new $Float64($clone(decodeResult, js.Value).Float())])); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
186693
+ $24r$1 = _r$7;
186694
+ $s = 16; case 16: return $24r$1;
186695
+ /* } */ case 14:
186696
+ $s = -1; return $ifaceNil;
186697
+ /* */ } return; } var $f = {$blk: SamsungWasmDecoder.ptr.prototype.Write, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, decodePromise, decodeResult, err, jsSamsungWasmDecoder, m, nal, pictureBuffer, pictureUint8Array, timestamp, $s};return $f;
186698
+ };
186699
+ SamsungWasmDecoder.prototype.Write = function(nal, timestamp) { return this.$val.Write(nal, timestamp); };
186700
+ SamsungWasmDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
186701
+ var m, outputBuffer;
186702
+ m = this;
186703
+ return $ifaceNil;
186704
+ };
186705
+ SamsungWasmDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
186706
+ SamsungWasmDecoder.ptr.prototype.Release = function(outputBuffer) {
186707
+ var m, outputBuffer;
186708
+ m = this;
186709
+ };
186710
+ SamsungWasmDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
186711
+ ptrType$1.methods = [{prop: "destroy", name: "destroy", pkg: "github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder", typ: $funcType([], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
186712
+ SamsungWasmDecoder.init("github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder", [{prop: "mutexDecode", name: "mutexDecode", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "mutexGetPicture", name: "mutexGetPicture", embedded: false, exported: false, typ: sync.Mutex, tag: ""}]);
186713
+ $init = function() {
186714
+ $pkg.$init = function() {};
186715
+ /* */ 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:
186716
+ $r = general.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186717
+ $r = jsdecoder.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186718
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186719
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186720
+ $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186721
+ $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186722
+ $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186723
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
186724
+ };
186725
+ $pkg.$init = $init;
186726
+ return $pkg;
186727
+ })();
186574
186728
  $packages["github.com/nuberu/webgl/types"] = (function() {
186575
186729
  var $pkg = {}, $init, js, VertexArray, UniformLocation, Texture, Shader, ShaderPrecisionFormat, Program, Buffer, FrameBuffer, RenderBuffer, GLEnum, PowerPreference, Attributes, ActiveInfo, funcType, arrayType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, NewVertexArray, NewUniformLocation, NewTexture, NewShader, NewShaderPrecisionFormat, NewProgram, NewBuffer, NewFrameBuffer, NewRenderBuffer, NewActiveInfo;
186576
186730
  js = $packages["syscall/js"];
@@ -192907,14 +193061,14 @@ $packages["github.com/supraio/client-daemon/pkg/netclient"] = (function() {
192907
193061
  h = this;
192908
193062
  /* while (true) { */ case 1:
192909
193063
  /* if (!(!h.closed)) { break; } */ if(!(!h.closed)) { $s = 2; continue; }
192910
- $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; }
192911
- _r = h.messageSender.Send(2, new sliceType([])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193064
+ _r = h.messageSender.Send(2, new sliceType([])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192912
193065
  err = _r;
192913
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; }
192914
- /* */ $s = 6; continue;
192915
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5:
192916
- $r = errs.Print("Ping error", err); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192917
- /* } */ case 6:
193066
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
193067
+ /* */ $s = 5; continue;
193068
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
193069
+ $r = errs.Print("Ping error", err); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193070
+ /* } */ case 5:
193071
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192918
193072
  $s = 1; continue;
192919
193073
  case 2:
192920
193074
  $s = -1; return;
@@ -194563,6 +194717,18 @@ $packages["github.com/supraio/client-daemon/pkg/videostream"] = (function() {
194563
194717
  return false;
194564
194718
  };
194565
194719
  UnavailableVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
194720
+ UnavailableVideoStreamer.ptr.prototype.Play = function() {
194721
+ var u;
194722
+ u = this;
194723
+ $panic(new $String("not implemented Play"));
194724
+ };
194725
+ UnavailableVideoStreamer.prototype.Play = function() { return this.$val.Play(); };
194726
+ UnavailableVideoStreamer.ptr.prototype.Stop = function() {
194727
+ var u;
194728
+ u = this;
194729
+ $panic(new $String("not implemented Stop"));
194730
+ };
194731
+ UnavailableVideoStreamer.prototype.Stop = function() { return this.$val.Stop(); };
194566
194732
  UnavailableVideoStreamer.ptr.prototype.GetProtocol = function() {
194567
194733
  var u;
194568
194734
  u = this;
@@ -194581,7 +194747,7 @@ $packages["github.com/supraio/client-daemon/pkg/videostream"] = (function() {
194581
194747
  $panic(new $String("not implemented GetHostname"));
194582
194748
  };
194583
194749
  UnavailableVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
194584
- 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)}];
194750
+ ptrType.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Play", name: "Play", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [$error], 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)}];
194585
194751
  UnavailableVideoStreamer.init("", []);
194586
194752
  $init = function() {
194587
194753
  $pkg.$init = function() {};
@@ -194601,23 +194767,21 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194601
194767
  videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
194602
194768
  js = $packages["syscall/js"];
194603
194769
  time = $packages["time"];
194604
- SOSVideoStreamer = $pkg.SOSVideoStreamer = $newType(0, $kindStruct, "sosstream.SOSVideoStreamer", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_) {
194770
+ SOSVideoStreamer = $pkg.SOSVideoStreamer = $newType(0, $kindStruct, "sosstream.SOSVideoStreamer", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_, started_) {
194605
194771
  this.$val = this;
194606
194772
  if (arguments.length === 0) {
194607
194773
  this.sos = new js.Value.ptr(null, false, arrayType.zero());
194774
+ this.started = false;
194608
194775
  return;
194609
194776
  }
194610
194777
  this.sos = sos_;
194778
+ this.started = started_;
194611
194779
  });
194612
- SOSStreamDecoder = $pkg.SOSStreamDecoder = $newType(0, $kindStruct, "sosstream.SOSStreamDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_, started_) {
194780
+ SOSStreamDecoder = $pkg.SOSStreamDecoder = $newType(0, $kindStruct, "sosstream.SOSStreamDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function() {
194613
194781
  this.$val = this;
194614
194782
  if (arguments.length === 0) {
194615
- this.sos = new js.Value.ptr(null, false, arrayType.zero());
194616
- this.started = false;
194617
194783
  return;
194618
194784
  }
194619
- this.sos = sos_;
194620
- this.started = started_;
194621
194785
  });
194622
194786
  funcType = $funcType([], [], false);
194623
194787
  arrayType = $arrayType(funcType, 0);
@@ -194628,7 +194792,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194628
194792
  ptrType$2 = $ptrType(SOSStreamDecoder);
194629
194793
  init = function() {
194630
194794
  var videoStreamer;
194631
- videoStreamer = new SOSVideoStreamer.ptr($clone($clone(js.Global(), js.Value).Get("sos"), js.Value));
194795
+ videoStreamer = new SOSVideoStreamer.ptr($clone($clone(js.Global(), js.Value).Get("sos"), js.Value), false);
194632
194796
  videostream.Register(videoStreamer);
194633
194797
  };
194634
194798
  SOSVideoStreamer.ptr.prototype.IsAvailable = function() {
@@ -194637,65 +194801,15 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194637
194801
  return !$clone(m.sos, js.Value).IsUndefined() && $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("stream"), js.Value).Truthy();
194638
194802
  };
194639
194803
  SOSVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
194640
- SOSVideoStreamer.ptr.prototype.GetProtocol = function() {
194641
- var _1, m, protocol, protocolValue;
194642
- m = this;
194643
- protocolValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamProtocol"), js.Value);
194644
- protocol = 0;
194645
- if (!$clone(protocolValue, js.Value).IsUndefined() && ($clone(protocolValue, js.Value).Type() === 4)) {
194646
- _1 = $clone(protocolValue, js.Value).String();
194647
- if (_1 === ("UDP")) {
194648
- protocol = 0;
194649
- } else if (_1 === ("HTTP")) {
194650
- protocol = 1;
194651
- } else if (_1 === ("HTTPMP4")) {
194652
- protocol = 2;
194653
- } else if (_1 === ("RTP")) {
194654
- protocol = 3;
194655
- } else {
194656
- protocol = 0;
194657
- }
194658
- }
194659
- return protocol;
194660
- };
194661
- SOSVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
194662
- SOSVideoStreamer.ptr.prototype.GetPort = function() {
194663
- var m, port, portValue;
194664
- m = this;
194665
- portValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamPort"), js.Value);
194666
- port = 5000;
194667
- if (!$clone(portValue, js.Value).IsUndefined() && ($clone(portValue, js.Value).Type() === 3)) {
194668
- port = $clone(portValue, js.Value).Int();
194669
- }
194670
- return ((port << 16 >>> 16));
194671
- };
194672
- SOSVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
194673
- SOSVideoStreamer.ptr.prototype.GetHostname = function() {
194674
- var hostname, hostnameValue, m;
194675
- m = this;
194676
- hostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamHostname"), js.Value);
194677
- hostname = "";
194678
- if (!$clone(hostnameValue, js.Value).IsUndefined() && ($clone(hostnameValue, js.Value).Type() === 4)) {
194679
- hostname = $clone(hostnameValue, js.Value).String();
194680
- }
194681
- return hostname;
194682
- };
194683
- SOSVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
194684
- NewDecoder = function(header) {
194685
- var header, sos;
194686
- sos = $clone($clone(js.Global(), js.Value).Get("sos"), js.Value);
194687
- return [new SOSStreamDecoder.ptr($clone(sos, js.Value), false), $ifaceNil];
194688
- };
194689
- $pkg.NewDecoder = NewDecoder;
194690
- SOSStreamDecoder.ptr.prototype.Write = function(nal, param) {
194691
- 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, param, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s, $r, $c} = $restore(this, {nal, param});
194804
+ SOSVideoStreamer.ptr.prototype.Play = function() {
194805
+ 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, options, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s, $r, $c} = $restore(this, {});
194692
194806
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194693
194807
  m = this;
194694
194808
  /* */ if (!m.started) { $s = 1; continue; }
194695
194809
  /* */ $s = 2; continue;
194696
194810
  /* if (!m.started) { */ case 1:
194697
- protocol = m.getProtocol();
194698
- port = m.getPort();
194811
+ protocol = m.GetProtocol();
194812
+ port = m.GetPort();
194699
194813
  hostname = m.getStreamHostname(protocol);
194700
194814
  urlProtocol = m.getURLProtocol(protocol);
194701
194815
  sosProtocol = m.getSOSProtocol(protocol);
@@ -194740,35 +194854,90 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194740
194854
  m.started = true;
194741
194855
  /* } */ case 2:
194742
194856
  $s = -1; return $ifaceNil;
194743
- /* */ } 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, param, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s};return $f;
194857
+ /* */ } return; } var $f = {$blk: SOSVideoStreamer.ptr.prototype.Play, $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, options, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s};return $f;
194744
194858
  };
194745
- SOSStreamDecoder.prototype.Write = function(nal, param) { return this.$val.Write(nal, param); };
194746
- SOSStreamDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
194747
- var m, outputBuffer;
194859
+ SOSVideoStreamer.prototype.Play = function() { return this.$val.Play(); };
194860
+ SOSVideoStreamer.ptr.prototype.Stop = function() {
194861
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, height, hostname, m, port, protocol, stopPromise, url, urlProtocol, width, $s, $r, $c} = $restore(this, {});
194862
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194748
194863
  m = this;
194749
- return $ifaceNil;
194864
+ /* */ if (m.started) { $s = 1; continue; }
194865
+ /* */ $s = 2; continue;
194866
+ /* if (m.started) { */ case 1:
194867
+ protocol = m.GetProtocol();
194868
+ port = m.GetPort();
194869
+ hostname = m.getStreamHostname(protocol);
194870
+ urlProtocol = m.getURLProtocol(protocol);
194871
+ _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; }
194872
+ url = _r;
194873
+ width = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
194874
+ height = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
194875
+ _r$1 = $clone($clone(m.sos, js.Value).Get("stream"), js.Value).Call("stop", new sliceType([new $String(url), new $Int(0), new $Int(0), new $Int(width), new $Int(height)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
194876
+ stopPromise = $clone(_r$1, js.Value);
194877
+ _r$2 = jshelper.Await($clone(stopPromise, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
194878
+ _tuple = _r$2;
194879
+ err = _tuple[1];
194880
+ /* */ if (!(err === ptrType.nil)) { $s = 6; continue; }
194881
+ /* */ $s = 7; continue;
194882
+ /* if (!(err === ptrType.nil)) { */ case 6:
194883
+ _r$3 = jshelper.GetError(err); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
194884
+ _r$4 = _r$3.Error(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
194885
+ _arg = new $String(_r$4);
194886
+ _r$5 = errs.Errorf("Failed to stop sos video stream: %s", new sliceType([_arg])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
194887
+ $24r = _r$5;
194888
+ $s = 11; case 11: return $24r;
194889
+ /* } */ case 7:
194890
+ m.started = false;
194891
+ /* } */ case 2:
194892
+ $s = -1; return $ifaceNil;
194893
+ /* */ } return; } var $f = {$blk: SOSVideoStreamer.ptr.prototype.Stop, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, height, hostname, m, port, protocol, stopPromise, url, urlProtocol, width, $s};return $f;
194750
194894
  };
194751
- SOSStreamDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
194752
- SOSStreamDecoder.ptr.prototype.Release = function(outputBuffer) {
194753
- var m, outputBuffer;
194895
+ SOSVideoStreamer.prototype.Stop = function() { return this.$val.Stop(); };
194896
+ SOSVideoStreamer.ptr.prototype.GetProtocol = function() {
194897
+ var _1, m, protocol, protocolValue;
194754
194898
  m = this;
194899
+ protocolValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamProtocol"), js.Value);
194900
+ protocol = 0;
194901
+ if (!$clone(protocolValue, js.Value).IsUndefined() && ($clone(protocolValue, js.Value).Type() === 4)) {
194902
+ _1 = $clone(protocolValue, js.Value).String();
194903
+ if (_1 === ("UDP")) {
194904
+ protocol = 0;
194905
+ } else if (_1 === ("HTTP")) {
194906
+ protocol = 1;
194907
+ } else if (_1 === ("HTTPMP4")) {
194908
+ protocol = 2;
194909
+ } else if (_1 === ("RTP")) {
194910
+ protocol = 3;
194911
+ } else {
194912
+ protocol = 0;
194913
+ }
194914
+ }
194915
+ return protocol;
194755
194916
  };
194756
- SOSStreamDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
194757
- SOSStreamDecoder.ptr.prototype.getProtocol = function() {
194758
- var m, videoStreamer;
194917
+ SOSVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
194918
+ SOSVideoStreamer.ptr.prototype.GetPort = function() {
194919
+ var m, port, portValue;
194759
194920
  m = this;
194760
- videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
194761
- return videoStreamer.GetProtocol();
194921
+ portValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamPort"), js.Value);
194922
+ port = 5000;
194923
+ if (!$clone(portValue, js.Value).IsUndefined() && ($clone(portValue, js.Value).Type() === 3)) {
194924
+ port = $clone(portValue, js.Value).Int();
194925
+ }
194926
+ return ((port << 16 >>> 16));
194762
194927
  };
194763
- SOSStreamDecoder.prototype.getProtocol = function() { return this.$val.getProtocol(); };
194764
- SOSStreamDecoder.ptr.prototype.getPort = function() {
194765
- var m, videoStreamer;
194928
+ SOSVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
194929
+ SOSVideoStreamer.ptr.prototype.GetHostname = function() {
194930
+ var hostname, hostnameValue, m;
194766
194931
  m = this;
194767
- videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
194768
- return videoStreamer.GetPort();
194932
+ hostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamHostname"), js.Value);
194933
+ hostname = "";
194934
+ if (!$clone(hostnameValue, js.Value).IsUndefined() && ($clone(hostnameValue, js.Value).Type() === 4)) {
194935
+ hostname = $clone(hostnameValue, js.Value).String();
194936
+ }
194937
+ return hostname;
194769
194938
  };
194770
- SOSStreamDecoder.prototype.getPort = function() { return this.$val.getPort(); };
194771
- SOSStreamDecoder.ptr.prototype.getServerHostname = function() {
194939
+ SOSVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
194940
+ SOSVideoStreamer.ptr.prototype.getServerHostname = function() {
194772
194941
  var m, serverHostname, serverHostnameValue;
194773
194942
  m = this;
194774
194943
  serverHostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("hostname"), js.Value);
@@ -194778,11 +194947,11 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194778
194947
  }
194779
194948
  return serverHostname;
194780
194949
  };
194781
- SOSStreamDecoder.prototype.getServerHostname = function() { return this.$val.getServerHostname(); };
194782
- SOSStreamDecoder.ptr.prototype.getStreamHostname = function(protocol) {
194950
+ SOSVideoStreamer.prototype.getServerHostname = function() { return this.$val.getServerHostname(); };
194951
+ SOSVideoStreamer.ptr.prototype.getStreamHostname = function(protocol) {
194783
194952
  var _1, hostname, m, protocol, videoStreamer;
194784
194953
  m = this;
194785
- videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
194954
+ videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value), false);
194786
194955
  hostname = videoStreamer.GetHostname();
194787
194956
  if (!(hostname === "")) {
194788
194957
  return hostname;
@@ -194795,8 +194964,8 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194795
194964
  }
194796
194965
  return hostname;
194797
194966
  };
194798
- SOSStreamDecoder.prototype.getStreamHostname = function(protocol) { return this.$val.getStreamHostname(protocol); };
194799
- SOSStreamDecoder.ptr.prototype.getURLProtocol = function(protocol) {
194967
+ SOSVideoStreamer.prototype.getStreamHostname = function(protocol) { return this.$val.getStreamHostname(protocol); };
194968
+ SOSVideoStreamer.ptr.prototype.getURLProtocol = function(protocol) {
194800
194969
  var _1, m, protocol;
194801
194970
  m = this;
194802
194971
  _1 = protocol;
@@ -194810,8 +194979,8 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194810
194979
  $panic(new $String("Unknown url protocol"));
194811
194980
  }
194812
194981
  };
194813
- SOSStreamDecoder.prototype.getURLProtocol = function(protocol) { return this.$val.getURLProtocol(protocol); };
194814
- SOSStreamDecoder.ptr.prototype.getSOSProtocol = function(protocol) {
194982
+ SOSVideoStreamer.prototype.getURLProtocol = function(protocol) { return this.$val.getURLProtocol(protocol); };
194983
+ SOSVideoStreamer.ptr.prototype.getSOSProtocol = function(protocol) {
194815
194984
  var _1, m, protocol;
194816
194985
  m = this;
194817
194986
  _1 = protocol;
@@ -194825,11 +194994,41 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194825
194994
  $panic(new $String("Unknown sos protocol"));
194826
194995
  }
194827
194996
  };
194828
- SOSStreamDecoder.prototype.getSOSProtocol = function(protocol) { return this.$val.getSOSProtocol(protocol); };
194829
- 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)}];
194830
- ptrType$2.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$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)}];
194831
- SOSVideoStreamer.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}]);
194832
- 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: ""}]);
194997
+ SOSVideoStreamer.prototype.getSOSProtocol = function(protocol) { return this.$val.getSOSProtocol(protocol); };
194998
+ NewDecoder = function(header) {
194999
+ var header;
195000
+ return [new SOSStreamDecoder.ptr(), $ifaceNil];
195001
+ };
195002
+ $pkg.NewDecoder = NewDecoder;
195003
+ SOSStreamDecoder.ptr.prototype.Write = function(nal, param) {
195004
+ var {$24r, _r, m, nal, param, $s, $r, $c} = $restore(this, {nal, param});
195005
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195006
+ m = this;
195007
+ _r = errs.Errorf("SOSStreamDecoder does not expect any input data. Play SOS stream directly", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195008
+ $24r = _r;
195009
+ $s = 2; case 2: return $24r;
195010
+ /* */ } return; } var $f = {$blk: SOSStreamDecoder.ptr.prototype.Write, $c: true, $r, $24r, _r, m, nal, param, $s};return $f;
195011
+ };
195012
+ SOSStreamDecoder.prototype.Write = function(nal, param) { return this.$val.Write(nal, param); };
195013
+ SOSStreamDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
195014
+ var {$24r, _r, m, outputBuffer, $s, $r, $c} = $restore(this, {outputBuffer});
195015
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195016
+ m = this;
195017
+ _r = errs.Errorf("SOSStreamDecoder does not expect any input data. Play SOS stream directly", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195018
+ $24r = _r;
195019
+ $s = 2; case 2: return $24r;
195020
+ /* */ } return; } var $f = {$blk: SOSStreamDecoder.ptr.prototype.NextOutput, $c: true, $r, $24r, _r, m, outputBuffer, $s};return $f;
195021
+ };
195022
+ SOSStreamDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
195023
+ SOSStreamDecoder.ptr.prototype.Release = function(outputBuffer) {
195024
+ var m, outputBuffer;
195025
+ m = this;
195026
+ };
195027
+ SOSStreamDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
195028
+ ptrType$1.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Play", name: "Play", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [$error], 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)}, {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)}];
195029
+ ptrType$2.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
195030
+ SOSVideoStreamer.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: ""}]);
195031
+ SOSStreamDecoder.init("", []);
194833
195032
  $init = function() {
194834
195033
  $pkg.$init = function() {};
194835
195034
  /* */ 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:
@@ -194847,12 +195046,13 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194847
195046
  return $pkg;
194848
195047
  })();
194849
195048
  $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194850
- var $pkg = {}, $init, fmt, android, general, h264decoder, nacldecoder, sosstream, webcodecs, errs, videostream, time, Decoder, sliceType, sliceType$1, NewDecoder;
195049
+ var $pkg = {}, $init, fmt, android, general, h264decoder, nacldecoder, samsungwasmdecoder, sosstream, webcodecs, errs, videostream, time, Decoder, sliceType, sliceType$1, NewDecoder;
194851
195050
  fmt = $packages["fmt"];
194852
195051
  android = $packages["github.com/supraio/client-daemon/pkg/decoder/android"];
194853
195052
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
194854
195053
  h264decoder = $packages["github.com/supraio/client-daemon/pkg/decoder/h264decoder"];
194855
195054
  nacldecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"];
195055
+ samsungwasmdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"];
194856
195056
  sosstream = $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"];
194857
195057
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
194858
195058
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -194862,7 +195062,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194862
195062
  sliceType = $sliceType($emptyInterface);
194863
195063
  sliceType$1 = $sliceType($Uint8);
194864
195064
  NewDecoder = function(header) {
194865
- var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, header, $s, $r, $c} = $restore(this, {header});
195065
+ var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, _returncast$5, header, $s, $r, $c} = $restore(this, {header});
194866
195066
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194867
195067
  _arg = new $Bool(android.IsAvailable());
194868
195068
  _r = videostream.Get().IsAvailable(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
@@ -194873,12 +195073,13 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194873
195073
  _r$1 = fmt.Println(new sliceType([new $String("Decoders availability: android"), _arg, new $String(", videostream"), _arg$1, new $String(", nacldecoder"), _arg$2, new $String(", webcodecs"), _arg$3, new $String(", h264decoder"), _arg$4])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
194874
195074
  _r$1;
194875
195075
  /* */ if (android.IsAvailable()) { $s = 3; continue; }
194876
- _r$2 = videostream.Get().IsAvailable(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195076
+ _r$2 = videostream.Get().IsAvailable(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
194877
195077
  /* */ if (_r$2) { $s = 4; continue; }
194878
195078
  /* */ if (nacldecoder.IsAvailable()) { $s = 5; continue; }
194879
- /* */ if (webcodecs.IsAvailable()) { $s = 6; continue; }
194880
- /* */ if (h264decoder.IsAvailable()) { $s = 7; continue; }
194881
- /* */ $s = 8; continue;
195079
+ /* */ if (samsungwasmdecoder.IsAvailable()) { $s = 6; continue; }
195080
+ /* */ if (webcodecs.IsAvailable()) { $s = 7; continue; }
195081
+ /* */ if (h264decoder.IsAvailable()) { $s = 8; continue; }
195082
+ /* */ $s = 9; continue;
194882
195083
  /* if (android.IsAvailable()) { */ case 3:
194883
195084
  _returncast = android.NewDecoder(header);
194884
195085
  $s = -1; return [_returncast[0], _returncast[1]];
@@ -194888,19 +195089,22 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194888
195089
  /* } else if (nacldecoder.IsAvailable()) { */ case 5:
194889
195090
  _returncast$2 = nacldecoder.NewDecoder(header);
194890
195091
  $s = -1; return [_returncast$2[0], _returncast$2[1]];
194891
- /* } else if (webcodecs.IsAvailable()) { */ case 6:
194892
- _returncast$3 = webcodecs.NewDecoder(header);
195092
+ /* } else if (samsungwasmdecoder.IsAvailable()) { */ case 6:
195093
+ _returncast$3 = samsungwasmdecoder.NewDecoder(header);
194893
195094
  $s = -1; return [_returncast$3[0], _returncast$3[1]];
194894
- /* } else if (h264decoder.IsAvailable()) { */ case 7:
194895
- _returncast$4 = h264decoder.NewDecoder(header);
195095
+ /* } else if (webcodecs.IsAvailable()) { */ case 7:
195096
+ _returncast$4 = webcodecs.NewDecoder(header);
194896
195097
  $s = -1; return [_returncast$4[0], _returncast$4[1]];
194897
- /* } else { */ case 8:
194898
- _r$3 = errs.Errorf("Not available any decoder adapter in JS", sliceType.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
195098
+ /* } else if (h264decoder.IsAvailable()) { */ case 8:
195099
+ _returncast$5 = h264decoder.NewDecoder(header);
195100
+ $s = -1; return [_returncast$5[0], _returncast$5[1]];
195101
+ /* } else { */ case 9:
195102
+ _r$3 = errs.Errorf("Not available any decoder adapter in JS", sliceType.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
194899
195103
  $24r = [$ifaceNil, _r$3];
194900
- $s = 12; case 12: return $24r;
194901
- /* } */ case 9:
195104
+ $s = 13; case 13: return $24r;
195105
+ /* } */ case 10:
194902
195106
  $s = -1; return [$ifaceNil, $ifaceNil];
194903
- /* */ } return; } var $f = {$blk: NewDecoder, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, header, $s};return $f;
195107
+ /* */ } return; } var $f = {$blk: NewDecoder, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, _returncast$5, header, $s};return $f;
194904
195108
  };
194905
195109
  $pkg.NewDecoder = NewDecoder;
194906
195110
  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, time.Time], [$error], false)}]);
@@ -194912,11 +195116,12 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194912
195116
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194913
195117
  $r = h264decoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194914
195118
  $r = nacldecoder.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194915
- $r = sosstream.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194916
- $r = webcodecs.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194917
- $r = errs.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194918
- $r = videostream.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194919
- $r = time.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195119
+ $r = samsungwasmdecoder.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195120
+ $r = sosstream.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195121
+ $r = webcodecs.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195122
+ $r = errs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195123
+ $r = videostream.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195124
+ $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194920
195125
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
194921
195126
  };
194922
195127
  $pkg.$init = $init;
@@ -195097,11 +195302,12 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195097
195302
  this.groups = groups_;
195098
195303
  });
195099
195304
  Frame = $pkg.Frame = $newType(8, $kindInterface, "stats.Frame", true, "github.com/supraio/client-daemon/pkg/stats", true, null);
195100
- Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, stopwatch_, metrics_, latency_, serverTimestampAhead_, serverTimestampAheadBuffer_, currentFramesCount_, lastFrameRate_, totalFramesCount_, lastFramesLatencyAverage_, lastFramesLatencyVariance_, longTermFramesLatencyAverage_, longTermFramesLatencyVariance_, lastFramesCollectionAverage_, lastFramesCollectionVariance_, longTermFramesCollectionAverage_, longTermFramesCollectionVariance_, currentThrottledCollectionFramesCount_, lastThrottledCollectionFrameRate_, lastFramesDecodeWriteAverage_, lastFramesDecodeOutputAverage_, lastFramesDecodeWriteVariance_, lastFramesDecodeOutputVariance_, longTermFramesDecodeWriteAverage_, longTermFramesDecodeOutputAverage_, longTermFramesDecodeWriteVariance_, longTermFramesDecodeOutputVariance_, currentThrottledDecodeFramesCount_, lastThrottledDecodeFrameRate_, lastFramesRenderAverage_, lastFramesRenderVariance_, longTermFramesRenderAverage_, longTermFramesRenderVariance_, currentThrottledRenderFramesCount_, lastThrottledRenderFrameRate_, screenResolutionWidth_, screenResolutionHeight_, lastInteractionAt_) {
195305
+ Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, lastScreenPingAt_, stopwatch_, metrics_, latency_, serverTimestampAhead_, serverTimestampAheadBuffer_, currentFramesCount_, lastFrameRate_, totalFramesCount_, lastFramesLatencyAverage_, lastFramesLatencyVariance_, longTermFramesLatencyAverage_, longTermFramesLatencyVariance_, lastFramesCollectionAverage_, lastFramesCollectionVariance_, longTermFramesCollectionAverage_, longTermFramesCollectionVariance_, currentThrottledCollectionFramesCount_, lastThrottledCollectionFrameRate_, lastFramesDecodeWriteAverage_, lastFramesDecodeOutputAverage_, lastFramesDecodeWriteVariance_, lastFramesDecodeOutputVariance_, longTermFramesDecodeWriteAverage_, longTermFramesDecodeOutputAverage_, longTermFramesDecodeWriteVariance_, longTermFramesDecodeOutputVariance_, currentThrottledDecodeFramesCount_, lastThrottledDecodeFrameRate_, lastFramesRenderAverage_, lastFramesRenderVariance_, longTermFramesRenderAverage_, longTermFramesRenderVariance_, currentThrottledRenderFramesCount_, lastThrottledRenderFrameRate_, screenResolutionWidth_, screenResolutionHeight_, lastInteractionAt_) {
195101
195306
  this.$val = this;
195102
195307
  if (arguments.length === 0) {
195103
195308
  this.stopped = false;
195104
195309
  this.lastFrameAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
195310
+ this.lastScreenPingAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
195105
195311
  this.stopwatch = ptrType$1.nil;
195106
195312
  this.metrics = ptrType$2.nil;
195107
195313
  this.latency = new time.Duration(0, 0);
@@ -195143,6 +195349,7 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195143
195349
  }
195144
195350
  this.stopped = stopped_;
195145
195351
  this.lastFrameAt = lastFrameAt_;
195352
+ this.lastScreenPingAt = lastScreenPingAt_;
195146
195353
  this.stopwatch = stopwatch_;
195147
195354
  this.metrics = metrics_;
195148
195355
  this.latency = latency_;
@@ -195311,14 +195518,15 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195311
195518
  };
195312
195519
  Stopwatch.prototype.Stop = function(group) { return this.$val.Stop(group); };
195313
195520
  NewStats = function() {
195314
- var {_r, _r$1, s, $s, $r, $c} = $restore(this, {});
195521
+ var {_r, _r$1, _r$2, s, $s, $r, $c} = $restore(this, {});
195315
195522
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195316
195523
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195317
195524
  _r$1 = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195318
- s = new Stats.ptr(false, $clone(_r, time.Time), NewStopwatch(), NewMetrics(), new time.Duration(0, 0), new time.Duration(0, 0), sliceType$1.nil, 0, 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, 0, 0, $clone(_r$1, time.Time));
195525
+ _r$2 = time.Now(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195526
+ s = new Stats.ptr(false, $clone(_r, time.Time), $clone(_r$1, time.Time), NewStopwatch(), NewMetrics(), new time.Duration(0, 0), new time.Duration(0, 0), sliceType$1.nil, 0, 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, 0, 0, $clone(_r$2, time.Time));
195319
195527
  $go($methodVal(s, "startCalculations"), []);
195320
195528
  $s = -1; return s;
195321
- /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, s, $s};return $f;
195529
+ /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, _r$2, s, $s};return $f;
195322
195530
  };
195323
195531
  $pkg.NewStats = NewStats;
195324
195532
  Stats.ptr.prototype.GetClientStats = function() {
@@ -195376,6 +195584,16 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195376
195584
  /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s};return $f;
195377
195585
  };
195378
195586
  Stats.prototype.NotifyFrame = function(frame) { return this.$val.NotifyFrame(frame); };
195587
+ Stats.ptr.prototype.NotifyScreenPing = function() {
195588
+ var {_r, s, $s, $r, $c} = $restore(this, {});
195589
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195590
+ s = this;
195591
+ _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195592
+ time.Time.copy(s.lastScreenPingAt, _r);
195593
+ $s = -1; return;
195594
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyScreenPing, $c: true, $r, _r, s, $s};return $f;
195595
+ };
195596
+ Stats.prototype.NotifyScreenPing = function() { return this.$val.NotifyScreenPing(); };
195379
195597
  Stats.ptr.prototype.NotifyFrameCollectionStarted = function() {
195380
195598
  var {s, $s, $r, $c} = $restore(this, {});
195381
195599
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -195484,6 +195702,23 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195484
195702
  return s.lastFrameAt;
195485
195703
  };
195486
195704
  Stats.prototype.GetLastFrameAt = function() { return this.$val.GetLastFrameAt(); };
195705
+ Stats.ptr.prototype.GetLastScreenPingAt = function() {
195706
+ var s;
195707
+ s = this;
195708
+ return s.lastScreenPingAt;
195709
+ };
195710
+ Stats.prototype.GetLastScreenPingAt = function() { return this.$val.GetLastScreenPingAt(); };
195711
+ Stats.ptr.prototype.GetLastScreenImpulseAt = function() {
195712
+ var lastFrameAt, lastScreenPingAt, s;
195713
+ s = this;
195714
+ lastScreenPingAt = $clone(s.GetLastScreenPingAt(), time.Time);
195715
+ lastFrameAt = $clone(s.GetLastFrameAt(), time.Time);
195716
+ if ($clone(lastScreenPingAt, time.Time).After($clone(lastFrameAt, time.Time))) {
195717
+ return lastScreenPingAt;
195718
+ }
195719
+ return lastFrameAt;
195720
+ };
195721
+ Stats.prototype.GetLastScreenImpulseAt = function() { return this.$val.GetLastScreenImpulseAt(); };
195487
195722
  Stats.ptr.prototype.GetFrameRate = function() {
195488
195723
  var s;
195489
195724
  s = this;
@@ -195743,11 +195978,11 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195743
195978
  return (new time.Duration(0, math.Sqrt(($flatten64($div64(sum, (new time.Duration(0, values.$length)), false))))));
195744
195979
  };
195745
195980
  ptrType$1.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([$String], [time.Duration], false)}];
195746
- ptrType$5.methods = [{prop: "GetClientStats", name: "GetClientStats", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "UpdateServerTimestampAhead", name: "UpdateServerTimestampAhead", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "SetScreenResolution", name: "SetScreenResolution", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyFrameCollectionStarted", name: "NotifyFrameCollectionStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionEnded", name: "NotifyFrameCollectionEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledCollectionFrame", name: "NotifyThrottledCollectionFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteStarted", name: "NotifyFrameDecodeWriteStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteEnded", name: "NotifyFrameDecodeWriteEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputStarted", name: "NotifyFrameDecodeOutputStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputEnded", name: "NotifyFrameDecodeOutputEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledDecodeFrame", name: "NotifyThrottledDecodeFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderStarted", name: "NotifyFrameRenderStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderEnded", name: "NotifyFrameRenderEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledRenderFrame", name: "NotifyThrottledRenderFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "print", name: "print", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "GetServerTime", name: "GetServerTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "NotifyInteraction", name: "NotifyInteraction", pkg: "", typ: $funcType([], [], false)}, {prop: "GetInteractionWaitMultiplier", name: "GetInteractionWaitMultiplier", pkg: "", typ: $funcType([], [$Float64], false)}];
195981
+ ptrType$5.methods = [{prop: "GetClientStats", name: "GetClientStats", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "UpdateServerTimestampAhead", name: "UpdateServerTimestampAhead", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "SetScreenResolution", name: "SetScreenResolution", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyScreenPing", name: "NotifyScreenPing", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionStarted", name: "NotifyFrameCollectionStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionEnded", name: "NotifyFrameCollectionEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledCollectionFrame", name: "NotifyThrottledCollectionFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteStarted", name: "NotifyFrameDecodeWriteStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteEnded", name: "NotifyFrameDecodeWriteEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputStarted", name: "NotifyFrameDecodeOutputStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputEnded", name: "NotifyFrameDecodeOutputEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledDecodeFrame", name: "NotifyThrottledDecodeFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderStarted", name: "NotifyFrameRenderStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderEnded", name: "NotifyFrameRenderEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledRenderFrame", name: "NotifyThrottledRenderFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenPingAt", name: "GetLastScreenPingAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenImpulseAt", name: "GetLastScreenImpulseAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "print", name: "print", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "GetServerTime", name: "GetServerTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "NotifyInteraction", name: "NotifyInteraction", pkg: "", typ: $funcType([], [], false)}, {prop: "GetInteractionWaitMultiplier", name: "GetInteractionWaitMultiplier", pkg: "", typ: $funcType([], [$Float64], false)}];
195747
195982
  ptrType$2.methods = [{prop: "AddSample", name: "AddSample", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "GetCount", name: "GetCount", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "GetAverage", name: "GetAverage", pkg: "", typ: $funcType([$String], [time.Duration], false)}, {prop: "GetVariance", name: "GetVariance", pkg: "", typ: $funcType([$String], [time.Duration], false)}, {prop: "RemoveOldest", name: "RemoveOldest", pkg: "", typ: $funcType([$String, $Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([$String], [], false)}];
195748
195983
  Stopwatch.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "groups", name: "groups", embedded: false, exported: false, typ: mapType, tag: ""}]);
195749
195984
  Frame.init([{prop: "GetTimestamp", name: "GetTimestamp", pkg: "", typ: $funcType([], [time.Time], false)}]);
195750
- Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "stopped", name: "stopped", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastFrameAt", name: "lastFrameAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "stopwatch", name: "stopwatch", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "metrics", name: "metrics", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "latency", name: "latency", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAhead", name: "serverTimestampAhead", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAheadBuffer", name: "serverTimestampAheadBuffer", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "currentFramesCount", name: "currentFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFrameRate", name: "lastFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalFramesCount", name: "totalFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesLatencyAverage", name: "lastFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesLatencyVariance", name: "lastFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyAverage", name: "longTermFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyVariance", name: "longTermFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionAverage", name: "lastFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionVariance", name: "lastFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionAverage", name: "longTermFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionVariance", name: "longTermFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledCollectionFramesCount", name: "currentThrottledCollectionFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledCollectionFrameRate", name: "lastThrottledCollectionFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesDecodeWriteAverage", name: "lastFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputAverage", name: "lastFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeWriteVariance", name: "lastFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputVariance", name: "lastFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteAverage", name: "longTermFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputAverage", name: "longTermFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteVariance", name: "longTermFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputVariance", name: "longTermFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledDecodeFramesCount", name: "currentThrottledDecodeFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledDecodeFrameRate", name: "lastThrottledDecodeFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesRenderAverage", name: "lastFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesRenderVariance", name: "lastFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderAverage", name: "longTermFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderVariance", name: "longTermFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledRenderFramesCount", name: "currentThrottledRenderFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledRenderFrameRate", name: "lastThrottledRenderFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "screenResolutionWidth", name: "screenResolutionWidth", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "screenResolutionHeight", name: "screenResolutionHeight", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lastInteractionAt", name: "lastInteractionAt", embedded: false, exported: false, typ: time.Time, tag: ""}]);
195985
+ Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "stopped", name: "stopped", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastFrameAt", name: "lastFrameAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "lastScreenPingAt", name: "lastScreenPingAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "stopwatch", name: "stopwatch", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "metrics", name: "metrics", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "latency", name: "latency", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAhead", name: "serverTimestampAhead", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAheadBuffer", name: "serverTimestampAheadBuffer", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "currentFramesCount", name: "currentFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFrameRate", name: "lastFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalFramesCount", name: "totalFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesLatencyAverage", name: "lastFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesLatencyVariance", name: "lastFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyAverage", name: "longTermFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyVariance", name: "longTermFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionAverage", name: "lastFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionVariance", name: "lastFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionAverage", name: "longTermFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionVariance", name: "longTermFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledCollectionFramesCount", name: "currentThrottledCollectionFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledCollectionFrameRate", name: "lastThrottledCollectionFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesDecodeWriteAverage", name: "lastFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputAverage", name: "lastFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeWriteVariance", name: "lastFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputVariance", name: "lastFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteAverage", name: "longTermFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputAverage", name: "longTermFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteVariance", name: "longTermFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputVariance", name: "longTermFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledDecodeFramesCount", name: "currentThrottledDecodeFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledDecodeFrameRate", name: "lastThrottledDecodeFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesRenderAverage", name: "lastFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesRenderVariance", name: "lastFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderAverage", name: "longTermFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderVariance", name: "longTermFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledRenderFramesCount", name: "currentThrottledRenderFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledRenderFrameRate", name: "lastThrottledRenderFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "screenResolutionWidth", name: "screenResolutionWidth", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "screenResolutionHeight", name: "screenResolutionHeight", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lastInteractionAt", name: "lastInteractionAt", embedded: false, exported: false, typ: time.Time, tag: ""}]);
195751
195986
  Metrics.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "groups", name: "groups", embedded: false, exported: false, typ: mapType$1, tag: ""}]);
195752
195987
  ClientStats.init("", [{prop: "LatencyNano", name: "LatencyNano", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "ServerTimestampAhead", name: "ServerTimestampAhead", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFrameRate", name: "LastFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "TotalFramesCount", name: "TotalFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFramesLatencyAverage", name: "LastFramesLatencyAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesLatencyVariance", name: "LastFramesLatencyVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesLatencyAverage", name: "LongTermFramesLatencyAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesLatencyVariance", name: "LongTermFramesLatencyVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesCollectionAverage", name: "LastFramesCollectionAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesCollectionVariance", name: "LastFramesCollectionVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesCollectionAverage", name: "LongTermFramesCollectionAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesCollectionVariance", name: "LongTermFramesCollectionVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastThrottledCollectionFrameRate", name: "LastThrottledCollectionFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFramesDecodeWriteAverage", name: "LastFramesDecodeWriteAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesDecodeOutputAverage", name: "LastFramesDecodeOutputAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesDecodeWriteVariance", name: "LastFramesDecodeWriteVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesDecodeOutputVariance", name: "LastFramesDecodeOutputVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeWriteAverage", name: "LongTermFramesDecodeWriteAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeOutputAverage", name: "LongTermFramesDecodeOutputAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeWriteVariance", name: "LongTermFramesDecodeWriteVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeOutputVariance", name: "LongTermFramesDecodeOutputVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastThrottledDecodeFrameRate", name: "LastThrottledDecodeFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFramesRenderAverage", name: "LastFramesRenderAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesRenderVariance", name: "LastFramesRenderVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesRenderAverage", name: "LongTermFramesRenderAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesRenderVariance", name: "LongTermFramesRenderVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastThrottledRenderFrameRate", name: "LastThrottledRenderFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ScreenResolutionWidth", name: "ScreenResolutionWidth", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "ScreenResolutionHeight", name: "ScreenResolutionHeight", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
195753
195988
  $init = function() {
@@ -196184,13 +196419,13 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196184
196419
  };
196185
196420
  $pkg.NewCollectionLoop = NewCollectionLoop;
196186
196421
  CollectionLoop.ptr.prototype.NextFrame = function() {
196187
- var {_r, cl, frame$1, $s, $r, $c} = $restore(this, {});
196422
+ var {_r, cl, collectedFrame, $s, $r, $c} = $restore(this, {});
196188
196423
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196189
196424
  cl = this;
196190
196425
  _r = $recv(cl.framesChan); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196191
- frame$1 = _r[0];
196192
- $s = -1; return [frame$1, $ifaceNil];
196193
- /* */ } return; } var $f = {$blk: CollectionLoop.ptr.prototype.NextFrame, $c: true, $r, _r, cl, frame$1, $s};return $f;
196426
+ collectedFrame = _r[0];
196427
+ $s = -1; return [collectedFrame, $ifaceNil];
196428
+ /* */ } return; } var $f = {$blk: CollectionLoop.ptr.prototype.NextFrame, $c: true, $r, _r, cl, collectedFrame, $s};return $f;
196194
196429
  };
196195
196430
  CollectionLoop.prototype.NextFrame = function() { return this.$val.NextFrame(); };
196196
196431
  CollectionLoop.ptr.prototype.Start = function() {
@@ -196201,13 +196436,13 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196201
196436
  }
196202
196437
  cl.started = true;
196203
196438
  $go((function $b() {
196204
- var {_r, _tuple, err, frame$1, $s, $r, $c} = $restore(this, {});
196439
+ var {_1, _r, _tuple, collectedFrame, err, $s, $r, $c} = $restore(this, {});
196205
196440
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196206
196441
  /* while (true) { */ case 1:
196207
196442
  /* if (!(cl.started)) { break; } */ if(!(cl.started)) { $s = 2; continue; }
196208
196443
  _r = cl.frameCollector.CollectFrame($methodVal(cl.stats, "NotifyFrameCollectionStarted"), $methodVal(cl.stats, "NotifyFrameCollectionEnded")); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196209
196444
  _tuple = _r;
196210
- frame$1 = _tuple[0];
196445
+ collectedFrame = _tuple[0];
196211
196446
  err = _tuple[1];
196212
196447
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
196213
196448
  /* */ $s = 5; continue;
@@ -196223,7 +196458,17 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196223
196458
  /* */ if (cl.framesChan.$buffer.length < 50) { $s = 10; continue; }
196224
196459
  /* */ $s = 11; continue;
196225
196460
  /* if (cl.framesChan.$buffer.length < 50) { */ case 10:
196226
- $r = $send(cl.framesChan, frame$1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196461
+ _1 = collectedFrame.FrameType();
196462
+ /* */ if (_1 === (1)) { $s = 14; continue; }
196463
+ /* */ if (_1 === (255)) { $s = 15; continue; }
196464
+ /* */ $s = 16; continue;
196465
+ /* if (_1 === (1)) { */ case 14:
196466
+ $r = $send(cl.framesChan, collectedFrame); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196467
+ $s = 16; continue;
196468
+ /* } else if (_1 === (255)) { */ case 15:
196469
+ $r = cl.stats.NotifyScreenPing(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196470
+ /* } */ case 16:
196471
+ case 13:
196227
196472
  $s = 12; continue;
196228
196473
  /* } else { */ case 11:
196229
196474
  cl.stats.NotifyThrottledCollectionFrame();
@@ -196231,7 +196476,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196231
196476
  $s = 1; continue;
196232
196477
  case 2:
196233
196478
  $s = -1; return;
196234
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _tuple, err, frame$1, $s};return $f;
196479
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _1, _r, _tuple, collectedFrame, err, $s};return $f;
196235
196480
  }), []);
196236
196481
  };
196237
196482
  CollectionLoop.prototype.Start = function() { return this.$val.Start(); };
@@ -196762,7 +197007,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
196762
197007
  return $pkg;
196763
197008
  })();
196764
197009
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196765
- var $pkg = {}, $init, binary, json, fmt, query, clientscreen, clipboard, android, nacldecoder, nacldriver, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, canvasdriver, overlaydriver, webgldriver, stats, videostream, window, screen, focus, key, lifecycle, mouse, size, touch, 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, ptrType$10, sliceType$1, sliceType$2, structType, sliceType$3, funcType$1, ptrType$11, ptrType$12, chanType, chanType$1, chanType$2, chanType$3, chanType$4, chanType$5, NewScreenWindow, MainDriver, NewProcessInfoManager;
197010
+ var $pkg = {}, $init, binary, json, fmt, query, clientscreen, clipboard, android, nacldecoder, nacldriver, samsungwasmdecoder, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, canvasdriver, overlaydriver, webgldriver, stats, videostream, window, screen, focus, key, lifecycle, mouse, size, touch, image, io, ioutil, log, os, path, strings, sync, js, time, ScreenWindow, ProcessInfo, ProcessInfoManager, sliceType, ptrType, ptrType$1, funcType, sliceType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$2, structType, sliceType$3, sliceType$4, funcType$1, ptrType$11, ptrType$12, chanType, chanType$1, chanType$2, chanType$3, chanType$4, chanType$5, RegisterVideoStream, UnregisterVideoStream, NewScreenWindow, MainDriver, NewProcessInfoManager;
196766
197011
  binary = $packages["encoding/binary"];
196767
197012
  json = $packages["encoding/json"];
196768
197013
  fmt = $packages["fmt"];
@@ -196772,6 +197017,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196772
197017
  android = $packages["github.com/supraio/client-daemon/pkg/decoder/android"];
196773
197018
  nacldecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"];
196774
197019
  nacldriver = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder/nacldriver"];
197020
+ samsungwasmdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"];
196775
197021
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
196776
197022
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
196777
197023
  helper = $packages["github.com/supraio/client-daemon/pkg/helper"];
@@ -196821,7 +197067,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196821
197067
  this.timeoutDuration = new time.Duration(0, 0);
196822
197068
  this.closed = false;
196823
197069
  this.stats = ptrType$1.nil;
196824
- this.onClose = sliceType.nil;
197070
+ this.onClose = sliceType$1.nil;
196825
197071
  this.window = $ifaceNil;
196826
197072
  this.screen = $ifaceNil;
196827
197073
  this.screenConn = $ifaceNil;
@@ -196895,10 +197141,11 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196895
197141
  this.username = username_;
196896
197142
  this.processDir = processDir_;
196897
197143
  });
197144
+ sliceType = $sliceType($Uint8);
196898
197145
  ptrType = $ptrType(ProcessInfoManager);
196899
197146
  ptrType$1 = $ptrType(stats.Stats);
196900
197147
  funcType = $funcType([], [], false);
196901
- sliceType = $sliceType(funcType);
197148
+ sliceType$1 = $sliceType(funcType);
196902
197149
  ptrType$2 = $ptrType(netclient.MetadataServer);
196903
197150
  ptrType$3 = $ptrType(player.CollectionLoop);
196904
197151
  ptrType$4 = $ptrType(player.DecoderLoop);
@@ -196908,10 +197155,10 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196908
197155
  ptrType$8 = $ptrType(input.KeyHandler);
196909
197156
  ptrType$9 = $ptrType(input.MouseHandler);
196910
197157
  ptrType$10 = $ptrType(netclient.Pinger);
196911
- sliceType$1 = $sliceType($emptyInterface);
196912
- sliceType$2 = $sliceType($Uint8);
197158
+ sliceType$2 = $sliceType($emptyInterface);
196913
197159
  structType = $structType("", []);
196914
- sliceType$3 = $sliceType($String);
197160
+ sliceType$3 = $sliceType($error);
197161
+ sliceType$4 = $sliceType($String);
196915
197162
  funcType$1 = $funcType([], [$error], false);
196916
197163
  ptrType$11 = $ptrType(netclient.MetadataResponsiveSender);
196917
197164
  ptrType$12 = $ptrType(ScreenWindow);
@@ -196921,11 +197168,69 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196921
197168
  chanType$3 = $chanType(focus.Event, false, false);
196922
197169
  chanType$4 = $chanType(touch.Event, false, false);
196923
197170
  chanType$5 = $chanType($emptyInterface, false, false);
197171
+ RegisterVideoStream = function(sender) {
197172
+ var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, data, err, sender, streamHostname, videoStreamer, $s, $r, $c} = $restore(this, {sender});
197173
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197174
+ videoStreamer = videostream.Get();
197175
+ _r = videoStreamer.IsAvailable(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197176
+ /* */ if (_r) { $s = 1; continue; }
197177
+ /* */ $s = 2; continue;
197178
+ /* if (_r) { */ case 1:
197179
+ data = $makeSlice(sliceType, 3);
197180
+ _r$1 = videoStreamer.GetProtocol(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197181
+ (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0] = ((_r$1 << 24 >>> 24)));
197182
+ _arg = $subslice(data, 1);
197183
+ _r$2 = videoStreamer.GetPort(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197184
+ _arg$1 = (_r$2);
197185
+ $r = $clone(binary.BigEndian, binary.bigEndian).PutUint16(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197186
+ _r$3 = videoStreamer.GetHostname(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197187
+ streamHostname = _r$3;
197188
+ if (!(streamHostname === "")) {
197189
+ data = $appendSlice(data, (new sliceType($stringToBytes(streamHostname))));
197190
+ }
197191
+ _r$4 = sender.Send(5, data); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
197192
+ err = _r$4;
197193
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197194
+ $s = -1; return err;
197195
+ }
197196
+ _r$5 = videoStreamer.Play(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197197
+ err = _r$5;
197198
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197199
+ $s = -1; return err;
197200
+ }
197201
+ /* } */ case 2:
197202
+ $s = -1; return $ifaceNil;
197203
+ /* */ } return; } var $f = {$blk: RegisterVideoStream, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, data, err, sender, streamHostname, videoStreamer, $s};return $f;
197204
+ };
197205
+ $pkg.RegisterVideoStream = RegisterVideoStream;
197206
+ UnregisterVideoStream = function(sender) {
197207
+ var {_r, _r$1, _r$2, err, sender, videoStreamer, $s, $r, $c} = $restore(this, {sender});
197208
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197209
+ videoStreamer = videostream.Get();
197210
+ _r = videoStreamer.IsAvailable(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197211
+ /* */ if (_r) { $s = 1; continue; }
197212
+ /* */ $s = 2; continue;
197213
+ /* if (_r) { */ case 1:
197214
+ _r$1 = videoStreamer.Stop(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197215
+ err = _r$1;
197216
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197217
+ $s = -1; return err;
197218
+ }
197219
+ _r$2 = sender.Send(6, new sliceType([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197220
+ err = _r$2;
197221
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197222
+ $s = -1; return err;
197223
+ }
197224
+ /* } */ case 2:
197225
+ $s = -1; return $ifaceNil;
197226
+ /* */ } return; } var $f = {$blk: UnregisterVideoStream, $c: true, $r, _r, _r$1, _r$2, err, sender, videoStreamer, $s};return $f;
197227
+ };
197228
+ $pkg.UnregisterVideoStream = UnregisterVideoStream;
196924
197229
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration) {
196925
197230
  var {$24r, _r, clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration, $s, $r, $c} = $restore(this, {processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration});
196926
197231
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196927
197232
  _r = stats.NewStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196928
- $24r = new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), timeoutDuration, true, _r, sliceType.nil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$2.nil, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, new $Chan(key.Event, 50), new $Chan(mouse.Event, 50), new $Chan(size.Event, 50), new $Chan(focus.Event, 50), new $Chan(touch.Event, 50), new $Chan($emptyInterface, 0));
197233
+ $24r = new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), timeoutDuration, true, _r, sliceType$1.nil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$2.nil, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, new $Chan(key.Event, 50), new $Chan(mouse.Event, 50), new $Chan(size.Event, 50), new $Chan(focus.Event, 50), new $Chan(touch.Event, 50), new $Chan($emptyInterface, 0));
196929
197234
  $s = 2; case 2: return $24r;
196930
197235
  /* */ } return; } var $f = {$blk: NewScreenWindow, $c: true, $r, $24r, _r, clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration, $s};return $f;
196931
197236
  };
@@ -196937,7 +197242,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196937
197242
  /* */ if (!w.closed) { $s = 1; continue; }
196938
197243
  /* */ $s = 2; continue;
196939
197244
  /* if (!w.closed) { */ case 1:
196940
- _r = errs.Errorf("Screen window is already started", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197245
+ _r = errs.Errorf("Screen window is already started", sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196941
197246
  $24r = _r;
196942
197247
  $s = 4; case 4: return $24r;
196943
197248
  /* } */ case 2:
@@ -196968,6 +197273,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196968
197273
  if (!($interfaceIsEqual(err, $ifaceNil))) {
196969
197274
  $s = -1; return err;
196970
197275
  }
197276
+ $go($methodVal(w, "startTimestampSyncing"), []);
197277
+ $go($methodVal(w, "startStatsSyncing"), []);
197278
+ $go($methodVal(w, "startScreenHealthChecking"), []);
196971
197279
  $s = -1; return $ifaceNil;
196972
197280
  /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.Start, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, err, w, $s};return $f;
196973
197281
  };
@@ -196980,28 +197288,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196980
197288
  $s = -1; return;
196981
197289
  }
196982
197290
  w.closed = true;
196983
- if (!(w.collectionLoop === ptrType$3.nil)) {
196984
- w.collectionLoop.Stop();
196985
- w.collectionLoop = ptrType$3.nil;
196986
- }
196987
- if (!(w.decoderLoop === ptrType$4.nil)) {
196988
- w.decoderLoop.Stop();
196989
- w.decoderLoop = ptrType$4.nil;
196990
- }
196991
- if (!(w.renderingLoop === ptrType$5.nil)) {
196992
- w.renderingLoop.Stop();
196993
- w.renderingLoop = ptrType$5.nil;
196994
- }
196995
- if (!(w.pinger === ptrType$10.nil)) {
196996
- w.pinger.Close();
196997
- w.pinger = ptrType$10.nil;
196998
- }
196999
- _r = w.createScreenSender().Send(3, new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197291
+ _r = w.closeScreen(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197000
197292
  err = _r;
197001
197293
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
197002
197294
  /* */ $s = 3; continue;
197003
197295
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
197004
- $r = errs.Print("Cannot close screen stream", err); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197296
+ $r = errs.Print("Cannot close screen", err); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197005
197297
  /* } */ case 3:
197006
197298
  /* */ if (!(w.metadataServer === ptrType$2.nil)) { $s = 5; continue; }
197007
197299
  /* */ $s = 6; continue;
@@ -197320,8 +197612,6 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197320
197612
  w[0].sizeHandler.Start();
197321
197613
  w[0].touchHandler = input.NewTouchHandler(w[0].touchEventChan, metadataSender);
197322
197614
  w[0].touchHandler.Start();
197323
- $go($methodVal(w[0], "startTimestampSyncing"), []);
197324
- $go($methodVal(w[0], "startStatsSyncing"), []);
197325
197615
  w[0].metadataServer.OnClose((function(w) { return function $b() {
197326
197616
  var {_r$7, err$1, $s, $r, $c} = $restore(this, {});
197327
197617
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -197380,7 +197670,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197380
197670
  /* } */ case 4:
197381
197671
  _r = time.Now(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197382
197672
  latencyStart = $clone(_r, time.Time);
197383
- _r$1 = w.createMetadataResponsiveSender().SendServerWaitResponse(46, new sliceType$2([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197673
+ _r$1 = w.createMetadataResponsiveSender().SendServerWaitResponse(46, new sliceType([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197384
197674
  _tuple = _r$1;
197385
197675
  serverTimestampData = _tuple[0];
197386
197676
  err = _tuple[1];
@@ -197465,128 +197755,147 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197465
197755
  return $mul64((new time.Duration(clampedTimeoutMs.$high, clampedTimeoutMs.$low)), new time.Duration(0, 1000000));
197466
197756
  };
197467
197757
  ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
197758
+ ScreenWindow.ptr.prototype.startScreenHealthChecking = function() {
197759
+ var {_r, _r$1, _r$2, _r$3, err, lastImpulseAt, w, $s, $r, $c} = $restore(this, {});
197760
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197761
+ w = this;
197762
+ /* while (true) { */ case 1:
197763
+ /* if (!(!w.closed)) { break; } */ if(!(!w.closed)) { $s = 2; continue; }
197764
+ /* */ if ($interfaceIsEqual(w.screenConn, $ifaceNil)) { $s = 3; continue; }
197765
+ /* */ $s = 4; continue;
197766
+ /* if ($interfaceIsEqual(w.screenConn, $ifaceNil)) { */ case 3:
197767
+ $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197768
+ /* continue; */ $s = 1; continue;
197769
+ /* } */ case 4:
197770
+ lastImpulseAt = $clone(w.stats.GetLastScreenImpulseAt(), time.Time);
197771
+ _r = time.Now(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197772
+ _r$1 = $clone($clone(lastImpulseAt, time.Time).Add(w.getFrameHealthCheckTimeout()), time.Time).Before($clone(_r, time.Time)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197773
+ /* */ if (_r$1) { $s = 6; continue; }
197774
+ /* */ $s = 7; continue;
197775
+ /* if (_r$1) { */ case 6:
197776
+ _r$2 = w.closeScreen(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197777
+ err = _r$2;
197778
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 11; continue; }
197779
+ /* */ $s = 12; continue;
197780
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 11:
197781
+ $r = errs.Print("Cannot close screen", err); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197782
+ /* } */ case 12:
197783
+ _r$3 = w.retriableOpen(-1, $methodVal(w, "openScreen")); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197784
+ err = _r$3;
197785
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; }
197786
+ /* */ $s = 16; continue;
197787
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15:
197788
+ $r = errs.Print("Reconnecting screen", err); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197789
+ /* } */ case 16:
197790
+ /* } */ case 7:
197791
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197792
+ $s = 1; continue;
197793
+ case 2:
197794
+ $s = -1; return;
197795
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.startScreenHealthChecking, $c: true, $r, _r, _r$1, _r$2, _r$3, err, lastImpulseAt, w, $s};return $f;
197796
+ };
197797
+ ScreenWindow.prototype.startScreenHealthChecking = function() { return this.$val.startScreenHealthChecking(); };
197468
197798
  ScreenWindow.ptr.prototype.openScreen = function() {
197469
- 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, {});
197799
+ var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, conn, connect, err, frameCollector, maxPacketSize, msgData, screenSender, w, $s, $r, $c} = $restore(this, {});
197470
197800
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197471
- err = [err];
197472
- screenSender = [screenSender];
197473
- w = [w];
197474
- w[0] = this;
197475
- err[0] = $ifaceNil;
197476
- _r = netpacket.Create(w[0].screenDriver); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197801
+ w = this;
197802
+ err = $ifaceNil;
197803
+ _r = netpacket.Create(w.screenDriver); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197477
197804
  _tuple = _r;
197478
197805
  connect = _tuple[0];
197479
- err[0] = _tuple[1];
197480
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197481
- $s = -1; return err[0];
197806
+ err = _tuple[1];
197807
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197808
+ $s = -1; return err;
197482
197809
  }
197483
- _r$1 = connect(w[0].screenHost, new time.Duration(0, 1000000000), w[0].secure); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197810
+ _r$1 = connect(w.screenHost, new time.Duration(0, 1000000000), w.secure); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197484
197811
  _tuple$1 = _r$1;
197485
197812
  conn = _tuple$1[0];
197486
- err[0] = _tuple$1[1];
197487
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197488
- $s = -1; return err[0];
197813
+ err = _tuple$1[1];
197814
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197815
+ $s = -1; return err;
197489
197816
  }
197490
- w[0].screenConn = conn;
197491
- maxPacketSize = netpacket.GetMaxPacketSize(w[0].screenDriver);
197817
+ w.screenConn = conn;
197818
+ maxPacketSize = netpacket.GetMaxPacketSize(w.screenDriver);
197492
197819
  frameCollector = netframe.NewFrameCollector(conn, maxPacketSize);
197493
- w[0].collectionLoop = player.NewCollectionLoop(frameCollector, w[0].stats);
197494
- w[0].collectionLoop.Start();
197495
- w[0].decoderLoop = player.NewDecoderLoop(w[0].collectionLoop, $methodVal(w[0], "createScreenBuffer"), w[0].stats);
197496
- w[0].decoderLoop.Start();
197497
- w[0].renderingLoop = player.NewRenderingLoop(w[0].decoderLoop, w[0].window, w[0].stats);
197498
- w[0].renderingLoop.Start();
197499
- screenSender[0] = w[0].createScreenSender();
197500
- msgData = (new sliceType$2($stringToBytes(w[0].clientID + w[0].clientSecret + w[0].screenID)));
197501
- _r$2 = screenSender[0].Send(1, msgData); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197502
- err[0] = _r$2;
197503
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197504
- $s = -1; return err[0];
197820
+ w.collectionLoop = player.NewCollectionLoop(frameCollector, w.stats);
197821
+ w.collectionLoop.Start();
197822
+ w.decoderLoop = player.NewDecoderLoop(w.collectionLoop, $methodVal(w, "createScreenBuffer"), w.stats);
197823
+ w.decoderLoop.Start();
197824
+ w.renderingLoop = player.NewRenderingLoop(w.decoderLoop, w.window, w.stats);
197825
+ w.renderingLoop.Start();
197826
+ screenSender = w.createScreenSender();
197827
+ msgData = (new sliceType($stringToBytes(w.clientID + w.clientSecret + w.screenID)));
197828
+ _r$2 = screenSender.Send(1, msgData); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197829
+ err = _r$2;
197830
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197831
+ $s = -1; return err;
197832
+ }
197833
+ w.pinger = netclient.NewPinger(screenSender);
197834
+ w.pinger.Start();
197835
+ _r$3 = RegisterVideoStream(screenSender); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197836
+ err = _r$3;
197837
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197838
+ $s = -1; return err;
197505
197839
  }
197506
- w[0].pinger = netclient.NewPinger(screenSender[0]);
197507
- w[0].pinger.Start();
197508
- videoStreamer = videostream.Get();
197509
- _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; }
197510
- /* */ if (_r$3) { $s = 4; continue; }
197511
- /* */ $s = 5; continue;
197512
- /* if (_r$3) { */ case 4:
197513
- data = $makeSlice(sliceType$2, 3);
197514
- _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; }
197515
- (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0] = ((_r$4 << 24 >>> 24)));
197516
- _arg = $subslice(data, 1);
197517
- _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; }
197518
- _arg$1 = (_r$5);
197519
- $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; }
197520
- _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; }
197521
- streamHostname = _r$6;
197522
- if (!(streamHostname === "")) {
197523
- data = $appendSlice(data, (new sliceType$2($stringToBytes(streamHostname))));
197524
- }
197525
- _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; }
197526
- err[0] = _r$7;
197527
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197528
- $s = -1; return err[0];
197529
- }
197530
- /* } */ case 5:
197531
- $go((function(err, screenSender, w) { return function $b() {
197532
- var {_r$10, _r$11, _r$12, _r$8, _r$9, err$1, $s, $r, $c} = $restore(this, {});
197533
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197534
- /* while (true) { */ case 1:
197535
- /* if (!(!w[0].closed)) { break; } */ if(!(!w[0].closed)) { $s = 2; continue; }
197536
- $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; }
197537
- _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; }
197538
- _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; }
197539
- /* */ if (_r$9) { $s = 4; continue; }
197540
- /* */ $s = 5; continue;
197541
- /* if (_r$9) { */ case 4:
197542
- if (!(w[0].pinger === ptrType$10.nil)) {
197543
- w[0].pinger.Close();
197544
- w[0].pinger = ptrType$10.nil;
197545
- }
197546
- if (!(w[0].collectionLoop === ptrType$3.nil)) {
197547
- w[0].collectionLoop.Stop();
197548
- w[0].collectionLoop = ptrType$3.nil;
197549
- }
197550
- if (!(w[0].decoderLoop === ptrType$4.nil)) {
197551
- w[0].decoderLoop.Stop();
197552
- w[0].decoderLoop = ptrType$4.nil;
197553
- }
197554
- if (!(w[0].renderingLoop === ptrType$5.nil)) {
197555
- w[0].renderingLoop.Stop();
197556
- w[0].renderingLoop = ptrType$5.nil;
197557
- }
197558
- _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; }
197559
- err[0] = _r$10;
197560
- /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 9; continue; }
197561
- /* */ $s = 10; continue;
197562
- /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 9:
197563
- $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; }
197564
- /* } */ case 10:
197565
- _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; }
197566
- err[0] = _r$11;
197567
- /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 13; continue; }
197568
- /* */ $s = 14; continue;
197569
- /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 13:
197570
- $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; }
197571
- /* } */ case 14:
197572
- _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; }
197573
- err$1 = _r$12;
197574
- /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 17; continue; }
197575
- /* */ $s = 18; continue;
197576
- /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 17:
197577
- $r = errs.Print("Reconnecting screen", err$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197578
- /* } */ case 18:
197579
- /* break; */ $s = 2; continue;
197580
- /* } */ case 5:
197581
- $s = 1; continue;
197582
- case 2:
197583
- $s = -1; return;
197584
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$10, _r$11, _r$12, _r$8, _r$9, err$1, $s};return $f;
197585
- }; })(err, screenSender, w), []);
197586
197840
  $s = -1; return $ifaceNil;
197587
- /* */ } 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;
197841
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openScreen, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, conn, connect, err, frameCollector, maxPacketSize, msgData, screenSender, w, $s};return $f;
197588
197842
  };
197589
197843
  ScreenWindow.prototype.openScreen = function() { return this.$val.openScreen(); };
197844
+ ScreenWindow.ptr.prototype.closeScreen = function() {
197845
+ var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, errList, screenSender, w, $s, $r, $c} = $restore(this, {});
197846
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197847
+ w = this;
197848
+ if (!(w.collectionLoop === ptrType$3.nil)) {
197849
+ w.collectionLoop.Stop();
197850
+ w.collectionLoop = ptrType$3.nil;
197851
+ }
197852
+ if (!(w.decoderLoop === ptrType$4.nil)) {
197853
+ w.decoderLoop.Stop();
197854
+ w.decoderLoop = ptrType$4.nil;
197855
+ }
197856
+ if (!(w.renderingLoop === ptrType$5.nil)) {
197857
+ w.renderingLoop.Stop();
197858
+ w.renderingLoop = ptrType$5.nil;
197859
+ }
197860
+ if (!(w.pinger === ptrType$10.nil)) {
197861
+ w.pinger.Close();
197862
+ w.pinger = ptrType$10.nil;
197863
+ }
197864
+ errList = new sliceType$3([]);
197865
+ screenSender = w.createScreenSender();
197866
+ _r = UnregisterVideoStream(screenSender); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197867
+ err = _r;
197868
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
197869
+ /* */ $s = 3; continue;
197870
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
197871
+ _r$1 = errs.Errorf("Could not unregister video stream: %s", new sliceType$2([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197872
+ errList = $append(errList, _r$1);
197873
+ /* } */ case 3:
197874
+ _r$2 = screenSender.Send(3, new sliceType([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197875
+ err = _r$2;
197876
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; }
197877
+ /* */ $s = 7; continue;
197878
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6:
197879
+ _r$3 = errs.Errorf("Could not send disconnect msg to screen: %s", new sliceType$2([err])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197880
+ errList = $append(errList, _r$3);
197881
+ /* } */ case 7:
197882
+ _r$4 = w.screenConn.Close(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
197883
+ err = _r$4;
197884
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 10; continue; }
197885
+ /* */ $s = 11; continue;
197886
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 10:
197887
+ _r$5 = errs.Errorf("Could not close screen connection: %s", new sliceType$2([err])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197888
+ errList = $append(errList, _r$5);
197889
+ /* } */ case 11:
197890
+ if (errList.$length === 0) {
197891
+ $s = -1; return $ifaceNil;
197892
+ }
197893
+ _r$6 = errs.CombineErrors(errList); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
197894
+ $24r = _r$6;
197895
+ $s = 14; case 14: return $24r;
197896
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.closeScreen, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, errList, screenSender, w, $s};return $f;
197897
+ };
197898
+ ScreenWindow.prototype.closeScreen = function() { return this.$val.closeScreen(); };
197590
197899
  ScreenWindow.ptr.prototype.createScreenBuffer = function() {
197591
197900
  var {_r, _tuple, _tuple$1, err, localScreenSize, screenBuffer, w, $s, $r, $c} = $restore(this, {});
197592
197901
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -197616,31 +197925,35 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197616
197925
  _arg$1 = new $Bool(_r);
197617
197926
  _arg$2 = new $Bool(nacldecoder.IsAvailable());
197618
197927
  _arg$3 = new $Bool(webcodecs.IsAvailable());
197619
- _r$1 = fmt.Println(new sliceType$1([new $String("Drivers availability: android"), _arg, new $String(", videostream"), _arg$1, new $String(", nacldecoder"), _arg$2, new $String(", webcodecs"), _arg$3])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197928
+ _r$1 = fmt.Println(new sliceType$2([new $String("Drivers availability: android"), _arg, new $String(", videostream"), _arg$1, new $String(", nacldecoder"), _arg$2, new $String(", webcodecs"), _arg$3])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197620
197929
  _r$1;
197621
197930
  /* */ if (android.IsAvailable()) { $s = 3; continue; }
197622
- _r$2 = videostream.Get().IsAvailable(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197931
+ _r$2 = videostream.Get().IsAvailable(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197623
197932
  /* */ if (_r$2) { $s = 4; continue; }
197624
197933
  /* */ if (nacldecoder.IsAvailable()) { $s = 5; continue; }
197625
- /* */ if (webcodecs.IsAvailable()) { $s = 6; continue; }
197626
- /* */ $s = 7; continue;
197934
+ /* */ if (samsungwasmdecoder.IsAvailable()) { $s = 6; continue; }
197935
+ /* */ if (webcodecs.IsAvailable()) { $s = 7; continue; }
197936
+ /* */ $s = 8; continue;
197627
197937
  /* if (android.IsAvailable()) { */ case 3:
197628
- $r = overlaydriver.Main(f); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197629
- $s = 8; continue;
197630
- /* } else if (_r$2) { */ case 4:
197631
197938
  $r = overlaydriver.Main(f); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197632
- $s = 8; continue;
197939
+ $s = 9; continue;
197940
+ /* } else if (_r$2) { */ case 4:
197941
+ $r = overlaydriver.Main(f); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197942
+ $s = 9; continue;
197633
197943
  /* } else if (nacldecoder.IsAvailable()) { */ case 5:
197634
- $r = nacldriver.Main(f); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197635
- $s = 8; continue;
197636
- /* } else if (webcodecs.IsAvailable()) { */ case 6:
197637
- $r = canvasdriver.Main(f); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197638
- $s = 8; continue;
197639
- /* } else { */ case 7:
197640
- _r$3 = fmt.Println(new sliceType$1([new $String("Using webgldriver as fallback")])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197944
+ $r = nacldriver.Main(f); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197945
+ $s = 9; continue;
197946
+ /* } else if (samsungwasmdecoder.IsAvailable()) { */ case 6:
197947
+ $r = overlaydriver.Main(f); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197948
+ $s = 9; continue;
197949
+ /* } else if (webcodecs.IsAvailable()) { */ case 7:
197950
+ $r = canvasdriver.Main(f); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197951
+ $s = 9; continue;
197952
+ /* } else { */ case 8:
197953
+ _r$3 = fmt.Println(new sliceType$2([new $String("Using webgldriver as fallback")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197641
197954
  _r$3;
197642
- $r = webgldriver.Main(f); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197643
- /* } */ case 8:
197955
+ $r = webgldriver.Main(f); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197956
+ /* } */ case 9:
197644
197957
  $s = -1; return;
197645
197958
  /* */ } return; } var $f = {$blk: MainDriver, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, f, $s};return $f;
197646
197959
  };
@@ -197716,7 +198029,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197716
198029
  /* */ if ((x = _r$4, (x.$high > 0 || (x.$high === 0 && x.$low > 30000)))) { $s = 5; continue; }
197717
198030
  /* */ $s = 6; continue;
197718
198031
  /* if ((x = _r$4, (x.$high > 0 || (x.$high === 0 && x.$low > 30000)))) { */ case 5:
197719
- _r$5 = errs.Errorf("Waiting for process %s start timed out", new sliceType$1([new $String(screenID)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
198032
+ _r$5 = errs.Errorf("Waiting for process %s start timed out", new sliceType$2([new $String(screenID)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197720
198033
  $24r = _r$5;
197721
198034
  $s = 11; case 11: return $24r;
197722
198035
  /* } */ case 6:
@@ -197766,14 +198079,14 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197766
198079
  ProcessInfoManager.ptr.prototype.ListScreenIDs = function() {
197767
198080
  var {_i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, err, fileInfo, fileInfos, m, screenIDs, userProcessDirPath, $s, $r, $c} = $restore(this, {});
197768
198081
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197769
- screenIDs = sliceType$3.nil;
198082
+ screenIDs = sliceType$4.nil;
197770
198083
  err = $ifaceNil;
197771
198084
  m = this;
197772
198085
  userProcessDirPath = m.getUserProcessDirPath();
197773
198086
  _r = os.MkdirAll(userProcessDirPath, 448); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197774
198087
  err = _r;
197775
198088
  if (!($interfaceIsEqual(err, $ifaceNil))) {
197776
- _tmp = sliceType$3.nil;
198089
+ _tmp = sliceType$4.nil;
197777
198090
  _tmp$1 = err;
197778
198091
  screenIDs = _tmp;
197779
198092
  err = _tmp$1;
@@ -197784,7 +198097,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197784
198097
  fileInfos = _tuple[0];
197785
198098
  err = _tuple[1];
197786
198099
  if (!($interfaceIsEqual(err, $ifaceNil))) {
197787
- _tmp$2 = sliceType$3.nil;
198100
+ _tmp$2 = sliceType$4.nil;
197788
198101
  _tmp$3 = err;
197789
198102
  screenIDs = _tmp$2;
197790
198103
  err = _tmp$3;
@@ -197811,12 +198124,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197811
198124
  ProcessInfoManager.ptr.prototype.getUserProcessDirPath = function() {
197812
198125
  var m;
197813
198126
  m = this;
197814
- return path.Join(new sliceType$3([m.processDir, "S-" + m.username]));
198127
+ return path.Join(new sliceType$4([m.processDir, "S-" + m.username]));
197815
198128
  };
197816
198129
  ProcessInfoManager.prototype.getUserProcessDirPath = function() { return this.$val.getUserProcessDirPath(); };
197817
- ptrType$12.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createMetadataResponsiveSender", name: "createMetadataResponsiveSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [ptrType$11], false)}, {prop: "createMetadataSender", name: "createMetadataSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "createScreenSender", name: "createScreenSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "startStatsSyncing", name: "startStatsSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "sendStats", name: "sendStats", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "getFrameHealthCheckTimeout", name: "getFrameHealthCheckTimeout", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [time.Duration], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createScreenBuffer", name: "createScreenBuffer", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [screen.Buffer, $error], false)}];
197818
- ptrType.methods = [{prop: "CreateProcessInfo", name: "CreateProcessInfo", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "RemoveProcessInfo", name: "RemoveProcessInfo", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "WaitProcess", name: "WaitProcess", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "GetProcessInfo", name: "GetProcessInfo", pkg: "", typ: $funcType([$String], [ProcessInfo, $error], false)}, {prop: "ListScreenIDs", name: "ListScreenIDs", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "getUserProcessDirPath", name: "getUserProcessDirPath", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$String], false)}];
197819
- ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "collectionLoop", name: "collectionLoop", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "decoderLoop", name: "decoderLoop", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "renderingLoop", name: "renderingLoop", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "touchHandler", name: "touchHandler", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "pinger", name: "pinger", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "touchEventChan", name: "touchEventChan", embedded: false, exported: false, typ: chanType$4, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$5, tag: ""}]);
198130
+ ptrType$12.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createMetadataResponsiveSender", name: "createMetadataResponsiveSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [ptrType$11], false)}, {prop: "createMetadataSender", name: "createMetadataSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "createScreenSender", name: "createScreenSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "startStatsSyncing", name: "startStatsSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "sendStats", name: "sendStats", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "getFrameHealthCheckTimeout", name: "getFrameHealthCheckTimeout", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [time.Duration], false)}, {prop: "startScreenHealthChecking", name: "startScreenHealthChecking", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "closeScreen", name: "closeScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createScreenBuffer", name: "createScreenBuffer", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [screen.Buffer, $error], false)}];
198131
+ ptrType.methods = [{prop: "CreateProcessInfo", name: "CreateProcessInfo", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "RemoveProcessInfo", name: "RemoveProcessInfo", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "WaitProcess", name: "WaitProcess", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "GetProcessInfo", name: "GetProcessInfo", pkg: "", typ: $funcType([$String], [ProcessInfo, $error], false)}, {prop: "ListScreenIDs", name: "ListScreenIDs", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "getUserProcessDirPath", name: "getUserProcessDirPath", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$String], false)}];
198132
+ ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "collectionLoop", name: "collectionLoop", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "decoderLoop", name: "decoderLoop", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "renderingLoop", name: "renderingLoop", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "touchHandler", name: "touchHandler", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "pinger", name: "pinger", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "touchEventChan", name: "touchEventChan", embedded: false, exported: false, typ: chanType$4, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$5, tag: ""}]);
197820
198133
  ProcessInfo.init("", [{prop: "ScreenID", name: "ScreenID", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Int, tag: ""}]);
197821
198134
  ProcessInfoManager.init("github.com/supraio/client-daemon/pkg/render", [{prop: "username", name: "username", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "processDir", name: "processDir", embedded: false, exported: false, typ: $String, tag: ""}]);
197822
198135
  $init = function() {
@@ -197831,39 +198144,40 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197831
198144
  $r = android.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197832
198145
  $r = nacldecoder.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197833
198146
  $r = nacldriver.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197834
- $r = webcodecs.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197835
- $r = errs.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197836
- $r = helper.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197837
- $r = input.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197838
- $r = message.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197839
- $r = netclient.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197840
- $r = netpacket.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197841
- $r = netstream.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197842
- $r = netframe.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197843
- $r = player.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197844
- $r = canvasdriver.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197845
- $r = overlaydriver.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197846
- $r = webgldriver.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197847
- $r = stats.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197848
- $r = videostream.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197849
- $r = window.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197850
- $r = screen.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197851
- $r = focus.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197852
- $r = key.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197853
- $r = lifecycle.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197854
- $r = mouse.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197855
- $r = size.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197856
- $r = touch.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197857
- $r = image.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197858
- $r = io.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197859
- $r = ioutil.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197860
- $r = log.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197861
- $r = os.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197862
- $r = path.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197863
- $r = strings.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197864
- $r = sync.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197865
- $r = js.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197866
- $r = time.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198147
+ $r = samsungwasmdecoder.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198148
+ $r = webcodecs.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198149
+ $r = errs.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198150
+ $r = helper.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198151
+ $r = input.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198152
+ $r = message.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198153
+ $r = netclient.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198154
+ $r = netpacket.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198155
+ $r = netstream.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198156
+ $r = netframe.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198157
+ $r = player.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198158
+ $r = canvasdriver.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198159
+ $r = overlaydriver.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198160
+ $r = webgldriver.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198161
+ $r = stats.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198162
+ $r = videostream.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198163
+ $r = window.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198164
+ $r = screen.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198165
+ $r = focus.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198166
+ $r = key.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198167
+ $r = lifecycle.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198168
+ $r = mouse.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198169
+ $r = size.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198170
+ $r = touch.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198171
+ $r = image.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198172
+ $r = io.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198173
+ $r = ioutil.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198174
+ $r = log.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198175
+ $r = os.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198176
+ $r = path.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198177
+ $r = strings.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198178
+ $r = sync.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198179
+ $r = js.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198180
+ $r = time.$init(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197867
198181
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
197868
198182
  };
197869
198183
  $pkg.$init = $init;