@supraio/client-daemon-js 1.1.0-tpracedetector.546 → 1.1.0-tprandomstringrace.564

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.
@@ -64413,7 +64413,7 @@ $packages["github.com/supraio/client-daemon/pkg/config"] = (function() {
64413
64413
  return $pkg;
64414
64414
  })();
64415
64415
  $packages["github.com/go-errors/errors"] = (function() {
64416
- var $pkg = {}, $init, bufio, bytes, errors, fmt, os, reflect, runtime, strconv, strings, StackFrame, uncaughtPanic, Error, ptrType, sliceType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, sliceType$3, NewStackFrame, packageAndName, New, Wrap, Errorf;
64416
+ var $pkg = {}, $init, bufio, bytes, errors, fmt, os, reflect, runtime, strconv, strings, StackFrame, uncaughtPanic, joinError, Error, ptrType, sliceType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, sliceType$3, sliceType$4, ptrType$3, NewStackFrame, packageAndName, Join, New, Wrap, Errorf;
64417
64417
  bufio = $packages["bufio"];
64418
64418
  bytes = $packages["bytes"];
64419
64419
  errors = $packages["errors"];
@@ -64447,6 +64447,14 @@ $packages["github.com/go-errors/errors"] = (function() {
64447
64447
  }
64448
64448
  this.message = message_;
64449
64449
  });
64450
+ joinError = $pkg.joinError = $newType(0, $kindStruct, "errors.joinError", true, "github.com/go-errors/errors", false, function(errs_) {
64451
+ this.$val = this;
64452
+ if (arguments.length === 0) {
64453
+ this.errs = sliceType$3.nil;
64454
+ return;
64455
+ }
64456
+ this.errs = errs_;
64457
+ });
64450
64458
  Error = $pkg.Error = $newType(0, $kindStruct, "errors.Error", true, "github.com/go-errors/errors", true, function(Err_, stack_, frames_, prefix_) {
64451
64459
  this.$val = this;
64452
64460
  if (arguments.length === 0) {
@@ -64467,7 +64475,9 @@ $packages["github.com/go-errors/errors"] = (function() {
64467
64475
  ptrType$1 = $ptrType(Error);
64468
64476
  sliceType$2 = $sliceType($Uintptr);
64469
64477
  ptrType$2 = $ptrType(StackFrame);
64470
- sliceType$3 = $sliceType($Uint8);
64478
+ sliceType$3 = $sliceType($error);
64479
+ sliceType$4 = $sliceType($Uint8);
64480
+ ptrType$3 = $ptrType(joinError);
64471
64481
  NewStackFrame = function(pc) {
64472
64482
  var _tuple, _tuple$1, frame, pc;
64473
64483
  frame = new StackFrame.ptr("", 0, "", "", 0);
@@ -64499,7 +64509,7 @@ $packages["github.com/go-errors/errors"] = (function() {
64499
64509
  frame = this;
64500
64510
  _r = fmt.Sprintf("%s:%d (0x%x)\n", new sliceType([new $String(frame.File), new $Int(frame.LineNumber), new $Uintptr(frame.ProgramCounter)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
64501
64511
  str = _r;
64502
- _r$1 = frame.SourceLine(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
64512
+ _r$1 = frame.sourceLine(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
64503
64513
  _tuple = _r$1;
64504
64514
  source = _tuple[0];
64505
64515
  err = _tuple[1];
@@ -64513,7 +64523,26 @@ $packages["github.com/go-errors/errors"] = (function() {
64513
64523
  };
64514
64524
  StackFrame.prototype.String = function() { return this.$val.String(); };
64515
64525
  StackFrame.ptr.prototype.SourceLine = function() {
64516
- var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$2, _r$3, _tuple, currentLine, err, err$1, file, frame, scanner, $s, $deferred, $r, $c} = $restore(this, {});
64526
+ var {$24r, _r, _r$1, _tuple, err, frame, source, $s, $r, $c} = $restore(this, {});
64527
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
64528
+ frame = this;
64529
+ _r = frame.sourceLine(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
64530
+ _tuple = _r;
64531
+ source = _tuple[0];
64532
+ err = _tuple[1];
64533
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
64534
+ /* */ $s = 3; continue;
64535
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
64536
+ _r$1 = New(err); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
64537
+ $24r = [source, _r$1];
64538
+ $s = 5; case 5: return $24r;
64539
+ /* } */ case 3:
64540
+ $s = -1; return [source, err];
64541
+ /* */ } return; } var $f = {$blk: StackFrame.ptr.prototype.SourceLine, $c: true, $r, $24r, _r, _r$1, _tuple, err, frame, source, $s};return $f;
64542
+ };
64543
+ StackFrame.prototype.SourceLine = function() { return this.$val.SourceLine(); };
64544
+ StackFrame.ptr.prototype.sourceLine = function() {
64545
+ var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _tuple, currentLine, err, err$1, file, frame, scanner, $s, $deferred, $r, $c} = $restore(this, {});
64517
64546
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
64518
64547
  frame = this;
64519
64548
  /* */ if (frame.LineNumber <= 0) { $s = 1; continue; }
@@ -64529,38 +64558,36 @@ $packages["github.com/go-errors/errors"] = (function() {
64529
64558
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; }
64530
64559
  /* */ $s = 6; continue;
64531
64560
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5:
64532
- _r$1 = New(err); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
64533
- $24r$1 = ["", _r$1];
64534
- $s = 8; case 8: return $24r$1;
64561
+ $24r$1 = ["", err];
64562
+ $s = 7; case 7: return $24r$1;
64535
64563
  /* } */ case 6:
64536
64564
  $deferred.push([$methodVal(file, "Close"), []]);
64537
64565
  scanner = bufio.NewScanner(file);
64538
64566
  currentLine = 1;
64539
- /* while (true) { */ case 9:
64540
- _r$2 = scanner.Scan(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
64541
- /* if (!(_r$2)) { break; } */ if(!(_r$2)) { $s = 10; continue; }
64542
- /* */ if (currentLine === frame.LineNumber) { $s = 12; continue; }
64543
- /* */ $s = 13; continue;
64544
- /* if (currentLine === frame.LineNumber) { */ case 12:
64567
+ /* while (true) { */ case 8:
64568
+ _r$1 = scanner.Scan(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
64569
+ /* if (!(_r$1)) { break; } */ if(!(_r$1)) { $s = 9; continue; }
64570
+ /* */ if (currentLine === frame.LineNumber) { $s = 11; continue; }
64571
+ /* */ $s = 12; continue;
64572
+ /* if (currentLine === frame.LineNumber) { */ case 11:
64545
64573
  $24r$2 = [($bytesToString(bytes.Trim(scanner.Bytes(), " \t"))), $ifaceNil];
64546
- $s = 14; case 14: return $24r$2;
64547
- /* } */ case 13:
64574
+ $s = 13; case 13: return $24r$2;
64575
+ /* } */ case 12:
64548
64576
  currentLine = currentLine + (1) >> 0;
64549
- $s = 9; continue;
64550
- case 10:
64577
+ $s = 8; continue;
64578
+ case 9:
64551
64579
  err$1 = scanner.Err();
64552
- /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 15; continue; }
64553
- /* */ $s = 16; continue;
64554
- /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 15:
64555
- _r$3 = New(err$1); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
64556
- $24r$3 = ["", _r$3];
64557
- $s = 18; case 18: return $24r$3;
64558
- /* } */ case 16:
64580
+ /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 14; continue; }
64581
+ /* */ $s = 15; continue;
64582
+ /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 14:
64583
+ $24r$3 = ["", err$1];
64584
+ $s = 16; case 16: return $24r$3;
64585
+ /* } */ case 15:
64559
64586
  $24r$4 = ["???", $ifaceNil];
64560
- $s = 19; case 19: return $24r$4;
64561
- /* */ } return; } } catch(err) { $err = err; $s = -1; return ["", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: StackFrame.ptr.prototype.SourceLine, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$2, _r$3, _tuple, currentLine, err, err$1, file, frame, scanner, $s, $deferred};return $f; } }
64587
+ $s = 17; case 17: return $24r$4;
64588
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return ["", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: StackFrame.ptr.prototype.sourceLine, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _tuple, currentLine, err, err$1, file, frame, scanner, $s, $deferred};return $f; } }
64562
64589
  };
64563
- StackFrame.prototype.SourceLine = function() { return this.$val.SourceLine(); };
64590
+ StackFrame.prototype.sourceLine = function() { return this.$val.sourceLine(); };
64564
64591
  packageAndName = function(fn) {
64565
64592
  var fn, lastslash, name, period, pkg;
64566
64593
  name = fn.Name();
@@ -64584,6 +64611,67 @@ $packages["github.com/go-errors/errors"] = (function() {
64584
64611
  return p.message;
64585
64612
  };
64586
64613
  uncaughtPanic.prototype.Error = function() { return this.$val.Error(); };
64614
+ Join = function(errs) {
64615
+ var _i, _i$1, _ref, _ref$1, e, err, err$1, errs, n;
64616
+ n = 0;
64617
+ _ref = errs;
64618
+ _i = 0;
64619
+ while (true) {
64620
+ if (!(_i < _ref.$length)) { break; }
64621
+ err = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
64622
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
64623
+ n = n + (1) >> 0;
64624
+ }
64625
+ _i++;
64626
+ }
64627
+ if (n === 0) {
64628
+ return $ifaceNil;
64629
+ }
64630
+ e = new joinError.ptr($makeSlice(sliceType$3, 0, n));
64631
+ _ref$1 = errs;
64632
+ _i$1 = 0;
64633
+ while (true) {
64634
+ if (!(_i$1 < _ref$1.$length)) { break; }
64635
+ err$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
64636
+ if (!($interfaceIsEqual(err$1, $ifaceNil))) {
64637
+ e.errs = $append(e.errs, err$1);
64638
+ }
64639
+ _i$1++;
64640
+ }
64641
+ return e;
64642
+ };
64643
+ $pkg.Join = Join;
64644
+ joinError.ptr.prototype.Error = function() {
64645
+ var {_arg, _arg$1, _i, _r, _ref, b, e, err, i, $s, $r, $c} = $restore(this, {});
64646
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
64647
+ e = this;
64648
+ b = sliceType$4.nil;
64649
+ _ref = e.errs;
64650
+ _i = 0;
64651
+ /* while (true) { */ case 1:
64652
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
64653
+ i = _i;
64654
+ err = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
64655
+ if (i > 0) {
64656
+ b = $append(b, 10);
64657
+ }
64658
+ _arg = b;
64659
+ _r = err.Error(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
64660
+ _arg$1 = _r;
64661
+ b = $appendSlice(_arg, _arg$1);
64662
+ _i++;
64663
+ $s = 1; continue;
64664
+ case 2:
64665
+ $s = -1; return ($bytesToString(b));
64666
+ /* */ } return; } var $f = {$blk: joinError.ptr.prototype.Error, $c: true, $r, _arg, _arg$1, _i, _r, _ref, b, e, err, i, $s};return $f;
64667
+ };
64668
+ joinError.prototype.Error = function() { return this.$val.Error(); };
64669
+ joinError.ptr.prototype.Unwrap = function() {
64670
+ var e;
64671
+ e = this;
64672
+ return e.errs;
64673
+ };
64674
+ joinError.prototype.Unwrap = function() { return this.$val.Unwrap(); };
64587
64675
  New = function(e) {
64588
64676
  var {_r, _ref, e, e$1, e$2, err, length, stack, $s, $r, $c} = $restore(this, {e});
64589
64677
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -64665,7 +64753,7 @@ $packages["github.com/go-errors/errors"] = (function() {
64665
64753
  var {_i, _r, _r$1, _ref, buf, err, frame, $s, $r, $c} = $restore(this, {});
64666
64754
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
64667
64755
  err = this;
64668
- buf = new bytes.Buffer.ptr(sliceType$3.nil, 0, 0);
64756
+ buf = new bytes.Buffer.ptr(sliceType$4.nil, 0, 0);
64669
64757
  _ref = err.StackFrames();
64670
64758
  _i = 0;
64671
64759
  /* while (true) { */ case 1:
@@ -64732,11 +64820,19 @@ $packages["github.com/go-errors/errors"] = (function() {
64732
64820
  /* */ } return; } var $f = {$blk: Error.ptr.prototype.TypeName, $c: true, $r, $24r, _r, _tuple, err, ok, $s};return $f;
64733
64821
  };
64734
64822
  Error.prototype.TypeName = function() { return this.$val.TypeName(); };
64735
- ptrType$2.methods = [{prop: "Func", name: "Func", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SourceLine", name: "SourceLine", pkg: "", typ: $funcType([], [$String, $error], false)}];
64823
+ Error.ptr.prototype.Unwrap = function() {
64824
+ var err;
64825
+ err = this;
64826
+ return err.Err;
64827
+ };
64828
+ Error.prototype.Unwrap = function() { return this.$val.Unwrap(); };
64829
+ ptrType$2.methods = [{prop: "Func", name: "Func", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SourceLine", name: "SourceLine", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "sourceLine", name: "sourceLine", pkg: "github.com/go-errors/errors", typ: $funcType([], [$String, $error], false)}];
64736
64830
  uncaughtPanic.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
64737
- ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "Callers", name: "Callers", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "ErrorStack", name: "ErrorStack", pkg: "", typ: $funcType([], [$String], false)}, {prop: "StackFrames", name: "StackFrames", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "TypeName", name: "TypeName", pkg: "", typ: $funcType([], [$String], false)}];
64831
+ ptrType$3.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [sliceType$3], false)}];
64832
+ ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "Callers", name: "Callers", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "ErrorStack", name: "ErrorStack", pkg: "", typ: $funcType([], [$String], false)}, {prop: "StackFrames", name: "StackFrames", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "TypeName", name: "TypeName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}];
64738
64833
  StackFrame.init("", [{prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LineNumber", name: "LineNumber", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ProgramCounter", name: "ProgramCounter", embedded: false, exported: true, typ: $Uintptr, tag: ""}]);
64739
64834
  uncaughtPanic.init("github.com/go-errors/errors", [{prop: "message", name: "message", embedded: false, exported: false, typ: $String, tag: ""}]);
64835
+ joinError.init("github.com/go-errors/errors", [{prop: "errs", name: "errs", embedded: false, exported: false, typ: sliceType$3, tag: ""}]);
64740
64836
  Error.init("github.com/go-errors/errors", [{prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "frames", name: "frames", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}]);
64741
64837
  $init = function() {
64742
64838
  $pkg.$init = function() {};
@@ -65223,24 +65319,25 @@ $packages["github.com/supraio/client-daemon/pkg/errs"] = (function() {
65223
65319
  /* */ } return; } var $f = {$blk: Errorf, $c: true, $r, $24r, _r, extra, msg, $s};return $f;
65224
65320
  };
65225
65321
  $pkg.Errorf = Errorf;
65226
- CombineErrors = function(errs) {
65227
- var {$24r, _i, _r, _ref, err, errs, message, untypedErrs, $s, $r, $c} = $restore(this, {errs});
65228
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65229
- untypedErrs = new sliceType([]);
65230
- message = "";
65231
- _ref = errs;
65322
+ CombineErrors = function(errList) {
65323
+ var _i, _ref, err, errList, single;
65324
+ single = $ifaceNil;
65325
+ _ref = errList;
65232
65326
  _i = 0;
65233
65327
  while (true) {
65234
65328
  if (!(_i < _ref.$length)) { break; }
65235
65329
  err = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
65236
- message = message + "%s\n";
65237
- untypedErrs = $append(untypedErrs, err);
65330
+ if ($interfaceIsEqual(err, $ifaceNil)) {
65331
+ _i++;
65332
+ continue;
65333
+ }
65334
+ if (!($interfaceIsEqual(single, $ifaceNil))) {
65335
+ return errors.Join(errList);
65336
+ }
65337
+ single = err;
65238
65338
  _i++;
65239
65339
  }
65240
- _r = errors.Errorf(message, untypedErrs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65241
- $24r = _r;
65242
- $s = 2; case 2: return $24r;
65243
- /* */ } return; } var $f = {$blk: CombineErrors, $c: true, $r, $24r, _i, _r, _ref, err, errs, message, untypedErrs, $s};return $f;
65340
+ return single;
65244
65341
  };
65245
65342
  $pkg.CombineErrors = CombineErrors;
65246
65343
  $init = function() {
@@ -68195,7 +68292,7 @@ $packages["math/rand"] = (function() {
68195
68292
  return $pkg;
68196
68293
  })();
68197
68294
  $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
68198
- var $pkg = {}, $init, errs, image, log, rand, os, strconv, strings, sync, syscall, time, sliceType, sliceType$1, ptrType, seededRandMu, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength, NotifyOnStopSignal, WaitOnStopSignal, ClampedInt64, ParseImagePointFromString;
68295
+ var $pkg = {}, $init, errs, image, log, rand, os, strconv, strings, sync, syscall, time, sliceType, sliceType$1, ptrType, seededRandMu, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength, NotifyOnStopSignal, WaitOnStopSignal, ParseImagePointFromString;
68199
68296
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
68200
68297
  image = $packages["image"];
68201
68298
  log = $packages["log"];
@@ -68261,17 +68358,6 @@ $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
68261
68358
  /* */ } return; } var $f = {$blk: WaitOnStopSignal, $c: true, $r, _r$4, sig, signalChannel, $s};return $f;
68262
68359
  };
68263
68360
  $pkg.WaitOnStopSignal = WaitOnStopSignal;
68264
- ClampedInt64 = function(value, min, max) {
68265
- var max, min, value;
68266
- if ((value.$high < min.$high || (value.$high === min.$high && value.$low < min.$low))) {
68267
- return min;
68268
- }
68269
- if ((value.$high > max.$high || (value.$high === max.$high && value.$low > max.$low))) {
68270
- return max;
68271
- }
68272
- return value;
68273
- };
68274
- $pkg.ClampedInt64 = ClampedInt64;
68275
68361
  ParseImagePointFromString = function(value) {
68276
68362
  var {_arg, _r$4, _tuple, _tuple$1, err, height, heightString, parts, value, width, widthString, $s, $r, $c} = $restore(this, {value});
68277
68363
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -191409,7 +191495,7 @@ $packages["github.com/supraio/client-daemon/pkg/message"] = (function() {
191409
191495
  return $pkg;
191410
191496
  })();
191411
191497
  $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191412
- var $pkg = {}, $init, binary, fmt, errs, message, focus, key, mouse, touch, geom, log, sync, js, time, TouchHandler, MouseHandler, kindCounters, InputSnapshot, EventMetrics, KeyHandler, JsHelper, KeyTransformer, Helper, sliceType, sliceType$1, ptrType, ptrType$1, structType, ptrType$2, ptrType$3, ptrType$4, sliceType$2, ptrType$5, chanType, funcType, mapType, chanType$1, ptrType$6, chanType$2, chanType$3, mapType$1, ptrType$7, chanType$4, chanType$5, ptrType$8, marshalTouchEventJSON, NewTouchHandler, NewMouseHandler, NewEventMetrics, avgMs, msF, avgNano, NewKeyHandler, NewHelper, NewKeyTransformer;
191498
+ var $pkg = {}, $init, binary, fmt, errs, message, focus, key, mouse, touch, geom, log, math, sync, js, time, TouchHandler, MouseHandler, kindCounters, InputSnapshot, EventMetrics, KeyHandler, JsHelper, KeyTransformer, Helper, sliceType, sliceType$1, ptrType, ptrType$1, structType, ptrType$2, ptrType$3, ptrType$4, sliceType$2, ptrType$5, chanType, funcType, mapType, chanType$1, ptrType$6, chanType$2, chanType$3, mapType$1, ptrType$7, chanType$4, chanType$5, ptrType$8, marshalTouchEventJSON, NewTouchHandler, NewMouseHandler, coordinateToUint32, NewEventMetrics, avgMs, msF, avgNano, NewKeyHandler, NewHelper, NewKeyTransformer;
191413
191499
  binary = $packages["encoding/binary"];
191414
191500
  fmt = $packages["fmt"];
191415
191501
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -191420,6 +191506,7 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191420
191506
  touch = $packages["golang.org/x/mobile/event/touch"];
191421
191507
  geom = $packages["golang.org/x/mobile/geom"];
191422
191508
  log = $packages["log"];
191509
+ math = $packages["math"];
191423
191510
  sync = $packages["sync"];
191424
191511
  js = $packages["syscall/js"];
191425
191512
  time = $packages["time"];
@@ -191916,13 +192003,23 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191916
192003
  x = $fround((ev.X) * (multiplier.X));
191917
192004
  y = $fround((ev.Y) * (multiplier.Y));
191918
192005
  mouseXData = $makeSlice(sliceType$1, 4);
191919
- $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseXData, ((x >> 0)));
192006
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseXData, coordinateToUint32(x));
191920
192007
  mouseYData = $makeSlice(sliceType$1, 4);
191921
- $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseYData, ((y >> 0)));
192008
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseYData, coordinateToUint32(y));
191922
192009
  $s = -1; return $appendSlice(mouseButtonData, $appendSlice(mouseDirectionData, $appendSlice(mouseModifierData, $appendSlice(mouseXData, mouseYData))));
191923
192010
  /* */ } return; } var $f = {$blk: MouseHandler.ptr.prototype.encodeMouseEvent, $c: true, $r, _r, ev, h, mouseButtonData, mouseDirectionData, mouseModifierData, mouseXData, mouseYData, multiplier, x, y, $s};return $f;
191924
192011
  };
