@supraio/client-daemon-js 1.1.0-master.553 → 1.1.0-master.563

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.
@@ -68292,7 +68292,7 @@ $packages["math/rand"] = (function() {
68292
68292
  return $pkg;
68293
68293
  })();
68294
68294
  $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
68295
- var $pkg = {}, $init, errs, image, log, rand, os, strconv, strings, syscall, time, sliceType, sliceType$1, ptrType, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength, NotifyOnStopSignal, WaitOnStopSignal, ClampedInt64, ParseImagePointFromString;
68295
+ var $pkg = {}, $init, errs, image, log, rand, os, strconv, strings, syscall, time, sliceType, sliceType$1, ptrType, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength, NotifyOnStopSignal, WaitOnStopSignal, ParseImagePointFromString;
68296
68296
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
68297
68297
  image = $packages["image"];
68298
68298
  log = $packages["log"];
@@ -68355,17 +68355,6 @@ $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
68355
68355
  /* */ } return; } var $f = {$blk: WaitOnStopSignal, $c: true, $r, _r$4, sig, signalChannel, $s};return $f;
68356
68356
  };
68357
68357
  $pkg.WaitOnStopSignal = WaitOnStopSignal;
68358
- ClampedInt64 = function(value, min, max) {
68359
- var max, min, value;
68360
- if ((value.$high < min.$high || (value.$high === min.$high && value.$low < min.$low))) {
68361
- return min;
68362
- }
68363
- if ((value.$high > max.$high || (value.$high === max.$high && value.$low > max.$low))) {
68364
- return max;
68365
- }
68366
- return value;
68367
- };
68368
- $pkg.ClampedInt64 = ClampedInt64;
68369
68358
  ParseImagePointFromString = function(value) {
68370
68359
  var {_arg, _r$4, _tuple, _tuple$1, err, height, heightString, parts, value, width, widthString, $s, $r, $c} = $restore(this, {value});
68371
68360
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -191501,7 +191490,7 @@ $packages["github.com/supraio/client-daemon/pkg/message"] = (function() {
191501
191490
  return $pkg;
191502
191491
  })();
191503
191492
  $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191504
- 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;
191505
191494
  binary = $packages["encoding/binary"];
191506
191495
  fmt = $packages["fmt"];
191507
191496
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -191512,6 +191501,7 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
191512
191501
  touch = $packages["golang.org/x/mobile/event/touch"];
191513
191502
  geom = $packages["golang.org/x/mobile/geom"];
191514
191503
  log = $packages["log"];
191504
+ math = $packages["math"];
191515
191505
  sync = $packages["sync"];
191516
191506
  js = $packages["syscall/js"];
191517
191507
  time = $packages["time"];
@@ -192008,13 +191998,23 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192008
191998
  x = $fround((ev.X) * (multiplier.X));
192009
191999
  y = $fround((ev.Y) * (multiplier.Y));
192010
192000
  mouseXData = $makeSlice(sliceType$1, 4);
192011
- $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseXData, ((x >> 0)));
192001
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseXData, coordinateToUint32(x));
192012
192002
  mouseYData = $makeSlice(sliceType$1, 4);
192013
- $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseYData, ((y >> 0)));
192003
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(mouseYData, coordinateToUint32(y));
192014
192004
  $s = -1; return $appendSlice(mouseButtonData, $appendSlice(mouseDirectionData, $appendSlice(mouseModifierData, $appendSlice(mouseXData, mouseYData))));
192015
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;
192016
192006
  };
192017
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
+ };
192018
192018
  NewEventMetrics = function() {
192019
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);
192020
192020
  };
@@ -192446,9 +192446,10 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192446
192446
  $r = touch.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192447
192447
  $r = geom.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192448
192448
  $r = log.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192449
- $r = sync.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192450
- $r = js.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192451
- $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; }
192452
192453
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
192453
192454
  };
192454
192455
  $pkg.$init = $init;
@@ -195077,7 +195078,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/screenbuffer"] = (functio
195077
195078
  return $pkg;
195078
195079
  })();
195079
195080
  $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195080
- 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, time, Stopwatch, Frame, Stats, Metrics, EncodingPreferences, InputMetrics, ClientStats, ptrType, sliceType, ptrType$1, ptrType$2, sliceType$1, structType, ptrType$3, mapType, ptrType$4, ptrType$5, chanType, mapType$1, NewStopwatch, NewStats, NewMetrics, average, variance;
195081
195082
  image = $packages["image"];
195082
195083
  log = $packages["log"];
195083
195084
  math = $packages["math"];
@@ -195094,21 +195095,23 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195094
195095
  this.groups = groups_;
195095
195096
  });
195096
195097
  Frame = $pkg.Frame = $newType(8, $kindInterface, "stats.Frame", true, "github.com/supraio/client-daemon/pkg/stats", true, null);
195097
- Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, lastScreenPingAt_, stopwatch_, metrics_, done_, calcStopped_, latency_, serverTimestampAhead_, serverTimestampAheadBuffer_, currentFramesCount_, lastFrameRate_, totalFramesCount_, lastFramesLatencyAverage_, lastFramesLatencyVariance_, longTermFramesLatencyAverage_, longTermFramesLatencyVariance_, lastFramesCollectionAverage_, lastFramesCollectionVariance_, longTermFramesCollectionAverage_, longTermFramesCollectionVariance_, currentThrottledCollectionFramesCount_, lastThrottledCollectionFrameRate_, lastFramesDecodeWriteAverage_, lastFramesDecodeOutputAverage_, lastFramesDecodeWriteVariance_, lastFramesDecodeOutputVariance_, longTermFramesDecodeWriteAverage_, longTermFramesDecodeOutputAverage_, longTermFramesDecodeWriteVariance_, longTermFramesDecodeOutputVariance_, currentThrottledDecodeFramesCount_, lastThrottledDecodeFrameRate_, lastFramesRenderAverage_, lastFramesRenderVariance_, longTermFramesRenderAverage_, longTermFramesRenderVariance_, currentThrottledRenderFramesCount_, lastThrottledRenderFrameRate_, screenResolutionWidth_, screenResolutionHeight_, lastInteractionAt_, encodingPreferences_) {
195098
+ Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(mu_, lastFrameAt_, lastScreenPingAt_, stopwatch_, metrics_, done_, calcStopped_, stopOnce_, latency_, serverTimestampAhead_, serverTimestampAheadBuffer_, currentFramesCount_, lastFrameRate_, lastActiveFrameRate_, totalFramesCount_, lastFramesLatencyAverage_, lastFramesLatencyVariance_, longTermFramesLatencyAverage_, longTermFramesLatencyVariance_, lastFramesCollectionAverage_, lastFramesCollectionVariance_, longTermFramesCollectionAverage_, longTermFramesCollectionVariance_, currentThrottledCollectionFramesCount_, lastThrottledCollectionFrameRate_, lastFramesDecodeWriteAverage_, lastFramesDecodeOutputAverage_, lastFramesDecodeWriteVariance_, lastFramesDecodeOutputVariance_, longTermFramesDecodeWriteAverage_, longTermFramesDecodeOutputAverage_, longTermFramesDecodeWriteVariance_, longTermFramesDecodeOutputVariance_, currentThrottledDecodeFramesCount_, lastThrottledDecodeFrameRate_, lastFramesRenderAverage_, lastFramesRenderVariance_, longTermFramesRenderAverage_, longTermFramesRenderVariance_, currentThrottledRenderFramesCount_, lastThrottledRenderFrameRate_, screenResolutionWidth_, screenResolutionHeight_, lastInteractionAt_, encodingPreferences_) {
195098
195099
  this.$val = this;
195099
195100
  if (arguments.length === 0) {
195100
- this.stopped = false;
195101
+ this.mu = new sync.Mutex.ptr(0, 0);
195101
195102
  this.lastFrameAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
195102
195103
  this.lastScreenPingAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
195103
195104
  this.stopwatch = ptrType$1.nil;
195104
195105
  this.metrics = ptrType$2.nil;
195105
195106
  this.done = $chanNil;
195106
195107
  this.calcStopped = $chanNil;
195108
+ this.stopOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
195107
195109
  this.latency = new time.Duration(0, 0);
195108
195110
  this.serverTimestampAhead = new time.Duration(0, 0);
195109
195111
  this.serverTimestampAheadBuffer = sliceType$1.nil;
195110
195112
  this.currentFramesCount = 0;
195111
195113
  this.lastFrameRate = 0;
195114
+ this.lastActiveFrameRate = 0;
195112
195115
  this.totalFramesCount = 0;
195113
195116
  this.lastFramesLatencyAverage = new time.Duration(0, 0);
195114
195117
  this.lastFramesLatencyVariance = new time.Duration(0, 0);
@@ -195142,18 +195145,20 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195142
195145
  this.encodingPreferences = new EncodingPreferences.ptr(0, 0, "", "", "");
195143
195146
  return;
195144
195147
  }
195145
- this.stopped = stopped_;
195148
+ this.mu = mu_;
195146
195149
  this.lastFrameAt = lastFrameAt_;
195147
195150
  this.lastScreenPingAt = lastScreenPingAt_;
195148
195151
  this.stopwatch = stopwatch_;
195149
195152
  this.metrics = metrics_;
195150
195153
  this.done = done_;
195151
195154
  this.calcStopped = calcStopped_;
195155
+ this.stopOnce = stopOnce_;
195152
195156
  this.latency = latency_;
195153
195157
  this.serverTimestampAhead = serverTimestampAhead_;
195154
195158
  this.serverTimestampAheadBuffer = serverTimestampAheadBuffer_;
195155
195159
  this.currentFramesCount = currentFramesCount_;
195156
195160
  this.lastFrameRate = lastFrameRate_;
195161
+ this.lastActiveFrameRate = lastActiveFrameRate_;
195157
195162
  this.totalFramesCount = totalFramesCount_;
195158
195163
  this.lastFramesLatencyAverage = lastFramesLatencyAverage_;
195159
195164
  this.lastFramesLatencyVariance = lastFramesLatencyVariance_;
@@ -195318,8 +195323,8 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195318
195323
  ptrType$2 = $ptrType(Metrics);
195319
195324
  sliceType$1 = $sliceType(time.Duration);
195320
195325
  structType = $structType("", []);
195321
- mapType = $mapType($String, time.Time);
195322
195326
  ptrType$3 = $ptrType(ClientStats);
195327
+ mapType = $mapType($String, time.Time);
195323
195328
  ptrType$4 = $ptrType(image.Point);
195324
195329
  ptrType$5 = $ptrType(Stats);
195325
195330
  chanType = $chanType(structType, false, false);
@@ -195370,48 +195375,58 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195370
195375
  };
195371
195376
  Stopwatch.prototype.Stop = function(group) { return this.$val.Stop(group); };
195372
195377
  NewStats = function() {
195373
- var {_r, _r$1, _r$2, s, $s, $r, $c} = $restore(this, {});
195378
+ var {_r, now, s, $s, $r, $c} = $restore(this, {});
195374
195379
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195375
195380
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195376
- _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; }
195377
- _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; }
195378
- 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, 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, "", "", ""));
195381
+ now = $clone(_r, time.Time);
195382
+ s = new Stats.ptr(new sync.Mutex.ptr(0, 0), $clone(now, time.Time), $clone(now, time.Time), NewStopwatch(), NewMetrics(), new $Chan(structType, 0), new $Chan(structType, 0), new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), new time.Duration(0, 0), new time.Duration(0, 0), sliceType$1.nil, 0, 0, 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, 0, 0, $clone(now, time.Time), new EncodingPreferences.ptr(0, 0, "", "", ""));
195379
195383
  $go($methodVal(s, "startCalculations"), []);
