@supraio/client-daemon-js 1.1.0-tpframehealthchecktimeout.550 → 1.1.0-tpframeratewindowprecision.567

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() {
@@ -191393,7 +191490,7 @@ $packages["github.com/supraio/client-daemon/pkg/message"] = (function() {
191393
191490
  return $pkg;
191394
191491
  })();
191395
191492
  $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191396
- 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;
191493
+ 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;
191397
191494
  binary = $packages["encoding/binary"];
191398
191495
  fmt = $packages["fmt"];
191399
191496
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -191404,6 +191501,7 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191404
191501
  touch = $packages["golang.org/x/mobile/event/touch"];
191405
191502
  geom = $packages["golang.org/x/mobile/geom"];
191406
191503
  log = $packages["log"];
191504
+ math = $packages["math"];
191407
191505
  sync = $packages["sync"];
191408
191506
  js = $packages["syscall/js"];
191409
191507
  time = $packages["time"];
@@ -191900,13 +191998,23 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191900
191998
  x = $fround((ev.X) * (multiplier.X));
191901
191999
  y = $fround((ev.Y) * (multiplier.Y));
191902
192000
  mouseXData = $makeSlice(sliceType$1, 4);
191903
- $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseXData, ((x >> 0)));
192001
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseXData, coordinateToUint32(x));
191904
192002
  mouseYData = $makeSlice(sliceType$1, 4);
191905
- $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseYData, ((y >> 0)));
192003
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseYData, coordinateToUint32(y));
191906
192004
  $s = -1; return $appendSlice(mouseButtonData, $appendSlice(mouseDirectionData, $appendSlice(mouseModifierData, $appendSlice(mouseXData, mouseYData))));
191907
192005
  /* */ } 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;
191908
192006
  };
191909
192007
  MouseHandler.prototype.encodeMouseEvent = function(ev) { return this.$val.encodeMouseEvent(ev); };
192008
+ coordinateToUint32 = function(value) {
192009
+ var value;
192010
+ if (math.IsNaN((value)) || value <= 0) {
192011
+ return 0;
192012
+ }
192013
+ if (value >= 4.294967296e+09) {
192014
+ return 4294967295;
192015
+ }
192016
+ return ((value >> 0));
192017
+ };
191910
192018
  NewEventMetrics = function() {
191911
192019
  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);
191912
192020
  };
@@ -192338,9 +192446,10 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192338
192446
  $r = touch.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192339
192447
  $r = geom.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192340
192448
  $r = log.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192341
- $r = sync.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192342
- $r = js.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192343
- $r = time.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192449
+ $r = math.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192450
+ $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192451
+ $r = js.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192452
+ $r = time.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192344
192453
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
192345
192454
  };
192346
192455
  $pkg.$init = $init;
@@ -194969,11 +195078,12 @@ $packages["github.com/supraio/client-daemon/pkg/render/screenbuffer"] = (functio
194969
195078
  return $pkg;
194970
195079
  })();
194971
195080
  $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
194972
- var $pkg = {}, $init, image, log, math, sync, 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;
195081
+ var $pkg = {}, $init, image, log, math, sync, js, 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, performance, NewStopwatch, NewStats, NewMetrics, average, variance, frameRateClock;
194973
195082
  image = $packages["image"];
194974
195083
  log = $packages["log"];
194975
195084
  math = $packages["math"];
194976
195085
  sync = $packages["sync"];
195086
+ js = $packages["syscall/js"];
194977
195087
  time = $packages["time"];
194978
195088
  Stopwatch = $pkg.Stopwatch = $newType(0, $kindStruct, "stats.Stopwatch", true, "github.com/supraio/client-daemon/pkg/stats", true, function(mutex_, groups_) {
194979
195089
  this.$val = this;
@@ -194986,22 +195096,24 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
194986
195096
  this.groups = groups_;
194987
195097
  });
194988
195098
  Frame = $pkg.Frame = $newType(8, $kindInterface, "stats.Frame", true, "github.com/supraio/client-daemon/pkg/stats", true, null);
194989
- 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_, 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_) {
195099
+ 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_, frameRateWindowStartedAt_, 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_) {
194990
195100
  this.$val = this;
194991
195101
  if (arguments.length === 0) {
194992
- this.stopped = false;
195102
+ this.mu = new sync.Mutex.ptr(0, 0);
194993
195103
  this.lastFrameAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
194994
195104
  this.lastScreenPingAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
194995
195105
  this.stopwatch = ptrType$1.nil;
194996
195106
  this.metrics = ptrType$2.nil;
194997
195107
  this.done = $chanNil;
194998
195108
  this.calcStopped = $chanNil;
195109
+ this.stopOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
194999
195110
  this.latency = new time.Duration(0, 0);
195000
195111
  this.serverTimestampAhead = new time.Duration(0, 0);
195001
195112
  this.serverTimestampAheadBuffer = sliceType$1.nil;
195002
195113
  this.currentFramesCount = 0;
195003
195114
  this.lastFrameRate = 0;
195004
195115
  this.lastActiveFrameRate = 0;
195116
+ this.frameRateWindowStartedAt = new time.Duration(0, 0);
195005
195117
  this.totalFramesCount = 0;
195006
195118
  this.lastFramesLatencyAverage = new time.Duration(0, 0);
195007
195119
  this.lastFramesLatencyVariance = new time.Duration(0, 0);
@@ -195035,19 +195147,21 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195035
195147
  this.encodingPreferences = new EncodingPreferences.ptr(0, 0, "", "", "");
195036
195148
  return;
195037
195149
  }
195038
- this.stopped = stopped_;
195150
+ this.mu = mu_;
195039
195151
  this.lastFrameAt = lastFrameAt_;
195040
195152
  this.lastScreenPingAt = lastScreenPingAt_;
195041
195153
  this.stopwatch = stopwatch_;
195042
195154
  this.metrics = metrics_;
195043
195155
  this.done = done_;
195044
195156
  this.calcStopped = calcStopped_;
195157
+ this.stopOnce = stopOnce_;
195045
195158
  this.latency = latency_;
195046
195159
  this.serverTimestampAhead = serverTimestampAhead_;
195047
195160
  this.serverTimestampAheadBuffer = serverTimestampAheadBuffer_;
195048
195161
  this.currentFramesCount = currentFramesCount_;
195049
195162
  this.lastFrameRate = lastFrameRate_;
195050
195163
  this.lastActiveFrameRate = lastActiveFrameRate_;
195164
+ this.frameRateWindowStartedAt = frameRateWindowStartedAt_;
195051
195165
  this.totalFramesCount = totalFramesCount_;
195052
195166
  this.lastFramesLatencyAverage = lastFramesLatencyAverage_;
195053
195167
  this.lastFramesLatencyVariance = lastFramesLatencyVariance_;
@@ -195212,8 +195326,8 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195212
195326
  ptrType$2 = $ptrType(Metrics);
195213
195327
  sliceType$1 = $sliceType(time.Duration);
195214
195328
  structType = $structType("", []);
195215
- mapType = $mapType($String, time.Time);
195216
195329
  ptrType$3 = $ptrType(ClientStats);
195330
+ mapType = $mapType($String, time.Time);
195217
195331
  ptrType$4 = $ptrType(image.Point);
195218
195332
  ptrType$5 = $ptrType(Stats);
195219
195333
  chanType = $chanType(structType, false, false);
@@ -195264,48 +195378,59 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195264
195378
  };