191925
192012
  MouseHandler.prototype.encodeMouseEvent = function(ev) { return this.$val.encodeMouseEvent(ev); };
192013
+ coordinateToUint32 = function(value) {
192014
+ var value;
192015
+ if (math.IsNaN((value)) || value <= 0) {
192016
+ return 0;
192017
+ }
192018
+ if (value >= 4.294967296e+09) {
192019
+ return 4294967295;
192020
+ }
192021
+ return ((value >> 0));
192022
+ };
191926
192023
  NewEventMetrics = function() {
191927
192024
  return new EventMetrics.ptr(new sync.Mutex.ptr(0, 0), $makeMap($String.keyFor, [{ k: "mouse", v: new kindCounters.ptr(0, 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), 0, new time.Duration(0, 0)) }, { k: "touch", v: new kindCounters.ptr(0, 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), 0, new time.Duration(0, 0)) }]), new InputSnapshot.ptr(0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, new $Int64(0, 0)), $chanNil, false);
191928
192025
  };
@@ -192354,9 +192451,10 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192354
192451
  $r = touch.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192355
192452
  $r = geom.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192356
192453
  $r = log.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192357
- $r = sync.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192358
- $r = js.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192359
- $r = time.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192454
+ $r = math.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192455
+ $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192456
+ $r = js.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192457
+ $r = time.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192360
192458
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
192361
192459
  };
192362
192460
  $pkg.$init = $init;
@@ -194985,12 +195083,11 @@ $packages["github.com/supraio/client-daemon/pkg/render/screenbuffer"] = (functio
194985
195083
  return $pkg;
194986
195084
  })();
194987
195085
  $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
194988
- var $pkg = {}, $init, image, log, math, sync, atomic, time, Stopwatch, Frame, Stats, Metrics, EncodingPreferences, InputMetrics, ClientStats, ptrType, sliceType, ptrType$1, ptrType$2, sliceType$1, structType, mapType, ptrType$3, ptrType$4, ptrType$5, chanType, mapType$1, NewStopwatch, NewStats, NewMetrics, average, variance;
195086
+ var $pkg = {}, $init, image, log, math, sync, time, Stopwatch, Frame, Stats, Metrics, EncodingPreferences, InputMetrics, ClientStats, ptrType, sliceType, ptrType$1, ptrType$2, sliceType$1, structType, ptrType$3, mapType, ptrType$4, ptrType$5, chanType, mapType$1, NewStopwatch, NewStats, NewMetrics, average, variance;
194989
195087
  image = $packages["image"];
194990
195088
  log = $packages["log"];
194991
195089
  math = $packages["math"];
194992
195090
  sync = $packages["sync"];
194993
- atomic = $packages["sync/atomic"];
194994
195091
  time = $packages["time"];
194995
195092
  Stopwatch = $pkg.Stopwatch = $newType(0, $kindStruct, "stats.Stopwatch", true, "github.com/supraio/client-daemon/pkg/stats", true, function(mutex_, groups_) {
194996
195093
  this.$val = this;
@@ -195003,21 +195100,23 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195003
195100
  this.groups = groups_;
195004
195101
  });
195005
195102
  Frame = $pkg.Frame = $newType(8, $kindInterface, "stats.Frame", true, "github.com/supraio/client-daemon/pkg/stats", true, null);
195006
- Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, lastScreenPingAt_, stopwatch_, metrics_, done_, calcStopped_, 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_, encodingPreferences_) {
195103
+ Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(mu_, lastFrameAt_, lastScreenPingAt_, stopwatch_, metrics_, done_, calcStopped_, stopOnce_, latency_, serverTimestampAhead_, serverTimestampAheadBuffer_, currentFramesCount_, lastFrameRate_, lastActiveFrameRate_, 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_, encodingPreferences_) {
195007
195104
  this.$val = this;
195008
195105
  if (arguments.length === 0) {
195009
- this.stopped = new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0);
195106
+ this.mu = new sync.Mutex.ptr(0, 0);
195010
195107
  this.lastFrameAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
195011
195108
  this.lastScreenPingAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
195012
195109
  this.stopwatch = ptrType$1.nil;
195013
195110
  this.metrics = ptrType$2.nil;
195014
195111
  this.done = $chanNil;
195015
195112
  this.calcStopped = $chanNil;
195113
+ this.stopOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
195016
195114
  this.latency = new time.Duration(0, 0);
195017
195115
  this.serverTimestampAhead = new time.Duration(0, 0);
195018
195116
  this.serverTimestampAheadBuffer = sliceType$1.nil;
195019
195117
  this.currentFramesCount = 0;
195020
195118
  this.lastFrameRate = 0;
195119
+ this.lastActiveFrameRate = 0;
195021
195120
  this.totalFramesCount = 0;
195022
195121
  this.lastFramesLatencyAverage = new time.Duration(0, 0);
195023
195122
  this.lastFramesLatencyVariance = new time.Duration(0, 0);
@@ -195051,18 +195150,20 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195051
195150
  this.encodingPreferences = new EncodingPreferences.ptr(0, 0, "", "", "");
195052
195151
  return;
195053
195152
  }
195054
- this.stopped = stopped_;
195153
+ this.mu = mu_;
195055
195154
  this.lastFrameAt = lastFrameAt_;
195056
195155
  this.lastScreenPingAt = lastScreenPingAt_;
195057
195156
  this.stopwatch = stopwatch_;
195058
195157
  this.metrics = metrics_;
195059
195158
  this.done = done_;
195060
195159
  this.calcStopped = calcStopped_;
195160
+ this.stopOnce = stopOnce_;
195061
195161
  this.latency = latency_;
195062
195162
  this.serverTimestampAhead = serverTimestampAhead_;
195063
195163
  this.serverTimestampAheadBuffer = serverTimestampAheadBuffer_;
195064
195164
  this.currentFramesCount = currentFramesCount_;
195065
195165
  this.lastFrameRate = lastFrameRate_;
195166
+ this.lastActiveFrameRate = lastActiveFrameRate_;
195066
195167
  this.totalFramesCount = totalFramesCount_;
195067
195168
  this.lastFramesLatencyAverage = lastFramesLatencyAverage_;
195068
195169
  this.lastFramesLatencyVariance = lastFramesLatencyVariance_;
@@ -195227,8 +195328,8 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195227
195328
  ptrType$2 = $ptrType(Metrics);
195228
195329
  sliceType$1 = $sliceType(time.Duration);
195229
195330
  structType = $structType("", []);
195230
- mapType = $mapType($String, time.Time);
195231
195331
  ptrType$3 = $ptrType(ClientStats);
195332
+ mapType = $mapType($String, time.Time);
195232
195333
  ptrType$4 = $ptrType(image.Point);
195233
195334
  ptrType$5 = $ptrType(Stats);
195234
195335
  chanType = $chanType(structType, false, false);
@@ -195279,48 +195380,58 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195279
195380
  };
195280
195381
  Stopwatch.prototype.Stop = function(group) { return this.$val.Stop(group); };