195380
195384
  $s = -1; return s;
195381
- /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, _r$2, s, $s};return $f;
195385
+ /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, now, s, $s};return $f;
195382
195386
  };
195383
195387
  $pkg.NewStats = NewStats;
195384
195388
  Stats.ptr.prototype.Stop = function() {
195385
- var {_r, _selection, s, $s, $r, $c} = $restore(this, {});
195389
+ var {_r, s, $s, $r, $c} = $restore(this, {});
195386
195390
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195387
- s = this;
195388
- s.stopped = true;
195389
- _selection = $select([[s.done], []]);
195390
- if (_selection[0] === 0) {
195391
- } else if (_selection[0] === 1) {
195392
- $close(s.done);
195393
- }
195394
- _r = $recv(s.calcStopped); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195391
+ s = [s];
195392
+ s[0] = this;
195393
+ $r = s[0].stopOnce.Do((function(s) { return function() {
195394
+ $close(s[0].done);
195395
+ }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195396
+ _r = $recv(s[0].calcStopped); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195395
195397
  _r[0];
195396
195398
  $s = -1; return;
195397
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.Stop, $c: true, $r, _r, _selection, s, $s};return $f;
195399
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.Stop, $c: true, $r, _r, s, $s};return $f;
195398
195400
  };
195399
195401
  Stats.prototype.Stop = function() { return this.$val.Stop(); };
195400
195402
  Stats.ptr.prototype.GetClientStats = function() {
195401
- var s;
195403
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195404
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195402
195405
  s = this;
195403
- 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)));
195406
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195407
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195408
+ $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)));
195409
+ $s = 2; case 2: return $24r;
195410
+ /* */ } 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; } }
195404
195411
  };
195405
195412
  Stats.prototype.GetClientStats = function() { return this.$val.GetClientStats(); };
195406
195413
  Stats.ptr.prototype.SetLatency = function(latency) {
195407
- var latency, s;
195414
+ var {latency, s, $s, $deferred, $r, $c} = $restore(this, {latency});
195415
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195408
195416
  s = this;
195417
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195418
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195409
195419
  s.latency = latency;
195420
+ $s = -1; return;
195421
+ /* */ } 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; } }
195410
195422
  };
195411
195423
  Stats.prototype.SetLatency = function(latency) { return this.$val.SetLatency(latency); };
195412
195424
  Stats.ptr.prototype.UpdateServerTimestampAhead = function(serverAhead) {
195413
- var _i, _ref, ahead, s, serverAhead, totalAheadNano, x, x$1;
195425
+ var {_i, _ref, ahead, s, serverAhead, totalAheadNano, x, x$1, $s, $deferred, $r, $c} = $restore(this, {serverAhead});
195426
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195414
195427
  s = this;
195428
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195429
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195415
195430
  s.serverTimestampAheadBuffer = $append(s.serverTimestampAheadBuffer, serverAhead);
195416
195431
  if (s.serverTimestampAheadBuffer.$length > 20) {
195417
195432
  s.serverTimestampAheadBuffer = $subslice(s.serverTimestampAheadBuffer, 1);
@@ -195426,40 +195441,52 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195426
195441
  _i++;
195427
195442
  }
195428
195443
  s.serverTimestampAhead = ((x$1 = $div64(totalAheadNano, (new $Int64(0, s.serverTimestampAheadBuffer.$length)), false), new time.Duration(x$1.$high, x$1.$low)));
195444
+ $s = -1; return;
195445
+ /* */ } 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; } }
195429
195446
  };
195430
195447
  Stats.prototype.UpdateServerTimestampAhead = function(serverAhead) { return this.$val.UpdateServerTimestampAhead(serverAhead); };
195431
195448
  Stats.ptr.prototype.SetScreenResolution = function(res) {
195432
- var res, s;
195449
+ var {res, s, $s, $deferred, $r, $c} = $restore(this, {res});
195450
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195433
195451
  s = this;
195452
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195453
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195434
195454
  s.screenResolutionWidth = ((res.X >>> 0));
195435
195455
  s.screenResolutionHeight = ((res.Y >>> 0));
195456
+ $s = -1; return;
195457
+ /* */ } 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; } }
195436
195458
  };
195437
195459
  Stats.prototype.SetScreenResolution = function(res) { return this.$val.SetScreenResolution(res); };
195438
195460
  Stats.ptr.prototype.NotifyFrame = function(frame) {
195439
- var {_r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s, $r, $c} = $restore(this, {frame});
195461
+ var {_r, _r$1, _r$2, frame, frameLatency, now, s, serverTime, $s, $r, $c} = $restore(this, {frame});
195440
195462
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195441
195463
  s = this;
195442
195464
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195443
- time.Time.copy(s.lastFrameAt, _r);
195465
+ now = $clone(_r, time.Time);
195466
+ $r = s.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195467
+ time.Time.copy(s.lastFrameAt, now);
195444
195468
  s.currentFramesCount = s.currentFramesCount + (1) >> 0;
195445
- _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; }
195446
- _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; }
195447
- _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; }
195448
- frameLatency = _r$3;
195449
- $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; }
195450
- $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; }
195469
+ serverTime = $clone($clone(now, time.Time).Add(s.serverTimestampAhead), time.Time);
195470
+ $r = s.mu.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195471
+ _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; }
195472
+ _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; }
195473
+ frameLatency = _r$2;
195474
+ $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; }
195475
+ $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; }
195451
195476
  $s = -1; return;
195452
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s};return $f;
195477
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, frame, frameLatency, now, s, serverTime, $s};return $f;
195453
195478
  };
195454
195479
  Stats.prototype.NotifyFrame = function(frame) { return this.$val.NotifyFrame(frame); };
195455
195480
  Stats.ptr.prototype.NotifyScreenPing = function() {
195456
- var {_r, s, $s, $r, $c} = $restore(this, {});
195457
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195481
+ var {_r, s, $s, $deferred, $r, $c} = $restore(this, {});
195482
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195458
195483
  s = this;
195459
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195484
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195485
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195486
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195460
195487
  time.Time.copy(s.lastScreenPingAt, _r);
195461
195488
  $s = -1; return;
195462
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyScreenPing, $c: true, $r, _r, s, $s};return $f;
195489
+ /* */ } 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; } }
195463
195490
  };
195464
195491
  Stats.prototype.NotifyScreenPing = function() { return this.$val.NotifyScreenPing(); };
195465
195492
  Stats.ptr.prototype.NotifyFrameCollectionStarted = function() {
@@ -195493,9 +195520,14 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195493
195520
  };
195494
195521
  Stats.prototype.NotifyFrameCollectionDuration = function(dur) { return this.$val.NotifyFrameCollectionDuration(dur); };
195495
195522
  Stats.ptr.prototype.NotifyThrottledCollectionFrame = function() {
195496
- var s;
195523
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195524
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195497
195525
  s = this;
195526
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195527
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195498
195528
  s.currentThrottledCollectionFramesCount = s.currentThrottledCollectionFramesCount + (1) >> 0;
195529
+ $s = -1; return;
195530
+ /* */ } 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; } }
195499
195531
  };