195265
195379
  Stopwatch.prototype.Stop = function(group) { return this.$val.Stop(group); };
195266
195380
  NewStats = function() {
195267
- var {_r, _r$1, _r$2, s, $s, $r, $c} = $restore(this, {});
195381
+ var {_r, _r$1, now, s, $s, $r, $c} = $restore(this, {});
195268
195382
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195269
195383
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195270
- _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; }
195271
- _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; }
195272
- s = new Stats.ptr(false, $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, 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, "", "", ""));
195384
+ now = $clone(_r, time.Time);
195385
+ _r$1 = frameRateClock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195386
+ 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, _r$1, 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, "", "", ""));
195273
195387
  $go($methodVal(s, "startCalculations"), []);
195274
195388
  $s = -1; return s;
195275
- /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, _r$2, s, $s};return $f;
195389
+ /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, now, s, $s};return $f;
195276
195390
  };
195277
195391
  $pkg.NewStats = NewStats;
195278
195392
  Stats.ptr.prototype.Stop = function() {
195279
- var {_r, _selection, s, $s, $r, $c} = $restore(this, {});
195393
+ var {_r, s, $s, $r, $c} = $restore(this, {});
195280
195394
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195281
- s = this;
195282
- s.stopped = true;
195283
- _selection = $select([[s.done], []]);
195284
- if (_selection[0] === 0) {
195285
- } else if (_selection[0] === 1) {
195286
- $close(s.done);
195287
- }
195288
- _r = $recv(s.calcStopped); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195395
+ s = [s];
195396
+ s[0] = this;
195397
+ $r = s[0].stopOnce.Do((function(s) { return function() {
195398
+ $close(s[0].done);
195399
+ }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195400
+ _r = $recv(s[0].calcStopped); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195289
195401
  _r[0];
195290
195402
  $s = -1; return;
195291
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.Stop, $c: true, $r, _r, _selection, s, $s};return $f;
195403
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.Stop, $c: true, $r, _r, s, $s};return $f;
195292
195404
  };
195293
195405
  Stats.prototype.Stop = function() { return this.$val.Stop(); };
195294
195406
  Stats.ptr.prototype.GetClientStats = function() {
195295
- var s;
195407
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195408
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195296
195409
  s = this;
195297
- 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)));
195410
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195411
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195412
+ $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)));
195413
+ $s = 2; case 2: return $24r;
195414
+ /* */ } 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; } }
195298
195415
  };
195299
195416
  Stats.prototype.GetClientStats = function() { return this.$val.GetClientStats(); };
195300
195417
  Stats.ptr.prototype.SetLatency = function(latency) {
195301
- var latency, s;
195418
+ var {latency, s, $s, $deferred, $r, $c} = $restore(this, {latency});
195419
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195302
195420
  s = this;
195421
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195422
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195303
195423
  s.latency = latency;
195424
+ $s = -1; return;
195425
+ /* */ } 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; } }
195304
195426
  };
195305
195427
  Stats.prototype.SetLatency = function(latency) { return this.$val.SetLatency(latency); };
195306
195428
  Stats.ptr.prototype.UpdateServerTimestampAhead = function(serverAhead) {
195307
- var _i, _ref, ahead, s, serverAhead, totalAheadNano, x, x$1;
195429
+ var {_i, _ref, ahead, s, serverAhead, totalAheadNano, x, x$1, $s, $deferred, $r, $c} = $restore(this, {serverAhead});
195430
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195308
195431
  s = this;
195432
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195433
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195309
195434
  s.serverTimestampAheadBuffer = $append(s.serverTimestampAheadBuffer, serverAhead);
195310
195435
  if (s.serverTimestampAheadBuffer.$length > 20) {
195311
195436
  s.serverTimestampAheadBuffer = $subslice(s.serverTimestampAheadBuffer, 1);
@@ -195320,40 +195445,52 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195320
195445
  _i++;
195321
195446
  }
195322
195447
  s.serverTimestampAhead = ((x$1 = $div64(totalAheadNano, (new $Int64(0, s.serverTimestampAheadBuffer.$length)), false), new time.Duration(x$1.$high, x$1.$low)));
195448
+ $s = -1; return;
195449
+ /* */ } 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; } }
195323
195450
  };
195324
195451
  Stats.prototype.UpdateServerTimestampAhead = function(serverAhead) { return this.$val.UpdateServerTimestampAhead(serverAhead); };
195325
195452
  Stats.ptr.prototype.SetScreenResolution = function(res) {
195326
- var res, s;
195453
+ var {res, s, $s, $deferred, $r, $c} = $restore(this, {res});
195454
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195327
195455
  s = this;
195456
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195457
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195328
195458
  s.screenResolutionWidth = ((res.X >>> 0));
195329
195459
  s.screenResolutionHeight = ((res.Y >>> 0));
195460
+ $s = -1; return;
195461
+ /* */ } 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; } }
195330
195462
  };
195331
195463
  Stats.prototype.SetScreenResolution = function(res) { return this.$val.SetScreenResolution(res); };
195332
195464
  Stats.ptr.prototype.NotifyFrame = function(frame) {
195333
- var {_r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s, $r, $c} = $restore(this, {frame});
195465
+ var {_r, _r$1, _r$2, frame, frameLatency, now, s, serverTime, $s, $r, $c} = $restore(this, {frame});
195334
195466
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195335
195467
  s = this;
195336
195468
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195337
- time.Time.copy(s.lastFrameAt, _r);
195469
+ now = $clone(_r, time.Time);
195470
+ $r = s.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195471
+ time.Time.copy(s.lastFrameAt, now);
195338
195472
  s.currentFramesCount = s.currentFramesCount + (1) >> 0;
195339
- _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; }
195340
- _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; }
195341
- _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; }
195342
- frameLatency = _r$3;
195343
- $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; }
195344
- $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; }
195473
+ serverTime = $clone($clone(now, time.Time).Add(s.serverTimestampAhead), time.Time);
195474
+ $r = s.mu.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195475
+ _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; }
195476
+ _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; }
195477
+ frameLatency = _r$2;
195478
+ $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; }
195479
+ $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; }
195345
195480
  $s = -1; return;
195346
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s};return $f;
195481
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, frame, frameLatency, now, s, serverTime, $s};return $f;
195347
195482
  };
195348
195483
  Stats.prototype.NotifyFrame = function(frame) { return this.$val.NotifyFrame(frame); };
195349
195484
  Stats.ptr.prototype.NotifyScreenPing = function() {
195350
- var {_r, s, $s, $r, $c} = $restore(this, {});
195351
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195485
+ var {_r, s, $s, $deferred, $r, $c} = $restore(this, {});
195486
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195352
195487
  s = this;
195353
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195488
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195489
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195490
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195354
195491
  time.Time.copy(s.lastScreenPingAt, _r);
195355
195492
  $s = -1; return;
195356
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyScreenPing, $c: true, $r, _r, s, $s};return $f;
195493
+ /* */ } 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; } }
195357
195494
  };