195281
195382
  NewStats = function() {
195282
- var {_r, _r$1, _r$2, s, $s, $r, $c} = $restore(this, {});
195383
+ var {_r, now, s, $s, $r, $c} = $restore(this, {});
195283
195384
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195284
195385
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195285
- _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; }
195286
- _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; }
195287
- s = new Stats.ptr(new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), $clone(_r, time.Time), $clone(_r$1, time.Time), NewStopwatch(), NewMetrics(), new $Chan(structType, 0), new $Chan(structType, 0), 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), new EncodingPreferences.ptr(0, 0, "", "", ""));
195386
+ now = $clone(_r, time.Time);
195387
+ s = new Stats.ptr(new sync.Mutex.ptr(0, 0), $clone(now, time.Time), $clone(now, time.Time), NewStopwatch(), NewMetrics(), new $Chan(structType, 0), new $Chan(structType, 0), new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), new time.Duration(0, 0), new time.Duration(0, 0), sliceType$1.nil, 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), 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(now, time.Time), new EncodingPreferences.ptr(0, 0, "", "", ""));
195288
195388
  $go($methodVal(s, "startCalculations"), []);
195289
195389
  $s = -1; return s;
195290
- /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, _r$2, s, $s};return $f;
195390
+ /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, now, s, $s};return $f;
195291
195391
  };
195292
195392
  $pkg.NewStats = NewStats;
195293
195393
  Stats.ptr.prototype.Stop = function() {
195294
- var {_r, _selection, s, $s, $r, $c} = $restore(this, {});
195394
+ var {_r, s, $s, $r, $c} = $restore(this, {});
195295
195395
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195296
- s = this;
195297
- s.stopped.Store(true);
195298
- _selection = $select([[s.done], []]);
195299
- if (_selection[0] === 0) {
195300
- } else if (_selection[0] === 1) {
195301
- $close(s.done);
195302
- }
195303
- _r = $recv(s.calcStopped); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195396
+ s = [s];
195397
+ s[0] = this;
195398
+ $r = s[0].stopOnce.Do((function(s) { return function() {
195399
+ $close(s[0].done);
195400
+ }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195401
+ _r = $recv(s[0].calcStopped); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195304
195402
  _r[0];
195305
195403
  $s = -1; return;
195306
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.Stop, $c: true, $r, _r, _selection, s, $s};return $f;
195404
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.Stop, $c: true, $r, _r, s, $s};return $f;
195307
195405
  };
195308
195406
  Stats.prototype.Stop = function() { return this.$val.Stop(); };
195309
195407
  Stats.ptr.prototype.GetClientStats = function() {
195310
- var s;
195408
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195409
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195311
195410
  s = this;
195312
- return new ClientStats.ptr(s.latency.Nanoseconds(), s.serverTimestampAhead.Nanoseconds(), s.lastFrameRate, s.totalFramesCount, s.lastFramesLatencyAverage.Nanoseconds(), s.lastFramesLatencyVariance.Nanoseconds(), s.longTermFramesLatencyAverage.Nanoseconds(), s.longTermFramesLatencyVariance.Nanoseconds(), s.lastFramesCollectionAverage.Nanoseconds(), s.lastFramesCollectionVariance.Nanoseconds(), s.longTermFramesCollectionAverage.Nanoseconds(), s.longTermFramesCollectionVariance.Nanoseconds(), s.lastThrottledCollectionFrameRate, s.lastFramesDecodeWriteAverage.Nanoseconds(), s.lastFramesDecodeOutputAverage.Nanoseconds(), s.lastFramesDecodeWriteVariance.Nanoseconds(), s.lastFramesDecodeOutputVariance.Nanoseconds(), s.longTermFramesDecodeWriteAverage.Nanoseconds(), s.longTermFramesDecodeOutputAverage.Nanoseconds(), s.longTermFramesDecodeWriteVariance.Nanoseconds(), s.longTermFramesDecodeOutputVariance.Nanoseconds(), s.lastThrottledDecodeFrameRate, s.lastFramesRenderAverage.Nanoseconds(), s.lastFramesRenderVariance.Nanoseconds(), s.longTermFramesRenderAverage.Nanoseconds(), s.longTermFramesRenderVariance.Nanoseconds(), s.lastThrottledRenderFrameRate, s.screenResolutionWidth, s.screenResolutionHeight, $clone(s.encodingPreferences, EncodingPreferences), new InputMetrics.ptr(0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, new $Int64(0, 0)));
195411
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195412
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195413
+ $24r = new ClientStats.ptr(s.latency.Nanoseconds(), s.serverTimestampAhead.Nanoseconds(), s.lastFrameRate, s.totalFramesCount, s.lastFramesLatencyAverage.Nanoseconds(), s.lastFramesLatencyVariance.Nanoseconds(), s.longTermFramesLatencyAverage.Nanoseconds(), s.longTermFramesLatencyVariance.Nanoseconds(), s.lastFramesCollectionAverage.Nanoseconds(), s.lastFramesCollectionVariance.Nanoseconds(), s.longTermFramesCollectionAverage.Nanoseconds(), s.longTermFramesCollectionVariance.Nanoseconds(), s.lastThrottledCollectionFrameRate, s.lastFramesDecodeWriteAverage.Nanoseconds(), s.lastFramesDecodeOutputAverage.Nanoseconds(), s.lastFramesDecodeWriteVariance.Nanoseconds(), s.lastFramesDecodeOutputVariance.Nanoseconds(), s.longTermFramesDecodeWriteAverage.Nanoseconds(), s.longTermFramesDecodeOutputAverage.Nanoseconds(), s.longTermFramesDecodeWriteVariance.Nanoseconds(), s.longTermFramesDecodeOutputVariance.Nanoseconds(), s.lastThrottledDecodeFrameRate, s.lastFramesRenderAverage.Nanoseconds(), s.lastFramesRenderVariance.Nanoseconds(), s.longTermFramesRenderAverage.Nanoseconds(), s.longTermFramesRenderVariance.Nanoseconds(), s.lastThrottledRenderFrameRate, s.screenResolutionWidth, s.screenResolutionHeight, $clone(s.encodingPreferences, EncodingPreferences), new InputMetrics.ptr(0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, new $Int64(0, 0)));
195414
+ $s = 2; case 2: return $24r;
195415
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$3.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.GetClientStats, $c: true, $r, $24r, s, $s, $deferred};return $f; } }
195313
195416
  };
195314
195417
  Stats.prototype.GetClientStats = function() { return this.$val.GetClientStats(); };
195315
195418
  Stats.ptr.prototype.SetLatency = function(latency) {
195316
- var latency, s;
195419
+ var {latency, s, $s, $deferred, $r, $c} = $restore(this, {latency});
195420
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195317
195421
  s = this;
195422
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195423
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195318
195424
  s.latency = latency;
195425
+ $s = -1; return;
195426
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.SetLatency, $c: true, $r, latency, s, $s, $deferred};return $f; } }
195319
195427
  };
195320
195428
  Stats.prototype.SetLatency = function(latency) { return this.$val.SetLatency(latency); };
195321
195429
  Stats.ptr.prototype.UpdateServerTimestampAhead = function(serverAhead) {
195322
- var _i, _ref, ahead, s, serverAhead, totalAheadNano, x, x$1;
195430
+ var {_i, _ref, ahead, s, serverAhead, totalAheadNano, x, x$1, $s, $deferred, $r, $c} = $restore(this, {serverAhead});
195431
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195323
195432
  s = this;
195433
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195434
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195324
195435
  s.serverTimestampAheadBuffer = $append(s.serverTimestampAheadBuffer, serverAhead);
195325
195436
  if (s.serverTimestampAheadBuffer.$length > 20) {
195326
195437
  s.serverTimestampAheadBuffer = $subslice(s.serverTimestampAheadBuffer, 1);
@@ -195335,40 +195446,52 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195335
195446
  _i++;
195336
195447
  }
195337
195448
  s.serverTimestampAhead = ((x$1 = $div64(totalAheadNano, (new $Int64(0, s.serverTimestampAheadBuffer.$length)), false), new time.Duration(x$1.$high, x$1.$low)));
195449
+ $s = -1; return;
195450
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.UpdateServerTimestampAhead, $c: true, $r, _i, _ref, ahead, s, serverAhead, totalAheadNano, x, x$1, $s, $deferred};return $f; } }
195338
195451
  };
195339
195452
  Stats.prototype.UpdateServerTimestampAhead = function(serverAhead) { return this.$val.UpdateServerTimestampAhead(serverAhead); };
195340
195453
  Stats.ptr.prototype.SetScreenResolution = function(res) {
195341
- var res, s;
195454
+ var {res, s, $s, $deferred, $r, $c} = $restore(this, {res});
195455
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195342
195456
  s = this;
195457
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195458
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195343
195459
  s.screenResolutionWidth = ((res.X >>> 0));
195344
195460
  s.screenResolutionHeight = ((res.Y >>> 0));
195461
+ $s = -1; return;
195462
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.SetScreenResolution, $c: true, $r, res, s, $s, $deferred};return $f; } }
195345
195463
  };
195346
195464
  Stats.prototype.SetScreenResolution = function(res) { return this.$val.SetScreenResolution(res); };
195347
195465
  Stats.ptr.prototype.NotifyFrame = function(frame) {
195348
- var {_r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s, $r, $c} = $restore(this, {frame});
195466
+ var {_r, _r$1, _r$2, frame, frameLatency, now, s, serverTime, $s, $r, $c} = $restore(this, {frame});
195349
195467
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195350
195468
  s = this;
195351
195469
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195352
- time.Time.copy(s.lastFrameAt, _r);
195470
+ now = $clone(_r, time.Time);
195471
+ $r = s.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195472
+ time.Time.copy(s.lastFrameAt, now);
195353
195473
  s.currentFramesCount = s.currentFramesCount + (1) >> 0;
195354
- _r$1 = s.GetServerTime(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195355
- _r$2 = frame.GetTimestamp(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195356
- _r$3 = $clone(_r$1, time.Time).Sub($clone(_r$2, time.Time)); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
195357
- frameLatency = _r$3;
195358
- $r = s.metrics.AddSample("frame_latency", new sliceType$1([frameLatency])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195359
- $r = s.metrics.AddSample("frame_latency_long_term", new sliceType$1([frameLatency])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195474
+ serverTime = $clone($clone(now, time.Time).Add(s.serverTimestampAhead), time.Time);
195475
+ $r = s.mu.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195476
+ _r$1 = frame.GetTimestamp(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195477
+ _r$2 = $clone(serverTime, time.Time).Sub($clone(_r$1, time.Time)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195478
+ frameLatency = _r$2;
195479
+ $r = s.metrics.AddSample("frame_latency", new sliceType$1([frameLatency])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195480
+ $r = s.metrics.AddSample("frame_latency_long_term", new sliceType$1([frameLatency])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195360
195481
  $s = -1; return;
195361
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s};return $f;
195482
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, frame, frameLatency, now, s, serverTime, $s};return $f;
195362
195483
  };
195363
195484
  Stats.prototype.NotifyFrame = function(frame) { return this.$val.NotifyFrame(frame); };
195364
195485
  Stats.ptr.prototype.NotifyScreenPing = function() {
195365
- var {_r, s, $s, $r, $c} = $restore(this, {});
195366
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195486
+ var {_r, s, $s, $deferred, $r, $c} = $restore(this, {});
195487
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195367
195488
  s = this;
195368
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195489
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195490
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195491
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195369
195492
  time.Time.copy(s.lastScreenPingAt, _r);
195370
195493
  $s = -1; return;
195371
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyScreenPing, $c: true, $r, _r, s, $s};return $f;
195494
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.NotifyScreenPing, $c: true, $r, _r, s, $s, $deferred};return $f; } }
195372
195495
  };
195373
195496
  Stats.prototype.NotifyScreenPing = function() { return this.$val.NotifyScreenPing(); };
195374
195497
  Stats.ptr.prototype.NotifyFrameCollectionStarted = function() {
@@ -195402,9 +195525,14 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195402
195525
  };
195403
195526
  Stats.prototype.NotifyFrameCollectionDuration = function(dur) { return this.$val.NotifyFrameCollectionDuration(dur); };
195404
195527
  Stats.ptr.prototype.NotifyThrottledCollectionFrame = function() {
195405
- var s;
195528
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195529
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195406
195530
  s = this;
195531
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195532
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195407
195533
  s.currentThrottledCollectionFramesCount = s.currentThrottledCollectionFramesCount + (1) >> 0;
195534
+ $s = -1; return;
195535
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.NotifyThrottledCollectionFrame, $c: true, $r, s, $s, $deferred};return $f; } }
195408
195536
  };
195409
195537
  Stats.prototype.NotifyThrottledCollectionFrame = function() { return this.$val.NotifyThrottledCollectionFrame(); };
195410
195538
  Stats.ptr.prototype.NotifyFrameDecodeWriteStarted = function() {
@@ -195450,9 +195578,14 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195450
195578
  };
195451
195579
  Stats.prototype.NotifyFrameDecodeOutputEnded = function() { return this.$val.NotifyFrameDecodeOutputEnded(); };
195452
195580
  Stats.ptr.prototype.NotifyThrottledDecodeFrame = function() {
195453
- var s;
195581
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195582
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195454
195583
  s = this;
195584
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195585
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195455
195586
  s.currentThrottledDecodeFramesCount = s.currentThrottledDecodeFramesCount + (1) >> 0;
195587
+ $s = -1; return;
195588
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.NotifyThrottledDecodeFrame, $c: true, $r, s, $s, $deferred};return $f; } }
195456
195589
  };
195457
195590
  Stats.prototype.NotifyThrottledDecodeFrame = function() { return this.$val.NotifyThrottledDecodeFrame(); };
195458
195591
  Stats.ptr.prototype.NotifyFrameRenderStarted = function() {
@@ -195477,171 +195610,245 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195477
195610
  };
195478
195611
  Stats.prototype.NotifyFrameRenderEnded = function() { return this.$val.NotifyFrameRenderEnded(); };
195479
195612
  Stats.ptr.prototype.NotifyThrottledRenderFrame = function() {
195480
- var s;
195613
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195614
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195481
195615
  s = this;
195616
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195617
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195482
195618
  s.currentThrottledRenderFramesCount = s.currentThrottledRenderFramesCount + (1) >> 0;
195619
+ $s = -1; return;
195620
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.NotifyThrottledRenderFrame, $c: true, $r, s, $s, $deferred};return $f; } }
195483
195621
  };
195484
195622
  Stats.prototype.NotifyThrottledRenderFrame = function() { return this.$val.NotifyThrottledRenderFrame(); };
195485
195623
  Stats.ptr.prototype.GetLastFrameAt = function() {
195486
- var s;
195624
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195625
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195487
195626
  s = this;
195488
- return s.lastFrameAt;
195627
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195628
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195629
+ $24r = s.lastFrameAt;
195630
+ $s = 2; case 2: return $24r;
195631
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.GetLastFrameAt, $c: true, $r, $24r, s, $s, $deferred};return $f; } }
195489
195632
  };