195500
195532
  Stats.prototype.NotifyThrottledCollectionFrame = function() { return this.$val.NotifyThrottledCollectionFrame(); };
195501
195533
  Stats.ptr.prototype.NotifyFrameDecodeWriteStarted = function() {
@@ -195541,9 +195573,14 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195541
195573
  };
195542
195574
  Stats.prototype.NotifyFrameDecodeOutputEnded = function() { return this.$val.NotifyFrameDecodeOutputEnded(); };
195543
195575
  Stats.ptr.prototype.NotifyThrottledDecodeFrame = function() {
195544
- var s;
195576
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195577
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195545
195578
  s = this;
195579
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195580
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195546
195581
  s.currentThrottledDecodeFramesCount = s.currentThrottledDecodeFramesCount + (1) >> 0;
195582
+ $s = -1; return;
195583
+ /* */ } 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; } }
195547
195584
  };
195548
195585
  Stats.prototype.NotifyThrottledDecodeFrame = function() { return this.$val.NotifyThrottledDecodeFrame(); };
195549
195586
  Stats.ptr.prototype.NotifyFrameRenderStarted = function() {
@@ -195568,171 +195605,245 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195568
195605
  };
195569
195606
  Stats.prototype.NotifyFrameRenderEnded = function() { return this.$val.NotifyFrameRenderEnded(); };
195570
195607
  Stats.ptr.prototype.NotifyThrottledRenderFrame = function() {
195571
- var s;
195608
+ var {s, $s, $deferred, $r, $c} = $restore(this, {});
195609
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195572
195610
  s = this;
195611
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195612
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195573
195613
  s.currentThrottledRenderFramesCount = s.currentThrottledRenderFramesCount + (1) >> 0;
195614
+ $s = -1; return;
195615
+ /* */ } 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; } }
195574
195616
  };
195575
195617
  Stats.prototype.NotifyThrottledRenderFrame = function() { return this.$val.NotifyThrottledRenderFrame(); };
195576
195618
  Stats.ptr.prototype.GetLastFrameAt = function() {
195577
- var s;
195619
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195620
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195578
195621
  s = this;
195579
- return s.lastFrameAt;
195622
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195623
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195624
+ $24r = s.lastFrameAt;
195625
+ $s = 2; case 2: return $24r;
195626
+ /* */ } 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; } }
195580
195627
  };
195581
195628
  Stats.prototype.GetLastFrameAt = function() { return this.$val.GetLastFrameAt(); };
195582
195629
  Stats.ptr.prototype.GetLastScreenPingAt = function() {
195583
- var s;
195630
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195631
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195584
195632
  s = this;
195585
- return s.lastScreenPingAt;
195633
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195634
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195635
+ $24r = s.lastScreenPingAt;
195636
+ $s = 2; case 2: return $24r;
195637
+ /* */ } 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; } }
195586
195638
  };
195587
195639
  Stats.prototype.GetLastScreenPingAt = function() { return this.$val.GetLastScreenPingAt(); };
195588
195640
  Stats.ptr.prototype.GetLastScreenImpulseAt = function() {
195589
- var lastFrameAt, lastScreenPingAt, s;
195641
+ var {$24r, $24r$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195642
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195590
195643
  s = this;
195591
- lastScreenPingAt = $clone(s.GetLastScreenPingAt(), time.Time);
195592
- lastFrameAt = $clone(s.GetLastFrameAt(), time.Time);
195593
- if ($clone(lastScreenPingAt, time.Time).After($clone(lastFrameAt, time.Time))) {
195594
- return lastScreenPingAt;
195595
- }
195596
- return lastFrameAt;
195644
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195645
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195646
+ /* */ if ($clone(s.lastScreenPingAt, time.Time).After($clone(s.lastFrameAt, time.Time))) { $s = 2; continue; }
195647
+ /* */ $s = 3; continue;
195648
+ /* if ($clone(s.lastScreenPingAt, time.Time).After($clone(s.lastFrameAt, time.Time))) { */ case 2:
195649
+ $24r = s.lastScreenPingAt;
195650
+ $s = 4; case 4: return $24r;
195651
+ /* } */ case 3:
195652
+ $24r$1 = s.lastFrameAt;
195653
+ $s = 5; case 5: return $24r$1;
195654
+ /* */ } 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; } }
195597
195655
  };
195598
195656
  Stats.prototype.GetLastScreenImpulseAt = function() { return this.$val.GetLastScreenImpulseAt(); };
195599
195657
  Stats.ptr.prototype.GetFrameRate = function() {
195600
- var s;
195658
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195659
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195601
195660
  s = this;
195602
- return s.lastFrameRate;
195661
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195662
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195663
+ $24r = s.lastFrameRate;
195664
+ $s = 2; case 2: return $24r;
195665
+ /* */ } 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; } }
195603
195666
  };
195604
195667
  Stats.prototype.GetFrameRate = function() { return this.$val.GetFrameRate(); };
195668
+ Stats.ptr.prototype.GetLastActiveFrameRate = function() {
195669
+ var {$24r, s, $s, $deferred, $r, $c} = $restore(this, {});
195670
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195671
+ s = this;
195672
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195673
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195674
+ $24r = s.lastActiveFrameRate;
195675
+ $s = 2; case 2: return $24r;
195676
+ /* */ } 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; } }
195677
+ };
195678
+ Stats.prototype.GetLastActiveFrameRate = function() { return this.$val.GetLastActiveFrameRate(); };
195679
+ Stats.ptr.prototype.rotateFrameRate = function() {
195680
+ var s;
195681
+ s = this;
195682
+ s.lastFrameRate = s.currentFramesCount;
195683
+ s.currentFramesCount = 0;
195684
+ s.totalFramesCount = s.totalFramesCount + (s.lastFrameRate) >> 0;
195685
+ if (s.lastFrameRate > 0) {
195686
+ s.lastActiveFrameRate = s.lastFrameRate;
195687
+ }
195688
+ };
195689
+ Stats.prototype.rotateFrameRate = function() { return this.$val.rotateFrameRate(); };
195605
195690
  Stats.ptr.prototype.startCalculations = function() {
195606
- 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, {});
195691
+ var {_arg, _r, _r$1, _selection, _selection$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195607
195692
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195608
195693
  s = this;
195609
195694
  $deferred.push([function(_arg) { $close(_arg); }, [s.calcStopped]]);
195610
195695
  /* while (true) { */ case 1:
195611
- /* if (!(!s.stopped)) { break; } */ if(!(!s.stopped)) { $s = 2; continue; }
195612
- s.lastFrameRate = s.currentFramesCount;
195613
- s.currentFramesCount = 0;
195614
- s.totalFramesCount = s.totalFramesCount + (s.lastFrameRate) >> 0;
195615
- s.lastThrottledCollectionFrameRate = s.currentThrottledCollectionFramesCount;
195616
- s.currentThrottledCollectionFramesCount = 0;
195617
- s.lastThrottledDecodeFrameRate = s.currentThrottledDecodeFramesCount;
195618
- s.currentThrottledDecodeFramesCount = 0;
195619
- s.lastThrottledRenderFrameRate = s.currentThrottledRenderFramesCount;
195620
- s.currentThrottledRenderFramesCount = 0;
195621
- _r = s.metrics.GetAverage("frame_latency"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195622
- s.lastFramesLatencyAverage = (_r);
195623
- _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; }
195624
- s.lastFramesLatencyVariance = (_r$1);
195625
- $r = s.metrics.Reset("frame_latency"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195626
- _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; }
195627
- s.lastFramesCollectionAverage = _r$2;
195628
- _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; }
195629
- s.lastFramesCollectionVariance = _r$3;
195630
- $r = s.metrics.Reset("frame_collection"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195631
- _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; }
195632
- s.lastFramesDecodeWriteAverage = _r$4;
195633
- _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; }
195634
- s.lastFramesDecodeWriteVariance = _r$5;
195635
- $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; }
195636
- _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; }
195637
- s.lastFramesDecodeOutputAverage = _r$6;
195638
- _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; }
195639
- s.lastFramesDecodeOutputVariance = _r$7;
195640
- $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; }
195641
- _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; }
195642
- s.lastFramesRenderAverage = _r$8;
195643
- _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; }
195644
- s.lastFramesRenderVariance = _r$9;
195645
- $r = s.metrics.Reset("frame_render"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195646
- $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; }
195647
- _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; }
195648
- s.longTermFramesLatencyAverage = _r$10;
195649
- _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; }
195650
- s.longTermFramesLatencyVariance = _r$11;
195651
- $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; }
195652
- _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; }
195653
- s.longTermFramesCollectionAverage = _r$12;
195654
- _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; }
195655
- s.longTermFramesCollectionVariance = _r$13;
195656
- $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; }
195657
- _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; }
195658
- s.longTermFramesDecodeWriteAverage = _r$14;
195659
- _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; }
195660
- s.longTermFramesDecodeWriteVariance = _r$15;
195661
- $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; }
195662
- _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; }
195663
- s.longTermFramesDecodeOutputAverage = _r$16;
195664
- _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; }
195665
- s.longTermFramesDecodeOutputVariance = _r$17;
195666
- $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; }
195667
- _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; }
195668
- s.longTermFramesRenderAverage = _r$18;
195669
- _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; }
195670
- s.longTermFramesRenderVariance = _r$19;
195671
- $r = s.print(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195672
- _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; }
195673
- _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; }
195674
- _selection = _r$21;
195675
- /* */ if (_selection[0] === 0) { $s = 36; continue; }
195676
- /* */ if (_selection[0] === 1) { $s = 37; continue; }
195677
- /* */ $s = 38; continue;
195678
- /* if (_selection[0] === 0) { */ case 36:
195679
- $s = 38; continue;
195680
- /* } else if (_selection[0] === 1) { */ case 37:
195681
- $s = 39; case 39: return;
195682
- /* } */ case 38:
195696
+ _selection = $select([[s.done], []]);
195697
+ /* */ if (_selection[0] === 0) { $s = 3; continue; }
195698
+ /* */ if (_selection[0] === 1) { $s = 4; continue; }
195699
+ /* */ $s = 5; continue;
195700
+ /* if (_selection[0] === 0) { */ case 3:
195701
+ $s = 6; case 6: return;
195702
+ /* } else if (_selection[0] === 1) { */ case 4:
195703
+ /* } */ case 5:
195704
+ $r = s.calculate(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195705
+ _r = time.After(new time.Duration(0, 1000000000)); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195706
+ _r$1 = $select([[_r], [s.done]]); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195707
+ _selection$1 = _r$1;
195708
+ /* */ if (_selection$1[0] === 0) { $s = 10; continue; }
195709
+ /* */ if (_selection$1[0] === 1) { $s = 11; continue; }
195710
+ /* */ $s = 12; continue;
195711
+ /* if (_selection$1[0] === 0) { */ case 10:
195712
+ $s = 12; continue;
195713
+ /* } else if (_selection$1[0] === 1) { */ case 11:
195714
+ $s = 13; case 13: return;
195715
+ /* } */ case 12:
195683
195716
  $s = 1; continue;
195684
195717
  case 2:
195685
195718
  $s = -1; return;
195686
- /* */ } 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; } }
195719
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Stats.ptr.prototype.startCalculations, $c: true, $r, _arg, _r, _r$1, _selection, _selection$1, s, $s, $deferred};return $f; } }
195687
195720
  };