195358
195495
  Stats.prototype.NotifyScreenPing = function() { return this.$val.NotifyScreenPing(); };
195359
195496
  Stats.ptr.prototype.NotifyFrameCollectionStarted = function() {
@@ -195387,9 +195524,14 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195387
195524
  };
195388
195525
  Stats.prototype.NotifyFrameCollectionDuration = function(dur) { return this.$val.NotifyFrameCollectionDuration(dur); };
195389
195526
  Stats.ptr.prototype.NotifyThrottledCollectionFrame = function() {
195390
- var s;
195527
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195528
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195391
195529
  s = this;
195530
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195531
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195392
195532
  s.currentThrottledCollectionFramesCount = s.currentThrottledCollectionFramesCount + (1) >> 0;
195533
+ $s = -1; return;
195534
+ /* */ } 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; } }
195393
195535
  };
195394
195536
  Stats.prototype.NotifyThrottledCollectionFrame = function() { return this.$val.NotifyThrottledCollectionFrame(); };
195395
195537
  Stats.ptr.prototype.NotifyFrameDecodeWriteStarted = function() {
@@ -195435,9 +195577,14 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195435
195577
  };
195436
195578
  Stats.prototype.NotifyFrameDecodeOutputEnded = function() { return this.$val.NotifyFrameDecodeOutputEnded(); };
195437
195579
  Stats.ptr.prototype.NotifyThrottledDecodeFrame = function() {
195438
- var s;
195580
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195581
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195439
195582
  s = this;
195583
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195584
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195440
195585
  s.currentThrottledDecodeFramesCount = s.currentThrottledDecodeFramesCount + (1) >> 0;
195586
+ $s = -1; return;
195587
+ /* */ } 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; } }
195441
195588
  };
195442
195589
  Stats.prototype.NotifyThrottledDecodeFrame = function() { return this.$val.NotifyThrottledDecodeFrame(); };
195443
195590
  Stats.ptr.prototype.NotifyFrameRenderStarted = function() {
@@ -195462,186 +195609,240 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195462
195609
  };
195463
195610
  Stats.prototype.NotifyFrameRenderEnded = function() { return this.$val.NotifyFrameRenderEnded(); };
195464
195611
  Stats.ptr.prototype.NotifyThrottledRenderFrame = function() {
195465
- var s;
195612
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195613
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195466
195614
  s = this;
195615
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195616
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195467
195617
  s.currentThrottledRenderFramesCount = s.currentThrottledRenderFramesCount + (1) >> 0;
195618
+ $s = -1; return;
195619
+ /* */ } 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; } }
195468
195620
  };
195469
195621
  Stats.prototype.NotifyThrottledRenderFrame = function() { return this.$val.NotifyThrottledRenderFrame(); };
195470
195622
  Stats.ptr.prototype.GetLastFrameAt = function() {
195471
- var s;
195623
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195624
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195472
195625
  s = this;
195473
- return s.lastFrameAt;
195626
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195627
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195628
+ $24r = s.lastFrameAt;
195629
+ $s = 2; case 2: return $24r;
195630
+ /* */ } 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; } }
195474
195631
  };
195475
195632
  Stats.prototype.GetLastFrameAt = function() { return this.$val.GetLastFrameAt(); };
195476
195633
  Stats.ptr.prototype.GetLastScreenPingAt = function() {
195477
- var s;
195634
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195635
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195478
195636
  s = this;
195479
- return s.lastScreenPingAt;
195637
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195638
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195639
+ $24r = s.lastScreenPingAt;
195640
+ $s = 2; case 2: return $24r;
195641
+ /* */ } 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; } }
195480
195642
  };
195481
195643
  Stats.prototype.GetLastScreenPingAt = function() { return this.$val.GetLastScreenPingAt(); };
195482
195644
  Stats.ptr.prototype.GetLastScreenImpulseAt = function() {
195483
- var lastFrameAt, lastScreenPingAt, s;
195645
+ var {$24r, $24r$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195646
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195484
195647
  s = this;
195485
- lastScreenPingAt = $clone(s.GetLastScreenPingAt(), time.Time);
195486
- lastFrameAt = $clone(s.GetLastFrameAt(), time.Time);
195487
- if ($clone(lastScreenPingAt, time.Time).After($clone(lastFrameAt, time.Time))) {
195488
- return lastScreenPingAt;
195489
- }
195490
- return lastFrameAt;
195648
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195649
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195650
+ /* */ if ($clone(s.lastScreenPingAt, time.Time).After($clone(s.lastFrameAt, time.Time))) { $s = 2; continue; }
195651
+ /* */ $s = 3; continue;
195652
+ /* if ($clone(s.lastScreenPingAt, time.Time).After($clone(s.lastFrameAt, time.Time))) { */ case 2:
195653
+ $24r = s.lastScreenPingAt;
195654
+ $s = 4; case 4: return $24r;
195655
+ /* } */ case 3:
195656
+ $24r$1 = s.lastFrameAt;
195657
+ $s = 5; case 5: return $24r$1;
195658
+ /* */ } 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; } }
195491
195659
  };
195492
195660
  Stats.prototype.GetLastScreenImpulseAt = function() { return this.$val.GetLastScreenImpulseAt(); };
195493
195661
  Stats.ptr.prototype.GetFrameRate = function() {
195494
- var s;
195662
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195663
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195495
195664
  s = this;
195496
- return s.lastFrameRate;
195665
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195666
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195667
+ $24r = s.lastFrameRate;
195668
+ $s = 2; case 2: return $24r;
195669
+ /* */ } 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; } }
195497
195670
  };
195498
195671
  Stats.prototype.GetFrameRate = function() { return this.$val.GetFrameRate(); };
195499
195672
  Stats.ptr.prototype.GetLastActiveFrameRate = function() {
195500
- var s;
195673
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195674
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195501
195675
  s = this;
195502
- return s.lastActiveFrameRate;
195676
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195677
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195678
+ $24r = s.lastActiveFrameRate;
195679
+ $s = 2; case 2: return $24r;
195680
+ /* */ } 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; } }
195503
195681
  };
195504
195682
  Stats.prototype.GetLastActiveFrameRate = function() { return this.$val.GetLastActiveFrameRate(); };