195490
195633
  Stats.prototype.GetLastFrameAt = function() { return this.$val.GetLastFrameAt(); };
195491
195634
  Stats.ptr.prototype.GetLastScreenPingAt = function() {
195492
- var s;
195635
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195636
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195493
195637
  s = this;
195494
- return s.lastScreenPingAt;
195638
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195639
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195640
+ $24r = s.lastScreenPingAt;
195641
+ $s = 2; case 2: return $24r;
195642
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.GetLastScreenPingAt, $c: true, $r, $24r, s, $s, $deferred};return $f; } }
195495
195643
  };
195496
195644
  Stats.prototype.GetLastScreenPingAt = function() { return this.$val.GetLastScreenPingAt(); };
195497
195645
  Stats.ptr.prototype.GetLastScreenImpulseAt = function() {
195498
- var lastFrameAt, lastScreenPingAt, s;
195646
+ var {$24r, $24r$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195647
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195499
195648
  s = this;
195500
- lastScreenPingAt = $clone(s.GetLastScreenPingAt(), time.Time);
195501
- lastFrameAt = $clone(s.GetLastFrameAt(), time.Time);
195502
- if ($clone(lastScreenPingAt, time.Time).After($clone(lastFrameAt, time.Time))) {
195503
- return lastScreenPingAt;
195504
- }
195505
- return lastFrameAt;
195649
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195650
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195651
+ /* */ if ($clone(s.lastScreenPingAt, time.Time).After($clone(s.lastFrameAt, time.Time))) { $s = 2; continue; }
195652
+ /* */ $s = 3; continue;
195653
+ /* if ($clone(s.lastScreenPingAt, time.Time).After($clone(s.lastFrameAt, time.Time))) { */ case 2:
195654
+ $24r = s.lastScreenPingAt;
195655
+ $s = 4; case 4: return $24r;
195656
+ /* } */ case 3:
195657
+ $24r$1 = s.lastFrameAt;
195658
+ $s = 5; case 5: return $24r$1;
195659
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.GetLastScreenImpulseAt, $c: true, $r, $24r, $24r$1, s, $s, $deferred};return $f; } }
195506
195660
  };
195507
195661
  Stats.prototype.GetLastScreenImpulseAt = function() { return this.$val.GetLastScreenImpulseAt(); };
195508
195662
  Stats.ptr.prototype.GetFrameRate = function() {
195509
- var s;
195663
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195664
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195510
195665
  s = this;
195511
- return s.lastFrameRate;
195666
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195667
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195668
+ $24r = s.lastFrameRate;
195669
+ $s = 2; case 2: return $24r;
195670
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.GetFrameRate, $c: true, $r, $24r, s, $s, $deferred};return $f; } }
195512
195671
  };
195513
195672
  Stats.prototype.GetFrameRate = function() { return this.$val.GetFrameRate(); };
195673
+ Stats.ptr.prototype.GetLastActiveFrameRate = function() {
195674
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195675
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195676
+ s = this;
195677
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195678
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195679
+ $24r = s.lastActiveFrameRate;
195680
+ $s = 2; case 2: return $24r;
195681
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.GetLastActiveFrameRate, $c: true, $r, $24r, s, $s, $deferred};return $f; } }
195682
+ };
195683
+ Stats.prototype.GetLastActiveFrameRate = function() { return this.$val.GetLastActiveFrameRate(); };
195684
+ Stats.ptr.prototype.rotateFrameRate = function() {
195685
+ var s;
195686
+ s = this;
195687
+ s.lastFrameRate = s.currentFramesCount;
195688
+ s.currentFramesCount = 0;
195689
+ s.totalFramesCount = s.totalFramesCount + (s.lastFrameRate) >> 0;
195690
+ if (s.lastFrameRate > 0) {
195691
+ s.lastActiveFrameRate = s.lastFrameRate;
195692
+ }
195693
+ };
195694
+ Stats.prototype.rotateFrameRate = function() { return this.$val.rotateFrameRate(); };
195514
195695
  Stats.ptr.prototype.startCalculations = function() {
195515
- var {_arg, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, s, $s, $deferred, $r, $c} = $restore(this, {});
195696
+ var {_arg, _r, _r$1, _selection, _selection$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195516
195697
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195517
195698
  s = this;
195518
195699
  $deferred.push([function(_arg) { $close(_arg); }, [s.calcStopped]]);
195519
195700
  /* while (true) { */ case 1:
195520
- /* if (!(!s.stopped.Load())) { break; } */ if(!(!s.stopped.Load())) { $s = 2; continue; }
195521
- s.lastFrameRate = s.currentFramesCount;
195522
- s.currentFramesCount = 0;
195523
- s.totalFramesCount = s.totalFramesCount + (s.lastFrameRate) >> 0;
195524
- s.lastThrottledCollectionFrameRate = s.currentThrottledCollectionFramesCount;
195525
- s.currentThrottledCollectionFramesCount = 0;
195526
- s.lastThrottledDecodeFrameRate = s.currentThrottledDecodeFramesCount;
195527
- s.currentThrottledDecodeFramesCount = 0;
195528
- s.lastThrottledRenderFrameRate = s.currentThrottledRenderFramesCount;
195529
- s.currentThrottledRenderFramesCount = 0;
195530
- _r = s.metrics.GetAverage("frame_latency"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195531
- s.lastFramesLatencyAverage = (_r);
195532
- _r$1 = s.metrics.GetVariance("frame_latency"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195533
- s.lastFramesLatencyVariance = (_r$1);
195534
- $r = s.metrics.Reset("frame_latency"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195535
- _r$2 = s.metrics.GetAverage("frame_collection"); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195536
- s.lastFramesCollectionAverage = _r$2;
195537
- _r$3 = s.metrics.GetVariance("frame_collection"); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
195538
- s.lastFramesCollectionVariance = _r$3;
195539
- $r = s.metrics.Reset("frame_collection"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195540
- _r$4 = s.metrics.GetAverage("frame_decode_write"); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
195541
- s.lastFramesDecodeWriteAverage = _r$4;
195542
- _r$5 = s.metrics.GetVariance("frame_decode_write"); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
195543
- s.lastFramesDecodeWriteVariance = _r$5;
195544
- $r = s.metrics.Reset("frame_decode_write"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195545
- _r$6 = s.metrics.GetAverage("frame_decode_output"); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
195546
- s.lastFramesDecodeOutputAverage = _r$6;
195547
- _r$7 = s.metrics.GetVariance("frame_decode_output"); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
195548
- s.lastFramesDecodeOutputVariance = _r$7;
195549
- $r = s.metrics.Reset("frame_decode_output"); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195550
- _r$8 = s.metrics.GetAverage("frame_render"); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
195551
- s.lastFramesRenderAverage = _r$8;
195552
- _r$9 = s.metrics.GetVariance("frame_render"); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
195553
- s.lastFramesRenderVariance = _r$9;
195554
- $r = s.metrics.Reset("frame_render"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195555
- $r = s.metrics.RemoveOldest("frame_latency_long_term", 500); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195556
- _r$10 = s.metrics.GetAverage("frame_latency_long_term"); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
195557
- s.longTermFramesLatencyAverage = _r$10;
195558
- _r$11 = s.metrics.GetVariance("frame_latency_long_term"); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
195559
- s.longTermFramesLatencyVariance = _r$11;
195560
- $r = s.metrics.RemoveOldest("frame_collection_long_term", 500); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195561
- _r$12 = s.metrics.GetAverage("frame_collection_long_term"); /* */ $s = 22; case 22: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
195562
- s.longTermFramesCollectionAverage = _r$12;
195563
- _r$13 = s.metrics.GetVariance("frame_collection_long_term"); /* */ $s = 23; case 23: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
195564
- s.longTermFramesCollectionVariance = _r$13;
195565
- $r = s.metrics.RemoveOldest("frame_decode_write_long_term", 500); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195566
- _r$14 = s.metrics.GetAverage("frame_decode_write_long_term"); /* */ $s = 25; case 25: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
195567
- s.longTermFramesDecodeWriteAverage = _r$14;
195568
- _r$15 = s.metrics.GetVariance("frame_decode_write_long_term"); /* */ $s = 26; case 26: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
195569
- s.longTermFramesDecodeWriteVariance = _r$15;
195570
- $r = s.metrics.RemoveOldest("frame_decode_output_long_term", 500); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195571
- _r$16 = s.metrics.GetAverage("frame_decode_output_long_term"); /* */ $s = 28; case 28: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
195572
- s.longTermFramesDecodeOutputAverage = _r$16;
195573
- _r$17 = s.metrics.GetVariance("frame_decode_output_long_term"); /* */ $s = 29; case 29: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
195574
- s.longTermFramesDecodeOutputVariance = _r$17;
195575
- $r = s.metrics.RemoveOldest("frame_render_long_term", 500); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195576
- _r$18 = s.metrics.GetAverage("frame_render_long_term"); /* */ $s = 31; case 31: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
195577
- s.longTermFramesRenderAverage = _r$18;
195578
- _r$19 = s.metrics.GetVariance("frame_render_long_term"); /* */ $s = 32; case 32: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
195579
- s.longTermFramesRenderVariance = _r$19;
195580
- $r = s.print(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195581
- _r$20 = time.After(new time.Duration(0, 1000000000)); /* */ $s = 34; case 34: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
195582
- _r$21 = $select([[_r$20], [s.done]]); /* */ $s = 35; case 35: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
195583
- _selection = _r$21;
195584
- /* */ if (_selection[0] === 0) { $s = 36; continue; }
195585
- /* */ if (_selection[0] === 1) { $s = 37; continue; }
195586
- /* */ $s = 38; continue;
195587
- /* if (_selection[0] === 0) { */ case 36:
195588
- $s = 38; continue;
195589
- /* } else if (_selection[0] === 1) { */ case 37:
195590
- $s = 39; case 39: return;
195591
- /* } */ case 38:
195701
+ _selection = $select([[s.done], []]);
195702
+ /* */ if (_selection[0] === 0) { $s = 3; continue; }
195703
+ /* */ if (_selection[0] === 1) { $s = 4; continue; }
195704
+ /* */ $s = 5; continue;
195705
+ /* if (_selection[0] === 0) { */ case 3:
195706
+ $s = 6; case 6: return;
195707
+ /* } else if (_selection[0] === 1) { */ case 4:
195708
+ /* } */ case 5:
195709
+ $r = s.calculate(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195710
+ _r = time.After(new time.Duration(0, 1000000000)); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195711
+ _r$1 = $select([[_r], [s.done]]); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195712
+ _selection$1 = _r$1;
195713
+ /* */ if (_selection$1[0] === 0) { $s = 10; continue; }
195714
+ /* */ if (_selection$1[0] === 1) { $s = 11; continue; }
195715
+ /* */ $s = 12; continue;
195716
+ /* if (_selection$1[0] === 0) { */ case 10:
195717
+ $s = 12; continue;
195718
+ /* } else if (_selection$1[0] === 1) { */ case 11:
195719
+ $s = 13; case 13: return;
195720
+ /* } */ case 12:
195592
195721
  $s = 1; continue;
195593
195722
  case 2:
195594
195723
  $s = -1; return;
195595
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.startCalculations, $c: true, $r, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, s, $s, $deferred};return $f; } }
195724
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.startCalculations, $c: true, $r, _arg, _r, _r$1, _selection, _selection$1, s, $s, $deferred};return $f; } }
195596
195725
  };
195597
195726
  Stats.prototype.startCalculations = function() { return this.$val.startCalculations(); };
195598
- Stats.ptr.prototype.print = function() {
195599
- var {s, $s, $r, $c} = $restore(this, {});
195727
+ Stats.ptr.prototype.calculate = function() {
195728
+ var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, args, s, $s, $r, $c} = $restore(this, {});
195600
195729
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195601
195730
  s = this;
195602
- $r = log.Printf("fr:%d, THR: col:%d, dec:%d, ren:%d | del:\xE2\x8C\x80%dms, srv:\xE2\x8C\x80%dms | ST: lat:\xE2\x8C\x80%dms/\xC2\xB1%dms, col:\xE2\x8C\x80%dms/\xC2\xB1%dms, dec-wrt:\xE2\x8C\x80%dms/\xC2\xB1%dms dec-out:\xE2\x8C\x80%dms/\xC2\xB1%dms, ren:\xE2\x8C\x80%dms/\xC2\xB1%dms | LT:lat:\xE2\x8C\x80%dms/\xC2\xB1%dms, col:\xE2\x8C\x80%dms/\xC2\xB1%dms, dec-wrt:\xE2\x8C\x80%dms/\xC2\xB1%dms dec-out:\xE2\x8C\x80%dms/\xC2\xB1%dms, ren:\xE2\x8C\x80%dms/\xC2\xB1%dms\n", new sliceType([new $Int(s.lastFrameRate), new $Int(s.lastThrottledCollectionFrameRate), new $Int(s.lastThrottledDecodeFrameRate), new $Int(s.lastThrottledRenderFrameRate), s.latency.Milliseconds(), s.serverTimestampAhead.Milliseconds(), s.lastFramesLatencyAverage.Milliseconds(), s.lastFramesLatencyVariance.Milliseconds(), s.lastFramesCollectionAverage.Milliseconds(), s.lastFramesCollectionVariance.Milliseconds(), s.lastFramesDecodeWriteAverage.Milliseconds(), s.lastFramesDecodeWriteVariance.Milliseconds(), s.lastFramesDecodeOutputAverage.Milliseconds(), s.lastFramesDecodeOutputVariance.Milliseconds(), s.lastFramesRenderAverage.Milliseconds(), s.lastFramesRenderVariance.Milliseconds(), s.longTermFramesLatencyAverage.Milliseconds(), s.longTermFramesLatencyVariance.Milliseconds(), s.longTermFramesCollectionAverage.Milliseconds(), s.longTermFramesCollectionVariance.Milliseconds(), s.longTermFramesDecodeWriteAverage.Milliseconds(), s.longTermFramesDecodeWriteVariance.Milliseconds(), s.longTermFramesDecodeOutputAverage.Milliseconds(), s.longTermFramesDecodeOutputVariance.Milliseconds(), s.longTermFramesRenderAverage.Milliseconds(), s.longTermFramesRenderVariance.Milliseconds()])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195603
- $s = -1; return;
195604
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.print, $c: true, $r, s, $s};return $f;
195731
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195732
+ s.rotateFrameRate();
195733
+ s.lastThrottledCollectionFrameRate = s.currentThrottledCollectionFramesCount;
195734
+ s.currentThrottledCollectionFramesCount = 0;
195735
+ s.lastThrottledDecodeFrameRate = s.currentThrottledDecodeFramesCount;
195736
+ s.currentThrottledDecodeFramesCount = 0;
195737
+ s.lastThrottledRenderFrameRate = s.currentThrottledRenderFramesCount;
195738
+ s.currentThrottledRenderFramesCount = 0;
195739
+ _r = s.metrics.GetAverage("frame_latency"); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195740
+ s.lastFramesLatencyAverage = (_r);
195741
+ _r$1 = s.metrics.GetVariance("frame_latency"); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195742
+ s.lastFramesLatencyVariance = (_r$1);
195743
+ $r = s.metrics.Reset("frame_latency"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195744
+ _r$2 = s.metrics.GetAverage("frame_collection"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195745
+ s.lastFramesCollectionAverage = _r$2;
195746
+ _r$3 = s.metrics.GetVariance("frame_collection"); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
195747
+ s.lastFramesCollectionVariance = _r$3;
195748
+ $r = s.metrics.Reset("frame_collection"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195749
+ _r$4 = s.metrics.GetAverage("frame_decode_write"); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
195750
+ s.lastFramesDecodeWriteAverage = _r$4;
195751
+ _r$5 = s.metrics.GetVariance("frame_decode_write"); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
195752
+ s.lastFramesDecodeWriteVariance = _r$5;
195753
+ $r = s.metrics.Reset("frame_decode_write"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195754
+ _r$6 = s.metrics.GetAverage("frame_decode_output"); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
195755
+ s.lastFramesDecodeOutputAverage = _r$6;
195756
+ _r$7 = s.metrics.GetVariance("frame_decode_output"); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
195757
+ s.lastFramesDecodeOutputVariance = _r$7;
195758
+ $r = s.metrics.Reset("frame_decode_output"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195759
+ _r$8 = s.metrics.GetAverage("frame_render"); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
195760
+ s.lastFramesRenderAverage = _r$8;
195761
+ _r$9 = s.metrics.GetVariance("frame_render"); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
195762
+ s.lastFramesRenderVariance = _r$9;
195763
+ $r = s.metrics.Reset("frame_render"); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195764
+ $r = s.metrics.RemoveOldest("frame_latency_long_term", 500); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195765
+ _r$10 = s.metrics.GetAverage("frame_latency_long_term"); /* */ $s = 18; case 18: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
195766
+ s.longTermFramesLatencyAverage = _r$10;
195767
+ _r$11 = s.metrics.GetVariance("frame_latency_long_term"); /* */ $s = 19; case 19: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
195768
+ s.longTermFramesLatencyVariance = _r$11;
195769
+ $r = s.metrics.RemoveOldest("frame_collection_long_term", 500); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195770
+ _r$12 = s.metrics.GetAverage("frame_collection_long_term"); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
195771
+ s.longTermFramesCollectionAverage = _r$12;
195772
+ _r$13 = s.metrics.GetVariance("frame_collection_long_term"); /* */ $s = 22; case 22: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
195773
+ s.longTermFramesCollectionVariance = _r$13;
195774
+ $r = s.metrics.RemoveOldest("frame_decode_write_long_term", 500); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195775
+ _r$14 = s.metrics.GetAverage("frame_decode_write_long_term"); /* */ $s = 24; case 24: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
195776
+ s.longTermFramesDecodeWriteAverage = _r$14;
195777
+ _r$15 = s.metrics.GetVariance("frame_decode_write_long_term"); /* */ $s = 25; case 25: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
195778
+ s.longTermFramesDecodeWriteVariance = _r$15;
195779
+ $r = s.metrics.RemoveOldest("frame_decode_output_long_term", 500); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195780
+ _r$16 = s.metrics.GetAverage("frame_decode_output_long_term"); /* */ $s = 27; case 27: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
195781
+ s.longTermFramesDecodeOutputAverage = _r$16;
195782
+ _r$17 = s.metrics.GetVariance("frame_decode_output_long_term"); /* */ $s = 28; case 28: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
195783
+ s.longTermFramesDecodeOutputVariance = _r$17;
195784
+ $r = s.metrics.RemoveOldest("frame_render_long_term", 500); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195785
+ _r$18 = s.metrics.GetAverage("frame_render_long_term"); /* */ $s = 30; case 30: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
195786
+ s.longTermFramesRenderAverage = _r$18;
195787
+ _r$19 = s.metrics.GetVariance("frame_render_long_term"); /* */ $s = 31; case 31: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
195788
+ s.longTermFramesRenderVariance = _r$19;
195789
+ args = s.printArgs();
195790
+ $r = s.mu.Unlock(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195791
+ $r = log.Printf("fr:%d, THR: col:%d, dec:%d, ren:%d | del:\xE2\x8C\x80%dms, srv:\xE2\x8C\x80%dms | ST: lat:\xE2\x8C\x80%dms/\xC2\xB1%dms, col:\xE2\x8C\x80%dms/\xC2\xB1%dms, dec-wrt:\xE2\x8C\x80%dms/\xC2\xB1%dms dec-out:\xE2\x8C\x80%dms/\xC2\xB1%dms, ren:\xE2\x8C\x80%dms/\xC2\xB1%dms | LT:lat:\xE2\x8C\x80%dms/\xC2\xB1%dms, col:\xE2\x8C\x80%dms/\xC2\xB1%dms, dec-wrt:\xE2\x8C\x80%dms/\xC2\xB1%dms dec-out:\xE2\x8C\x80%dms/\xC2\xB1%dms, ren:\xE2\x8C\x80%dms/\xC2\xB1%dms\n", args); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195792
+ $s = -1; return;
195793
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.calculate, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, args, s, $s};return $f;
195794
+ };
195795
+ Stats.prototype.calculate = function() { return this.$val.calculate(); };
195796
+ Stats.ptr.prototype.printArgs = function() {
195797
+ var s;
195798
+ s = this;
195799
+ return new sliceType([new $Int(s.lastFrameRate), new $Int(s.lastThrottledCollectionFrameRate), new $Int(s.lastThrottledDecodeFrameRate), new $Int(s.lastThrottledRenderFrameRate), s.latency.Milliseconds(), s.serverTimestampAhead.Milliseconds(), s.lastFramesLatencyAverage.Milliseconds(), s.lastFramesLatencyVariance.Milliseconds(), s.lastFramesCollectionAverage.Milliseconds(), s.lastFramesCollectionVariance.Milliseconds(), s.lastFramesDecodeWriteAverage.Milliseconds(), s.lastFramesDecodeWriteVariance.Milliseconds(), s.lastFramesDecodeOutputAverage.Milliseconds(), s.lastFramesDecodeOutputVariance.Milliseconds(), s.lastFramesRenderAverage.Milliseconds(), s.lastFramesRenderVariance.Milliseconds(), s.longTermFramesLatencyAverage.Milliseconds(), s.longTermFramesLatencyVariance.Milliseconds(), s.longTermFramesCollectionAverage.Milliseconds(), s.longTermFramesCollectionVariance.Milliseconds(), s.longTermFramesDecodeWriteAverage.Milliseconds(), s.longTermFramesDecodeWriteVariance.Milliseconds(), s.longTermFramesDecodeOutputAverage.Milliseconds(), s.longTermFramesDecodeOutputVariance.Milliseconds(), s.longTermFramesRenderAverage.Milliseconds(), s.longTermFramesRenderVariance.Milliseconds()]);
195605
195800
  };
195606
- Stats.prototype.print = function() { return this.$val.print(); };
195801
+ Stats.prototype.printArgs = function() { return this.$val.printArgs(); };
195607
195802
  Stats.ptr.prototype.GetServerTime = function() {
195608
- var {$24r, _r, _r$1, s, $s, $r, $c} = $restore(this, {});
195609
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195803
+ var {$24r, _r, _r$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195804
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195610
195805
  s = this;
195611
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195612
- _r$1 = $clone(_r, time.Time).Add(s.serverTimestampAhead); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195806
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195807
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195808
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195809
+ _r$1 = $clone(_r, time.Time).Add(s.serverTimestampAhead); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195613
195810
  $24r = _r$1;
195614
- $s = 3; case 3: return $24r;
195615
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.GetServerTime, $c: true, $r, $24r, _r, _r$1, s, $s};return $f;
195811
+ $s = 4; case 4: return $24r;
195812
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.GetServerTime, $c: true, $r, $24r, _r, _r$1, s, $s, $deferred};return $f; } }
195616
195813
  };
195617
195814
  Stats.prototype.GetServerTime = function() { return this.$val.GetServerTime(); };
195618
195815
  Stats.ptr.prototype.NotifyInteraction = function() {
195619
- var {_r, s, $s, $r, $c} = $restore(this, {});
195620
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195816
+ var {_r, s, $s, $deferred, $r, $c} = $restore(this, {});
195817
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195621
195818
  s = this;
195622
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195819
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195820
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195821
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195623
195822
  time.Time.copy(s.lastInteractionAt, _r);
195624
195823
  $s = -1; return;
195625
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyInteraction, $c: true, $r, _r, s, $s};return $f;
195824
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.NotifyInteraction, $c: true, $r, _r, s, $s, $deferred};return $f; } }
195626
195825
  };
195627
195826
  Stats.prototype.NotifyInteraction = function() { return this.$val.NotifyInteraction(); };
195628
195827
  Stats.ptr.prototype.GetInteractionWaitMultiplier = function() {
195629
- var {_r, s, untouchedDur, $s, $r, $c} = $restore(this, {});
195828
+ var {_r, lastInteractionAt, s, untouchedDur, $s, $r, $c} = $restore(this, {});
195630
195829
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195631
195830
  s = this;
195632
- _r = time.Since($clone(s.lastInteractionAt, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195831
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195832
+ lastInteractionAt = $clone(s.lastInteractionAt, time.Time);
195833
+ $r = s.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195834
+ _r = time.Since($clone(lastInteractionAt, time.Time)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195633
195835
  untouchedDur = _r;
195634
195836
  if (untouchedDur.Seconds() < 5) {
195635
195837
  $s = -1; return 0;
195636
195838
  }
195637
195839
  $s = -1; return 1 - (1 / (1 + (untouchedDur.Seconds())));
195638
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.GetInteractionWaitMultiplier, $c: true, $r, _r, s, untouchedDur, $s};return $f;
195840
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.GetInteractionWaitMultiplier, $c: true, $r, _r, lastInteractionAt, s, untouchedDur, $s};return $f;
195639
195841
  };
195640
195842
  Stats.prototype.GetInteractionWaitMultiplier = function() { return this.$val.GetInteractionWaitMultiplier(); };
195641
195843
  Stats.ptr.prototype.SetEncodingPreferences = function(prefs) {
195642
- var prefs, s;
195844
+ var {prefs, s, $s, $deferred, $r, $c} = $restore(this, {prefs});
195845
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195643
195846
  s = this;
195847
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195848
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195644
195849
  EncodingPreferences.copy(s.encodingPreferences, prefs);
195850
+ $s = -1; return;
195851
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.SetEncodingPreferences, $c: true, $r, prefs, s, $s, $deferred};return $f; } }
195645
195852
  };