195688
195721
  Stats.prototype.startCalculations = function() { return this.$val.startCalculations(); };
195689
- Stats.ptr.prototype.print = function() {
195690
- var {s, $s, $r, $c} = $restore(this, {});
195722
+ Stats.ptr.prototype.calculate = function() {
195723
+ var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, args, s, $s, $r, $c} = $restore(this, {});
195691
195724
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195692
195725
  s = this;
195693
- $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; }
195694
- $s = -1; return;
195695
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.print, $c: true, $r, s, $s};return $f;
195726
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195727
+ s.rotateFrameRate();
195728
+ s.lastThrottledCollectionFrameRate = s.currentThrottledCollectionFramesCount;
195729
+ s.currentThrottledCollectionFramesCount = 0;
195730
+ s.lastThrottledDecodeFrameRate = s.currentThrottledDecodeFramesCount;
195731
+ s.currentThrottledDecodeFramesCount = 0;
195732
+ s.lastThrottledRenderFrameRate = s.currentThrottledRenderFramesCount;
195733
+ s.currentThrottledRenderFramesCount = 0;
195734
+ _r = s.metrics.GetAverage("frame_latency"); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195735
+ s.lastFramesLatencyAverage = (_r);
195736
+ _r$1 = s.metrics.GetVariance("frame_latency"); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195737
+ s.lastFramesLatencyVariance = (_r$1);
195738
+ $r = s.metrics.Reset("frame_latency"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195739
+ _r$2 = s.metrics.GetAverage("frame_collection"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195740
+ s.lastFramesCollectionAverage = _r$2;
195741
+ _r$3 = s.metrics.GetVariance("frame_collection"); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
195742
+ s.lastFramesCollectionVariance = _r$3;
195743
+ $r = s.metrics.Reset("frame_collection"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195744
+ _r$4 = s.metrics.GetAverage("frame_decode_write"); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
195745
+ s.lastFramesDecodeWriteAverage = _r$4;
195746
+ _r$5 = s.metrics.GetVariance("frame_decode_write"); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
195747
+ s.lastFramesDecodeWriteVariance = _r$5;
195748
+ $r = s.metrics.Reset("frame_decode_write"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195749
+ _r$6 = s.metrics.GetAverage("frame_decode_output"); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
195750
+ s.lastFramesDecodeOutputAverage = _r$6;
195751
+ _r$7 = s.metrics.GetVariance("frame_decode_output"); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
195752
+ s.lastFramesDecodeOutputVariance = _r$7;
195753
+ $r = s.metrics.Reset("frame_decode_output"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195754
+ _r$8 = s.metrics.GetAverage("frame_render"); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
195755
+ s.lastFramesRenderAverage = _r$8;
195756
+ _r$9 = s.metrics.GetVariance("frame_render"); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
195757
+ s.lastFramesRenderVariance = _r$9;
195758
+ $r = s.metrics.Reset("frame_render"); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195759
+ $r = s.metrics.RemoveOldest("frame_latency_long_term", 500); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195760
+ _r$10 = s.metrics.GetAverage("frame_latency_long_term"); /* */ $s = 18; case 18: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
195761
+ s.longTermFramesLatencyAverage = _r$10;
195762
+ _r$11 = s.metrics.GetVariance("frame_latency_long_term"); /* */ $s = 19; case 19: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
195763
+ s.longTermFramesLatencyVariance = _r$11;
195764
+ $r = s.metrics.RemoveOldest("frame_collection_long_term", 500); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195765
+ _r$12 = s.metrics.GetAverage("frame_collection_long_term"); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
195766
+ s.longTermFramesCollectionAverage = _r$12;
195767
+ _r$13 = s.metrics.GetVariance("frame_collection_long_term"); /* */ $s = 22; case 22: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
195768
+ s.longTermFramesCollectionVariance = _r$13;
195769
+ $r = s.metrics.RemoveOldest("frame_decode_write_long_term", 500); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195770
+ _r$14 = s.metrics.GetAverage("frame_decode_write_long_term"); /* */ $s = 24; case 24: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
195771
+ s.longTermFramesDecodeWriteAverage = _r$14;
195772
+ _r$15 = s.metrics.GetVariance("frame_decode_write_long_term"); /* */ $s = 25; case 25: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
195773
+ s.longTermFramesDecodeWriteVariance = _r$15;
195774
+ $r = s.metrics.RemoveOldest("frame_decode_output_long_term", 500); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195775
+ _r$16 = s.metrics.GetAverage("frame_decode_output_long_term"); /* */ $s = 27; case 27: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
195776
+ s.longTermFramesDecodeOutputAverage = _r$16;
195777
+ _r$17 = s.metrics.GetVariance("frame_decode_output_long_term"); /* */ $s = 28; case 28: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
195778
+ s.longTermFramesDecodeOutputVariance = _r$17;
195779
+ $r = s.metrics.RemoveOldest("frame_render_long_term", 500); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195780
+ _r$18 = s.metrics.GetAverage("frame_render_long_term"); /* */ $s = 30; case 30: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
195781
+ s.longTermFramesRenderAverage = _r$18;
195782
+ _r$19 = s.metrics.GetVariance("frame_render_long_term"); /* */ $s = 31; case 31: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
195783
+ s.longTermFramesRenderVariance = _r$19;
195784
+ args = s.printArgs();
195785
+ $r = s.mu.Unlock(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195786
+ $r = log.Printf("fr:%d, THR: col:%d, dec:%d, ren:%d | del:\xE2\x8C\x80%dms, srv:\xE2\x8C\x80%dms | ST: lat:\xE2\x8C\x80%dms/\xC2\xB1%dms, col:\xE2\x8C\x80%dms/\xC2\xB1%dms, dec-wrt:\xE2\x8C\x80%dms/\xC2\xB1%dms dec-out:\xE2\x8C\x80%dms/\xC2\xB1%dms, ren:\xE2\x8C\x80%dms/\xC2\xB1%dms | LT:lat:\xE2\x8C\x80%dms/\xC2\xB1%dms, col:\xE2\x8C\x80%dms/\xC2\xB1%dms, dec-wrt:\xE2\x8C\x80%dms/\xC2\xB1%dms dec-out:\xE2\x8C\x80%dms/\xC2\xB1%dms, ren:\xE2\x8C\x80%dms/\xC2\xB1%dms\n", args); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195787
+ $s = -1; return;
195788
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.calculate, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, args, s, $s};return $f;
195789
+ };
195790
+ Stats.prototype.calculate = function() { return this.$val.calculate(); };
195791
+ Stats.ptr.prototype.printArgs = function() {
195792
+ var s;
195793
+ s = this;
195794
+ 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()]);
195696
195795
  };
195697
- Stats.prototype.print = function() { return this.$val.print(); };
195796
+ Stats.prototype.printArgs = function() { return this.$val.printArgs(); };
195698
195797
  Stats.ptr.prototype.GetServerTime = function() {
195699
- var {$24r, _r, _r$1, s, $s, $r, $c} = $restore(this, {});
195700
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195798
+ var {$24r, _r, _r$1, s, $s, $deferred, $r, $c} = $restore(this, {});
195799
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195701
195800
  s = this;
195702
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195703
- _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; }
195801
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195802
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195803
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195804
+ _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; }
195704
195805
  $24r = _r$1;
195705
- $s = 3; case 3: return $24r;
195706
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.GetServerTime, $c: true, $r, $24r, _r, _r$1, s, $s};return $f;
195806
+ $s = 4; case 4: return $24r;
195807
+ /* */ } 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; } }
195707
195808
  };