195505
- Stats.ptr.prototype.rotateFrameRate = function() {
195506
- var s;
195683
+ Stats.ptr.prototype.rotateFrameRate = function(now) {
195684
+ var countedFor, elapsed, now, s, x, x$1, x$2;
195507
195685
  s = this;
195508
- s.lastFrameRate = s.currentFramesCount;
195686
+ elapsed = (x = s.frameRateWindowStartedAt, new time.Duration(now.$high - x.$high, now.$low - x.$low));
195687
+ s.frameRateWindowStartedAt = now;
195688
+ s.totalFramesCount = s.totalFramesCount + (s.currentFramesCount) >> 0;
195689
+ countedFor = $mul64((new time.Duration(0, s.currentFramesCount)), new time.Duration(0, 1000000000));
195690
+ s.lastFrameRate = (((x$1 = $div64(((x$2 = $div64(elapsed, new time.Duration(0, 2), false), new time.Duration(countedFor.$high + x$2.$high, countedFor.$low + x$2.$low))), elapsed, false), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0));
195509
195691
  s.currentFramesCount = 0;
195510
- s.totalFramesCount = s.totalFramesCount + (s.lastFrameRate) >> 0;
195511
195692
  if (s.lastFrameRate > 0) {
195512
195693
  s.lastActiveFrameRate = s.lastFrameRate;
195513
195694
  }
195514
195695
  };
195515
- Stats.prototype.rotateFrameRate = function() { return this.$val.rotateFrameRate(); };
195696
+ Stats.prototype.rotateFrameRate = function(now) { return this.$val.rotateFrameRate(now); };
195516
195697
  Stats.ptr.prototype.startCalculations = function() {
195517
- 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, {});
195698
+ var {_arg, _r, _r$1, _selection, s, $s, $deferred, $r, $c} = $restore(this, {});
195518
195699
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195519
195700
  s = this;
195520
195701
  $deferred.push([function(_arg) { $close(_arg); }, [s.calcStopped]]);
195521
195702
  /* while (true) { */ case 1:
195522
- /* if (!(!s.stopped)) { break; } */ if(!(!s.stopped)) { $s = 2; continue; }
195523
- s.rotateFrameRate();
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:
195703
+ _r = time.After(new time.Duration(0, 1000000000)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195704
+ _r$1 = $select([[s.done], [_r]]); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195705
+ _selection = _r$1;
195706
+ /* */ if (_selection[0] === 0) { $s = 5; continue; }
195707
+ /* */ if (_selection[0] === 1) { $s = 6; continue; }
195708
+ /* */ $s = 7; continue;
195709
+ /* if (_selection[0] === 0) { */ case 5:
195710
+ $s = 8; case 8: return;
195711
+ /* } else if (_selection[0] === 1) { */ case 6:
195712
+ /* } */ case 7:
195713
+ $r = s.calculate(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195592
195714
  $s = 1; continue;
195593
195715
  case 2:
195594
195716
  $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; } }
195717
+ /* */ } 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, s, $s, $deferred};return $f; } }
195596
195718
  };
195597
195719
  Stats.prototype.startCalculations = function() { return this.$val.startCalculations(); };