195646
195853
  Stats.prototype.SetEncodingPreferences = function(prefs) { return this.$val.SetEncodingPreferences(prefs); };
195647
195854
  NewMetrics = function() {
@@ -195776,28 +195983,29 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195776
195983
  return $div64(sum, (new time.Duration(0, values.$length)), false);
195777
195984
  };
195778
195985
  variance = function(values) {
195779
- var _i, _ref, avg, sum, v, values, x;
195986
+ var _i, _ref, avg, deviation, sum, v, values;
195780
195987
  if (values.$length === 0) {
195781
195988
  return new time.Duration(0, 0);
195782
195989
  }
195783
195990
  avg = average(values);
195784
- sum = new time.Duration(0, 0);
195991
+ sum = 0;
195785
195992
  _ref = values;
195786
195993
  _i = 0;
195787
195994
  while (true) {
195788
195995
  if (!(_i < _ref.$length)) { break; }
195789
195996
  v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
195790
- sum = (x = $mul64((new time.Duration(v.$high - avg.$high, v.$low - avg.$low)), (new time.Duration(v.$high - avg.$high, v.$low - avg.$low))), new time.Duration(sum.$high + x.$high, sum.$low + x.$low));
195997
+ deviation = ($flatten64(new time.Duration(v.$high - avg.$high, v.$low - avg.$low)));
195998
+ sum = sum + (deviation * deviation);
195791
195999
  _i++;
195792
196000
  }
195793
- return (new time.Duration(0, math.Sqrt(($flatten64($div64(sum, (new time.Duration(0, values.$length)), false))))));
196001
+ return (new time.Duration(0, math.Sqrt(sum / (values.$length))));
195794
196002
  };
195795
196003
  ptrType$1.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([$String], [time.Duration], false)}];
195796
- ptrType$5.methods = [{prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}, {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: "NotifyFrameCollectionDuration", name: "NotifyFrameCollectionDuration", pkg: "", typ: $funcType([time.Duration], [], 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)}, {prop: "SetEncodingPreferences", name: "SetEncodingPreferences", pkg: "", typ: $funcType([EncodingPreferences], [], false)}];
196004
+ ptrType$5.methods = [{prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}, {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: "NotifyFrameCollectionDuration", name: "NotifyFrameCollectionDuration", pkg: "", typ: $funcType([time.Duration], [], 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: "GetLastActiveFrameRate", name: "GetLastActiveFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "rotateFrameRate", name: "rotateFrameRate", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "calculate", name: "calculate", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "printArgs", name: "printArgs", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [sliceType], 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)}, {prop: "SetEncodingPreferences", name: "SetEncodingPreferences", pkg: "", typ: $funcType([EncodingPreferences], [], false)}];
195797
196005
  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)}];
195798
196006
  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: ""}]);
195799
196007
  Frame.init([{prop: "GetTimestamp", name: "GetTimestamp", pkg: "", typ: $funcType([], [time.Time], false)}]);