195708
195809
  Stats.prototype.GetServerTime = function() { return this.$val.GetServerTime(); };
195709
195810
  Stats.ptr.prototype.NotifyInteraction = function() {
195710
- var {_r, s, $s, $r, $c} = $restore(this, {});
195711
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195811
+ var {_r, s, $s, $deferred, $r, $c} = $restore(this, {});
195812
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195712
195813
  s = this;
195713
- _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195814
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195815
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195816
+ _r = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195714
195817
  time.Time.copy(s.lastInteractionAt, _r);
195715
195818
  $s = -1; return;
195716
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyInteraction, $c: true, $r, _r, s, $s};return $f;
195819
+ /* */ } 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; } }
195717
195820
  };
195718
195821
  Stats.prototype.NotifyInteraction = function() { return this.$val.NotifyInteraction(); };
195719
195822
  Stats.ptr.prototype.GetInteractionWaitMultiplier = function() {
195720
- var {_r, s, untouchedDur, $s, $r, $c} = $restore(this, {});
195823
+ var {_r, lastInteractionAt, s, untouchedDur, $s, $r, $c} = $restore(this, {});
195721
195824
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195722
195825
  s = this;
195723
- _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; }
195826
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195827
+ lastInteractionAt = $clone(s.lastInteractionAt, time.Time);
195828
+ $r = s.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195829
+ _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; }
195724
195830
  untouchedDur = _r;
195725
195831
  if (untouchedDur.Seconds() < 5) {
195726
195832
  $s = -1; return 0;
195727
195833
  }
195728
195834
  $s = -1; return 1 - (1 / (1 + (untouchedDur.Seconds())));
195729
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.GetInteractionWaitMultiplier, $c: true, $r, _r, s, untouchedDur, $s};return $f;
195835
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.GetInteractionWaitMultiplier, $c: true, $r, _r, lastInteractionAt, s, untouchedDur, $s};return $f;
195730
195836
  };
195731
195837
  Stats.prototype.GetInteractionWaitMultiplier = function() { return this.$val.GetInteractionWaitMultiplier(); };
195732
195838
  Stats.ptr.prototype.SetEncodingPreferences = function(prefs) {
195733
- var prefs, s;
195839
+ var {prefs, s, $s, $deferred, $r, $c} = $restore(this, {prefs});
195840
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
195734
195841
  s = this;
195842
+ $r = s.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195843
+ $deferred.push([$methodVal(s.mu, "Unlock"), []]);
195735
195844
  EncodingPreferences.copy(s.encodingPreferences, prefs);
195845
+ $s = -1; return;
195846
+ /* */ } 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; } }
195736
195847
  };
195737
195848
  Stats.prototype.SetEncodingPreferences = function(prefs) { return this.$val.SetEncodingPreferences(prefs); };
195738
195849
  NewMetrics = function() {
@@ -195885,11 +195996,11 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195885
195996
  return (new time.Duration(0, math.Sqrt(sum / (values.$length))));
195886
195997
  };
195887
195998
  ptrType$1.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([$String], [time.Duration], false)}];
195888
- ptrType$5.methods = [{prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}, {prop: "GetClientStats", name: "GetClientStats", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "UpdateServerTimestampAhead", name: "UpdateServerTimestampAhead", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "SetScreenResolution", name: "SetScreenResolution", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyScreenPing", name: "NotifyScreenPing", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionStarted", name: "NotifyFrameCollectionStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionEnded", name: "NotifyFrameCollectionEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionDuration", name: "NotifyFrameCollectionDuration", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "NotifyThrottledCollectionFrame", name: "NotifyThrottledCollectionFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteStarted", name: "NotifyFrameDecodeWriteStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteEnded", name: "NotifyFrameDecodeWriteEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputStarted", name: "NotifyFrameDecodeOutputStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputEnded", name: "NotifyFrameDecodeOutputEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledDecodeFrame", name: "NotifyThrottledDecodeFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderStarted", name: "NotifyFrameRenderStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderEnded", name: "NotifyFrameRenderEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledRenderFrame", name: "NotifyThrottledRenderFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenPingAt", name: "GetLastScreenPingAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenImpulseAt", name: "GetLastScreenImpulseAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "print", name: "print", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "GetServerTime", name: "GetServerTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "NotifyInteraction", name: "NotifyInteraction", pkg: "", typ: $funcType([], [], false)}, {prop: "GetInteractionWaitMultiplier", name: "GetInteractionWaitMultiplier", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "SetEncodingPreferences", name: "SetEncodingPreferences", pkg: "", typ: $funcType([EncodingPreferences], [], false)}];
195999
+ ptrType$5.methods = [{prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}, {prop: "GetClientStats", name: "GetClientStats", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "UpdateServerTimestampAhead", name: "UpdateServerTimestampAhead", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "SetScreenResolution", name: "SetScreenResolution", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyScreenPing", name: "NotifyScreenPing", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionStarted", name: "NotifyFrameCollectionStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionEnded", name: "NotifyFrameCollectionEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionDuration", name: "NotifyFrameCollectionDuration", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "NotifyThrottledCollectionFrame", name: "NotifyThrottledCollectionFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteStarted", name: "NotifyFrameDecodeWriteStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteEnded", name: "NotifyFrameDecodeWriteEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputStarted", name: "NotifyFrameDecodeOutputStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputEnded", name: "NotifyFrameDecodeOutputEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledDecodeFrame", name: "NotifyThrottledDecodeFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderStarted", name: "NotifyFrameRenderStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderEnded", name: "NotifyFrameRenderEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledRenderFrame", name: "NotifyThrottledRenderFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenPingAt", name: "GetLastScreenPingAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenImpulseAt", name: "GetLastScreenImpulseAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetLastActiveFrameRate", name: "GetLastActiveFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "rotateFrameRate", name: "rotateFrameRate", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "calculate", name: "calculate", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "printArgs", name: "printArgs", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [sliceType], false)}, {prop: "GetServerTime", name: "GetServerTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "NotifyInteraction", name: "NotifyInteraction", pkg: "", typ: $funcType([], [], false)}, {prop: "GetInteractionWaitMultiplier", name: "GetInteractionWaitMultiplier", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "SetEncodingPreferences", name: "SetEncodingPreferences", pkg: "", typ: $funcType([EncodingPreferences], [], false)}];
195889
196000
  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)}];
195890
196001
  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: ""}]);
195891
196002
  Frame.init([{prop: "GetTimestamp", name: "GetTimestamp", pkg: "", typ: $funcType([], [time.Time], false)}]);
195892
- 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: "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: ""}]);
196003
+ Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "lastFrameAt", name: "lastFrameAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "lastScreenPingAt", name: "lastScreenPingAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "stopwatch", name: "stopwatch", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "metrics", name: "metrics", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "calcStopped", name: "calcStopped", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "stopOnce", name: "stopOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "latency", name: "latency", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAhead", name: "serverTimestampAhead", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAheadBuffer", name: "serverTimestampAheadBuffer", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "currentFramesCount", name: "currentFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFrameRate", name: "lastFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastActiveFrameRate", name: "lastActiveFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalFramesCount", name: "totalFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesLatencyAverage", name: "lastFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesLatencyVariance", name: "lastFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyAverage", name: "longTermFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyVariance", name: "longTermFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionAverage", name: "lastFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionVariance", name: "lastFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionAverage", name: "longTermFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionVariance", name: "longTermFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledCollectionFramesCount", name: "currentThrottledCollectionFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledCollectionFrameRate", name: "lastThrottledCollectionFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesDecodeWriteAverage", name: "lastFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputAverage", name: "lastFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeWriteVariance", name: "lastFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputVariance", name: "lastFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteAverage", name: "longTermFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputAverage", name: "longTermFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteVariance", name: "longTermFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputVariance", name: "longTermFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledDecodeFramesCount", name: "currentThrottledDecodeFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledDecodeFrameRate", name: "lastThrottledDecodeFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesRenderAverage", name: "lastFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesRenderVariance", name: "lastFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderAverage", name: "longTermFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderVariance", name: "longTermFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledRenderFramesCount", name: "currentThrottledRenderFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledRenderFrameRate", name: "lastThrottledRenderFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "screenResolutionWidth", name: "screenResolutionWidth", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "screenResolutionHeight", name: "screenResolutionHeight", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lastInteractionAt", name: "lastInteractionAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "encodingPreferences", name: "encodingPreferences", embedded: false, exported: false, typ: EncodingPreferences, tag: ""}]);
195893
196004
  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: ""}]);
195894
196005
  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\""}]);
195895
196006
  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\""}]);
@@ -196096,24 +196207,24 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196096
196207
  /* */ if (dl.renderingInProgress) { $s = 7; continue; }
196097
196208
  /* */ $s = 8; continue;