195598
- Stats.ptr.prototype.print = function() {
195599
- var {s, $s, $r, $c} = $restore(this, {});
195720
+ Stats.ptr.prototype.calculate = function() {
195721
+ 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$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, args, s, $s, $r, $c} = $restore(this, {});
195600
195722
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195601
195723
  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;
195724
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195725
+ _r = frameRateClock(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195726
+ $r = s.rotateFrameRate(_r); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195727
+ s.lastThrottledCollectionFrameRate = s.currentThrottledCollectionFramesCount;
195728
+ s.currentThrottledCollectionFramesCount = 0;
195729
+ s.lastThrottledDecodeFrameRate = s.currentThrottledDecodeFramesCount;
195730
+ s.currentThrottledDecodeFramesCount = 0;
195731
+ s.lastThrottledRenderFrameRate = s.currentThrottledRenderFramesCount;
195732
+ s.currentThrottledRenderFramesCount = 0;
195733
+ _r$1 = s.metrics.GetAverage("frame_latency"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195734
+ s.lastFramesLatencyAverage = (_r$1);
195735
+ _r$2 = s.metrics.GetVariance("frame_latency"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195736
+ s.lastFramesLatencyVariance = (_r$2);
195737
+ $r = s.metrics.Reset("frame_latency"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195738
+ _r$3 = s.metrics.GetAverage("frame_collection"); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
195739
+ s.lastFramesCollectionAverage = _r$3;
195740
+ _r$4 = s.metrics.GetVariance("frame_collection"); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
195741
+ s.lastFramesCollectionVariance = _r$4;
195742
+ $r = s.metrics.Reset("frame_collection"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195743
+ _r$5 = s.metrics.GetAverage("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; }
195744
+ s.lastFramesDecodeWriteAverage = _r$5;
195745
+ _r$6 = s.metrics.GetVariance("frame_decode_write"); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
195746
+ s.lastFramesDecodeWriteVariance = _r$6;
195747
+ $r = s.metrics.Reset("frame_decode_write"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195748
+ _r$7 = s.metrics.GetAverage("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; }
195749
+ s.lastFramesDecodeOutputAverage = _r$7;
195750
+ _r$8 = s.metrics.GetVariance("frame_decode_output"); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
195751
+ s.lastFramesDecodeOutputVariance = _r$8;
195752
+ $r = s.metrics.Reset("frame_decode_output"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195753
+ _r$9 = s.metrics.GetAverage("frame_render"); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
195754
+ s.lastFramesRenderAverage = _r$9;
195755
+ _r$10 = s.metrics.GetVariance("frame_render"); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
195756
+ s.lastFramesRenderVariance = _r$10;
195757
+ $r = s.metrics.Reset("frame_render"); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195758
+ $r = s.metrics.RemoveOldest("frame_latency_long_term", 500); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195759
+ _r$11 = s.metrics.GetAverage("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; }
195760
+ s.longTermFramesLatencyAverage = _r$11;
195761
+ _r$12 = s.metrics.GetVariance("frame_latency_long_term"); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
195762
+ s.longTermFramesLatencyVariance = _r$12;
195763
+ $r = s.metrics.RemoveOldest("frame_collection_long_term", 500); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195764
+ _r$13 = s.metrics.GetAverage("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; }
195765
+ s.longTermFramesCollectionAverage = _r$13;
195766
+ _r$14 = s.metrics.GetVariance("frame_collection_long_term"); /* */ $s = 24; case 24: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
195767
+ s.longTermFramesCollectionVariance = _r$14;
195768
+ $r = s.metrics.RemoveOldest("frame_decode_write_long_term", 500); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195769
+ _r$15 = s.metrics.GetAverage("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; }
195770
+ s.longTermFramesDecodeWriteAverage = _r$15;
195771
+ _r$16 = s.metrics.GetVariance("frame_decode_write_long_term"); /* */ $s = 27; case 27: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
195772
+ s.longTermFramesDecodeWriteVariance = _r$16;
195773
+ $r = s.metrics.RemoveOldest("frame_decode_output_long_term", 500); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195774
+ _r$17 = s.metrics.GetAverage("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; }
195775
+ s.longTermFramesDecodeOutputAverage = _r$17;
195776
+ _r$18 = s.metrics.GetVariance("frame_decode_output_long_term"); /* */ $s = 30; case 30: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
195777
+ s.longTermFramesDecodeOutputVariance = _r$18;
195778
+ $r = s.metrics.RemoveOldest("frame_render_long_term", 500); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195779
+ _r$19 = s.metrics.GetAverage("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; }
195780
+ s.longTermFramesRenderAverage = _r$19;
195781
+ _r$20 = s.metrics.GetVariance("frame_render_long_term"); /* */ $s = 33; case 33: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
195782
+ s.longTermFramesRenderVariance = _r$20;
195783
+ args = s.printArgs();
195784
+ $r = s.mu.Unlock(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195785
+ $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 = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195786
+ $s = -1; return;
195787
+ /* */ } 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$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, args, s, $s};return $f;
195788
+ };
195789
+ Stats.prototype.calculate = function() { return this.$val.calculate(); };
195790
+ Stats.ptr.prototype.printArgs = function() {
195791
+ var s;
195792
+ s = this;
195793
+ 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
195794
  };
195606
- Stats.prototype.print = function() { return this.$val.print(); };
195795
+ Stats.prototype.printArgs = function() { return this.$val.printArgs(); };
195607
195796
  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:
195797
+ var {$24r, _r, _r$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195798
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195610
195799
  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; }
195800
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195801
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195802
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195803
+ _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
195804
  $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;
195805
+ $s = 4; case 4: return $24r;
195806
+ /* */ } 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
195807
  };
195617
195808
  Stats.prototype.GetServerTime = function() { return this.$val.GetServerTime(); };
195618
195809
  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:
195810
+ var {_r, s, $s, $deferred, $r, $c} = $restore(this, {});
195811
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195621
195812
  s = this;
195622
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195813
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195814
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195815
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195623
195816
  time.Time.copy(s.lastInteractionAt, _r);
195624
195817
  $s = -1; return;
195625
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyInteraction, $c: true, $r, _r, s, $s};return $f;
195818
+ /* */ } 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
195819
  };
195627
195820
  Stats.prototype.NotifyInteraction = function() { return this.$val.NotifyInteraction(); };
195628
195821
  Stats.ptr.prototype.GetInteractionWaitMultiplier = function() {
195629
- var {_r, s, untouchedDur, $s, $r, $c} = $restore(this, {});
195822
+ var {_r, lastInteractionAt, s, untouchedDur, $s, $r, $c} = $restore(this, {});
195630
195823
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195631
195824
  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; }
195825
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195826
+ lastInteractionAt = $clone(s.lastInteractionAt, time.Time);
195827
+ $r = s.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195828
+ _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
195829
  untouchedDur = _r;
195634
195830
  if (untouchedDur.Seconds() < 5) {
195635
195831
  $s = -1; return 0;
195636
195832
  }
195637
195833
  $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;
195834
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.GetInteractionWaitMultiplier, $c: true, $r, _r, lastInteractionAt, s, untouchedDur, $s};return $f;
195639
195835
  };
195640
195836
  Stats.prototype.GetInteractionWaitMultiplier = function() { return this.$val.GetInteractionWaitMultiplier(); };
195641
195837
  Stats.ptr.prototype.SetEncodingPreferences = function(prefs) {
195642
- var prefs, s;
195838
+ var {prefs, s, $s, $deferred, $r, $c} = $restore(this, {prefs});
195839
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195643
195840
  s = this;
195841
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195842
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195644
195843
  EncodingPreferences.copy(s.encodingPreferences, prefs);
195844
+ $s = -1; return;
195845
+ /* */ } 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
195846
  };
195646
195847
  Stats.prototype.SetEncodingPreferences = function(prefs) { return this.$val.SetEncodingPreferences(prefs); };
195647
195848
  NewMetrics = function() {
@@ -195776,28 +195977,38 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195776
195977
  return $div64(sum, (new time.Duration(0, values.$length)), false);
195777
195978
  };
195778
195979
  variance = function(values) {
195779
- var _i, _ref, avg, sum, v, values, x;
195980
+ var _i, _ref, avg, deviation, sum, v, values;
195780
195981
  if (values.$length === 0) {
195781
195982
  return new time.Duration(0, 0);
195782
195983
  }
195783
195984
  avg = average(values);
195784
- sum = new time.Duration(0, 0);
195985
+ sum = 0;
195785
195986
  _ref = values;
195786
195987
  _i = 0;
195787
195988
  while (true) {
195788
195989
  if (!(_i < _ref.$length)) { break; }
195789
195990
  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));
195991
+ deviation = ($flatten64(new time.Duration(v.$high - avg.$high, v.$low - avg.$low)));
195992
+ sum = sum + (deviation * deviation);
195791
195993
  _i++;
195792
195994
  }
195793
- return (new time.Duration(0, math.Sqrt(($flatten64($div64(sum, (new time.Duration(0, values.$length)), false))))));
195995
+ return (new time.Duration(0, math.Sqrt(sum / (values.$length))));
195996
+ };
195997
+ frameRateClock = function() {
195998
+ var {$24r, _r, _r$1, $s, $r, $c} = $restore(this, {});
195999
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196000
+ _r = $clone(performance, js.Value).Call("now", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196001
+ _r$1 = $clone(_r, js.Value).Float(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
196002
+ $24r = (new time.Duration(0, _r$1 * 1e+06));
196003
+ $s = 3; case 3: return $24r;
196004
+ /* */ } return; } var $f = {$blk: frameRateClock, $c: true, $r, $24r, _r, _r$1, $s};return $f;
195794
196005
  };
195795
196006
  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: "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: "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)}];
196007
+ 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([time.Duration], [], 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
196008
  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
196009
  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
196010
  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: $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: "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: ""}]);
196011
+ 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: "frameRateWindowStartedAt", name: "frameRateWindowStartedAt", embedded: false, exported: false, typ: time.Duration, 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
196012
  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
196013
  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
196014
  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,7 +196020,9 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195809
196020
  $r = log.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195810
196021
  $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195811
196022
  $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195812
- $r = time.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196023
+ $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196024
+ $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196025
+ performance = $clone($clone(js.Global(), js.Value).Get("performance"), js.Value);
195813
196026
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
195814
196027
  };
195815
196028
  $pkg.$init = $init;
@@ -196004,24 +196217,24 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196004
196217
  /* */ if (dl.renderingInProgress) { $s = 7; continue; }
196005
196218
  /* */ $s = 8; continue;
196006
196219
  /* if (dl.renderingInProgress) { */ case 7:
196007
- dl.stats.NotifyThrottledRenderFrame();
196220
+ $r = dl.stats.NotifyThrottledRenderFrame(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196008
196221
  $24r$1 = $ifaceNil;
196009
- $s = 9; case 9: return $24r$1;
196222
+ $s = 10; case 10: return $24r$1;
196010
196223
  /* } */ case 8:
196011
196224
  dl.renderingInProgress = true;
196012
- $r = dl.stats.NotifyFrameRenderStarted(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196225
+ $r = dl.stats.NotifyFrameRenderStarted(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196013
196226
  _arg = $clone(new image.Point.ptr(0, 0), image.Point);
196014
196227
  _arg$1 = screenBuffer;
196015
- _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; }
196228
+ _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; }
196016
196229
  _arg$2 = $clone(_r$2.Rect, image.Rectangle);
196017
- $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; }
196018
- _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; }
196230
+ $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; }
196231
+ _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; }
196019
196232
  _r$3;