195800
- Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "stopped", name: "stopped", embedded: false, exported: false, typ: atomic.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: "done", name: "done", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "calcStopped", name: "calcStopped", embedded: false, exported: false, typ: chanType, 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: ""}, {prop: "encodingPreferences", name: "encodingPreferences", embedded: false, exported: false, typ: EncodingPreferences, tag: ""}]);
196008
+ Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, 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: "done", name: "done", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "calcStopped", name: "calcStopped", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "stopOnce", name: "stopOnce", embedded: false, exported: false, typ: sync.Once, 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: "lastActiveFrameRate", name: "lastActiveFrameRate", 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: ""}, {prop: "encodingPreferences", name: "encodingPreferences", embedded: false, exported: false, typ: EncodingPreferences, tag: ""}]);
195801
196009
  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: ""}]);
195802
196010
  EncodingPreferences.init("", [{prop: "PreferredQualityIndex", name: "PreferredQualityIndex", embedded: false, exported: true, typ: $Int, tag: "json:\"preferredQualityIndex\""}, {prop: "PreferredBitrateKbps", name: "PreferredBitrateKbps", embedded: false, exported: true, typ: $Int, tag: "json:\"preferredBitrateKbps\""}, {prop: "PreferredPreset", name: "PreferredPreset", embedded: false, exported: true, typ: $String, tag: "json:\"preferredPreset\""}, {prop: "PreferredTune", name: "PreferredTune", embedded: false, exported: true, typ: $String, tag: "json:\"preferredTune\""}, {prop: "PreferredProfile", name: "PreferredProfile", embedded: false, exported: true, typ: $String, tag: "json:\"preferredProfile\""}]);
195803
196011
  InputMetrics.init("", [{prop: "MouseEventsReceived", name: "MouseEventsReceived", embedded: false, exported: true, typ: $Int, tag: "json:\"mouseEventsReceived\""}, {prop: "MouseEventsSent", name: "MouseEventsSent", embedded: false, exported: true, typ: $Int, tag: "json:\"mouseEventsSent\""}, {prop: "MouseBytesSent", name: "MouseBytesSent", embedded: false, exported: true, typ: $Int, tag: "json:\"mouseBytesSent\""}, {prop: "MouseSendAverageNano", name: "MouseSendAverageNano", embedded: false, exported: true, typ: $Int64, tag: "json:\"mouseSendAverageNano\""}, {prop: "MouseSendMaxNano", name: "MouseSendMaxNano", embedded: false, exported: true, typ: $Int64, tag: "json:\"mouseSendMaxNano\""}, {prop: "MouseWaitMaxNano", name: "MouseWaitMaxNano", embedded: false, exported: true, typ: $Int64, tag: "json:\"mouseWaitMaxNano\""}, {prop: "TouchEventsReceived", name: "TouchEventsReceived", embedded: false, exported: true, typ: $Int, tag: "json:\"touchEventsReceived\""}, {prop: "TouchEventsSent", name: "TouchEventsSent", embedded: false, exported: true, typ: $Int, tag: "json:\"touchEventsSent\""}, {prop: "TouchBytesSent", name: "TouchBytesSent", embedded: false, exported: true, typ: $Int, tag: "json:\"touchBytesSent\""}, {prop: "TouchSendAverageNano", name: "TouchSendAverageNano", embedded: false, exported: true, typ: $Int64, tag: "json:\"touchSendAverageNano\""}, {prop: "TouchSendMaxNano", name: "TouchSendMaxNano", embedded: false, exported: true, typ: $Int64, tag: "json:\"touchSendMaxNano\""}, {prop: "TouchMaxConcurrentSeq", name: "TouchMaxConcurrentSeq", embedded: false, exported: true, typ: $Int, tag: "json:\"touchMaxConcurrentSeq\""}, {prop: "TouchWaitMaxNano", name: "TouchWaitMaxNano", embedded: false, exported: true, typ: $Int64, tag: "json:\"touchWaitMaxNano\""}]);
@@ -195809,8 +196017,7 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195809
196017
  $r = log.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195810
196018
  $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195811
196019
  $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195812
- $r = atomic.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195813
- $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196020
+ $r = time.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195814
196021
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
195815
196022
  };
195816
196023
  $pkg.$init = $init;
@@ -196005,24 +196212,24 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196005
196212
  /* */ if (dl.renderingInProgress) { $s = 7; continue; }
196006
196213
  /* */ $s = 8; continue;
196007
196214
  /* if (dl.renderingInProgress) { */ case 7:
196008
- dl.stats.NotifyThrottledRenderFrame();
196215
+ $r = dl.stats.NotifyThrottledRenderFrame(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196009
196216
  $24r$1 = $ifaceNil;
196010
- $s = 9; case 9: return $24r$1;
196217
+ $s = 10; case 10: return $24r$1;
196011
196218
  /* } */ case 8:
196012
196219
  dl.renderingInProgress = true;
196013
- $r = dl.stats.NotifyFrameRenderStarted(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196220
+ $r = dl.stats.NotifyFrameRenderStarted(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196014
196221
  _arg = $clone(new image.Point.ptr(0, 0), image.Point);
196015
196222
  _arg$1 = screenBuffer;
196016
- _r$2 = screenBuffer.YCbCr(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
196223
+ _r$2 = screenBuffer.YCbCr(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
196017
196224
  _arg$2 = $clone(_r$2.Rect, image.Rectangle);
196018
- $r = dl.window.UploadYCbCr(_arg, _arg$1, _arg$2); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196019
- _r$3 = dl.window.Publish(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
196225
+ $r = dl.window.UploadYCbCr(_arg, _arg$1, _arg$2); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196226
+ _r$3 = dl.window.Publish(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
196020
196227
  _r$3;
196021
- $r = dl.stats.NotifyFrameRenderEnded(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196022
- $r = dl.stats.NotifyFrame(frame$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196228
+ $r = dl.stats.NotifyFrameRenderEnded(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196229
+ $r = dl.stats.NotifyFrame(frame$1); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196023
196230
  dl.renderingInProgress = false;
196024
196231
  $24r$2 = $ifaceNil;
196025
- $s = 16; case 16: return $24r$2;
196232
+ $s = 17; case 17: return $24r$2;
196026
196233
  /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RenderingLoop.ptr.prototype.renderBuffer, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, decodeResult, dl, err, frame$1, screenBuffer, $s, $deferred};return $f; } }
196027
196234
  };
196028
196235
  RenderingLoop.prototype.renderBuffer = function() { return this.$val.renderBuffer(); };
@@ -196313,7 +196520,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196313
196520
  /* } */ case 25:
196314
196521
  $s = 21; continue;
196315
196522
  /* } else { */ case 20:
196316
- dl[0].stats.NotifyThrottledDecodeFrame();
196523
+ $r = dl[0].stats.NotifyThrottledDecodeFrame(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196317
196524
  /* } */ case 21:
196318
196525
  $s = -1; return $ifaceNil;
196319
196526
  /* */ } return; } var $f = {$blk: DecoderLoop.ptr.prototype.outputBuffer, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _selection, _selection$1, _tuple, decodeResult, dl, err, frame$1, screenBuffer, $s};return $f;
@@ -196433,7 +196640,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196433
196640
  case 18:
196434
196641
  $s = 17; continue;
196435
196642
  /* } else { */ case 16:
196436
- cl.stats.NotifyThrottledCollectionFrame();
196643
+ $r = cl.stats.NotifyThrottledCollectionFrame(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196437
196644
  /* } */ case 17:
196438
196645
  $s = 1; continue;
196439
196646
  case 2:
@@ -197139,7 +197346,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
197139
197346
  return $pkg;
197140
197347
  })();
197141
197348
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197142
- var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, samsungwasmdecoder, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, jswebsocketworker, player, overlaydriver, stats, videostream, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, touch, geom, image, io, log, os, path, strconv, strings, sync, js, time, ScreenWindow, Geometry, screenWindowDetachEvent, nonBlockingWindowEventSender, ProcessInfo, ProcessInfoManager, sliceType, ptrType, ptrType$1, ptrType$2, funcType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, sliceType$2, structType, interfaceType, sliceType$3, sliceType$4, arrayType, mapType, funcType$1, ptrType$15, chanType, chanType$1, chanType$2, chanType$3, chanType$4, chanType$5, chanType$6, onScreenWindowStarted, RegisterVideoStream, UnregisterVideoStream, NewScreenWindow, sendWindowEventNonBlocking, MainDriver, NewProcessInfoManager, init, registerJSBridge, newJSBridgeFacades, geometryValue;
197349
+ var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, samsungwasmdecoder, webcodecs, errs, input, message, netclient, netpacket, netstream, netframe, jswebsocketworker, player, overlaydriver, stats, videostream, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, touch, geom, image, io, log, os, path, strconv, strings, sync, js, time, ScreenWindow, Geometry, screenWindowDetachEvent, nonBlockingWindowEventSender, ProcessInfo, ProcessInfoManager, sliceType, ptrType, ptrType$1, ptrType$2, funcType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, sliceType$2, structType, interfaceType, sliceType$3, sliceType$4, arrayType, mapType, funcType$1, ptrType$15, chanType, chanType$1, chanType$2, chanType$3, chanType$4, chanType$5, chanType$6, onScreenWindowStarted, RegisterVideoStream, UnregisterVideoStream, NewScreenWindow, sendWindowEventNonBlocking, frameHealthCheckTimeout, clampedDuration, MainDriver, NewProcessInfoManager, init, registerJSBridge, newJSBridgeFacades, geometryValue;
197143
197350
  binary = $packages["encoding/binary"];
197144
197351
  json = $packages["encoding/json"];
197145
197352
  query = $packages["github.com/google/go-querystring/query"];
@@ -197150,7 +197357,6 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197150
197357
  samsungwasmdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"];
197151
197358
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
197152
197359
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
197153
- helper = $packages["github.com/supraio/client-daemon/pkg/helper"];
197154
197360
  input = $packages["github.com/supraio/client-daemon/pkg/input"];
197155
197361
  message = $packages["github.com/supraio/client-daemon/pkg/message"];
197156
197362
  netclient = $packages["github.com/supraio/client-daemon/pkg/netclient"];
@@ -197183,7 +197389,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197183
197389
  sync = $packages["sync"];
197184
197390
  js = $packages["syscall/js"];
197185
197391
  time = $packages["time"];
197186
- ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, clientID_, clientSecret_, screenID_, secure_, forceScreenSize_, timeoutDuration_, closed_, closeDone_, closeMu_, screenMu_, stats_, onClose_, window_, screen_, screenConn_, metadataServer_, responsiveSender_, collectionLoop_, decoderLoop_, renderingLoop_, sizeHandler_, touchHandler_, keyHandler_, mouseHandler_, eventMetrics_, pinger_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, touchEventChan_, winCloseChannel_, eventLoopStop_, eventLoopDone_, windowSize_, geometry_) {
197392
+ ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, clientID_, clientSecret_, screenID_, secure_, forceScreenSize_, timeoutDuration_, closed_, closeDone_, closeMu_, screenMu_, stats_, onClose_, window_, screen_, screenConn_, metadataServer_, responsiveSender_, collectionLoop_, decoderLoop_, renderingLoop_, sizeHandler_, touchHandler_, keyHandler_, mouseHandler_, eventMetrics_, pinger_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, touchEventChan_, winCloseChannel_, eventLoopStop_, eventLoopDone_, windowSizeMu_, windowSize_, geometry_) {
197187
197393
  this.$val = this;
197188
197394
  if (arguments.length === 0) {
197189
197395
  this.processInfoManager = ptrType.nil;
@@ -197225,6 +197431,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197225
197431
  this.winCloseChannel = $chanNil;
197226
197432
  this.eventLoopStop = $chanNil;
197227
197433
  this.eventLoopDone = $chanNil;
197434
+ this.windowSizeMu = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0);
197228
197435
  this.windowSize = new image.Point.ptr(0, 0);
197229
197436
  this.geometry = ptrType$14.nil;
197230
197437
  return;
@@ -197268,6 +197475,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197268
197475
  this.winCloseChannel = winCloseChannel_;
197269
197476
  this.eventLoopStop = eventLoopStop_;
197270
197477
  this.eventLoopDone = eventLoopDone_;
197478
+ this.windowSizeMu = windowSizeMu_;
197271
197479
  this.windowSize = windowSize_;
197272
197480
  this.geometry = geometry_;
197273
197481
  });
@@ -197411,9 +197619,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197411
197619
  };
197412
197620
  ScreenWindow.prototype.Geometry = function() { return this.$val.Geometry(); };
197413
197621
  ScreenWindow.ptr.prototype.SetEncodingPreferences = function(prefs) {
197414
- var prefs, w;
197622
+ var {prefs, w, $s, $r, $c} = $restore(this, {prefs});
197623
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197415
197624
  w = this;
197416
- w.stats.SetEncodingPreferences($clone(prefs, stats.EncodingPreferences));
197625
+ $r = w.stats.SetEncodingPreferences($clone(prefs, stats.EncodingPreferences)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197626
+ $s = -1; return;
197627
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.SetEncodingPreferences, $c: true, $r, prefs, w, $s};return $f;
197417
197628
  };
197418
197629
  ScreenWindow.prototype.SetEncodingPreferences = function(prefs) { return this.$val.SetEncodingPreferences(prefs); };
197419
197630
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, forceScreenSize, timeoutDuration, encodingPreferences, geometry) {
@@ -197421,8 +197632,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197421
197632
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197422
197633
  _r = stats.NewStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197423
197634
  s = _r;
197424
- s.SetEncodingPreferences($clone(encodingPreferences, stats.EncodingPreferences));
197425
- $s = -1; return new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, forceScreenSize, timeoutDuration, true, $chanNil, new sync.Mutex.ptr(0, 0), new sync.Mutex.ptr(0, 0), s, sliceType$1.nil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, ptrType$11.nil, input.NewEventMetrics(), ptrType$13.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), $chanNil, $chanNil, new image.Point.ptr(0, 0), geometry);
197635
+ $r = s.SetEncodingPreferences($clone(encodingPreferences, stats.EncodingPreferences)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197636
+ $s = -1; return new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, forceScreenSize, timeoutDuration, true, $chanNil, new sync.Mutex.ptr(0, 0), new sync.Mutex.ptr(0, 0), s, sliceType$1.nil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, ptrType$11.nil, input.NewEventMetrics(), ptrType$13.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), $chanNil, $chanNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0), new image.Point.ptr(0, 0), geometry);
197426
197637
  /* */ } return; } var $f = {$blk: NewScreenWindow, $c: true, $r, _r, clientID, clientSecret, encodingPreferences, forceScreenSize, geometry, metadataDriver, metadataHost, processInfoManager, s, screenDriver, screenHost, screenID, secure, timeoutDuration, $s};return $f;
197427
197638
  };
197428
197639
  $pkg.NewScreenWindow = NewScreenWindow;