196098
196209
  /* if (dl.renderingInProgress) { */ case 7:
196099
- dl.stats.NotifyThrottledRenderFrame();
196210
+ $r = dl.stats.NotifyThrottledRenderFrame(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196100
196211
  $24r$1 = $ifaceNil;
196101
- $s = 9; case 9: return $24r$1;
196212
+ $s = 10; case 10: return $24r$1;
196102
196213
  /* } */ case 8:
196103
196214
  dl.renderingInProgress = true;
196104
- $r = dl.stats.NotifyFrameRenderStarted(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196215
+ $r = dl.stats.NotifyFrameRenderStarted(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196105
196216
  _arg = $clone(new image.Point.ptr(0, 0), image.Point);
196106
196217
  _arg$1 = screenBuffer;
196107
- _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; }
196218
+ _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; }
196108
196219
  _arg$2 = $clone(_r$2.Rect, image.Rectangle);
196109
- $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; }
196110
- _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; }
196220
+ $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; }
196221
+ _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; }
196111
196222
  _r$3;
196112
- $r = dl.stats.NotifyFrameRenderEnded(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196113
- $r = dl.stats.NotifyFrame(frame$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196223
+ $r = dl.stats.NotifyFrameRenderEnded(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196224
+ $r = dl.stats.NotifyFrame(frame$1); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196114
196225
  dl.renderingInProgress = false;
196115
196226
  $24r$2 = $ifaceNil;
196116
- $s = 16; case 16: return $24r$2;
196227
+ $s = 17; case 17: return $24r$2;
196117
196228
  /* */ } 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; } }
196118
196229
  };
196119
196230
  RenderingLoop.prototype.renderBuffer = function() { return this.$val.renderBuffer(); };
@@ -196404,7 +196515,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196404
196515
  /* } */ case 25:
196405
196516
  $s = 21; continue;
196406
196517
  /* } else { */ case 20:
196407
- dl[0].stats.NotifyThrottledDecodeFrame();
196518
+ $r = dl[0].stats.NotifyThrottledDecodeFrame(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196408
196519
  /* } */ case 21:
196409
196520
  $s = -1; return $ifaceNil;
196410
196521
  /* */ } 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;
@@ -196524,7 +196635,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196524
196635
  case 18:
196525
196636
  $s = 17; continue;
196526
196637
  /* } else { */ case 16:
196527
- cl.stats.NotifyThrottledCollectionFrame();
196638
+ $r = cl.stats.NotifyThrottledCollectionFrame(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196528
196639
  /* } */ case 17:
196529
196640
  $s = 1; continue;
196530
196641
  case 2:
@@ -197230,7 +197341,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
197230
197341
  return $pkg;
197231
197342
  })();
197232
197343
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197233
- var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, samsungwasmdecoder, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, jswebsocketworker, player, overlaydriver, stats, videostream, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, touch, geom, image, io, log, os, path, strconv, strings, sync, js, time, ScreenWindow, Geometry, screenWindowDetachEvent, nonBlockingWindowEventSender, ProcessInfo, ProcessInfoManager, sliceType, ptrType, ptrType$1, ptrType$2, funcType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, sliceType$2, structType, interfaceType, sliceType$3, sliceType$4, arrayType, mapType, funcType$1, ptrType$15, chanType, chanType$1, chanType$2, chanType$3, chanType$4, chanType$5, chanType$6, onScreenWindowStarted, RegisterVideoStream, UnregisterVideoStream, NewScreenWindow, sendWindowEventNonBlocking, MainDriver, NewProcessInfoManager, init, registerJSBridge, newJSBridgeFacades, geometryValue;
197344
+ var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, samsungwasmdecoder, webcodecs, errs, input, message, netclient, netpacket, netstream, netframe, jswebsocketworker, player, overlaydriver, stats, videostream, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, touch, geom, image, io, log, os, path, strconv, strings, sync, js, time, ScreenWindow, Geometry, screenWindowDetachEvent, nonBlockingWindowEventSender, ProcessInfo, ProcessInfoManager, sliceType, ptrType, ptrType$1, ptrType$2, funcType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, sliceType$2, structType, interfaceType, sliceType$3, sliceType$4, arrayType, mapType, funcType$1, ptrType$15, chanType, chanType$1, chanType$2, chanType$3, chanType$4, chanType$5, chanType$6, onScreenWindowStarted, RegisterVideoStream, UnregisterVideoStream, NewScreenWindow, sendWindowEventNonBlocking, frameHealthCheckTimeout, clampedDuration, MainDriver, NewProcessInfoManager, init, registerJSBridge, newJSBridgeFacades, geometryValue;
197234
197345
  binary = $packages["encoding/binary"];
197235
197346
  json = $packages["encoding/json"];
197236
197347
  query = $packages["github.com/google/go-querystring/query"];
@@ -197241,7 +197352,6 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197241
197352
  samsungwasmdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"];
197242
197353
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
197243
197354
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
197244
- helper = $packages["github.com/supraio/client-daemon/pkg/helper"];
197245
197355
  input = $packages["github.com/supraio/client-daemon/pkg/input"];
197246
197356
  message = $packages["github.com/supraio/client-daemon/pkg/message"];
197247
197357
  netclient = $packages["github.com/supraio/client-daemon/pkg/netclient"];
@@ -197274,7 +197384,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197274
197384
  sync = $packages["sync"];
197275
197385
  js = $packages["syscall/js"];
197276
197386
  time = $packages["time"];
197277
- 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_) {
197387
+ 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_) {
197278
197388
  this.$val = this;
197279
197389
  if (arguments.length === 0) {
197280
197390
  this.processInfoManager = ptrType.nil;
@@ -197316,6 +197426,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197316
197426
  this.winCloseChannel = $chanNil;
197317
197427
  this.eventLoopStop = $chanNil;
197318
197428
  this.eventLoopDone = $chanNil;
197429
+ this.windowSizeMu = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0);
197319
197430
  this.windowSize = new image.Point.ptr(0, 0);
197320
197431
  this.geometry = ptrType$14.nil;
197321
197432
  return;
@@ -197359,6 +197470,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197359
197470
  this.winCloseChannel = winCloseChannel_;
197360
197471
  this.eventLoopStop = eventLoopStop_;
197361
197472
  this.eventLoopDone = eventLoopDone_;
197473
+ this.windowSizeMu = windowSizeMu_;
197362
197474
  this.windowSize = windowSize_;
197363
197475
  this.geometry = geometry_;
197364
197476
  });
@@ -197502,9 +197614,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197502
197614
  };
197503
197615
  ScreenWindow.prototype.Geometry = function() { return this.$val.Geometry(); };
197504
197616
  ScreenWindow.ptr.prototype.SetEncodingPreferences = function(prefs) {
197505
- var prefs, w;
197617
+ var {prefs, w, $s, $r, $c} = $restore(this, {prefs});
197618
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197506
197619
  w = this;
197507
- w.stats.SetEncodingPreferences($clone(prefs, stats.EncodingPreferences));
197620
+ $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; }
197621
+ $s = -1; return;
197622
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.SetEncodingPreferences, $c: true, $r, prefs, w, $s};return $f;
197508
197623
  };
197509
197624
  ScreenWindow.prototype.SetEncodingPreferences = function(prefs) { return this.$val.SetEncodingPreferences(prefs); };
197510
197625
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, forceScreenSize, timeoutDuration, encodingPreferences, geometry) {
@@ -197512,8 +197627,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197512
197627
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197513
197628
  _r = stats.NewStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197514
197629
  s = _r;
197515
- s.SetEncodingPreferences($clone(encodingPreferences, stats.EncodingPreferences));
197516
- $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);
197630
+ $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; }
197631
+ $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);
197517
197632
  /* */ } 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;
197518
197633
  };
197519
197634
  $pkg.NewScreenWindow = NewScreenWindow;
@@ -197751,14 +197866,17 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197751
197866
  if (!_1) {
197752
197867
  /* break; */ $s = 3; continue;
197753
197868
  }
197754
- if (!(w[0].forceScreenSize === ptrType$1.nil)) {
197755
- w[0].stats.SetScreenResolution(w[0].forceScreenSize);
197756
- } else {
197757
- w[0].stats.SetScreenResolution(point);
197758
- }
197869
+ /* */ if (!(w[0].forceScreenSize === ptrType$1.nil)) { $s = 5; continue; }
197870
+ /* */ $s = 6; continue;
197871
+ /* if (!(w[0].forceScreenSize === ptrType$1.nil)) { */ case 5:
197872
+ $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; }
197873
+ $s = 7; continue;
197874
+ /* } else { */ case 6:
197875
+ $r = w[0].stats.SetScreenResolution(point); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197876
+ /* } */ case 7:
197759
197877
  $s = 2; continue;
197760
197878
  case 3:
197761
- $r = closeResChan(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197879
+ $r = closeResChan(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197762
197880
  $s = -1; return;
197763
197881
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _1, _2, _r, _r$1, _tuple, _tuple$1, closeResChan, point, resChan, $s};return $f;
197764
197882
  }; })(eventLoopDone, eventLoopStop, w, window$1, windowChannel), []);
@@ -197874,36 +197992,36 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197874
197992
  /* } else if (_selection$3[0] === 1) { */ case 34:
197875
197993
  $s = 36; case 36: return;