196020
- $r = dl.stats.NotifyFrameRenderEnded(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196021
- $r = dl.stats.NotifyFrame(frame$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196233
+ $r = dl.stats.NotifyFrameRenderEnded(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196234
+ $r = dl.stats.NotifyFrame(frame$1); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196022
196235
  dl.renderingInProgress = false;
196023
196236
  $24r$2 = $ifaceNil;
196024
- $s = 16; case 16: return $24r$2;
196237
+ $s = 17; case 17: return $24r$2;
196025
196238
  /* */ } 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; } }
196026
196239
  };
196027
196240
  RenderingLoop.prototype.renderBuffer = function() { return this.$val.renderBuffer(); };
@@ -196312,7 +196525,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196312
196525
  /* } */ case 25:
196313
196526
  $s = 21; continue;
196314
196527
  /* } else { */ case 20:
196315
- dl[0].stats.NotifyThrottledDecodeFrame();
196528
+ $r = dl[0].stats.NotifyThrottledDecodeFrame(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196316
196529
  /* } */ case 21:
196317
196530
  $s = -1; return $ifaceNil;
196318
196531
  /* */ } 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;
@@ -196432,7 +196645,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196432
196645
  case 18:
196433
196646
  $s = 17; continue;
196434
196647
  /* } else { */ case 16:
196435
- cl.stats.NotifyThrottledCollectionFrame();
196648
+ $r = cl.stats.NotifyThrottledCollectionFrame(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196436
196649
  /* } */ case 17:
196437
196650
  $s = 1; continue;
196438
196651
  case 2:
@@ -197181,7 +197394,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197181
197394
  sync = $packages["sync"];
197182
197395
  js = $packages["syscall/js"];
197183
197396
  time = $packages["time"];
197184
- 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_) {
197397
+ 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_) {
197185
197398
  this.$val = this;
197186
197399
  if (arguments.length === 0) {
197187
197400
  this.processInfoManager = ptrType.nil;
@@ -197223,6 +197436,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197223
197436
  this.winCloseChannel = $chanNil;
197224
197437
  this.eventLoopStop = $chanNil;
197225
197438
  this.eventLoopDone = $chanNil;
197439
+ this.windowSizeMu = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0);
197226
197440
  this.windowSize = new image.Point.ptr(0, 0);
197227
197441
  this.geometry = ptrType$14.nil;
197228
197442
  return;
@@ -197266,6 +197480,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197266
197480
  this.winCloseChannel = winCloseChannel_;
197267
197481
  this.eventLoopStop = eventLoopStop_;
197268
197482
  this.eventLoopDone = eventLoopDone_;
197483
+ this.windowSizeMu = windowSizeMu_;
197269
197484
  this.windowSize = windowSize_;
197270
197485
  this.geometry = geometry_;
197271
197486
  });
@@ -197409,9 +197624,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197409
197624
  };
197410
197625
  ScreenWindow.prototype.Geometry = function() { return this.$val.Geometry(); };
197411
197626
  ScreenWindow.ptr.prototype.SetEncodingPreferences = function(prefs) {
197412
- var prefs, w;
197627
+ var {prefs, w, $s, $r, $c} = $restore(this, {prefs});
197628
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197413
197629
  w = this;
197414
- w.stats.SetEncodingPreferences($clone(prefs, stats.EncodingPreferences));
197630
+ $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; }
197631
+ $s = -1; return;
197632
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.SetEncodingPreferences, $c: true, $r, prefs, w, $s};return $f;
197415
197633
  };
197416
197634
  ScreenWindow.prototype.SetEncodingPreferences = function(prefs) { return this.$val.SetEncodingPreferences(prefs); };
197417
197635
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, forceScreenSize, timeoutDuration, encodingPreferences, geometry) {
@@ -197419,8 +197637,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197419
197637
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197420
197638
  _r = stats.NewStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197421
197639
  s = _r;
197422
- s.SetEncodingPreferences($clone(encodingPreferences, stats.EncodingPreferences));
197423
- $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);
197640
+ $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; }
197641
+ $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);
197424
197642
  /* */ } 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;
197425
197643
  };
197426
197644
  $pkg.NewScreenWindow = NewScreenWindow;
@@ -197658,14 +197876,17 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197658
197876
  if (!_1) {
197659
197877
  /* break; */ $s = 3; continue;
197660
197878
  }
197661
- if (!(w[0].forceScreenSize === ptrType$1.nil)) {
197662
- w[0].stats.SetScreenResolution(w[0].forceScreenSize);
197663
- } else {
197664
- w[0].stats.SetScreenResolution(point);
197665
- }
197879
+ /* */ if (!(w[0].forceScreenSize === ptrType$1.nil)) { $s = 5; continue; }
197880
+ /* */ $s = 6; continue;
197881
+ /* if (!(w[0].forceScreenSize === ptrType$1.nil)) { */ case 5:
197882
+ $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; }
197883
+ $s = 7; continue;
197884
+ /* } else { */ case 6:
197885
+ $r = w[0].stats.SetScreenResolution(point); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197886
+ /* } */ case 7:
197666
197887
  $s = 2; continue;
197667
197888
  case 3:
197668
- $r = closeResChan(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197889
+ $r = closeResChan(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197669
197890
  $s = -1; return;
197670
197891
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _1, _2, _r, _r$1, _tuple, _tuple$1, closeResChan, point, resChan, $s};return $f;
197671
197892
  }; })(eventLoopDone, eventLoopStop, w, window$1, windowChannel), []);
@@ -197781,36 +198002,36 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197781
198002
  /* } else if (_selection$3[0] === 1) { */ case 34:
197782
198003
  $s = 36; case 36: return;
197783
198004
  /* } */ case 35:
197784
- image.Point.copy(w[0].windowSize, $clone(e$4, size.Event).Size());
197785
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198005
+ $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; }
198006
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197786
198007
  $s = 15; continue;
197787
198008
  /* } else if ($assertType(_ref, focus.Event, true)[1]) { */ case 13:
197788
198009
  e$5 = $clone(_ref.$val, focus.Event);
197789
- _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; }
198010
+ _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; }
197790
198011
  _selection$4 = _r$5;
197791
- /* */ if (_selection$4[0] === 0) { $s = 39; continue; }
197792
- /* */ if (_selection$4[0] === 1) { $s = 40; continue; }
197793
- /* */ $s = 41; continue;
197794
- /* if (_selection$4[0] === 0) { */ case 39:
197795
- $s = 41; continue;
197796
- /* } else if (_selection$4[0] === 1) { */ case 40:
197797
- $s = 42; case 42: return;
197798
- /* } */ case 41:
197799
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198012
+ /* */ if (_selection$4[0] === 0) { $s = 40; continue; }
198013
+ /* */ if (_selection$4[0] === 1) { $s = 41; continue; }
198014
+ /* */ $s = 42; continue;
198015
+ /* if (_selection$4[0] === 0) { */ case 40:
198016
+ $s = 42; continue;
198017
+ /* } else if (_selection$4[0] === 1) { */ case 41:
198018
+ $s = 43; case 43: return;
198019
+ /* } */ case 42:
198020
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197800
198021
  $s = 15; continue;
197801
198022
  /* } else if ($assertType(_ref, touch.Event, true)[1]) { */ case 14:
197802
198023
  e$6 = $clone(_ref.$val, touch.Event);
197803
- _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; }
198024
+ _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; }
197804
198025
  _selection$5 = _r$6;
197805
- /* */ if (_selection$5[0] === 0) { $s = 45; continue; }
197806
- /* */ if (_selection$5[0] === 1) { $s = 46; continue; }
197807
- /* */ $s = 47; continue;
197808
- /* if (_selection$5[0] === 0) { */ case 45:
197809
- $s = 47; continue;
197810
- /* } else if (_selection$5[0] === 1) { */ case 46:
197811
- $s = 48; case 48: return;
197812
- /* } */ case 47:
197813
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198026
+ /* */ if (_selection$5[0] === 0) { $s = 46; continue; }
198027
+ /* */ if (_selection$5[0] === 1) { $s = 47; continue; }
198028
+ /* */ $s = 48; continue;
198029
+ /* if (_selection$5[0] === 0) { */ case 46:
198030
+ $s = 48; continue;
198031
+ /* } else if (_selection$5[0] === 1) { */ case 47:
198032
+ $s = 49; case 49: return;
198033
+ /* } */ case 48:
198034
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197814
198035
  /* } */ case 15:
197815
198036
  $s = 1; continue;
197816
198037
  case 2:
@@ -198081,13 +198302,39 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198081
198302
  return netclient.NewMessageSender(w.screenConn);
198082
198303
  };
198083
198304
  ScreenWindow.prototype.createScreenSender = function() { return this.$val.createScreenSender(); };
198305
+ ScreenWindow.ptr.prototype.setWindowSize = function(windowSize) {
198306
+ var {w, windowSize, $s, $deferred, $r, $c} = $restore(this, {windowSize});
198307
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
198308
+ w = this;
198309
+ $r = w.windowSizeMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198310
+ $deferred.push([$methodVal(w.windowSizeMu, "Unlock"), []]);
198311
+ image.Point.copy(w.windowSize, windowSize);
198312
+ $s = -1; return;
198313
+ /* */ } 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; } }
198314
+ };
198315
+ ScreenWindow.prototype.setWindowSize = function(windowSize) { return this.$val.setWindowSize(windowSize); };
198316
+ ScreenWindow.ptr.prototype.getWindowSize = function() {
198317
+ var {$24r, w, $s, $deferred, $r, $c} = $restore(this, {});
198318
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
198319
+ w = this;
198320
+ $r = w.windowSizeMu.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198321
+ $deferred.push([$methodVal(w.windowSizeMu, "RUnlock"), []]);
198322
+ $24r = w.windowSize;
198323
+ $s = 2; case 2: return $24r;
198324
+ /* */ } 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; } }
198325
+ };
198326
+ ScreenWindow.prototype.getWindowSize = function() { return this.$val.getWindowSize(); };
198084
198327
  ScreenWindow.ptr.prototype.getEventMultiplier = function() {
198085
- var w;
198328
+ var {_r, w, windowSize, $s, $r, $c} = $restore(this, {});
198329
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198086
198330
  w = this;
198087
- if (!(w.forceScreenSize === ptrType$1.nil)) {
198088
- return new geom.Point.ptr(($fround((w.forceScreenSize.X) / (w.windowSize.X))), ($fround((w.forceScreenSize.Y) / (w.windowSize.Y))));
198331
+ _r = w.getWindowSize(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198332
+ windowSize = $clone(_r, image.Point);
198333
+ if (!(w.forceScreenSize === ptrType$1.nil) && windowSize.X > 0 && windowSize.Y > 0) {
198334
+ $s = -1; return new geom.Point.ptr(($fround((w.forceScreenSize.X) / (windowSize.X))), ($fround((w.forceScreenSize.Y) / (windowSize.Y))));
198089
198335
  }
198090
- return new geom.Point.ptr(1, 1);
198336
+ $s = -1; return new geom.Point.ptr(1, 1);
198337
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.getEventMultiplier, $c: true, $r, _r, w, windowSize, $s};return $f;
198091
198338
  };
198092
198339
  ScreenWindow.prototype.getEventMultiplier = function() { return this.$val.getEventMultiplier(); };
198093
198340
  ScreenWindow.ptr.prototype.startTimestampSyncing = function() {
@@ -198121,9 +198368,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198121
198368
  latencyEnd = $clone(_r$3, time.Time);
198122
198369
  serverLatency = $div64($clone(latencyEnd, time.Time).Sub($clone(latencyStart, time.Time)), new time.Duration(0, 2), false);
198123
198370
  serverTimestampAhead = $clone($clone(serverTimestamp, time.Time).Add(serverLatency), time.Time).Sub($clone(latencyEnd, time.Time));
198124
- w.stats.SetLatency(serverLatency);
198125
- w.stats.UpdateServerTimestampAhead(serverTimestampAhead);
198126
- $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; }
198371
+ $r = w.stats.SetLatency(serverLatency); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198372
+ $r = w.stats.UpdateServerTimestampAhead(serverTimestampAhead); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198373
+ $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; }
198127
198374
  $s = 1; continue;
198128
198375
  case 2:
198129
198376
  $s = -1; return;
@@ -198160,31 +198407,37 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198160
198407
  };
198161
198408
  ScreenWindow.prototype.startStatsSyncing = function() { return this.$val.startStatsSyncing(); };
198162
198409
  ScreenWindow.ptr.prototype.sendStats = function() {
198163
- var {_r, _r$1, _r$2, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s, $r, $c} = $restore(this, {});
198410
+ var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s, $r, $c} = $restore(this, {});
198164
198411
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198165
198412
  w = this;
198166
- clientStats = w.stats.GetClientStats();
198167
- _r = w.eventMetrics.Snapshot(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198168
- inputSnapshot = $clone(_r, input.InputSnapshot);
198413
+ _r = w.stats.GetClientStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198414
+ clientStats = _r;
198415
+ _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; }
198416
+ inputSnapshot = $clone(_r$1, input.InputSnapshot);
198169
198417
  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));
198170
- _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; }
198171
- _tuple = _r$1;
198418
+ _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; }
198419
+ _tuple = _r$2;
198172
198420
  data = _tuple[0];
198173
198421
  err = _tuple[1];
198174
198422
  if (!($interfaceIsEqual(err, $ifaceNil))) {
198175
198423
  $s = -1; return err;
198176
198424
  }
198177
- _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; }
198178
- _tuple$1 = _r$2;
198425
+ _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; }
198426
+ _tuple$1 = _r$3;
198179
198427
  err = _tuple$1[1];
198180
198428
  $s = -1; return err;
198181
- /* */ } 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;
198429
+ /* */ } 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;
198182
198430
  };
198183
198431
  ScreenWindow.prototype.sendStats = function() { return this.$val.sendStats(); };