@@ -197660,14 +197871,17 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197660
197871
  if (!_1) {
197661
197872
  /* break; */ $s = 3; continue;
197662
197873
  }
197663
- if (!(w[0].forceScreenSize === ptrType$1.nil)) {
197664
- w[0].stats.SetScreenResolution(w[0].forceScreenSize);
197665
- } else {
197666
- w[0].stats.SetScreenResolution(point);
197667
- }
197874
+ /* */ if (!(w[0].forceScreenSize === ptrType$1.nil)) { $s = 5; continue; }
197875
+ /* */ $s = 6; continue;
197876
+ /* if (!(w[0].forceScreenSize === ptrType$1.nil)) { */ case 5:
197877
+ $r = w[0].stats.SetScreenResolution(w[0].forceScreenSize); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197878
+ $s = 7; continue;
197879
+ /* } else { */ case 6:
197880
+ $r = w[0].stats.SetScreenResolution(point); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197881
+ /* } */ case 7:
197668
197882
  $s = 2; continue;
197669
197883
  case 3:
197670
- $r = closeResChan(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197884
+ $r = closeResChan(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197671
197885
  $s = -1; return;
197672
197886
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _1, _2, _r, _r$1, _tuple, _tuple$1, closeResChan, point, resChan, $s};return $f;
197673
197887
  }; })(eventLoopDone, eventLoopStop, w, window$1, windowChannel), []);
@@ -197783,36 +197997,36 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197783
197997
  /* } else if (_selection$3[0] === 1) { */ case 34:
197784
197998
  $s = 36; case 36: return;
197785
197999
  /* } */ case 35:
197786
- image.Point.copy(w[0].windowSize, $clone(e$4, size.Event).Size());
197787
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198000
+ $r = w[0].setWindowSize($clone($clone(e$4, size.Event).Size(), image.Point)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198001
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197788
198002
  $s = 15; continue;
197789
198003
  /* } else if ($assertType(_ref, focus.Event, true)[1]) { */ case 13:
197790
198004
  e$5 = $clone(_ref.$val, focus.Event);
197791
- _r$5 = $select([[w[0].focusEventChan, $clone(e$5, focus.Event)], [eventLoopStop[0]]]); /* */ $s = 38; case 38: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
198005
+ _r$5 = $select([[w[0].focusEventChan, $clone(e$5, focus.Event)], [eventLoopStop[0]]]); /* */ $s = 39; case 39: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197792
198006
  _selection$4 = _r$5;
197793
- /* */ if (_selection$4[0] === 0) { $s = 39; continue; }
197794
- /* */ if (_selection$4[0] === 1) { $s = 40; continue; }
197795
- /* */ $s = 41; continue;
197796
- /* if (_selection$4[0] === 0) { */ case 39:
197797
- $s = 41; continue;
197798
- /* } else if (_selection$4[0] === 1) { */ case 40:
197799
- $s = 42; case 42: return;
197800
- /* } */ case 41:
197801
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198007
+ /* */ if (_selection$4[0] === 0) { $s = 40; continue; }
198008
+ /* */ if (_selection$4[0] === 1) { $s = 41; continue; }
198009
+ /* */ $s = 42; continue;
198010
+ /* if (_selection$4[0] === 0) { */ case 40:
198011
+ $s = 42; continue;
198012
+ /* } else if (_selection$4[0] === 1) { */ case 41:
198013
+ $s = 43; case 43: return;
198014
+ /* } */ case 42:
198015
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197802
198016
  $s = 15; continue;
197803
198017
  /* } else if ($assertType(_ref, touch.Event, true)[1]) { */ case 14:
197804
198018
  e$6 = $clone(_ref.$val, touch.Event);
197805
- _r$6 = $select([[w[0].touchEventChan, $clone(e$6, touch.Event)], [eventLoopStop[0]]]); /* */ $s = 44; case 44: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
198019
+ _r$6 = $select([[w[0].touchEventChan, $clone(e$6, touch.Event)], [eventLoopStop[0]]]); /* */ $s = 45; case 45: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
197806
198020
  _selection$5 = _r$6;
197807
- /* */ if (_selection$5[0] === 0) { $s = 45; continue; }
197808
- /* */ if (_selection$5[0] === 1) { $s = 46; continue; }
197809
- /* */ $s = 47; continue;
197810
- /* if (_selection$5[0] === 0) { */ case 45:
197811
- $s = 47; continue;
197812
- /* } else if (_selection$5[0] === 1) { */ case 46:
197813
- $s = 48; case 48: return;
197814
- /* } */ case 47:
197815
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198021
+ /* */ if (_selection$5[0] === 0) { $s = 46; continue; }
198022
+ /* */ if (_selection$5[0] === 1) { $s = 47; continue; }
198023
+ /* */ $s = 48; continue;
198024
+ /* if (_selection$5[0] === 0) { */ case 46:
198025
+ $s = 48; continue;
198026
+ /* } else if (_selection$5[0] === 1) { */ case 47:
198027
+ $s = 49; case 49: return;
198028
+ /* } */ case 48:
198029
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197816
198030
  /* } */ case 15:
197817
198031
  $s = 1; continue;
197818
198032
  case 2:
@@ -198083,13 +198297,39 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198083
198297
  return netclient.NewMessageSender(w.screenConn);
198084
198298
  };
198085
198299
  ScreenWindow.prototype.createScreenSender = function() { return this.$val.createScreenSender(); };
198300
+ ScreenWindow.ptr.prototype.setWindowSize = function(windowSize) {
198301
+ var {w, windowSize, $s, $deferred, $r, $c} = $restore(this, {windowSize});
198302
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
198303
+ w = this;
198304
+ $r = w.windowSizeMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198305
+ $deferred.push([$methodVal(w.windowSizeMu, "Unlock"), []]);
198306
+ image.Point.copy(w.windowSize, windowSize);
198307
+ $s = -1; return;
198308
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ScreenWindow.ptr.prototype.setWindowSize, $c: true, $r, w, windowSize, $s, $deferred};return $f; } }
198309
+ };
198310
+ ScreenWindow.prototype.setWindowSize = function(windowSize) { return this.$val.setWindowSize(windowSize); };
198311
+ ScreenWindow.ptr.prototype.getWindowSize = function() {
198312
+ var {$24r, w, $s, $deferred, $r, $c} = $restore(this, {});
198313
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
198314
+ w = this;
198315
+ $r = w.windowSizeMu.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198316
+ $deferred.push([$methodVal(w.windowSizeMu, "RUnlock"), []]);
198317
+ $24r = w.windowSize;
198318
+ $s = 2; case 2: return $24r;
198319
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return new image.Point.ptr(0, 0); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ScreenWindow.ptr.prototype.getWindowSize, $c: true, $r, $24r, w, $s, $deferred};return $f; } }
198320
+ };
198321
+ ScreenWindow.prototype.getWindowSize = function() { return this.$val.getWindowSize(); };
198086
198322
  ScreenWindow.ptr.prototype.getEventMultiplier = function() {
198087
- var w;
198323
+ var {_r, w, windowSize, $s, $r, $c} = $restore(this, {});
198324
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198088
198325
  w = this;
198089
- if (!(w.forceScreenSize === ptrType$1.nil)) {
198090
- return new geom.Point.ptr(($fround((w.forceScreenSize.X) / (w.windowSize.X))), ($fround((w.forceScreenSize.Y) / (w.windowSize.Y))));
198326
+ _r = w.getWindowSize(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198327
+ windowSize = $clone(_r, image.Point);
198328
+ if (!(w.forceScreenSize === ptrType$1.nil) && windowSize.X > 0 && windowSize.Y > 0) {
198329
+ $s = -1; return new geom.Point.ptr(($fround((w.forceScreenSize.X) / (windowSize.X))), ($fround((w.forceScreenSize.Y) / (windowSize.Y))));
198091
198330
  }
198092
- return new geom.Point.ptr(1, 1);
198331
+ $s = -1; return new geom.Point.ptr(1, 1);
198332
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.getEventMultiplier, $c: true, $r, _r, w, windowSize, $s};return $f;
198093
198333
  };
198094
198334
  ScreenWindow.prototype.getEventMultiplier = function() { return this.$val.getEventMultiplier(); };
198095
198335
  ScreenWindow.ptr.prototype.startTimestampSyncing = function() {
@@ -198123,9 +198363,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198123
198363
  latencyEnd = $clone(_r$3, time.Time);
198124
198364
  serverLatency = $div64($clone(latencyEnd, time.Time).Sub($clone(latencyStart, time.Time)), new time.Duration(0, 2), false);
198125
198365
  serverTimestampAhead = $clone($clone(serverTimestamp, time.Time).Add(serverLatency), time.Time).Sub($clone(latencyEnd, time.Time));
198126
- w.stats.SetLatency(serverLatency);
198127
- w.stats.UpdateServerTimestampAhead(serverTimestampAhead);
198128
- $r = time.Sleep(new time.Duration(6, 4230196224)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198366
+ $r = w.stats.SetLatency(serverLatency); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198367
+ $r = w.stats.UpdateServerTimestampAhead(serverTimestampAhead); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198368
+ $r = time.Sleep(new time.Duration(6, 4230196224)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198129
198369
  $s = 1; continue;
198130
198370
  case 2:
198131
198371
  $s = -1; return;
@@ -198162,42 +198402,60 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198162
198402
  };
198163
198403
  ScreenWindow.prototype.startStatsSyncing = function() { return this.$val.startStatsSyncing(); };
198164
198404
  ScreenWindow.ptr.prototype.sendStats = function() {
198165
- var {_r, _r$1, _r$2, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s, $r, $c} = $restore(this, {});
198405
+ var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s, $r, $c} = $restore(this, {});
198166
198406
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198167
198407
  w = this;
198168
- clientStats = w.stats.GetClientStats();
198169
- _r = w.eventMetrics.Snapshot(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198170
- inputSnapshot = $clone(_r, input.InputSnapshot);
198408
+ _r = w.stats.GetClientStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198409
+ clientStats = _r;
198410
+ _r$1 = w.eventMetrics.Snapshot(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
198411
+ inputSnapshot = $clone(_r$1, input.InputSnapshot);
198171
198412
  stats.InputMetrics.copy(clientStats.InputMetrics, new stats.InputMetrics.ptr(inputSnapshot.MouseReceived, inputSnapshot.MouseSent, inputSnapshot.MouseBytes, inputSnapshot.MouseSendAvgNano, inputSnapshot.MouseSendMaxNano, inputSnapshot.MouseWaitMaxNano, inputSnapshot.TouchReceived, inputSnapshot.TouchSent, inputSnapshot.TouchBytes, inputSnapshot.TouchSendAvgNano, inputSnapshot.TouchSendMaxNano, inputSnapshot.TouchSeqMax, inputSnapshot.TouchWaitMaxNano));
198172
- _r$1 = json.Marshal(clientStats); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
198173
- _tuple = _r$1;
198413
+ _r$2 = json.Marshal(clientStats); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
198414
+ _tuple = _r$2;
198174
198415
  data = _tuple[0];
198175
198416
  err = _tuple[1];
198176
198417
  if (!($interfaceIsEqual(err, $ifaceNil))) {
198177
198418
  $s = -1; return err;
198178
198419
  }
198179
- _r$2 = w.responsiveSender.SendServerWaitResponse(48, data); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
198180
- _tuple$1 = _r$2;
198420
+ _r$3 = w.responsiveSender.SendServerWaitResponse(48, data); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
198421
+ _tuple$1 = _r$3;
198181
198422
  err = _tuple$1[1];
198182
198423
  $s = -1; return err;
198183
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.sendStats, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s};return $f;
198424
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.sendStats, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s};return $f;
198184
198425
  };
198185
198426
  ScreenWindow.prototype.sendStats = function() { return this.$val.sendStats(); };
198186
198427
  ScreenWindow.ptr.prototype.getFrameHealthCheckTimeout = function() {
198187
- var clampedTimeoutMs, frameDurationMs, framerate, timeoutMs, w;
198428
+ var {$24r, _r, _r$1, w, $s, $r, $c} = $restore(this, {});
198429
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198188
198430
  w = this;
198189
- framerate = w.stats.GetFrameRate();
198190
- if (framerate === 0) {
198431
+ _r = w.stats.GetLastActiveFrameRate(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198432
+ _r$1 = frameHealthCheckTimeout(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
198433
+ $24r = _r$1;
198434
+ $s = 3; case 3: return $24r;
198435
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.getFrameHealthCheckTimeout, $c: true, $r, $24r, _r, _r$1, w, $s};return $f;
198436
+ };
198437
+ ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
198438
+ frameHealthCheckTimeout = function(framerate) {
198439
+ var frameDuration, framerate, timeout;
198440
+ if (framerate <= 0) {
198191
198441
  return new time.Duration(2, 1410065408);
198192
198442
  }
198193
- frameDurationMs = $div64(new $Int64(0, 1), (new $Int64(0, framerate)), false);
198194
- timeoutMs = $mul64(frameDurationMs, new $Int64(0, 90));
198195
- clampedTimeoutMs = helper.ClampedInt64(timeoutMs, new $Int64(0, 3000), new $Int64(0, 10000));
198196
- return $mul64((new time.Duration(clampedTimeoutMs.$high, clampedTimeoutMs.$low)), new time.Duration(0, 1000000));
198443
+ frameDuration = $div64(new time.Duration(0, 1000000000), (new time.Duration(0, framerate)), false);
198444
+ timeout = $mul64(frameDuration, new time.Duration(0, 90));
198445
+ return clampedDuration(timeout, new time.Duration(0, 3000000000), new time.Duration(2, 1410065408));
198446
+ };
198447
+ clampedDuration = function(value, minimum, maximum) {
198448
+ var maximum, minimum, value;
198449
+ if ((value.$high < minimum.$high || (value.$high === minimum.$high && value.$low < minimum.$low))) {
198450
+ return minimum;
198451
+ }
198452
+ if ((value.$high > maximum.$high || (value.$high === maximum.$high && value.$low > maximum.$low))) {
198453
+ return maximum;
198454
+ }
198455
+ return value;
198197
198456
  };
198198
- ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
198199
198457
  ScreenWindow.ptr.prototype.startScreenHealthChecking = function() {
198200
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, err, lastImpulseAt, w, $s, $r, $c} = $restore(this, {});
198458
+ var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, err, lastImpulseAt, w, $s, $r, $c} = $restore(this, {});
198201
198459
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198202
198460
  w = this;
198203
198461
  /* while (true) { */ case 1:
@@ -198209,38 +198467,41 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198209
198467
  $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198210
198468
  /* continue; */ $s = 1; continue;
198211
198469
  /* } */ case 5:
198212
- lastImpulseAt = $clone(w.stats.GetLastScreenImpulseAt(), time.Time);
198213
- _r$1 = time.Now(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
198214
- _r$2 = $clone($clone(lastImpulseAt, time.Time).Add(w.getFrameHealthCheckTimeout()), time.Time).Before($clone(_r$1, time.Time)); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
198215
- /* */ if (_r$2) { $s = 7; continue; }
198216
- /* */ $s = 8; continue;
198217
- /* if (_r$2) { */ case 7:
198218
- _r$3 = w.closeScreen(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
198219
- err = _r$3;
198220
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; }
198221
- /* */ $s = 13; continue;
198222
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12:
198223
- $r = errs.Print("Cannot close screen", err); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198224
- /* } */ case 13:
198225
- _r$4 = w.isClosed(); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
198226
- /* */ if (_r$4) { $s = 15; continue; }
198470
+ _r$1 = w.stats.GetLastScreenImpulseAt(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
198471
+ lastImpulseAt = $clone(_r$1, time.Time);
198472
+ _r$2 = w.getFrameHealthCheckTimeout(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
198473
+ _r$3 = $clone(lastImpulseAt, time.Time).Add(_r$2); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
198474
+ _r$4 = time.Now(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
198475
+ _r$5 = $clone(_r$3, time.Time).Before($clone(_r$4, time.Time)); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
198476
+ /* */ if (_r$5) { $s = 8; continue; }
198477
+ /* */ $s = 9; continue;
198478
+ /* if (_r$5) { */ case 8:
198479
+ _r$6 = w.closeScreen(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
198480
+ err = _r$6;
198481
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; }
198227
198482
  /* */ $s = 16; continue;
198228
- /* if (_r$4) { */ case 15:
198229
- $s = -1; return;
198483
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15:
198484
+ $r = errs.Print("Cannot close screen", err); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198230
198485
  /* } */ case 16:
198231
- _r$5 = w.retriableOpen(-1, $methodVal(w, "openScreen")); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
198232
- err = _r$5;
198233
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; }
198234
- /* */ $s = 20; continue;
198235
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19:
198236
- $r = errs.Print("Reconnecting screen", err); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198237
- /* } */ case 20:
198238
- /* } */ case 8:
198239
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198486
+ _r$7 = w.isClosed(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
198487
+ /* */ if (_r$7) { $s = 18; continue; }
198488
+ /* */ $s = 19; continue;
198489
+ /* if (_r$7) { */ case 18:
198490
+ $s = -1; return;
198491
+ /* } */ case 19:
198492
+ _r$8 = w.retriableOpen(-1, $methodVal(w, "openScreen")); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
198493
+ err = _r$8;
198494
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 22; continue; }
198495
+ /* */ $s = 23; continue;
198496
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 22:
198497
+ $r = errs.Print("Reconnecting screen", err); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198498
+ /* } */ case 23:
198499
+ /* } */ case 9:
198500
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198240
198501
  $s = 1; continue;
198241
198502
  case 2:
198242
198503
  $s = -1; return;
198243
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.startScreenHealthChecking, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, err, lastImpulseAt, w, $s};return $f;
198504
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.startScreenHealthChecking, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, err, lastImpulseAt, w, $s};return $f;
198244
198505
  };
198245
198506
  ScreenWindow.prototype.startScreenHealthChecking = function() { return this.$val.startScreenHealthChecking(); };
198246
198507
  ScreenWindow.ptr.prototype.openScreen = function() {
@@ -198350,7 +198611,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198350
198611
  };
198351
198612
  ScreenWindow.prototype.closeScreen = function() { return this.$val.closeScreen(); };
198352
198613
  ScreenWindow.ptr.prototype.closeScreenLocked = function() {
198353
- var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, canceler, err, err$1, errList, ok, pingerStopped, screenSender, w, waitDuration, $s, $r, $c} = $restore(this, {});
198614
+ var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, canceler, err, err$1, errList, ok, pingerStopped, screenSender, w, waitDuration, $s, $r, $c} = $restore(this, {});
198354
198615
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198355
198616
  w = this;
198356
198617
  pingerStopped = true;
@@ -198472,10 +198733,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198472
198733
  if (errList.$length === 0) {
198473
198734
  $s = -1; return $ifaceNil;
198474
198735
  }
198475
- _r$7 = errs.CombineErrors(errList); /* */ $s = 64; case 64: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
198476
- $24r = _r$7;
198477
- $s = 65; case 65: return $24r;
198478
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.closeScreenLocked, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, canceler, err, err$1, errList, ok, pingerStopped, screenSender, w, waitDuration, $s};return $f;
198736
+ $s = -1; return errs.CombineErrors(errList);
198737
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.closeScreenLocked, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, canceler, err, err$1, errList, ok, pingerStopped, screenSender, w, waitDuration, $s};return $f;
198479
198738
  };