197876
197994
  /* } */ case 35:
197877
- image.Point.copy(w[0].windowSize, $clone(e$4, size.Event).Size());
197878
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197995
+ $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; }
197996
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197879
197997
  $s = 15; continue;
197880
197998
  /* } else if ($assertType(_ref, focus.Event, true)[1]) { */ case 13:
197881
197999
  e$5 = $clone(_ref.$val, focus.Event);
197882
- _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; }
198000
+ _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; }
197883
198001
  _selection$4 = _r$5;
197884
- /* */ if (_selection$4[0] === 0) { $s = 39; continue; }
197885
- /* */ if (_selection$4[0] === 1) { $s = 40; continue; }
197886
- /* */ $s = 41; continue;
197887
- /* if (_selection$4[0] === 0) { */ case 39:
197888
- $s = 41; continue;
197889
- /* } else if (_selection$4[0] === 1) { */ case 40:
197890
- $s = 42; case 42: return;
197891
- /* } */ case 41:
197892
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198002
+ /* */ if (_selection$4[0] === 0) { $s = 40; continue; }
198003
+ /* */ if (_selection$4[0] === 1) { $s = 41; continue; }
198004
+ /* */ $s = 42; continue;
198005
+ /* if (_selection$4[0] === 0) { */ case 40:
198006
+ $s = 42; continue;
198007
+ /* } else if (_selection$4[0] === 1) { */ case 41:
198008
+ $s = 43; case 43: return;
198009
+ /* } */ case 42:
198010
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197893
198011
  $s = 15; continue;
197894
198012
  /* } else if ($assertType(_ref, touch.Event, true)[1]) { */ case 14:
197895
198013
  e$6 = $clone(_ref.$val, touch.Event);
197896
- _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; }
198014
+ _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; }
197897
198015
  _selection$5 = _r$6;
197898
- /* */ if (_selection$5[0] === 0) { $s = 45; continue; }
197899
- /* */ if (_selection$5[0] === 1) { $s = 46; continue; }
197900
- /* */ $s = 47; continue;
197901
- /* if (_selection$5[0] === 0) { */ case 45:
197902
- $s = 47; continue;
197903
- /* } else if (_selection$5[0] === 1) { */ case 46:
197904
- $s = 48; case 48: return;
197905
- /* } */ case 47:
197906
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198016
+ /* */ if (_selection$5[0] === 0) { $s = 46; continue; }
198017
+ /* */ if (_selection$5[0] === 1) { $s = 47; continue; }
198018
+ /* */ $s = 48; continue;
198019
+ /* if (_selection$5[0] === 0) { */ case 46:
198020
+ $s = 48; continue;
198021
+ /* } else if (_selection$5[0] === 1) { */ case 47:
198022
+ $s = 49; case 49: return;
198023
+ /* } */ case 48:
198024
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197907
198025
  /* } */ case 15:
197908
198026
  $s = 1; continue;
197909
198027
  case 2:
@@ -198174,13 +198292,39 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198174
198292
  return netclient.NewMessageSender(w.screenConn);
198175
198293
  };
198176
198294
  ScreenWindow.prototype.createScreenSender = function() { return this.$val.createScreenSender(); };
198295
+ ScreenWindow.ptr.prototype.setWindowSize = function(windowSize) {
198296
+ var {w, windowSize, $s, $deferred, $r, $c} = $restore(this, {windowSize});
198297
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
198298
+ w = this;
198299
+ $r = w.windowSizeMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198300
+ $deferred.push([$methodVal(w.windowSizeMu, "Unlock"), []]);
198301
+ image.Point.copy(w.windowSize, windowSize);
198302
+ $s = -1; return;
198303
+ /* */ } 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; } }
198304
+ };
198305
+ ScreenWindow.prototype.setWindowSize = function(windowSize) { return this.$val.setWindowSize(windowSize); };
198306
+ ScreenWindow.ptr.prototype.getWindowSize = function() {
198307
+ var {$24r, w, $s, $deferred, $r, $c} = $restore(this, {});
198308
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
198309
+ w = this;
198310
+ $r = w.windowSizeMu.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198311
+ $deferred.push([$methodVal(w.windowSizeMu, "RUnlock"), []]);
198312
+ $24r = w.windowSize;
198313
+ $s = 2; case 2: return $24r;
198314
+ /* */ } 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; } }
198315
+ };
198316
+ ScreenWindow.prototype.getWindowSize = function() { return this.$val.getWindowSize(); };
198177
198317
  ScreenWindow.ptr.prototype.getEventMultiplier = function() {
198178
- var w;
198318
+ var {_r, w, windowSize, $s, $r, $c} = $restore(this, {});
198319
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198179
198320
  w = this;
198180
- if (!(w.forceScreenSize === ptrType$1.nil)) {
198181
- return new geom.Point.ptr(($fround((w.forceScreenSize.X) / (w.windowSize.X))), ($fround((w.forceScreenSize.Y) / (w.windowSize.Y))));
198321
+ _r = w.getWindowSize(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198322
+ windowSize = $clone(_r, image.Point);
198323
+ if (!(w.forceScreenSize === ptrType$1.nil) && windowSize.X > 0 && windowSize.Y > 0) {
198324
+ $s = -1; return new geom.Point.ptr(($fround((w.forceScreenSize.X) / (windowSize.X))), ($fround((w.forceScreenSize.Y) / (windowSize.Y))));
198182
198325
  }
198183
- return new geom.Point.ptr(1, 1);
198326
+ $s = -1; return new geom.Point.ptr(1, 1);
198327
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.getEventMultiplier, $c: true, $r, _r, w, windowSize, $s};return $f;
198184
198328
  };
198185
198329
  ScreenWindow.prototype.getEventMultiplier = function() { return this.$val.getEventMultiplier(); };
198186
198330
  ScreenWindow.ptr.prototype.startTimestampSyncing = function() {
@@ -198214,9 +198358,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198214
198358
  latencyEnd = $clone(_r$3, time.Time);
198215
198359
  serverLatency = $div64($clone(latencyEnd, time.Time).Sub($clone(latencyStart, time.Time)), new time.Duration(0, 2), false);
198216
198360
  serverTimestampAhead = $clone($clone(serverTimestamp, time.Time).Add(serverLatency), time.Time).Sub($clone(latencyEnd, time.Time));
198217
- w.stats.SetLatency(serverLatency);
198218
- w.stats.UpdateServerTimestampAhead(serverTimestampAhead);
198219
- $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; }
198361
+ $r = w.stats.SetLatency(serverLatency); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198362
+ $r = w.stats.UpdateServerTimestampAhead(serverTimestampAhead); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198363
+ $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; }
198220
198364
  $s = 1; continue;
198221
198365
  case 2:
198222
198366
  $s = -1; return;
@@ -198253,42 +198397,60 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198253
198397
  };
198254
198398
  ScreenWindow.prototype.startStatsSyncing = function() { return this.$val.startStatsSyncing(); };
198255
198399
  ScreenWindow.ptr.prototype.sendStats = function() {
198256
- var {_r, _r$1, _r$2, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s, $r, $c} = $restore(this, {});
198400
+ var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, clientStats, data, err, inputSnapshot, w, $s, $r, $c} = $restore(this, {});
198257
198401
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198258
198402
  w = this;
198259
- clientStats = w.stats.GetClientStats();
198260
- _r = w.eventMetrics.Snapshot(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198261
- inputSnapshot = $clone(_r, input.InputSnapshot);
198403
+ _r = w.stats.GetClientStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198404
+ clientStats = _r;
198405
+ _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; }
198406
+ inputSnapshot = $clone(_r$1, input.InputSnapshot);
198262
198407
  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));
198263
- _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; }
198264
- _tuple = _r$1;
198408
+ _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; }
198409
+ _tuple = _r$2;
198265
198410
  data = _tuple[0];
198266
198411
  err = _tuple[1];
198267
198412
  if (!($interfaceIsEqual(err, $ifaceNil))) {
198268
198413
  $s = -1; return err;
198269
198414
  }
198270
- _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; }
198271
- _tuple$1 = _r$2;
198415
+ _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; }
198416
+ _tuple$1 = _r$3;
198272
198417
  err = _tuple$1[1];
198273
198418
  $s = -1; return err;
198274
- /* */ } 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;
198419
+ /* */ } 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;
198275
198420
  };
198276
198421
  ScreenWindow.prototype.sendStats = function() { return this.$val.sendStats(); };