198184
198432
  ScreenWindow.ptr.prototype.getFrameHealthCheckTimeout = function() {
198185
- var w;
198433
+ var {$24r, _r, _r$1, w, $s, $r, $c} = $restore(this, {});
198434
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198186
198435
  w = this;
198187
- return frameHealthCheckTimeout(w.stats.GetLastActiveFrameRate());
198436
+ _r = w.stats.GetLastActiveFrameRate(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198437
+ _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; }
198438
+ $24r = _r$1;
198439
+ $s = 3; case 3: return $24r;
198440
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.getFrameHealthCheckTimeout, $c: true, $r, $24r, _r, _r$1, w, $s};return $f;
198188
198441
  };
198189
198442
  ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
198190
198443
  frameHealthCheckTimeout = function(framerate) {
@@ -198207,7 +198460,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198207
198460
  return value;
198208
198461
  };
198209
198462
  ScreenWindow.ptr.prototype.startScreenHealthChecking = function() {
198210
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, err, lastImpulseAt, w, $s, $r, $c} = $restore(this, {});
198463
+ 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, {});
198211
198464
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198212
198465
  w = this;
198213
198466
  /* while (true) { */ case 1:
@@ -198219,38 +198472,41 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198219
198472
  $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; }
198220
198473
  /* continue; */ $s = 1; continue;
198221
198474
  /* } */ case 5:
198222
- lastImpulseAt = $clone(w.stats.GetLastScreenImpulseAt(), time.Time);
198223
- _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; }
198224
- _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; }
198225
- /* */ if (_r$2) { $s = 7; continue; }
198226
- /* */ $s = 8; continue;
198227
- /* if (_r$2) { */ case 7:
198228
- _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; }
198229
- err = _r$3;
198230
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; }
198231
- /* */ $s = 13; continue;
198232
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12:
198233
- $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; }
198234
- /* } */ case 13:
198235
- _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; }
198236
- /* */ if (_r$4) { $s = 15; continue; }
198475
+ _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; }
198476
+ lastImpulseAt = $clone(_r$1, time.Time);
198477
+ _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; }
198478
+ _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; }
198479
+ _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; }
198480
+ _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; }
198481
+ /* */ if (_r$5) { $s = 8; continue; }
198482
+ /* */ $s = 9; continue;
198483
+ /* if (_r$5) { */ case 8:
198484
+ _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; }
198485
+ err = _r$6;
198486
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; }
198237
198487
  /* */ $s = 16; continue;
198238
- /* if (_r$4) { */ case 15:
198239
- $s = -1; return;
198488
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15:
198489
+ $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; }
198240
198490
  /* } */ case 16:
198241
- _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; }
198242
- err = _r$5;
198243
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; }
198244
- /* */ $s = 20; continue;
198245
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19:
198246
- $r = errs.Print("Reconnecting screen", err); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198247
- /* } */ case 20:
198248
- /* } */ case 8:
198249
- $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; }
198491
+ _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; }
198492
+ /* */ if (_r$7) { $s = 18; continue; }
198493
+ /* */ $s = 19; continue;
198494
+ /* if (_r$7) { */ case 18:
198495
+ $s = -1; return;
198496
+ /* } */ case 19:
198497
+ _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; }
198498
+ err = _r$8;
198499
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 22; continue; }
198500
+ /* */ $s = 23; continue;
198501
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 22:
198502
+ $r = errs.Print("Reconnecting screen", err); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198503
+ /* } */ case 23:
198504
+ /* } */ case 9:
198505
+ $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; }
198250
198506
  $s = 1; continue;
198251
198507
  case 2:
198252
198508
  $s = -1; return;
198253
- /* */ } 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;
198509
+ /* */ } 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;
198254
198510
  };
198255
198511
  ScreenWindow.prototype.startScreenHealthChecking = function() { return this.$val.startScreenHealthChecking(); };
198256
198512
  ScreenWindow.ptr.prototype.openScreen = function() {
@@ -198360,7 +198616,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198360
198616
  };
198361
198617
  ScreenWindow.prototype.closeScreen = function() { return this.$val.closeScreen(); };
198362
198618
  ScreenWindow.ptr.prototype.closeScreenLocked = function() {
198363
- 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, {});
198619
+ 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, {});
198364
198620
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198365
198621
  w = this;
198366
198622
  pingerStopped = true;
@@ -198482,10 +198738,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198482
198738
  if (errList.$length === 0) {
198483
198739
  $s = -1; return $ifaceNil;
198484
198740
  }
198485
- _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; }
198486
- $24r = _r$7;
198487
- $s = 65; case 65: return $24r;
198488
- /* */ } 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;
198741
+ $s = -1; return errs.CombineErrors(errList);
198742
+ /* */ } 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;
198489
198743
  };
198490
198744
  ScreenWindow.prototype.closeScreenLocked = function() { return this.$val.closeScreenLocked(); };
198491
198745
  ScreenWindow.ptr.prototype.createScreenBuffer = function() {
@@ -198793,26 +199047,27 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198793
199047
  $s = -1; return $ifaceNil;
198794
199048
  /* } */ case 6:
198795
199049
  $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; }
198796
- w[0].SetEncodingPreferences($clone(prefs[0], stats.EncodingPreferences));
199050
+ $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; }
198797
199051
  $s = -1; return $ifaceNil;
198798
199052
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, err, jsonStr, prefs, this$1, $s};return $f;
198799
199053
  }; })(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w)), js.Func);
198800
199054
  getCurrentStats[0] = $clone(js.FuncOf((function(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w) { return function $b(this$1, args) {
198801
- var {_r, _tuple, args, clientStats, data, err, this$1, $s, $r, $c} = $restore(this, {this$1, args});
199055
+ var {_r, _r$1, _tuple, args, clientStats, data, err, this$1, $s, $r, $c} = $restore(this, {this$1, args});
198802
199056
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198803
- clientStats = w[0].stats.GetClientStats();
198804
- _r = json.Marshal(clientStats); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198805
- _tuple = _r;
199057
+ _r = w[0].stats.GetClientStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
199058
+ clientStats = _r;
199059
+ _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; }
199060
+ _tuple = _r$1;
198806
199061
  data = _tuple[0];
198807
199062
  err = _tuple[1];
198808
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
198809
- /* */ $s = 3; continue;
198810
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
198811
- $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; }
199063
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
199064
+ /* */ $s = 4; continue;
199065
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
199066
+ $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; }
198812
199067
  $s = -1; return $ifaceNil;
198813
- /* } */ case 3:
199068
+ /* } */ case 4:
198814
199069
  $s = -1; return new $String(($bytesToString(data)));
198815
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _tuple, args, clientStats, data, err, this$1, $s};return $f;
199070
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, args, clientStats, data, err, this$1, $s};return $f;
198816
199071
  }; })(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w)), js.Func);
198817
199072
  stopScreen[0] = $clone(js.FuncOf((function(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w) { return function $b(this$1, args) {
198818
199073
  var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
@@ -198872,9 +199127,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198872
199127
  }
198873
199128
  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) }]));
198874
199129
  };
198875
- 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)}];
199130
+ 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)}];
198876
199131
  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)}];
198877
- 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: ""}]);
199132
+ 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: ""}]);
198878
199133
  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\""}]);
198879
199134
  screenWindowDetachEvent.init("", []);
198880
199135
  nonBlockingWindowEventSender.init([{prop: "SendNonBlocking", name: "SendNonBlocking", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}]);