198480
198739
  ScreenWindow.prototype.closeScreenLocked = function() { return this.$val.closeScreenLocked(); };
198481
198740
  ScreenWindow.ptr.prototype.createScreenBuffer = function() {
@@ -198783,26 +199042,27 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198783
199042
  $s = -1; return $ifaceNil;
198784
199043
  /* } */ case 6:
198785
199044
  $r = log.Printf("__supra.setEncodingPreferences: updating preferences: %+v\n", new sliceType$2([new prefs[0].constructor.elem(prefs[0])])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198786
- w[0].SetEncodingPreferences($clone(prefs[0], stats.EncodingPreferences));
199045
+ $r = w[0].SetEncodingPreferences($clone(prefs[0], stats.EncodingPreferences)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198787
199046
  $s = -1; return $ifaceNil;
198788
199047
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, err, jsonStr, prefs, this$1, $s};return $f;
198789
199048
  }; })(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w)), js.Func);
198790
199049
  getCurrentStats[0] = $clone(js.FuncOf((function(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w) { return function $b(this$1, args) {
198791
- var {_r, _tuple, args, clientStats, data, err, this$1, $s, $r, $c} = $restore(this, {this$1, args});
199050
+ var {_r, _r$1, _tuple, args, clientStats, data, err, this$1, $s, $r, $c} = $restore(this, {this$1, args});
198792
199051
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198793
- clientStats = w[0].stats.GetClientStats();
198794
- _r = json.Marshal(clientStats); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198795
- _tuple = _r;
199052
+ _r = w[0].stats.GetClientStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
199053
+ clientStats = _r;
199054
+ _r$1 = json.Marshal(clientStats); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
199055
+ _tuple = _r$1;
198796
199056
  data = _tuple[0];
198797
199057
  err = _tuple[1];
198798
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
198799
- /* */ $s = 3; continue;
198800
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
198801
- $r = log.Printf("__supra.getCurrentStats: marshal error: %v\n", new sliceType$2([err])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199058
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
199059
+ /* */ $s = 4; continue;
199060
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
199061
+ $r = log.Printf("__supra.getCurrentStats: marshal error: %v\n", new sliceType$2([err])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198802
199062
  $s = -1; return $ifaceNil;
198803
- /* } */ case 3:
199063
+ /* } */ case 4:
198804
199064
  $s = -1; return new $String(($bytesToString(data)));
198805
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _tuple, args, clientStats, data, err, this$1, $s};return $f;
199065
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, args, clientStats, data, err, this$1, $s};return $f;
198806
199066
  }; })(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w)), js.Func);
198807
199067
  stopScreen[0] = $clone(js.FuncOf((function(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w) { return function $b(this$1, args) {
198808
199068
  var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
@@ -198862,9 +199122,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198862
199122
  }
198863
199123
  return new mapType($makeMap($String.keyFor, [{ k: "x", v: new $Int(g.X) }, { k: "y", v: new $Int(g.Y) }, { k: "width", v: new $Int(g.Width) }, { k: "height", v: new $Int(g.Height) }]));
198864
199124
  };
198865
- ptrType$15.methods = [{prop: "Geometry", name: "Geometry", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "SetEncodingPreferences", name: "SetEncodingPreferences", pkg: "", typ: $funcType([stats.EncodingPreferences], [], false)}, {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: "newWindowOptions", name: "newWindowOptions", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [screen.NewWindowOptions], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "isClosed", name: "isClosed", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$Bool], 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: "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: "getEventMultiplier", name: "getEventMultiplier", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [geom.Point], 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: "closeScreenLocked", name: "closeScreenLocked", 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)}];
199125
+ ptrType$15.methods = [{prop: "Geometry", name: "Geometry", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "SetEncodingPreferences", name: "SetEncodingPreferences", pkg: "", typ: $funcType([stats.EncodingPreferences], [], false)}, {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: "newWindowOptions", name: "newWindowOptions", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [screen.NewWindowOptions], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "isClosed", name: "isClosed", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$Bool], 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: "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: "setWindowSize", name: "setWindowSize", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([image.Point], [], false)}, {prop: "getWindowSize", name: "getWindowSize", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [image.Point], false)}, {prop: "getEventMultiplier", name: "getEventMultiplier", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [geom.Point], 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: "closeScreenLocked", name: "closeScreenLocked", 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)}];
198866
199126
  ptrType.methods = [{prop: "CreateProcessInfo", name: "CreateProcessInfo", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "RemoveProcessInfo", name: "RemoveProcessInfo", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "RemoveProcessInfoByPid", name: "RemoveProcessInfoByPid", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "WaitProcess", name: "WaitProcess", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "WaitProcessStopped", name: "WaitProcessStopped", pkg: "", typ: $funcType([$String, time.Duration], [$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)}];
198867
- 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: "forceScreenSize", name: "forceScreenSize", embedded: false, exported: false, typ: ptrType$1, 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: "closeDone", name: "closeDone", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "closeMu", name: "closeMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "screenMu", name: "screenMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType$2, 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$3, tag: ""}, {prop: "responsiveSender", name: "responsiveSender", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "collectionLoop", name: "collectionLoop", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "decoderLoop", name: "decoderLoop", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "renderingLoop", name: "renderingLoop", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "touchHandler", name: "touchHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "eventMetrics", name: "eventMetrics", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "pinger", name: "pinger", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$4, tag: ""}, {prop: "touchEventChan", name: "touchEventChan", embedded: false, exported: false, typ: chanType$5, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$6, tag: ""}, {prop: "eventLoopStop", name: "eventLoopStop", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "eventLoopDone", name: "eventLoopDone", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "windowSize", name: "windowSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "geometry", name: "geometry", embedded: false, exported: false, typ: ptrType$14, tag: ""}]);
199127
+ 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: "forceScreenSize", name: "forceScreenSize", embedded: false, exported: false, typ: ptrType$1, 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: "closeDone", name: "closeDone", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "closeMu", name: "closeMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "screenMu", name: "screenMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType$2, 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$3, tag: ""}, {prop: "responsiveSender", name: "responsiveSender", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "collectionLoop", name: "collectionLoop", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "decoderLoop", name: "decoderLoop", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "renderingLoop", name: "renderingLoop", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "touchHandler", name: "touchHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "eventMetrics", name: "eventMetrics", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "pinger", name: "pinger", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$4, tag: ""}, {prop: "touchEventChan", name: "touchEventChan", embedded: false, exported: false, typ: chanType$5, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$6, tag: ""}, {prop: "eventLoopStop", name: "eventLoopStop", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "eventLoopDone", name: "eventLoopDone", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "windowSizeMu", name: "windowSizeMu", embedded: false, exported: false, typ: sync.RWMutex, tag: ""}, {prop: "windowSize", name: "windowSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "geometry", name: "geometry", embedded: false, exported: false, typ: ptrType$14, tag: ""}]);
198868
199128
  Geometry.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: $Int, tag: "json:\"x\""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: $Int, tag: "json:\"y\""}, {prop: "Width", name: "Width", embedded: false, exported: true, typ: $Int, tag: "json:\"width\""}, {prop: "Height", name: "Height", embedded: false, exported: true, typ: $Int, tag: "json:\"height\""}]);
198869
199129
  screenWindowDetachEvent.init("", []);
198870
199130
  nonBlockingWindowEventSender.init([{prop: "SendNonBlocking", name: "SendNonBlocking", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}]);
@@ -198883,39 +199143,38 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198883
199143
  $r = samsungwasmdecoder.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198884
199144
  $r = webcodecs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198885
199145
  $r = errs.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198886
- $r = helper.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198887
- $r = input.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198888
- $r = message.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198889
- $r = netclient.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198890
- $r = netpacket.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198891
- $r = netstream.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198892
- $r = netframe.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198893
- $r = jswebsocketworker.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198894
- $r = player.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198895
- $r = overlaydriver.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198896
- $r = stats.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198897
- $r = videostream.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198898
- $r = window.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198899
- $r = canvasdriver.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198900
- $r = webgldriver.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198901
- $r = screen.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198902
- $r = focus.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198903
- $r = key.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198904
- $r = lifecycle.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198905
- $r = mouse.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198906
- $r = size.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198907
- $r = touch.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198908
- $r = geom.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198909
- $r = image.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198910
- $r = io.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198911
- $r = log.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198912
- $r = os.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198913
- $r = path.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198914
- $r = strconv.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198915
- $r = strings.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198916
- $r = sync.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198917
- $r = js.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198918
- $r = time.$init(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199146
+ $r = input.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199147
+ $r = message.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199148
+ $r = netclient.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199149
+ $r = netpacket.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199150
+ $r = netstream.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199151
+ $r = netframe.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199152
+ $r = jswebsocketworker.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199153
+ $r = player.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199154
+ $r = overlaydriver.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199155
+ $r = stats.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199156
+ $r = videostream.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199157
+ $r = window.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199158
+ $r = canvasdriver.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199159
+ $r = webgldriver.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199160
+ $r = screen.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199161
+ $r = focus.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199162
+ $r = key.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199163
+ $r = lifecycle.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199164
+ $r = mouse.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199165
+ $r = size.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199166
+ $r = touch.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199167
+ $r = geom.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199168
+ $r = image.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199169
+ $r = io.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199170
+ $r = log.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199171
+ $r = os.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199172
+ $r = path.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199173
+ $r = strconv.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199174
+ $r = strings.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199175
+ $r = sync.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199176
+ $r = js.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199177
+ $r = time.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198919
199178
  onScreenWindowStarted = $throwNilPointerError;
198920
199179
  init();
198921
199180
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;