198277
198422
  ScreenWindow.ptr.prototype.getFrameHealthCheckTimeout = function() {
198278
- var clampedTimeoutMs, frameDurationMs, framerate, timeoutMs, w;
198423
+ var {$24r, _r, _r$1, w, $s, $r, $c} = $restore(this, {});
198424
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198279
198425
  w = this;
198280
- framerate = w.stats.GetFrameRate();
198281
- if (framerate === 0) {
198426
+ _r = w.stats.GetLastActiveFrameRate(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198427
+ _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; }
198428
+ $24r = _r$1;
198429
+ $s = 3; case 3: return $24r;
198430
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.getFrameHealthCheckTimeout, $c: true, $r, $24r, _r, _r$1, w, $s};return $f;
198431
+ };
198432
+ ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
198433
+ frameHealthCheckTimeout = function(framerate) {
198434
+ var frameDuration, framerate, timeout;
198435
+ if (framerate <= 0) {
198282
198436
  return new time.Duration(2, 1410065408);
198283
198437
  }
198284
- frameDurationMs = $div64(new $Int64(0, 1), (new $Int64(0, framerate)), false);
198285
- timeoutMs = $mul64(frameDurationMs, new $Int64(0, 90));
198286
- clampedTimeoutMs = helper.ClampedInt64(timeoutMs, new $Int64(0, 3000), new $Int64(0, 10000));
198287
- return $mul64((new time.Duration(clampedTimeoutMs.$high, clampedTimeoutMs.$low)), new time.Duration(0, 1000000));
198438
+ frameDuration = $div64(new time.Duration(0, 1000000000), (new time.Duration(0, framerate)), false);
198439
+ timeout = $mul64(frameDuration, new time.Duration(0, 90));
198440
+ return clampedDuration(timeout, new time.Duration(0, 3000000000), new time.Duration(2, 1410065408));
198441
+ };
198442
+ clampedDuration = function(value, minimum, maximum) {
198443
+ var maximum, minimum, value;
198444
+ if ((value.$high < minimum.$high || (value.$high === minimum.$high && value.$low < minimum.$low))) {
198445
+ return minimum;
198446
+ }
198447
+ if ((value.$high > maximum.$high || (value.$high === maximum.$high && value.$low > maximum.$low))) {
198448
+ return maximum;
198449
+ }
198450
+ return value;
198288
198451
  };
198289
- ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
198290
198452
  ScreenWindow.ptr.prototype.startScreenHealthChecking = function() {
198291
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, err, lastImpulseAt, w, $s, $r, $c} = $restore(this, {});
198453
+ 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, {});
198292
198454
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198293
198455
  w = this;
198294
198456
  /* while (true) { */ case 1:
@@ -198300,38 +198462,41 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198300
198462
  $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; }
198301
198463
  /* continue; */ $s = 1; continue;
198302
198464
  /* } */ case 5:
198303
- lastImpulseAt = $clone(w.stats.GetLastScreenImpulseAt(), time.Time);
198304
- _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; }
198305
- _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; }
198306
- /* */ if (_r$2) { $s = 7; continue; }
198307
- /* */ $s = 8; continue;
198308
- /* if (_r$2) { */ case 7:
198309
- _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; }
198310
- err = _r$3;
198311
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; }
198312
- /* */ $s = 13; continue;
198313
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12:
198314
- $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; }
198315
- /* } */ case 13:
198316
- _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; }
198317
- /* */ if (_r$4) { $s = 15; continue; }
198465
+ _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; }
198466
+ lastImpulseAt = $clone(_r$1, time.Time);
198467
+ _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; }
198468
+ _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; }
198469
+ _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; }
198470
+ _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; }
198471
+ /* */ if (_r$5) { $s = 8; continue; }
198472
+ /* */ $s = 9; continue;
198473
+ /* if (_r$5) { */ case 8:
198474
+ _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; }
198475
+ err = _r$6;
198476
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; }
198318
198477
  /* */ $s = 16; continue;
198319
- /* if (_r$4) { */ case 15:
198320
- $s = -1; return;
198478
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15:
198479
+ $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; }
198321
198480
  /* } */ case 16:
198322
- _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; }
198323
- err = _r$5;
198324
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; }
198325
- /* */ $s = 20; continue;
198326
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19:
198327
- $r = errs.Print("Reconnecting screen", err); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198328
- /* } */ case 20:
198329
- /* } */ case 8:
198330
- $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; }
198481
+ _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; }
198482
+ /* */ if (_r$7) { $s = 18; continue; }
198483
+ /* */ $s = 19; continue;
198484
+ /* if (_r$7) { */ case 18:
198485
+ $s = -1; return;
198486
+ /* } */ case 19:
198487
+ _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; }
198488
+ err = _r$8;
198489
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 22; continue; }
198490
+ /* */ $s = 23; continue;
198491
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 22:
198492
+ $r = errs.Print("Reconnecting screen", err); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198493
+ /* } */ case 23:
198494
+ /* } */ case 9:
198495
+ $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; }
198331
198496
  $s = 1; continue;
198332
198497
  case 2:
198333
198498
  $s = -1; return;
198334
- /* */ } 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;
198499
+ /* */ } 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;
198335
198500
  };
198336
198501
  ScreenWindow.prototype.startScreenHealthChecking = function() { return this.$val.startScreenHealthChecking(); };
198337
198502
  ScreenWindow.ptr.prototype.openScreen = function() {
@@ -198872,26 +199037,27 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198872
199037
  $s = -1; return $ifaceNil;
198873
199038
  /* } */ case 6:
198874
199039
  $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; }
198875
- w[0].SetEncodingPreferences($clone(prefs[0], stats.EncodingPreferences));
199040
+ $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; }
198876
199041
  $s = -1; return $ifaceNil;
198877
199042
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, err, jsonStr, prefs, this$1, $s};return $f;
198878
199043
  }; })(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w)), js.Func);
198879
199044
  getCurrentStats[0] = $clone(js.FuncOf((function(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w) { return function $b(this$1, args) {
198880
- var {_r, _tuple, args, clientStats, data, err, this$1, $s, $r, $c} = $restore(this, {this$1, args});
199045
+ var {_r, _r$1, _tuple, args, clientStats, data, err, this$1, $s, $r, $c} = $restore(this, {this$1, args});
198881
199046
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
198882
- clientStats = w[0].stats.GetClientStats();
198883
- _r = json.Marshal(clientStats); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
198884
- _tuple = _r;
199047
+ _r = w[0].stats.GetClientStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
199048
+ clientStats = _r;
199049
+ _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; }
199050
+ _tuple = _r$1;
198885
199051
  data = _tuple[0];
198886
199052
  err = _tuple[1];
198887
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
198888
- /* */ $s = 3; continue;
198889
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
198890
- $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; }
199053
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
199054
+ /* */ $s = 4; continue;
199055
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
199056
+ $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; }
198891
199057
  $s = -1; return $ifaceNil;
198892
- /* } */ case 3:
199058
+ /* } */ case 4:
198893
199059
  $s = -1; return new $String(($bytesToString(data)));
198894
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _tuple, args, clientStats, data, err, this$1, $s};return $f;
199060
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, args, clientStats, data, err, this$1, $s};return $f;
198895
199061
  }; })(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w)), js.Func);
198896
199062
  stopScreen[0] = $clone(js.FuncOf((function(deactivateFacades, getCurrentStats, setEncodingPreferences, stopScreen, supraValue, w) { return function $b(this$1, args) {
198897
199063
  var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
@@ -198951,9 +199117,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198951
199117
  }
198952
199118
  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) }]));
198953
199119
  };
198954
- 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)}];
199120
+ 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)}];
198955
199121
  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)}];
198956
- 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: ""}]);
199122
+ 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: ""}]);
198957
199123
  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\""}]);
198958
199124
  screenWindowDetachEvent.init("", []);
198959
199125
  nonBlockingWindowEventSender.init([{prop: "SendNonBlocking", name: "SendNonBlocking", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}]);
@@ -198972,39 +199138,38 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198972
199138
  $r = samsungwasmdecoder.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198973
199139
  $r = webcodecs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198974
199140
  $r = errs.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198975
- $r = helper.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198976
- $r = input.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198977
- $r = message.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198978
- $r = netclient.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198979
- $r = netpacket.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198980
- $r = netstream.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198981
- $r = netframe.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198982
- $r = jswebsocketworker.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198983
- $r = player.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198984
- $r = overlaydriver.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198985
- $r = stats.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198986
- $r = videostream.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198987
- $r = window.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198988
- $r = canvasdriver.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198989
- $r = webgldriver.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198990
- $r = screen.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198991
- $r = focus.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198992
- $r = key.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198993
- $r = lifecycle.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198994
- $r = mouse.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198995
- $r = size.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198996
- $r = touch.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198997
- $r = geom.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198998
- $r = image.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198999
- $r = io.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199000
- $r = log.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199001
- $r = os.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199002
- $r = path.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199003
- $r = strconv.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199004
- $r = strings.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199005
- $r = sync.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199006
- $r = js.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199007
- $r = time.$init(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199141
+ $r = input.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199142
+ $r = message.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199143
+ $r = netclient.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199144
+ $r = netpacket.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199145
+ $r = netstream.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199146
+ $r = netframe.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199147
+ $r = jswebsocketworker.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199148
+ $r = player.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199149
+ $r = overlaydriver.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199150
+ $r = stats.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199151
+ $r = videostream.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199152
+ $r = window.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199153
+ $r = canvasdriver.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199154
+ $r = webgldriver.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199155
+ $r = screen.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199156
+ $r = focus.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199157
+ $r = key.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199158
+ $r = lifecycle.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199159
+ $r = mouse.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199160
+ $r = size.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199161
+ $r = touch.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199162
+ $r = geom.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199163
+ $r = image.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199164
+ $r = io.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199165
+ $r = log.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199166
+ $r = os.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199167
+ $r = path.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199168
+ $r = strconv.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199169
+ $r = strings.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199170
+ $r = sync.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199171
+ $r = js.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199172
+ $r = time.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
199008
199173
  onScreenWindowStarted = $throwNilPointerError;
199009
199174
  init();
199010
199175
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;