@supraio/client-daemon-js 0.0.0-mznacl.258 → 0.0.0-mznacl.262

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.
@@ -180241,39 +180241,45 @@ $packages["github.com/supraio/client-daemon/pkg/clipboard"] = (function() {
180241
180241
  var {_r, _r$1, _r$2, _r$3, _tuple, c, err, errMessage, jsValue, readTextFn, x, $s, $r, $c} = $restore(this, {});
180242
180242
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180243
180243
  c = this;
180244
- readTextFn = $clone($clone(c.clipboard, js.Value).Get("readText"), js.Value);
180245
- /* */ if ($clone(readTextFn, js.Value).IsUndefined()) { $s = 1; continue; }
180244
+ /* */ if ($clone(c.clipboard, js.Value).IsUndefined()) { $s = 1; continue; }
180246
180245
  /* */ $s = 2; continue;
180247
- /* if ($clone(readTextFn, js.Value).IsUndefined()) { */ case 1:
180246
+ /* if ($clone(c.clipboard, js.Value).IsUndefined()) { */ case 1:
180248
180247
  $r = log.Println(new sliceType([new $String("Clipboard is not supported in the browser")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180249
180248
  $s = -1; return;
180250
180249
  /* } */ case 2:
180251
- /* while (true) { */ case 4:
180252
- _r = $clone(readTextFn, js.Value).Call("call", new sliceType([(x = c.clipboard, new x.constructor.elem(x))])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180253
- _r$1 = jshelper.Await($clone(_r, js.Value)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
180250
+ readTextFn = $clone($clone(c.clipboard, js.Value).Get("readText"), js.Value);
180251
+ /* */ if ($clone(readTextFn, js.Value).IsUndefined()) { $s = 4; continue; }
180252
+ /* */ $s = 5; continue;
180253
+ /* if ($clone(readTextFn, js.Value).IsUndefined()) { */ case 4:
180254
+ $r = log.Println(new sliceType([new $String("Clipboard readText is not supported in the browser")])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180255
+ $s = -1; return;
180256
+ /* } */ case 5:
180257
+ /* while (true) { */ case 7:
180258
+ _r = $clone(readTextFn, js.Value).Call("call", new sliceType([(x = c.clipboard, new x.constructor.elem(x))])); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180259
+ _r$1 = jshelper.Await($clone(_r, js.Value)); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
180254
180260
  _tuple = _r$1;
180255
180261
  jsValue = _tuple[0];
180256
180262
  err = _tuple[1];
180257
- /* */ if (!(err === ptrType$1.nil)) { $s = 8; continue; }
180258
- /* */ $s = 9; continue;
180259
- /* if (!(err === ptrType$1.nil)) { */ case 8:
180263
+ /* */ if (!(err === ptrType$1.nil)) { $s = 11; continue; }
180264
+ /* */ $s = 12; continue;
180265
+ /* if (!(err === ptrType$1.nil)) { */ case 11:
180260
180266
  errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
180261
- /* */ if (errMessage === "Document is not focused.") { $s = 10; continue; }
180262
- /* */ $s = 11; continue;
180263
- /* if (errMessage === "Document is not focused.") { */ case 10:
180264
- _r$2 = c.whenFocused(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
180265
- _r$3 = jshelper.Await($clone(_r$2, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
180267
+ /* */ if (errMessage === "Document is not focused.") { $s = 13; continue; }
180268
+ /* */ $s = 14; continue;
180269
+ /* if (errMessage === "Document is not focused.") { */ case 13:
180270
+ _r$2 = c.whenFocused(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
180271
+ _r$3 = jshelper.Await($clone(_r$2, js.Value)); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
180266
180272
  _r$3;
180267
- /* continue; */ $s = 4; continue;
180268
- /* } */ case 11:
180269
- $r = log.Println(new sliceType([new $String("Error getting clipboard value"), new $String(errMessage)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180270
- $r = time.Sleep(new time.Duration(2, 1410065408)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180271
- /* continue; */ $s = 4; continue;
180272
- /* } */ case 9:
180273
- $r = c.updateClipboardIfChanged($clone(new UpdateClipboardInfo.ptr($clone(jsValue, js.Value).String()), UpdateClipboardInfo)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180274
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180275
- $s = 4; continue;
180276
- case 5:
180273
+ /* continue; */ $s = 7; continue;
180274
+ /* } */ case 14:
180275
+ $r = log.Println(new sliceType([new $String("Error getting clipboard value"), new $String(errMessage)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180276
+ $r = time.Sleep(new time.Duration(2, 1410065408)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180277
+ /* continue; */ $s = 7; continue;
180278
+ /* } */ case 12:
180279
+ $r = c.updateClipboardIfChanged($clone(new UpdateClipboardInfo.ptr($clone(jsValue, js.Value).String()), UpdateClipboardInfo)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180280
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180281
+ $s = 7; continue;
180282
+ case 8:
180277
180283
  $s = -1; return;
180278
180284
  /* */ } return; } var $f = {$blk: JsClipboard.ptr.prototype.runPeriodicChecking, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, c, err, errMessage, jsValue, readTextFn, x, $s};return $f;
180279
180285
  };
@@ -190150,416 +190156,137 @@ $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function()
190150
190156
  $pkg.$init = $init;
190151
190157
  return $pkg;
190152
190158
  })();
190153
- $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"] = (function() {
190154
- var $pkg = {}, $init, focus, key, mouse, size, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
190155
- focus = $packages["golang.org/x/mobile/event/focus"];
190156
- key = $packages["golang.org/x/mobile/event/key"];
190157
- mouse = $packages["golang.org/x/mobile/event/mouse"];
190158
- size = $packages["golang.org/x/mobile/event/size"];
190159
- geom = $packages["golang.org/x/mobile/geom"];
190160
- math = $packages["math"];
190161
- strings = $packages["strings"];
190159
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function() {
190160
+ var $pkg = {}, $init, errs, jshelper, general, js, NaClDecoder, ptrType, sliceType, sliceType$1, ptrType$1, NewDecoder;
190161
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190162
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190163
+ general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190162
190164
  js = $packages["syscall/js"];
190163
- DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", true, function(eventChan_, releases_) {
190165
+ NaClDecoder = $pkg.NaClDecoder = $newType(0, $kindStruct, "nacldecoder.NaClDecoder", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder", true, function(jsNaClDecoder_) {
190164
190166
  this.$val = this;
190165
190167
  if (arguments.length === 0) {
190166
- this.eventChan = $chanNil;
190167
- this.releases = sliceType$1.nil;
190168
+ this.jsNaClDecoder = ptrType.nil;
190168
190169
  return;
190169
190170
  }
190170
- this.eventChan = eventChan_;
190171
- this.releases = releases_;
190171
+ this.jsNaClDecoder = jsNaClDecoder_;
190172
190172
  });
190173
+ ptrType = $ptrType(js.Value);
190173
190174
  sliceType = $sliceType($emptyInterface);
190174
- funcType = $funcType([], [], false);
190175
- sliceType$1 = $sliceType(funcType);
190176
- sliceType$2 = $sliceType($Int32);
190177
- chanType = $chanType($emptyInterface, false, false);
190178
- ptrType = $ptrType(DomEvents);
190179
- GetDocWidth = function() {
190180
- return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
190181
- };
190182
- $pkg.GetDocWidth = GetDocWidth;
190183
- GetDocHeight = function() {
190184
- return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
190185
- };
190186
- $pkg.GetDocHeight = GetDocHeight;
190187
- GetOrientation = function() {
190188
- var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
190189
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190190
- orientation = [orientation];
190191
- orientation[0] = 0;
190192
- $deferred.push([(function(orientation) { return function() {
190193
- if (!($interfaceIsEqual($recover(), $ifaceNil))) {
190194
- orientation[0] = 0;
190195
- }
190196
- }; })(orientation), []]);
190197
- orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
190198
- /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
190199
- /* */ $s = 2; continue;
190200
- /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
190201
- orientation[0] = 2;
190202
- $24r = orientation[0];
190203
- $s = 3; case 3: return $24r;
190204
- /* } */ case 2:
190205
- /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
190206
- /* */ $s = 5; continue;
190207
- /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
190208
- orientation[0] = 2;
190209
- $24r$1 = orientation[0];
190210
- $s = 6; case 6: return $24r$1;
190211
- /* } */ case 5:
190212
- orientation[0] = 0;
190213
- $24r$2 = orientation[0];
190214
- $s = 7; case 7: return $24r$2;
190215
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation[0]; } if($curGoroutine.asleep) { var $f = {$blk: GetOrientation, $c: true, $r, $24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred};return $f; } }
190216
- };
190217
- $pkg.GetOrientation = GetOrientation;
190218
- NewDomEvents = function() {
190219
- return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
190220
- };
190221
- $pkg.NewDomEvents = NewDomEvents;
190222
- DomEvents.ptr.prototype.GetEventChan = function() {
190223
- var d;
190224
- d = this;
190225
- return d.eventChan;
190175
+ sliceType$1 = $sliceType($Uint8);
190176
+ ptrType$1 = $ptrType(NaClDecoder);
190177
+ NewDecoder = function(header) {
190178
+ var header;
190179
+ return new NaClDecoder.ptr(ptrType.nil);
190226
190180
  };
190227
- DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
190228
- DomEvents.ptr.prototype.Release = function() {
190229
- var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
190181
+ $pkg.NewDecoder = NewDecoder;
190182
+ NaClDecoder.ptr.prototype.initialize = function(param) {
190183
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, config, err, initPromise, initResult, jsNaClDecoder, m, param, x, $s, $r, $c} = $restore(this, {param});
190230
190184
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190231
- d = this;
190232
- _ref = d.releases;
190233
- _i = 0;
190234
- /* while (true) { */ case 1:
190235
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190236
- release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
190237
- $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190238
- _i++;
190239
- $s = 1; continue;
190240
- case 2:
190241
- $s = -1; return;
190242
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
190185
+ jsNaClDecoder = [jsNaClDecoder];
190186
+ m = this;
190187
+ jsNaClDecoder[0] = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190188
+ _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190189
+ config = $clone(_r, js.Value);
190190
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190191
+ _arg = (x = _r$1, new x.constructor.elem(x));
190192
+ $r = $clone(config, js.Value).Set("graphics3DContext", _arg); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190193
+ $clone(config, js.Value).Set("profile", new $Int(0));
190194
+ $clone(config, js.Value).Set("acceleration", new $Int(2));
190195
+ $clone(config, js.Value).Set("minPictureCount", new $Int(0));
190196
+ _r$2 = $clone(jsNaClDecoder[0], js.Value).Call("initialize", new sliceType([new config.constructor.elem(config)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190197
+ initPromise = $clone(_r$2, js.Value);
190198
+ _r$3 = jshelper.Await($clone(initPromise, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190199
+ _tuple = _r$3;
190200
+ initResult = _tuple[0];
190201
+ err = _tuple[1];
190202
+ /* */ if (!(err === ptrType.nil)) { $s = 6; continue; }
190203
+ /* */ $s = 7; continue;
190204
+ /* if (!(err === ptrType.nil)) { */ case 6:
190205
+ _r$4 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([err])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190206
+ $24r = _r$4;
190207
+ $s = 9; case 9: return $24r;
190208
+ /* } */ case 7:
190209
+ /* */ if (!(($clone(initResult, js.Value).Float() === 0))) { $s = 10; continue; }
190210
+ /* */ $s = 11; continue;
190211
+ /* if (!(($clone(initResult, js.Value).Float() === 0))) { */ case 10:
190212
+ _r$5 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190213
+ $24r$1 = _r$5;
190214
+ $s = 13; case 13: return $24r$1;
190215
+ /* } */ case 11:
190216
+ m.jsNaClDecoder = jsNaClDecoder[0];
190217
+ $s = -1; return $ifaceNil;
190218
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.initialize, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, config, err, initPromise, initResult, jsNaClDecoder, m, param, x, $s};return $f;
190243
190219
  };
190244
- DomEvents.prototype.Release = function() { return this.$val.Release(); };
190245
- DomEvents.ptr.prototype.BindEvents = function() {
190246
- var {d, $s, $r, $c} = $restore(this, {});
190220
+ NaClDecoder.prototype.initialize = function(param) { return this.$val.initialize(param); };
190221
+ NaClDecoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190222
+ var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, decodeAndRenderPromise, err, err$1, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190247
190223
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190248
- d = this;
190249
- $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190250
- $go($methodVal(d, "emitSizeEvent"), []);
190251
- $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190252
- $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190253
- $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190254
- $s = -1; return;
190255
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
190224
+ m = this;
190225
+ /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
190226
+ /* */ $s = 2; continue;
190227
+ /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
190228
+ /* */ if (m.jsNaClDecoder === ptrType.nil) { $s = 3; continue; }
190229
+ /* */ $s = 4; continue;
190230
+ /* if (m.jsNaClDecoder === ptrType.nil) { */ case 3:
190231
+ _r = m.initialize(nal); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190232
+ err = _r;
190233
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190234
+ $s = -1; return err;
190235
+ }
190236
+ /* } */ case 4:
190237
+ /* } */ case 2:
190238
+ /* */ if (m.jsNaClDecoder === ptrType.nil) { $s = 6; continue; }
190239
+ /* */ $s = 7; continue;
190240
+ /* if (m.jsNaClDecoder === ptrType.nil) { */ case 6:
190241
+ _r$1 = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190242
+ $24r = _r$1;
190243
+ $s = 9; case 9: return $24r;
190244
+ /* } */ case 7:
190245
+ _r$2 = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190246
+ pictureBuffer = $clone(_r$2, js.Value);
190247
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190248
+ pictureUint8Array = $clone(_r$3, js.Value);
190249
+ js.CopyBytesToJS($clone(pictureUint8Array, js.Value), nal);
190250
+ _r$4 = $clone(m.jsNaClDecoder, js.Value).Call("decodeAndRender", new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190251
+ decodeAndRenderPromise = $clone(_r$4, js.Value);
190252
+ _r$5 = jshelper.Await($clone(decodeAndRenderPromise, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190253
+ _tuple = _r$5;
190254
+ err$1 = _tuple[1];
190255
+ /* */ if (!(err$1 === ptrType.nil)) { $s = 14; continue; }
190256
+ /* */ $s = 15; continue;
190257
+ /* if (!(err$1 === ptrType.nil)) { */ case 14:
190258
+ _r$6 = errs.Errorf("Failed to decode frame: %v", new sliceType([err$1])); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190259
+ $24r$1 = _r$6;
190260
+ $s = 17; case 17: return $24r$1;
190261
+ /* } */ case 15:
190262
+ $s = -1; return $ifaceNil;
190263
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, decodeAndRenderPromise, err, err$1, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s};return $f;
190256
190264
  };
190257
- DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
190258
- DomEvents.ptr.prototype.bindSizeEvents = function() {
190259
- var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
190260
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190261
- d = [d];
190262
- onResize = [onResize];
190263
- d[0] = this;
190264
- onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
190265
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
190266
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190267
- $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190268
- $s = -1; return $ifaceNil;
190269
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
190270
- }; })(d, onResize)), js.Func);
190271
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190272
- _r;
190273
- d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
190274
- var {_r$1, $s, $r, $c} = $restore(this, {});
190275
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190276
- _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190277
- _r$1;
190278
- $clone(onResize[0], js.Func).Release();
190279
- $s = -1; return;
190280
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
190281
- }; })(d, onResize));
190282
- $s = -1; return;
190283
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
190265
+ NaClDecoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190266
+ NaClDecoder.ptr.prototype.Release = function(outputBuffer) {
190267
+ var m, outputBuffer;
190268
+ m = this;
190284
190269
  };
190285
- DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
190286
- DomEvents.ptr.prototype.emitSizeEvent = function() {
190287
- var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
190288
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190289
- d = this;
190290
- _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190291
- orientation = _r;
190292
- pixelsPerPt = 1;
190293
- width = GetDocWidth();
190294
- height = GetDocHeight();
190295
- $r = $send(d.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190296
- $s = -1; return;
190297
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
190298
- };
190299
- DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
190300
- DomEvents.ptr.prototype.bindMouseEvents = function() {
190301
- var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
190302
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190303
- d = [d];
190304
- onClick = [onClick];
190305
- onMove = [onMove];
190306
- onWheel = [onWheel];
190307
- d[0] = this;
190308
- onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190309
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190310
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190311
- _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190312
- _r;
190313
- $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), 0, getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 0), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190314
- $s = -1; return $ifaceNil;
190315
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190316
- }; })(d, onClick, onMove, onWheel)), js.Func);
190317
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190318
- _r;
190319
- onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190320
- var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190321
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190322
- _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190323
- _r$1;
190324
- $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getMouseButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getMouseDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190325
- $s = -1; return $ifaceNil;
190326
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
190327
- }; })(d, onClick, onMove, onWheel)), js.Func);
190328
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190329
- _r$1;
190330
- _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190331
- _r$2;
190332
- onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190333
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190334
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190335
- $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getWheelButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 3), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190336
- $s = -1; return $ifaceNil;
190337
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190338
- }; })(d, onClick, onMove, onWheel)), js.Func);
190339
- _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190340
- _r$3;
190341
- d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
190342
- var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
190343
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190344
- _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190345
- _r$4;
190346
- _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190347
- _r$5;
190348
- _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190349
- _r$6;
190350
- _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190351
- _r$7;
190352
- $clone(onMove[0], js.Func).Release();
190353
- $clone(onClick[0], js.Func).Release();
190354
- $clone(onWheel[0], js.Func).Release();
190355
- $s = -1; return;
190356
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
190357
- }; })(d, onClick, onMove, onWheel));
190358
- $s = -1; return;
190359
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindMouseEvents, $c: true, $r, _r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s};return $f;
190360
- };
190361
- DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
190362
- getMouseDirection = function(ev) {
190363
- var dir, ev;
190364
- dir = 0;
190365
- dir = 0;
190366
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
190367
- dir = 1;
190368
- }
190369
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
190370
- dir = 2;
190371
- }
190372
- return dir;
190373
- };
190374
- getWheelButton = function(ev) {
190375
- var deltaX, deltaY, ev;
190376
- deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
190377
- deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
190378
- if (deltaY > 0) {
190379
- return -2;
190380
- }
190381
- if (deltaY < 0) {
190382
- return -1;
190383
- }
190384
- if (deltaX > 0) {
190385
- return -4;
190386
- }
190387
- if (deltaX < 0) {
190388
- return -3;
190389
- }
190390
- return 0;
190391
- };
190392
- getMouseButton = function(ev) {
190393
- var _1, ev;
190394
- _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
190395
- if (_1 === (0)) {
190396
- return 1;
190397
- } else if (_1 === (1)) {
190398
- return 2;
190399
- } else if (_1 === (2)) {
190400
- return 3;
190401
- } else if (_1 === (3)) {
190402
- return 8;
190403
- } else if (_1 === (4)) {
190404
- return 9;
190405
- } else {
190406
- return 0;
190407
- }
190408
- };
190409
- getEventModifiers = function(ev) {
190410
- var ev, mod;
190411
- mod = 0;
190412
- if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
190413
- mod = (mod | (4)) >>> 0;
190414
- }
190415
- if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
190416
- mod = (mod | (2)) >>> 0;
190417
- }
190418
- if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
190419
- mod = (mod | (1)) >>> 0;
190420
- }
190421
- if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
190422
- mod = (mod | (8)) >>> 0;
190423
- }
190424
- return mod;
190425
- };
190426
- DomEvents.ptr.prototype.bindFocusEvents = function() {
190427
- var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
190428
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190429
- d = [d];
190430
- onFocus = [onFocus];
190431
- d[0] = this;
190432
- onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
190433
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190434
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190435
- $r = $send(d[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190436
- $s = -1; return $ifaceNil;
190437
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190438
- }; })(d, onFocus)), js.Func);
190439
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190440
- _r;
190441
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190442
- _r$1;
190443
- d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
190444
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190445
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190446
- _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190447
- _r$2;
190448
- _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190449
- _r$3;
190450
- $clone(onFocus[0], js.Func).Release();
190451
- $s = -1; return;
190452
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190453
- }; })(d, onFocus));
190454
- $s = -1; return;
190455
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
190456
- };
190457
- DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
190458
- isFocusIn = function(ev) {
190459
- var ev;
190460
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
190461
- return true;
190462
- }
190463
- return false;
190464
- };
190465
- DomEvents.ptr.prototype.bindKeyEvents = function() {
190466
- var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
190467
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190468
- d = [d];
190469
- onKey = [onKey];
190470
- d[0] = this;
190471
- onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
190472
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190473
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190474
- _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190475
- _r;
190476
- $r = $send(d[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190477
- $s = -1; return $ifaceNil;
190478
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190479
- }; })(d, onKey)), js.Func);
190480
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190481
- _r;
190482
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190483
- _r$1;
190484
- d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
190485
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190486
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190487
- _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190488
- _r$2;
190489
- _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190490
- _r$3;
190491
- $clone(onKey[0], js.Func).Release();
190492
- $s = -1; return;
190493
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190494
- }; })(d, onKey));
190495
- $s = -1; return;
190496
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
190497
- };
190498
- DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
190499
- getKeyRune = function(ev) {
190500
- var ev, key$1;
190501
- key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
190502
- if (key$1.$length === 1) {
190503
- return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
190504
- }
190505
- return -1;
190506
- };
190507
- getKeyDirection = function(ev) {
190508
- var dir, ev;
190509
- dir = 0;
190510
- dir = 0;
190511
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
190512
- dir = 1;
190513
- }
190514
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
190515
- dir = 2;
190516
- }
190517
- return dir;
190518
- };
190519
- getKeyCode = function(ev) {
190520
- var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
190521
- domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
190522
- _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
190523
- code = _tuple[0];
190524
- exists = _tuple[1];
190525
- if (exists) {
190526
- return code;
190527
- }
190528
- domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
190529
- _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
190530
- code$1 = _tuple$1[0];
190531
- exists$1 = _tuple$1[1];
190532
- if (exists$1) {
190533
- return code$1;
190534
- }
190535
- return 0;
190536
- };
190537
- ptrType.methods = [{prop: "GetEventChan", name: "GetEventChan", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "BindEvents", name: "BindEvents", pkg: "", typ: $funcType([], [], false)}, {prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}];
190538
- DomEvents.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
190539
- $init = function() {
190540
- $pkg.$init = function() {};
190541
- /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190542
- $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190543
- $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190544
- $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190545
- $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190546
- $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190547
- $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190548
- $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190549
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190550
- keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
190551
- keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
190552
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190270
+ NaClDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
190271
+ ptrType$1.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
190272
+ NaClDecoder.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder", [{prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}]);
190273
+ $init = function() {
190274
+ $pkg.$init = function() {};
190275
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190276
+ $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190277
+ $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190278
+ $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190279
+ $r = js.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190280
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190553
190281
  };
190554
190282
  $pkg.$init = $init;
190555
190283
  return $pkg;
190556
190284
  })();
190557
- $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
190558
- var $pkg = {}, $init, fmt, errs, jshelper, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
190285
+ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190286
+ var $pkg = {}, $init, fmt, dom, errscreen, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, Main, main, newScreenImpl, newBuffer;
190559
190287
  fmt = $packages["fmt"];
190560
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190561
- jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190562
- dom = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"];
190288
+ dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
190289
+ errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
190563
190290
  screen = $packages["golang.org/x/exp/shiny/screen"];
190564
190291
  f64 = $packages["golang.org/x/image/math/f64"];
190565
190292
  image = $packages["image"];
@@ -190567,23 +190294,27 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190567
190294
  draw = $packages["image/draw"];
190568
190295
  sync = $packages["sync"];
190569
190296
  js = $packages["syscall/js"];
190570
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "nacldriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(screen_, mutex_, jsNaClDecoder_, domEvents_, released_) {
190297
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_) {
190571
190298
  this.$val = this;
190572
190299
  if (arguments.length === 0) {
190573
190300
  this.screen = ptrType.nil;
190574
190301
  this.mutex = ptrType$1.nil;
190575
- this.jsNaClDecoder = new js.Value.ptr(null, false, arrayType.zero());
190576
- this.domEvents = ptrType$2.nil;
190302
+ this.canvasEl = new js.Value.ptr(null, false, arrayType.zero());
190303
+ this.ctx2d = new js.Value.ptr(null, false, arrayType.zero());
190577
190304
  this.released = false;
190305
+ this.domEvents = ptrType$2.nil;
190306
+ this.resizeCallback = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
190578
190307
  return;
190579
190308
  }
190580
190309
  this.screen = screen_;
190581
190310
  this.mutex = mutex_;
190582
- this.jsNaClDecoder = jsNaClDecoder_;
190583
- this.domEvents = domEvents_;
190311
+ this.canvasEl = canvasEl_;
190312
+ this.ctx2d = ctx2d_;
190584
190313
  this.released = released_;
190314
+ this.domEvents = domEvents_;
190315
+ this.resizeCallback = resizeCallback_;
190585
190316
  });
190586
- screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "nacldriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(doc_) {
190317
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(doc_) {
190587
190318
  this.$val = this;
190588
190319
  if (arguments.length === 0) {
190589
190320
  this.doc = new js.Value.ptr(null, false, arrayType.zero());
@@ -190591,17 +190322,33 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190591
190322
  }
190592
190323
  this.doc = doc_;
190593
190324
  });
190594
- BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "nacldriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", true, function(pictureResult_, screen_, size_) {
190325
+ YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "canvasdriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(CanvasImageSource_) {
190326
+ this.$val = this;
190327
+ if (arguments.length === 0) {
190328
+ this.CanvasImageSource = ptrType$5.nil;
190329
+ return;
190330
+ }
190331
+ this.CanvasImageSource = CanvasImageSource_;
190332
+ });
190333
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "canvasdriver.BufferImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(screen_, size_, mutex_, released_, rgba_, ycbcr_, ycbcrJS_) {
190595
190334
  this.$val = this;
190596
190335
  if (arguments.length === 0) {
190597
- this.pictureResult = ptrType$4.nil;
190598
190336
  this.screen = ptrType.nil;
190599
190337
  this.size = new image.Point.ptr(0, 0);
190338
+ this.mutex = ptrType$1.nil;
190339
+ this.released = false;
190340
+ this.rgba = new image.RGBA.ptr(sliceType$1.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
190341
+ this.ycbcr = new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
190342
+ this.ycbcrJS = ptrType$4.nil;
190600
190343
  return;
190601
190344
  }
190602
- this.pictureResult = pictureResult_;
190603
190345
  this.screen = screen_;
190604
190346
  this.size = size_;
190347
+ this.mutex = mutex_;
190348
+ this.released = released_;
190349
+ this.rgba = rgba_;
190350
+ this.ycbcr = ycbcr_;
190351
+ this.ycbcrJS = ycbcrJS_;
190605
190352
  });
190606
190353
  sliceType = $sliceType($emptyInterface);
190607
190354
  ptrType = $ptrType(screenImpl);
@@ -190610,36 +190357,78 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190610
190357
  arrayType = $arrayType(funcType, 0);
190611
190358
  ptrType$2 = $ptrType(dom.DomEvents);
190612
190359
  ptrType$3 = $ptrType(BufferImpl);
190613
- ptrType$4 = $ptrType(js.Value);
190614
- ptrType$5 = $ptrType(image.RGBA);
190615
- ptrType$6 = $ptrType(image.YCbCr);
190616
- ptrType$7 = $ptrType(screen.DrawOptions);
190617
- ptrType$8 = $ptrType(windowImpl);
190618
- ptrType$9 = $ptrType(screen.NewWindowOptions);
190360
+ sliceType$1 = $sliceType($Uint8);
190361
+ ptrType$4 = $ptrType(YCbCrJS);
190362
+ ptrType$5 = $ptrType(js.Value);
190363
+ ptrType$6 = $ptrType(screen.DrawOptions);
190364
+ ptrType$7 = $ptrType(windowImpl);
190365
+ ptrType$8 = $ptrType(screen.NewWindowOptions);
190366
+ ptrType$9 = $ptrType(image.RGBA);
190367
+ ptrType$10 = $ptrType(image.YCbCr);
190619
190368
  newWindow = function(screen$1, opts) {
190620
- var {_r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
190369
+ var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
190621
190370
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190622
- /* */ if (!(opts.Title === "")) { $s = 1; continue; }
190623
- /* */ $s = 2; continue;
190624
- /* if (!(opts.Title === "")) { */ case 1:
190625
- _r = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190626
- _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190627
- $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190628
- /* } */ case 2:
190629
- jsNaClDecoder = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190630
- /* */ if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { $s = 6; continue; }
190631
- /* */ $s = 7; continue;
190632
- /* if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { */ case 6:
190633
- _r$2 = fmt.Errorf("Cannot get naclDecoder object from global scope", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190634
- $panic(_r$2);
190635
- /* } */ case 7:
190371
+ adaptCanvas = [adaptCanvas];
190372
+ canvasEl = [canvasEl];
190373
+ _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190374
+ canvasEl[0] = $clone(_r, js.Value);
190375
+ _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType([new canvasEl[0].constructor.elem(canvasEl[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190376
+ _r$1;
190377
+ adaptCanvas[0] = (function(adaptCanvas, canvasEl) { return function() {
190378
+ var height, scale, width;
190379
+ scale = dom.GetBrowserZoomRatio();
190380
+ width = (((dom.GetScreenWidth()) / scale >> 0));
190381
+ if (!(($clone($clone(canvasEl[0], js.Value).Get("width"), js.Value).Int() === width))) {
190382
+ $clone(canvasEl[0], js.Value).Set("width", new $Int(width));
190383
+ }
190384
+ height = (((dom.GetScreenHeight()) / scale >> 0));
190385
+ if (!(($clone($clone(canvasEl[0], js.Value).Get("height"), js.Value).Int() === height))) {
190386
+ $clone(canvasEl[0], js.Value).Set("height", new $Int(height));
190387
+ }
190388
+ }; })(adaptCanvas, canvasEl);
190389
+ $r = adaptCanvas[0](); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190390
+ resizeCallback = $clone(js.FuncOf((function(adaptCanvas, canvasEl) { return function $b(this$1, args) {
190391
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
190392
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190393
+ $r = adaptCanvas[0](); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190394
+ $s = -1; return $ifaceNil;
190395
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
190396
+ }; })(adaptCanvas, canvasEl)), js.Func);
190397
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new resizeCallback.constructor.elem(resizeCallback)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190398
+ _r$2;
190399
+ /* */ if (!((opts.Width === 0))) { $s = 5; continue; }
190400
+ /* */ $s = 6; continue;
190401
+ /* if (!((opts.Width === 0))) { */ case 5:
190402
+ $r = dom.SetWindowWidth(opts.Width); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190403
+ /* } */ case 6:
190404
+ /* */ if (!((opts.Height === 0))) { $s = 8; continue; }
190405
+ /* */ $s = 9; continue;
190406
+ /* if (!((opts.Height === 0))) { */ case 8:
190407
+ $r = dom.SetWindowHeight(opts.Height); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190408
+ /* } */ case 9:
190409
+ /* */ if (!(opts.Title === "")) { $s = 11; continue; }
190410
+ /* */ $s = 12; continue;
190411
+ /* if (!(opts.Title === "")) { */ case 11:
190412
+ _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190413
+ _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190414
+ $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190415
+ /* } */ case 12:
190416
+ _r$5 = $clone(canvasEl[0], js.Value).Call("getContext", new sliceType([new $String("2d")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190417
+ ctx2d = $clone(_r$5, js.Value);
190418
+ /* */ if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { $s = 17; continue; }
190419
+ /* */ $s = 18; continue;
190420
+ /* if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { */ case 17:
190421
+ _r$6 = fmt.Errorf("Cannot get 2d context of canvas", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190422
+ $panic(_r$6);
190423
+ /* } */ case 18:
190636
190424
  domEvents = dom.NewDomEvents();
190637
- w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(jsNaClDecoder, js.Value), domEvents, false);
190425
+ w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func));
190426
+ $r = domEvents.BindEvents(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190638
190427
  $s = -1; return w;
190639
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s};return $f;
190428
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s};return $f;
190640
190429
  };
190641
190430
  windowImpl.ptr.prototype.Release = function() {
190642
- var {w, $s, $deferred, $r, $c} = $restore(this, {});
190431
+ var {_r, _r$1, w, x, $s, $deferred, $r, $c} = $restore(this, {});
190643
190432
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190644
190433
  w = this;
190645
190434
  $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -190649,10 +190438,15 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190649
190438
  /* if (w.released) { */ case 2:
190650
190439
  $s = 4; case 4: return;
190651
190440
  /* } */ case 3:
190652
- $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190441
+ _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190442
+ _r;
190443
+ $clone(w.resizeCallback, js.Func).Release();
190444
+ _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190445
+ _r$1;
190446
+ $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190653
190447
  w.released = true;
190654
190448
  $s = -1; return;
190655
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, w, $s, $deferred};return $f; } }
190449
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
190656
190450
  };
190657
190451
  windowImpl.prototype.Release = function() { return this.$val.Release(); };
190658
190452
  windowImpl.ptr.prototype.Publish = function() {
@@ -190706,7 +190500,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190706
190500
  };
190707
190501
  windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190708
190502
  windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190709
- var {_arg, _r, _r$1, _r$2, _r$3, _ref, _tuple, dp, err, jsSrc, renderPromise, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
190503
+ var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
190710
190504
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190711
190505
  w = this;
190712
190506
  if (w.released) {
@@ -190717,24 +190511,14 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190717
190511
  /* */ $s = 2; continue;
190718
190512
  /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
190719
190513
  jsSrc = _ref.$val;
190720
- _r = $clone(w.jsNaClDecoder, js.Value).Call("render", new sliceType([(x = jsSrc.pictureResult, new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190721
- renderPromise = $clone(_r, js.Value);
190722
- _r$1 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190723
- _tuple = _r$1;
190724
- err = _tuple[1];
190725
- /* */ if (!(err === ptrType$4.nil)) { $s = 5; continue; }
190726
- /* */ $s = 6; continue;
190727
- /* if (!(err === ptrType$4.nil)) { */ case 5:
190728
- _r$2 = errs.Errorf("%v", new sliceType([err])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190729
- _arg = _r$2;
190730
- $r = errs.Print("Failed to render picture", _arg); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190731
- /* } */ case 6:
190514
+ _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190515
+ _r;
190732
190516
  $s = -1; return;
190733
190517
  /* } */ case 2:
190734
- _r$3 = fmt.Errorf("Not implemented, use nacldriver.BufferImpl instead", sliceType.nil); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190735
- $panic(_r$3);
190518
+ _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190519
+ $panic(_r$1);
190736
190520
  $s = -1; return;
190737
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _r, _r$1, _r$2, _r$3, _ref, _tuple, dp, err, jsSrc, renderPromise, sr, src, w, x, $s};return $f;
190521
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s};return $f;
190738
190522
  };
190739
190523
  windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190740
190524
  windowImpl.ptr.prototype.Fill = function(dr, src, op) {
@@ -190782,6 +190566,36 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190782
190566
  $panic(new $String("Not implemented"));
190783
190567
  };
190784
190568
  windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190569
+ Main = function(f) {
190570
+ var {_r, err, f, $s, $r, $c} = $restore(this, {f});
190571
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190572
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190573
+ err = _r;
190574
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
190575
+ /* */ $s = 3; continue;
190576
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
190577
+ $r = f(errscreen.Stub(err)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190578
+ /* } */ case 3:
190579
+ $s = -1; return;
190580
+ /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
190581
+ };
190582
+ $pkg.Main = Main;
190583
+ main = function(f) {
190584
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190585
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190586
+ retErr = $ifaceNil;
190587
+ _tuple = newScreenImpl();
190588
+ s = _tuple[0];
190589
+ err = _tuple[1];
190590
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190591
+ retErr = err;
190592
+ $s = -1; return retErr;
190593
+ }
190594
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190595
+ retErr = $ifaceNil;
190596
+ $s = -1; return retErr;
190597
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190598
+ };
190785
190599
  newScreenImpl = function() {
190786
190600
  var s;
190787
190601
  s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
@@ -190814,37 +190628,10 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190814
190628
  /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
190815
190629
  };
190816
190630
  screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190817
- Main = function(f) {
190818
- var {_r, err, f, $s, $r, $c} = $restore(this, {f});
190819
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190820
- _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190821
- err = _r;
190822
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190823
- $panic(err);
190824
- }
190825
- $s = -1; return;
190826
- /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
190827
- };
190828
- $pkg.Main = Main;
190829
- main = function(f) {
190830
- var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190831
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190832
- retErr = $ifaceNil;
190833
- _tuple = newScreenImpl();
190834
- s = _tuple[0];
190835
- err = _tuple[1];
190836
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190837
- retErr = err;
190838
- $s = -1; return retErr;
190839
- }
190840
- $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190841
- retErr = $ifaceNil;
190842
- $s = -1; return retErr;
190843
- /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190844
- };
190845
190631
  newBuffer = function(screen$1, size) {
190846
- var b, screen$1, size;
190847
- b = new BufferImpl.ptr(ptrType$4.nil, screen$1, $clone(size, image.Point));
190632
+ var _q, _q$1, _q$2, b, rect, screen$1, size;
190633
+ rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
190634
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
190848
190635
  return b;
190849
190636
  };
190850
190637
  BufferImpl.ptr.prototype.Size = function() {
@@ -190860,1038 +190647,1160 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
190860
190647
  };
190861
190648
  BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190862
190649
  BufferImpl.ptr.prototype.RGBA = function() {
190863
- var {_r, b, $s, $r, $c} = $restore(this, {});
190864
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190650
+ var b;
190865
190651
  b = this;
190866
- _r = fmt.Errorf("Not implemented RGBA(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190867
- $panic(_r);
190868
- $s = -1; return ptrType$5.nil;
190869
- /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.RGBA, $c: true, $r, _r, b, $s};return $f;
190652
+ return b.rgba;
190870
190653
  };
190871
190654
  BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190872
190655
  BufferImpl.ptr.prototype.YCbCr = function() {
190873
- var {_r, b, $s, $r, $c} = $restore(this, {});
190874
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190656
+ var b;
190875
190657
  b = this;
190876
- _r = fmt.Errorf("Not implemented YCbCr(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190877
- $panic(_r);
190878
- $s = -1; return ptrType$6.nil;
190879
- /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.YCbCr, $c: true, $r, _r, b, $s};return $f;
190658
+ return b.ycbcr;
190880
190659
  };
190881
190660
  BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190882
- BufferImpl.ptr.prototype.GetPictureResult = function() {
190661
+ BufferImpl.ptr.prototype.YCbCrJS = function() {
190883
190662
  var b;
190884
190663
  b = this;
190885
- return b.pictureResult;
190886
- };
190887
- BufferImpl.prototype.GetPictureResult = function() { return this.$val.GetPictureResult(); };
190888
- BufferImpl.ptr.prototype.SetPictureResult = function(pictureResult) {
190889
- var b, pictureResult;
190890
- b = this;
190891
- b.pictureResult = pictureResult;
190664
+ if (b.ycbcrJS === ptrType$4.nil) {
190665
+ b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
190666
+ }
190667
+ return b.ycbcrJS;
190892
190668
  };
190893
- BufferImpl.prototype.SetPictureResult = function(pictureResult) { return this.$val.SetPictureResult(pictureResult); };
190669
+ BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
190894
190670
  BufferImpl.ptr.prototype.Release = function() {
190895
- var b;
190671
+ var {b, $s, $deferred, $r, $c} = $restore(this, {});
190672
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190896
190673
  b = this;
190674
+ $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190675
+ $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
190676
+ /* */ if (b.released) { $s = 2; continue; }
190677
+ /* */ $s = 3; continue;
190678
+ /* if (b.released) { */ case 2:
190679
+ $s = 4; case 4: return;
190680
+ /* } */ case 3:
190681
+ b.released = true;
190682
+ $s = -1; return;
190683
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
190897
190684
  };
190898
190685
  BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190899
- ptrType$8.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}];
190900
- ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$9], [screen.Window, $error], false)}];
190901
- ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "GetPictureResult", name: "GetPictureResult", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "SetPictureResult", name: "SetPictureResult", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190902
- windowImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
190903
- screenImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190904
- BufferImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "pictureResult", name: "pictureResult", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
190686
+ ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
190687
+ ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$8], [screen.Window, $error], false)}];
190688
+ ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190689
+ windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
190690
+ screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190691
+ YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
190692
+ BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
190905
190693
  $init = function() {
190906
190694
  $pkg.$init = function() {};
190907
190695
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190908
190696
  $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190909
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190910
- $r = jshelper.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190911
- $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190912
- $r = screen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190913
- $r = f64.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190914
- $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190915
- $r = color.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190916
- $r = draw.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190917
- $r = sync.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190918
- $r = js.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190697
+ $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190698
+ $r = errscreen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190699
+ $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190700
+ $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190701
+ $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190702
+ $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190703
+ $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190704
+ $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190705
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190919
190706
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190920
190707
  };
190921
190708
  $pkg.$init = $init;
190922
190709
  return $pkg;
190923
190710
  })();
190924
- $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function() {
190925
- var $pkg = {}, $init, errs, jshelper, general, nacldriver, js, NaClDecoder, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, NewDecoder;
190711
+ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190712
+ var $pkg = {}, $init, hex, webgl, errs, jshelper, general, canvasdriver, image, js, Decoder, sliceType, funcType, arrayType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, NewDecoder;
190713
+ hex = $packages["encoding/hex"];
190714
+ webgl = $packages["github.com/nuberu/webgl"];
190926
190715
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190927
190716
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190928
190717
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190929
- nacldriver = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"];
190718
+ canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
190719
+ image = $packages["image"];
190930
190720
  js = $packages["syscall/js"];
190931
- NaClDecoder = $pkg.NaClDecoder = $newType(0, $kindStruct, "nacldecoder.NaClDecoder", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder", true, function(jsNaClDecoder_) {
190721
+ Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, releaseVideoDecoder_) {
190932
190722
  this.$val = this;
190933
190723
  if (arguments.length === 0) {
190934
- this.jsNaClDecoder = ptrType.nil;
190724
+ this.jsVideoDecoder = ptrType.nil;
190725
+ this.resolves = sliceType.nil;
190726
+ this.rejects = sliceType.nil;
190727
+ this.releaseVideoDecoder = $throwNilPointerError;
190935
190728
  return;
190936
190729
  }
190937
- this.jsNaClDecoder = jsNaClDecoder_;
190730
+ this.jsVideoDecoder = jsVideoDecoder_;
190731
+ this.resolves = resolves_;
190732
+ this.rejects = rejects_;
190733
+ this.releaseVideoDecoder = releaseVideoDecoder_;
190938
190734
  });
190735
+ sliceType = $sliceType(js.Value);
190736
+ funcType = $funcType([], [], false);
190737
+ arrayType = $arrayType(funcType, 0);
190939
190738
  ptrType = $ptrType(js.Value);
190940
- sliceType = $sliceType($emptyInterface);
190941
- ptrType$1 = $ptrType(nacldriver.BufferImpl);
190942
- sliceType$1 = $sliceType($Uint8);
190943
- ptrType$2 = $ptrType(NaClDecoder);
190739
+ sliceType$1 = $sliceType($emptyInterface);
190740
+ ptrType$1 = $ptrType(canvasdriver.BufferImpl);
190741
+ sliceType$2 = $sliceType($Uint8);
190742
+ ptrType$2 = $ptrType(Decoder);
190944
190743
  NewDecoder = function(header) {
190945
- var header;
190946
- return new NaClDecoder.ptr(ptrType.nil);
190744
+ var header, rejects, resolves;
190745
+ resolves = new sliceType([]);
190746
+ rejects = new sliceType([]);
190747
+ return new Decoder.ptr(ptrType.nil, resolves, rejects, $throwNilPointerError);
190947
190748
  };
190948
190749
  $pkg.NewDecoder = NewDecoder;
190949
- NaClDecoder.ptr.prototype.initialize = function(param) {
190950
- var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, config, err, initPromise, initResult, jsNaClDecoder, m, param, x, $s, $r, $c} = $restore(this, {param});
190750
+ Decoder.ptr.prototype.configure = function(nal) {
190751
+ var {_r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r, $c} = $restore(this, {nal});
190951
190752
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190952
- jsNaClDecoder = [jsNaClDecoder];
190953
- m = this;
190954
- jsNaClDecoder[0] = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190955
- _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190956
- config = $clone(_r, js.Value);
190957
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190958
- _arg = (x = _r$1, new x.constructor.elem(x));
190959
- $r = $clone(config, js.Value).Set("graphics3DContext", _arg); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190960
- $clone(config, js.Value).Set("profile", new $Int(0));
190961
- $clone(config, js.Value).Set("acceleration", new $Int(2));
190962
- $clone(config, js.Value).Set("minPictureCount", new $Int(0));
190963
- _r$2 = $clone(jsNaClDecoder[0], js.Value).Call("initialize", new sliceType([new config.constructor.elem(config)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190964
- initPromise = $clone(_r$2, js.Value);
190965
- _r$3 = jshelper.Await($clone(initPromise, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190966
- _tuple = _r$3;
190967
- initResult = _tuple[0];
190968
- err = _tuple[1];
190969
- /* */ if (!(err === ptrType.nil)) { $s = 6; continue; }
190970
- /* */ $s = 7; continue;
190971
- /* if (!(err === ptrType.nil)) { */ case 6:
190972
- _r$4 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([err])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190973
- $24r = _r$4;
190974
- $s = 9; case 9: return $24r;
190975
- /* } */ case 7:
190976
- /* */ if (!(($clone(initResult, js.Value).Float() === 0))) { $s = 10; continue; }
190977
- /* */ $s = 11; continue;
190978
- /* if (!(($clone(initResult, js.Value).Float() === 0))) { */ case 10:
190979
- _r$5 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190980
- $24r$1 = _r$5;
190981
- $s = 13; case 13: return $24r$1;
190982
- /* } */ case 11:
190983
- m.jsNaClDecoder = jsNaClDecoder[0];
190984
- $s = -1; return $ifaceNil;
190985
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.initialize, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, config, err, initPromise, initResult, jsNaClDecoder, m, param, x, $s};return $f;
190753
+ d = [d];
190754
+ errorCallback = [errorCallback];
190755
+ jsVideoDecoder = [jsVideoDecoder];
190756
+ outputCallback = [outputCallback];
190757
+ d[0] = this;
190758
+ _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190759
+ init = $clone(_r, js.Value);
190760
+ outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
190761
+ var {_i, _r$1, _ref, args, resolve, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190762
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190763
+ _ref = d[0].resolves;
190764
+ _i = 0;
190765
+ /* while (true) { */ case 1:
190766
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190767
+ resolve = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
190768
+ _r$1 = $clone(resolve, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190769
+ _r$1;
190770
+ _i++;
190771
+ $s = 1; continue;
190772
+ case 2:
190773
+ d[0].resolves = new sliceType([]);
190774
+ d[0].rejects = new sliceType([]);
190775
+ $s = -1; return $ifaceNil;
190776
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, resolve, this$1, x, $s};return $f;
190777
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
190778
+ errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
190779
+ var {_i, _r$1, _ref, args, reject, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190780
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190781
+ _ref = d[0].rejects;
190782
+ _i = 0;
190783
+ /* while (true) { */ case 1:
190784
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190785
+ reject = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
190786
+ _r$1 = $clone(reject, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190787
+ _r$1;
190788
+ _i++;
190789
+ $s = 1; continue;
190790
+ case 2:
190791
+ d[0].resolves = new sliceType([]);
190792
+ d[0].rejects = new sliceType([]);
190793
+ $s = -1; return $ifaceNil;
190794
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, reject, this$1, x, $s};return $f;
190795
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
190796
+ $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0]));
190797
+ $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0]));
190798
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType$1([new init.constructor.elem(init)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190799
+ jsVideoDecoder[0] = $clone(_r$1, js.Value);
190800
+ h264CodecName = d[0].detectCodecName(nal);
190801
+ _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190802
+ config = $clone(_r$2, js.Value);
190803
+ $clone(config, js.Value).Set("codec", new $String(h264CodecName));
190804
+ $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true));
190805
+ _r$3 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType$1([new config.constructor.elem(config)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190806
+ _r$3;
190807
+ d[0].jsVideoDecoder = jsVideoDecoder[0];
190808
+ d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function() {
190809
+ d[0].jsVideoDecoder = ptrType.nil;
190810
+ d[0].releaseVideoDecoder = $throwNilPointerError;
190811
+ $clone(outputCallback[0], js.Func).Release();
190812
+ $clone(errorCallback[0], js.Func).Release();
190813
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback);
190814
+ $s = -1; return;
190815
+ /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.configure, $c: true, $r, _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s};return $f;
190986
190816
  };
190987
- NaClDecoder.prototype.initialize = function(param) { return this.$val.initialize(param); };
190988
- NaClDecoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190989
- var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, currentOutputBuffer, currentOutputBuffer$1, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, renderPromise, x, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190817
+ Decoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
190818
+ Decoder.ptr.prototype.detectCodecName = function(nal) {
190819
+ var codecName, d, nal;
190820
+ d = this;
190821
+ codecName = "avc1." + hex.EncodeToString($subslice(nal, 5, 8));
190822
+ return codecName;
190823
+ };
190824
+ Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
190825
+ Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190826
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190990
190827
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190991
- m = this;
190828
+ d = [d];
190829
+ d[0] = this;
190830
+ frameType = "delta";
190992
190831
  /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
190993
190832
  /* */ $s = 2; continue;
190994
190833
  /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
190995
- /* */ if (m.jsNaClDecoder === ptrType.nil) { $s = 3; continue; }
190834
+ frameType = "key";
190835
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
190996
190836
  /* */ $s = 4; continue;
190997
- /* if (m.jsNaClDecoder === ptrType.nil) { */ case 3:
190998
- _r = m.initialize(nal); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190999
- err = _r;
191000
- if (!($interfaceIsEqual(err, $ifaceNil))) {
191001
- $s = -1; return err;
191002
- }
190837
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 3:
190838
+ $r = d[0].configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191003
190839
  /* } */ case 4:
191004
190840
  /* } */ case 2:
191005
- /* */ if (m.jsNaClDecoder === ptrType.nil) { $s = 6; continue; }
190841
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
191006
190842
  /* */ $s = 7; continue;
191007
- /* if (m.jsNaClDecoder === ptrType.nil) { */ case 6:
191008
- _r$1 = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191009
- $24r = _r$1;
190843
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 6:
190844
+ _r = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType$1.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190845
+ $24r = _r;
191010
190846
  $s = 9; case 9: return $24r;
191011
190847
  /* } */ case 7:
191012
- _r$2 = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191013
- pictureBuffer = $clone(_r$2, js.Value);
191014
- _r$3 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191015
- pictureUint8Array = $clone(_r$3, js.Value);
191016
- js.CopyBytesToJS($clone(pictureUint8Array, js.Value), nal);
191017
- _r$4 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191018
- decodeArgs = $clone(_r$4, js.Value);
191019
- $clone(decodeArgs, js.Value).Set("decodeId", new $Int(0));
191020
- $clone(decodeArgs, js.Value).Set("data", new pictureBuffer.constructor.elem(pictureBuffer));
191021
- _r$5 = $clone(m.jsNaClDecoder, js.Value).Call("decode", new sliceType([new decodeArgs.constructor.elem(decodeArgs)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191022
- decodePromise = $clone(_r$5, js.Value);
191023
- _r$6 = jshelper.Await($clone(decodePromise, js.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191024
- _tuple = _r$6;
191025
- decodeResult = _tuple[0];
191026
- err$1 = _tuple[1];
191027
- /* */ if (!(err$1 === ptrType.nil)) { $s = 15; continue; }
191028
- /* */ $s = 16; continue;
191029
- /* if (!(err$1 === ptrType.nil)) { */ case 15:
191030
- _r$7 = errs.Errorf("Failed to decode frame: %v", new sliceType([err$1])); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
191031
- $24r$1 = _r$7;
191032
- $s = 18; case 18: return $24r$1;
191033
- /* } */ case 16:
191034
- /* */ if (!(($clone(decodeResult, js.Value).Float() === 0))) { $s = 19; continue; }
191035
- /* */ $s = 20; continue;
191036
- /* if (!(($clone(decodeResult, js.Value).Float() === 0))) { */ case 19:
191037
- _r$8 = errs.Errorf("Failed to decode frame with code: %v", new sliceType([new $Float64($clone(decodeResult, js.Value).Float())])); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
191038
- $24r$2 = _r$8;
191039
- $s = 22; case 22: return $24r$2;
191040
- /* } */ case 20:
191041
- _r$9 = $clone(m.jsNaClDecoder, js.Value).Call("getPicture", sliceType.nil); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
191042
- picturePromise = $clone(_r$9, js.Value);
191043
- _r$10 = jshelper.Await($clone(picturePromise, js.Value)); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
191044
- _tuple$1 = _r$10;
191045
- pictureResult = _tuple$1[0];
191046
- err$1 = _tuple$1[1];
191047
- /* */ if (!(err$1 === ptrType.nil)) { $s = 25; continue; }
191048
- /* */ $s = 26; continue;
191049
- /* if (!(err$1 === ptrType.nil)) { */ case 25:
191050
- _r$11 = errs.Errorf("Failed to get picture: %v", new sliceType([err$1])); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
191051
- $24r$3 = _r$11;
191052
- $s = 28; case 28: return $24r$3;
191053
- /* } */ case 26:
191054
- _ref = outputBuffer;
191055
- /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 29; continue; }
191056
- /* */ $s = 30; continue;
191057
- /* if ($assertType(_ref, ptrType$1, true)[1]) { */ case 29:
191058
- currentOutputBuffer = _ref.$val;
191059
- currentOutputBuffer.SetPictureResult(pictureResult);
191060
- $s = 31; continue;
191061
- /* } else { */ case 30:
191062
- currentOutputBuffer$1 = _ref;
191063
- _r$12 = errs.Errorf("Unsupported output buffer type: %T", new sliceType([outputBuffer])); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
191064
- $24r$4 = _r$12;
191065
- $s = 33; case 33: return $24r$4;
191066
- /* } */ case 31:
191067
- _r$13 = $clone(m.jsNaClDecoder, js.Value).Call("render", new sliceType([(x = pictureResult, new x.constructor.elem(x))])); /* */ $s = 34; case 34: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
191068
- renderPromise = $clone(_r$13, js.Value);
191069
- _r$14 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 35; case 35: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
191070
- _tuple$2 = _r$14;
191071
- err$1 = _tuple$2[1];
191072
- /* */ if (!(err$1 === ptrType.nil)) { $s = 36; continue; }
191073
- /* */ $s = 37; continue;
191074
- /* if (!(err$1 === ptrType.nil)) { */ case 36:
191075
- _r$15 = errs.Errorf("%v", new sliceType([err$1])); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
191076
- _arg = _r$15;
191077
- $r = errs.Print("Failed to render picture", _arg); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191078
- /* } */ case 37:
191079
- $s = -1; return $ifaceNil;
191080
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, currentOutputBuffer, currentOutputBuffer$1, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, renderPromise, x, $s};return $f;
191081
- };
191082
- NaClDecoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
191083
- NaClDecoder.ptr.prototype.Release = function(outputBuffer) {
191084
- var {_r, _ref, currentOutputBuffer, m, outputBuffer, pictureResult, x, $s, $r, $c} = $restore(this, {outputBuffer});
191085
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191086
- m = this;
191087
- _ref = outputBuffer;
191088
- /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 1; continue; }
191089
- /* */ $s = 2; continue;
191090
- /* if ($assertType(_ref, ptrType$1, true)[1]) { */ case 1:
191091
- currentOutputBuffer = _ref.$val;
191092
- pictureResult = currentOutputBuffer.GetPictureResult();
191093
- /* */ if (!(pictureResult === ptrType.nil)) { $s = 3; continue; }
191094
- /* */ $s = 4; continue;
191095
- /* if (!(pictureResult === ptrType.nil)) { */ case 3:
191096
- _r = $clone(m.jsNaClDecoder, js.Value).Call("recyclePicture", new sliceType([(x = pictureResult, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191097
- _r;
191098
- /* } */ case 4:
191099
- /* } */ case 2:
191100
- $s = -1; return;
191101
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Release, $c: true, $r, _r, _ref, currentOutputBuffer, m, outputBuffer, pictureResult, x, $s};return $f;
191102
- };
191103
- NaClDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
191104
- ptrType$2.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
191105
- NaClDecoder.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder", [{prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}]);
191106
- $init = function() {
191107
- $pkg.$init = function() {};
191108
- /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191109
- $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191110
- $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191111
- $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191112
- $r = nacldriver.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191113
- $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191114
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191115
- };
191116
- $pkg.$init = $init;
191117
- return $pkg;
191118
- })();
191119
- $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
191120
- var $pkg = {}, $init, fmt, dom, errscreen, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, Main, main, newScreenImpl, newBuffer;
191121
- fmt = $packages["fmt"];
191122
- dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
191123
- errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
191124
- screen = $packages["golang.org/x/exp/shiny/screen"];
191125
- f64 = $packages["golang.org/x/image/math/f64"];
191126
- image = $packages["image"];
191127
- color = $packages["image/color"];
191128
- draw = $packages["image/draw"];
191129
- sync = $packages["sync"];
191130
- js = $packages["syscall/js"];
191131
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_) {
191132
- this.$val = this;
191133
- if (arguments.length === 0) {
191134
- this.screen = ptrType.nil;
191135
- this.mutex = ptrType$1.nil;
191136
- this.canvasEl = new js.Value.ptr(null, false, arrayType.zero());
191137
- this.ctx2d = new js.Value.ptr(null, false, arrayType.zero());
191138
- this.released = false;
191139
- this.domEvents = ptrType$2.nil;
191140
- this.resizeCallback = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
191141
- return;
191142
- }
191143
- this.screen = screen_;
191144
- this.mutex = mutex_;
191145
- this.canvasEl = canvasEl_;
191146
- this.ctx2d = ctx2d_;
191147
- this.released = released_;
191148
- this.domEvents = domEvents_;
191149
- this.resizeCallback = resizeCallback_;
191150
- });
191151
- screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(doc_) {
190848
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190849
+ chunkOpts = $clone(_r$1, js.Value);
190850
+ _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190851
+ frameData = $clone(_r$2, js.Value);
190852
+ $clone(chunkOpts, js.Value).Set("type", new $String(frameType));
190853
+ $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData));
190854
+ $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0));
190855
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType$1([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190856
+ chunk = $clone(_r$3, js.Value);
190857
+ _r$4 = d[0].jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190858
+ errDec = _r$4;
190859
+ /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 14; continue; }
190860
+ /* */ $s = 15; continue;
190861
+ /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 14:
190862
+ /* */ if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 16; continue; }
190863
+ /* */ $s = 17; continue;
190864
+ /* if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 16:
190865
+ $r = d[0].releaseVideoDecoder(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190866
+ /* } */ case 17:
190867
+ $s = -1; return errDec;
190868
+ /* } */ case 15:
190869
+ framePromiseCb = $clone(js.FuncOf((function(d) { return function(this$1, args) {
190870
+ var args, this$1;
190871
+ d[0].resolves = $append(d[0].resolves, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]));
190872
+ d[0].rejects = $append(d[0].rejects, (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]));
190873
+ return $ifaceNil;
190874
+ }; })(d)), js.Func);
190875
+ _r$5 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new framePromiseCb.constructor.elem(framePromiseCb)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190876
+ framePromise = $clone(_r$5, js.Value);
190877
+ timeoutPromiseCb = $clone(js.FuncOf((function(d) { return function $b(this$1, args) {
190878
+ var {_arg, _r$6, _r$7, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190879
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190880
+ _r$6 = $clone((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), js.Value).Call("bind", new sliceType$1([$ifaceNil, new $String("Timeout")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190881
+ _arg = (x = _r$6, new x.constructor.elem(x));
190882
+ _r$7 = $clone(js.Global(), js.Value).Call("setTimeout", new sliceType$1([_arg, new $Int(500)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190883
+ _r$7;
190884
+ $s = -1; return $ifaceNil;
190885
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$6, _r$7, args, this$1, x, $s};return $f;
190886
+ }; })(d)), js.Func);
190887
+ _r$6 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new timeoutPromiseCb.constructor.elem(timeoutPromiseCb)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190888
+ timeoutPromise = $clone(_r$6, js.Value);
190889
+ _r$7 = $clone($clone(js.Global(), js.Value).Get("Array"), js.Value).New(new sliceType$1([new framePromise.constructor.elem(framePromise), new timeoutPromise.constructor.elem(timeoutPromise)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190890
+ _arg = (x = _r$7, new x.constructor.elem(x));
190891
+ _r$8 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).Call("race", new sliceType$1([_arg])); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190892
+ racePromise = $clone(_r$8, js.Value);
190893
+ _r$9 = jshelper.Await($clone(racePromise, js.Value)); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
190894
+ _tuple = _r$9;
190895
+ frame = _tuple[0];
190896
+ err = _tuple[1];
190897
+ $clone(framePromiseCb, js.Func).Release();
190898
+ $clone(timeoutPromiseCb, js.Func).Release();
190899
+ /* */ if (!(err === ptrType.nil)) { $s = 24; continue; }
190900
+ /* */ $s = 25; continue;
190901
+ /* if (!(err === ptrType.nil)) { */ case 24:
190902
+ errMessage = "";
190903
+ if ($clone(err, js.Value).Type() === 4) {
190904
+ errMessage = $clone(err, js.Value).String();
190905
+ } else {
190906
+ errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
190907
+ }
190908
+ _r$10 = errs.Errorf(errMessage, sliceType$1.nil); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
190909
+ $24r$1 = _r$10;
190910
+ $s = 27; case 27: return $24r$1;
190911
+ /* } */ case 25:
190912
+ ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
190913
+ ycbcrJSImg.CanvasImageSource = frame;
190914
+ displayWidth = $clone($clone(frame, js.Value).Get("displayWidth"), js.Value).Int();
190915
+ displayHeight = $clone($clone(frame, js.Value).Get("displayHeight"), js.Value).Int();
190916
+ _r$11 = outputBuffer.YCbCr(); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
190917
+ ycbcrImg = _r$11;
190918
+ image.Rectangle.copy(ycbcrImg.Rect, image.Rect(0, 0, displayWidth, displayHeight));
190919
+ ycbcrImg.SubsampleRatio = 2;
190920
+ $s = -1; return $ifaceNil;
190921
+ /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s};return $f;
190922
+ };
190923
+ Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190924
+ Decoder.ptr.prototype.Release = function(outputBuffer) {
190925
+ var {_r, m, outputBuffer, ycbcrJSImg, $s, $r, $c} = $restore(this, {outputBuffer});
190926
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190927
+ m = this;
190928
+ ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
190929
+ /* */ if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { $s = 1; continue; }
190930
+ /* */ $s = 2; continue;
190931
+ /* if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { */ case 1:
190932
+ _r = $clone(ycbcrJSImg.CanvasImageSource, js.Value).Call("close", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190933
+ _r;
190934
+ /* } */ case 2:
190935
+ $s = -1; return;
190936
+ /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Release, $c: true, $r, _r, m, outputBuffer, ycbcrJSImg, $s};return $f;
190937
+ };
190938
+ Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
190939
+ Decoder.ptr.prototype.jsSafeDecode = function(chunk) {
190940
+ var {$24r, _r, chunk, d, err, $s, $deferred, $r, $c} = $restore(this, {chunk});
190941
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190942
+ err = [err];
190943
+ err[0] = $ifaceNil;
190944
+ d = this;
190945
+ $deferred.push([(function(err) { return function $b() {
190946
+ var {_r, recoverErr, $s, $r, $c} = $restore(this, {});
190947
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190948
+ recoverErr = $recover();
190949
+ /* */ if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { $s = 1; continue; }
190950
+ /* */ $s = 2; continue;
190951
+ /* if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { */ case 1:
190952
+ _r = errs.Errorf("Cannot decode %s", new sliceType$1([recoverErr])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190953
+ err[0] = _r;
190954
+ /* } */ case 2:
190955
+ $s = -1; return;
190956
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, recoverErr, $s};return $f;
190957
+ }; })(err), []]);
190958
+ _r = $clone(d.jsVideoDecoder, js.Value).Call("decode", new sliceType$1([new chunk.constructor.elem(chunk)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190959
+ _r;
190960
+ err[0] = err[0];
190961
+ $24r = err[0];
190962
+ $s = 2; case 2: return $24r;
190963
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: Decoder.ptr.prototype.jsSafeDecode, $c: true, $r, $24r, _r, chunk, d, err, $s, $deferred};return $f; } }
190964
+ };
190965
+ Decoder.prototype.jsSafeDecode = function(chunk) { return this.$val.jsSafeDecode(chunk); };
190966
+ ptrType$2.methods = [{prop: "configure", name: "configure", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [], false)}, {prop: "detectCodecName", name: "detectCodecName", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [$String], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$2, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "jsSafeDecode", name: "jsSafeDecode", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([js.Value], [$error], false)}];
190967
+ Decoder.init("github.com/supraio/client-daemon/pkg/x264/webcodecs", [{prop: "jsVideoDecoder", name: "jsVideoDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolves", name: "resolves", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rejects", name: "rejects", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "releaseVideoDecoder", name: "releaseVideoDecoder", embedded: false, exported: false, typ: funcType, tag: ""}]);
190968
+ $init = function() {
190969
+ $pkg.$init = function() {};
190970
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190971
+ $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190972
+ $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190973
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190974
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190975
+ $r = general.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190976
+ $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190977
+ $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190978
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190979
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190980
+ };
190981
+ $pkg.$init = $init;
190982
+ return $pkg;
190983
+ })();
190984
+ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
190985
+ var $pkg = {}, $init, errs, general, h264_decoder, nacldecoder, webcodecs, js, Decoder, H264Decoder, ptrType, sliceType, sliceType$1, NewH264Decoder;
190986
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190987
+ general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190988
+ h264_decoder = $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"];
190989
+ nacldecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"];
190990
+ webcodecs = $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"];
190991
+ js = $packages["syscall/js"];
190992
+ Decoder = $pkg.Decoder = $newType(8, $kindInterface, "x264.Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, null);
190993
+ H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "x264.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, function(decoder_) {
191152
190994
  this.$val = this;
191153
190995
  if (arguments.length === 0) {
191154
- this.doc = new js.Value.ptr(null, false, arrayType.zero());
190996
+ this.decoder = $ifaceNil;
191155
190997
  return;
191156
190998
  }
191157
- this.doc = doc_;
190999
+ this.decoder = decoder_;
191158
191000
  });
191159
- YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "canvasdriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(CanvasImageSource_) {
191001
+ ptrType = $ptrType(H264Decoder);
191002
+ sliceType = $sliceType($emptyInterface);
191003
+ sliceType$1 = $sliceType($Uint8);
191004
+ NewH264Decoder = function(header) {
191005
+ var {$24r, _r, decoder, header, $s, $r, $c} = $restore(this, {header});
191006
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191007
+ decoder = $ifaceNil;
191008
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
191009
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { $s = 2; continue; }
191010
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 3; continue; }
191011
+ /* */ $s = 4; continue;
191012
+ /* if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { */ case 1:
191013
+ decoder = nacldecoder.NewDecoder(header);
191014
+ $s = 5; continue;
191015
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { */ case 2:
191016
+ decoder = h264_decoder.NewDecoder(header);
191017
+ $s = 5; continue;
191018
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 3:
191019
+ decoder = webcodecs.NewDecoder(header);
191020
+ $s = 5; continue;
191021
+ /* } else { */ case 4:
191022
+ _r = errs.Errorf("Not available any h264 decoder adapter in JS", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191023
+ $24r = [ptrType.nil, _r];
191024
+ $s = 7; case 7: return $24r;
191025
+ /* } */ case 5:
191026
+ $s = -1; return [new H264Decoder.ptr(decoder), $ifaceNil];
191027
+ /* */ } return; } var $f = {$blk: NewH264Decoder, $c: true, $r, $24r, _r, decoder, header, $s};return $f;
191028
+ };
191029
+ $pkg.NewH264Decoder = NewH264Decoder;
191030
+ H264Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
191031
+ var {$24r, _r, m, nal, outputBuffer, $s, $r, $c} = $restore(this, {nal, outputBuffer});
191032
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191033
+ m = this;
191034
+ _r = m.decoder.Decode(nal, outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191035
+ $24r = _r;
191036
+ $s = 2; case 2: return $24r;
191037
+ /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Decode, $c: true, $r, $24r, _r, m, nal, outputBuffer, $s};return $f;
191038
+ };
191039
+ H264Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
191040
+ H264Decoder.ptr.prototype.Release = function(outputBuffer) {
191041
+ var {m, outputBuffer, $s, $r, $c} = $restore(this, {outputBuffer});
191042
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191043
+ m = this;
191044
+ $r = m.decoder.Release(outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191045
+ $s = -1; return;
191046
+ /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Release, $c: true, $r, m, outputBuffer, $s};return $f;
191047
+ };
191048
+ H264Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
191049
+ ptrType.methods = [{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
191050
+ Decoder.init([{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}]);
191051
+ H264Decoder.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "decoder", name: "decoder", embedded: false, exported: false, typ: Decoder, tag: ""}]);
191052
+ $init = function() {
191053
+ $pkg.$init = function() {};
191054
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191055
+ $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191056
+ $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191057
+ $r = h264_decoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191058
+ $r = nacldecoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191059
+ $r = webcodecs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191060
+ $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191061
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191062
+ };
191063
+ $pkg.$init = $init;
191064
+ return $pkg;
191065
+ })();
191066
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"] = (function() {
191067
+ var $pkg = {}, $init, focus, key, mouse, size, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
191068
+ focus = $packages["golang.org/x/mobile/event/focus"];
191069
+ key = $packages["golang.org/x/mobile/event/key"];
191070
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
191071
+ size = $packages["golang.org/x/mobile/event/size"];
191072
+ geom = $packages["golang.org/x/mobile/geom"];
191073
+ math = $packages["math"];
191074
+ strings = $packages["strings"];
191075
+ js = $packages["syscall/js"];
191076
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", true, function(eventChan_, releases_) {
191160
191077
  this.$val = this;
191161
191078
  if (arguments.length === 0) {
191162
- this.CanvasImageSource = ptrType$5.nil;
191079
+ this.eventChan = $chanNil;
191080
+ this.releases = sliceType$1.nil;
191163
191081
  return;
191164
191082
  }
191165
- this.CanvasImageSource = CanvasImageSource_;
191166
- });
191167
- BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "canvasdriver.BufferImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(screen_, size_, mutex_, released_, rgba_, ycbcr_, ycbcrJS_) {
191168
- this.$val = this;
191169
- if (arguments.length === 0) {
191170
- this.screen = ptrType.nil;
191171
- this.size = new image.Point.ptr(0, 0);
191172
- this.mutex = ptrType$1.nil;
191173
- this.released = false;
191174
- this.rgba = new image.RGBA.ptr(sliceType$1.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
191175
- this.ycbcr = new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
191176
- this.ycbcrJS = ptrType$4.nil;
191177
- return;
191178
- }
191179
- this.screen = screen_;
191180
- this.size = size_;
191181
- this.mutex = mutex_;
191182
- this.released = released_;
191183
- this.rgba = rgba_;
191184
- this.ycbcr = ycbcr_;
191185
- this.ycbcrJS = ycbcrJS_;
191083
+ this.eventChan = eventChan_;
191084
+ this.releases = releases_;
191186
191085
  });
191187
191086
  sliceType = $sliceType($emptyInterface);
191188
- ptrType = $ptrType(screenImpl);
191189
- ptrType$1 = $ptrType(sync.Mutex);
191190
191087
  funcType = $funcType([], [], false);
191191
- arrayType = $arrayType(funcType, 0);
191192
- ptrType$2 = $ptrType(dom.DomEvents);
191193
- ptrType$3 = $ptrType(BufferImpl);
191194
- sliceType$1 = $sliceType($Uint8);
191195
- ptrType$4 = $ptrType(YCbCrJS);
191196
- ptrType$5 = $ptrType(js.Value);
191197
- ptrType$6 = $ptrType(screen.DrawOptions);
191198
- ptrType$7 = $ptrType(windowImpl);
191199
- ptrType$8 = $ptrType(screen.NewWindowOptions);
191200
- ptrType$9 = $ptrType(image.RGBA);
191201
- ptrType$10 = $ptrType(image.YCbCr);
191202
- newWindow = function(screen$1, opts) {
191203
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
191204
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191205
- adaptCanvas = [adaptCanvas];
191206
- canvasEl = [canvasEl];
191207
- _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191208
- canvasEl[0] = $clone(_r, js.Value);
191209
- _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType([new canvasEl[0].constructor.elem(canvasEl[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191210
- _r$1;
191211
- adaptCanvas[0] = (function(adaptCanvas, canvasEl) { return function() {
191212
- var height, scale, width;
191213
- scale = dom.GetBrowserZoomRatio();
191214
- width = (((dom.GetScreenWidth()) / scale >> 0));
191215
- if (!(($clone($clone(canvasEl[0], js.Value).Get("width"), js.Value).Int() === width))) {
191216
- $clone(canvasEl[0], js.Value).Set("width", new $Int(width));
191217
- }
191218
- height = (((dom.GetScreenHeight()) / scale >> 0));
191219
- if (!(($clone($clone(canvasEl[0], js.Value).Get("height"), js.Value).Int() === height))) {
191220
- $clone(canvasEl[0], js.Value).Set("height", new $Int(height));
191221
- }
191222
- }; })(adaptCanvas, canvasEl);
191223
- $r = adaptCanvas[0](); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191224
- resizeCallback = $clone(js.FuncOf((function(adaptCanvas, canvasEl) { return function $b(this$1, args) {
191225
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
191226
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191227
- $r = adaptCanvas[0](); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191228
- $s = -1; return $ifaceNil;
191229
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
191230
- }; })(adaptCanvas, canvasEl)), js.Func);
191231
- _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new resizeCallback.constructor.elem(resizeCallback)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191232
- _r$2;
191233
- /* */ if (!((opts.Width === 0))) { $s = 5; continue; }
191234
- /* */ $s = 6; continue;
191235
- /* if (!((opts.Width === 0))) { */ case 5:
191236
- $r = dom.SetWindowWidth(opts.Width); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191237
- /* } */ case 6:
191238
- /* */ if (!((opts.Height === 0))) { $s = 8; continue; }
191239
- /* */ $s = 9; continue;
191240
- /* if (!((opts.Height === 0))) { */ case 8:
191241
- $r = dom.SetWindowHeight(opts.Height); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191242
- /* } */ case 9:
191243
- /* */ if (!(opts.Title === "")) { $s = 11; continue; }
191244
- /* */ $s = 12; continue;
191245
- /* if (!(opts.Title === "")) { */ case 11:
191246
- _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191247
- _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191248
- $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191249
- /* } */ case 12:
191250
- _r$5 = $clone(canvasEl[0], js.Value).Call("getContext", new sliceType([new $String("2d")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191251
- ctx2d = $clone(_r$5, js.Value);
191252
- /* */ if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { $s = 17; continue; }
191253
- /* */ $s = 18; continue;
191254
- /* if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { */ case 17:
191255
- _r$6 = fmt.Errorf("Cannot get 2d context of canvas", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191256
- $panic(_r$6);
191257
- /* } */ case 18:
191258
- domEvents = dom.NewDomEvents();
191259
- w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func));
191260
- $r = domEvents.BindEvents(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191261
- $s = -1; return w;
191262
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s};return $f;
191088
+ sliceType$1 = $sliceType(funcType);
191089
+ sliceType$2 = $sliceType($Int32);
191090
+ chanType = $chanType($emptyInterface, false, false);
191091
+ ptrType = $ptrType(DomEvents);
191092
+ GetDocWidth = function() {
191093
+ return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
191263
191094
  };
191264
- windowImpl.ptr.prototype.Release = function() {
191265
- var {_r, _r$1, w, x, $s, $deferred, $r, $c} = $restore(this, {});
191095
+ $pkg.GetDocWidth = GetDocWidth;
191096
+ GetDocHeight = function() {
191097
+ return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
191098
+ };
191099
+ $pkg.GetDocHeight = GetDocHeight;
191100
+ GetOrientation = function() {
191101
+ var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
191266
191102
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191267
- w = this;
191268
- $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191269
- $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
191270
- /* */ if (w.released) { $s = 2; continue; }
191271
- /* */ $s = 3; continue;
191272
- /* if (w.released) { */ case 2:
191273
- $s = 4; case 4: return;
191274
- /* } */ case 3:
191275
- _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191276
- _r;
191277
- $clone(w.resizeCallback, js.Func).Release();
191278
- _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191279
- _r$1;
191280
- $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191281
- w.released = true;
191282
- $s = -1; return;
191283
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
191103
+ orientation = [orientation];
191104
+ orientation[0] = 0;
191105
+ $deferred.push([(function(orientation) { return function() {
191106
+ if (!($interfaceIsEqual($recover(), $ifaceNil))) {
191107
+ orientation[0] = 0;
191108
+ }
191109
+ }; })(orientation), []]);
191110
+ orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
191111
+ /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
191112
+ /* */ $s = 2; continue;
191113
+ /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
191114
+ orientation[0] = 2;
191115
+ $24r = orientation[0];
191116
+ $s = 3; case 3: return $24r;
191117
+ /* } */ case 2:
191118
+ /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
191119
+ /* */ $s = 5; continue;
191120
+ /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
191121
+ orientation[0] = 2;
191122
+ $24r$1 = orientation[0];
191123
+ $s = 6; case 6: return $24r$1;
191124
+ /* } */ case 5:
191125
+ orientation[0] = 0;
191126
+ $24r$2 = orientation[0];
191127
+ $s = 7; case 7: return $24r$2;
191128
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation[0]; } if($curGoroutine.asleep) { var $f = {$blk: GetOrientation, $c: true, $r, $24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred};return $f; } }
191284
191129
  };
191285
- windowImpl.prototype.Release = function() { return this.$val.Release(); };
191286
- windowImpl.ptr.prototype.Publish = function() {
191287
- var w;
191288
- w = this;
191289
- if (w.released) {
191290
- return new screen.PublishResult.ptr(false);
191291
- }
191292
- return new screen.PublishResult.ptr(false);
191130
+ $pkg.GetOrientation = GetOrientation;
191131
+ NewDomEvents = function() {
191132
+ return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
191293
191133
  };
191294
- windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
191295
- windowImpl.ptr.prototype.Send = function(event) {
191296
- var event, w;
191297
- w = this;
191298
- if (w.released) {
191299
- return;
191300
- }
191301
- $panic(new $String("Not implemented"));
191134
+ $pkg.NewDomEvents = NewDomEvents;
191135
+ DomEvents.ptr.prototype.GetEventChan = function() {
191136
+ var d;
191137
+ d = this;
191138
+ return d.eventChan;
191302
191139
  };
191303
- windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
191304
- windowImpl.ptr.prototype.SendFirst = function(event) {
191305
- var event, w;
191306
- w = this;
191307
- if (w.released) {
191308
- return;
191309
- }
191310
- $panic(new $String("Not implemented"));
191140
+ DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
191141
+ DomEvents.ptr.prototype.Release = function() {
191142
+ var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
191143
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191144
+ d = this;
191145
+ _ref = d.releases;
191146
+ _i = 0;
191147
+ /* while (true) { */ case 1:
191148
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
191149
+ release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
191150
+ $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191151
+ _i++;
191152
+ $s = 1; continue;
191153
+ case 2:
191154
+ $s = -1; return;
191155
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
191311
191156
  };
191312
- windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
191313
- windowImpl.ptr.prototype.NextEvent = function() {
191314
- var {_r, ev, w, $s, $r, $c} = $restore(this, {});
191157
+ DomEvents.prototype.Release = function() { return this.$val.Release(); };
191158
+ DomEvents.ptr.prototype.BindEvents = function() {
191159
+ var {d, $s, $r, $c} = $restore(this, {});
191315
191160
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191316
- w = this;
191317
- _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191318
- ev = _r[0];
191319
- $s = -1; return ev;
191320
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
191161
+ d = this;
191162
+ $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191163
+ $go($methodVal(d, "emitSizeEvent"), []);
191164
+ $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191165
+ $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191166
+ $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191167
+ $s = -1; return;
191168
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
191321
191169
  };
191322
- windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
191323
- windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
191324
- var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
191170
+ DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
191171
+ DomEvents.ptr.prototype.bindSizeEvents = function() {
191172
+ var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
191325
191173
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191326
- w = this;
191327
- if (w.released) {
191174
+ d = [d];
191175
+ onResize = [onResize];
191176
+ d[0] = this;
191177
+ onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
191178
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
191179
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191180
+ $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191181
+ $s = -1; return $ifaceNil;
191182
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
191183
+ }; })(d, onResize)), js.Func);
191184
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191185
+ _r;
191186
+ d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
191187
+ var {_r$1, $s, $r, $c} = $restore(this, {});
191188
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191189
+ _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191190
+ _r$1;
191191
+ $clone(onResize[0], js.Func).Release();
191328
191192
  $s = -1; return;
191329
- }
191330
- _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191331
- $panic(_r);
191193
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
191194
+ }; })(d, onResize));
191332
191195
  $s = -1; return;
191333
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
191196
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
191334
191197
  };
191335
- windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
191336
- windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
191337
- var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
191198
+ DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
191199
+ DomEvents.ptr.prototype.emitSizeEvent = function() {
191200
+ var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
191338
191201
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191339
- w = this;
191340
- if (w.released) {
191341
- $s = -1; return;
191342
- }
191343
- _ref = src;
191344
- /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
191345
- /* */ $s = 2; continue;
191346
- /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
191347
- jsSrc = _ref.$val;
191348
- _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191202
+ d = this;
191203
+ _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191204
+ orientation = _r;
191205
+ pixelsPerPt = 1;
191206
+ width = GetDocWidth();
191207
+ height = GetDocHeight();
191208
+ $r = $send(d.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191209
+ $s = -1; return;
191210
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
191211
+ };
191212
+ DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
191213
+ DomEvents.ptr.prototype.bindMouseEvents = function() {
191214
+ var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
191215
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191216
+ d = [d];
191217
+ onClick = [onClick];
191218
+ onMove = [onMove];
191219
+ onWheel = [onWheel];
191220
+ d[0] = this;
191221
+ onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
191222
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191223
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191224
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191349
191225
  _r;
191226
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), 0, getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 0), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191227
+ $s = -1; return $ifaceNil;
191228
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
191229
+ }; })(d, onClick, onMove, onWheel)), js.Func);
191230
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191231
+ _r;
191232
+ onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
191233
+ var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191234
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191235
+ _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191236
+ _r$1;
191237
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getMouseButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getMouseDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191238
+ $s = -1; return $ifaceNil;
191239
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
191240
+ }; })(d, onClick, onMove, onWheel)), js.Func);
191241
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191242
+ _r$1;
191243
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191244
+ _r$2;
191245
+ onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
191246
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191247
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191248
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getWheelButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 3), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191249
+ $s = -1; return $ifaceNil;
191250
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
191251
+ }; })(d, onClick, onMove, onWheel)), js.Func);
191252
+ _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191253
+ _r$3;
191254
+ d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
191255
+ var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
191256
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191257
+ _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191258
+ _r$4;
191259
+ _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191260
+ _r$5;
191261
+ _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191262
+ _r$6;
191263
+ _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
191264
+ _r$7;
191265
+ $clone(onMove[0], js.Func).Release();
191266
+ $clone(onClick[0], js.Func).Release();
191267
+ $clone(onWheel[0], js.Func).Release();
191350
191268
  $s = -1; return;
191351
- /* } */ case 2:
191352
- _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191353
- $panic(_r$1);
191269
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
191270
+ }; })(d, onClick, onMove, onWheel));
191354
191271
  $s = -1; return;
191355
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s};return $f;
191272
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindMouseEvents, $c: true, $r, _r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s};return $f;
191356
191273
  };
191357
- windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
191358
- windowImpl.ptr.prototype.Fill = function(dr, src, op) {
191359
- var dr, op, src, w;
191360
- w = this;
191361
- if (w.released) {
191362
- return;
191274
+ DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
191275
+ getMouseDirection = function(ev) {
191276
+ var dir, ev;
191277
+ dir = 0;
191278
+ dir = 0;
191279
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
191280
+ dir = 1;
191363
191281
  }
191364
- $panic(new $String("Not implemented"));
191365
- };
191366
- windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
191367
- windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
191368
- var op, opts, sr, src, src2dst, w;
191369
- w = this;
191370
- if (w.released) {
191371
- return;
191282
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
191283
+ dir = 2;
191372
191284
  }
191373
- $panic(new $String("Not implemented"));
191285
+ return dir;
191374
191286
  };
191375
- windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
191376
- windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
191377
- var op, opts, sr, src, src2dst, w;
191378
- w = this;
191379
- if (w.released) {
191380
- return;
191287
+ getWheelButton = function(ev) {
191288
+ var deltaX, deltaY, ev;
191289
+ deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
191290
+ deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
191291
+ if (deltaY > 0) {
191292
+ return -2;
191381
191293
  }
191382
- $panic(new $String("Not implemented"));
191294
+ if (deltaY < 0) {
191295
+ return -1;
191296
+ }
191297
+ if (deltaX > 0) {
191298
+ return -4;
191299
+ }
191300
+ if (deltaX < 0) {
191301
+ return -3;
191302
+ }
191303
+ return 0;
191383
191304
  };
191384
- windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
191385
- windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
191386
- var dp, op, opts, sr, src, w;
191387
- w = this;
191388
- if (w.released) {
191389
- return;
191305
+ getMouseButton = function(ev) {
191306
+ var _1, ev;
191307
+ _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
191308
+ if (_1 === (0)) {
191309
+ return 1;
191310
+ } else if (_1 === (1)) {
191311
+ return 2;
191312
+ } else if (_1 === (2)) {
191313
+ return 3;
191314
+ } else if (_1 === (3)) {
191315
+ return 8;
191316
+ } else if (_1 === (4)) {
191317
+ return 9;
191318
+ } else {
191319
+ return 0;
191390
191320
  }
191391
- $panic(new $String("Not implemented"));
191392
191321
  };
191393
- windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
191394
- windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
191395
- var dr, op, opts, sr, src, w;
191396
- w = this;
191397
- if (w.released) {
191398
- return;
191322
+ getEventModifiers = function(ev) {
191323
+ var ev, mod;
191324
+ mod = 0;
191325
+ if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
191326
+ mod = (mod | (4)) >>> 0;
191399
191327
  }
191400
- $panic(new $String("Not implemented"));
191328
+ if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
191329
+ mod = (mod | (2)) >>> 0;
191330
+ }
191331
+ if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
191332
+ mod = (mod | (1)) >>> 0;
191333
+ }
191334
+ if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
191335
+ mod = (mod | (8)) >>> 0;
191336
+ }
191337
+ return mod;
191401
191338
  };
191402
- windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
191403
- Main = function(f) {
191404
- var {_r, err, f, $s, $r, $c} = $restore(this, {f});
191339
+ DomEvents.ptr.prototype.bindFocusEvents = function() {
191340
+ var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
191405
191341
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191406
- _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191407
- err = _r;
191408
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
191409
- /* */ $s = 3; continue;
191410
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
191411
- $r = f(errscreen.Stub(err)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191412
- /* } */ case 3:
191342
+ d = [d];
191343
+ onFocus = [onFocus];
191344
+ d[0] = this;
191345
+ onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
191346
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191347
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191348
+ $r = $send(d[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191349
+ $s = -1; return $ifaceNil;
191350
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
191351
+ }; })(d, onFocus)), js.Func);
191352
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191353
+ _r;
191354
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191355
+ _r$1;
191356
+ d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
191357
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
191358
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191359
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191360
+ _r$2;
191361
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191362
+ _r$3;
191363
+ $clone(onFocus[0], js.Func).Release();
191364
+ $s = -1; return;
191365
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
191366
+ }; })(d, onFocus));
191413
191367
  $s = -1; return;
191414
- /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
191368
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
191415
191369
  };
191416
- $pkg.Main = Main;
191417
- main = function(f) {
191418
- var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
191419
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191420
- retErr = $ifaceNil;
191421
- _tuple = newScreenImpl();
191422
- s = _tuple[0];
191423
- err = _tuple[1];
191424
- if (!($interfaceIsEqual(err, $ifaceNil))) {
191425
- retErr = err;
191426
- $s = -1; return retErr;
191370
+ DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
191371
+ isFocusIn = function(ev) {
191372
+ var ev;
191373
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
191374
+ return true;
191427
191375
  }
191428
- $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191429
- retErr = $ifaceNil;
191430
- $s = -1; return retErr;
191431
- /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
191432
- };
191433
- newScreenImpl = function() {
191434
- var s;
191435
- s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
191436
- return [s, $ifaceNil];
191437
- };
191438
- screenImpl.ptr.prototype.NewBuffer = function(size) {
191439
- var buffer, s, size;
191440
- s = this;
191441
- buffer = newBuffer(s, $clone(size, image.Point));
191442
- return [buffer, $ifaceNil];
191443
- };
191444
- screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
191445
- screenImpl.ptr.prototype.NewTexture = function(size) {
191446
- var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
191447
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191448
- s = this;
191449
- _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191450
- $24r = [$ifaceNil, _r];
191451
- $s = 2; case 2: return $24r;
191452
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
191376
+ return false;
191453
191377
  };
191454
- screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
191455
- screenImpl.ptr.prototype.NewWindow = function(opts) {
191456
- var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
191378
+ DomEvents.ptr.prototype.bindKeyEvents = function() {
191379
+ var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
191457
191380
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191458
- s = this;
191459
- _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191460
- window = _r;
191461
- $s = -1; return [window, $ifaceNil];
191462
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
191463
- };
191464
- screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
191465
- newBuffer = function(screen$1, size) {
191466
- var _q, _q$1, _q$2, b, rect, screen$1, size;
191467
- rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
191468
- b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
191469
- return b;
191470
- };
191471
- BufferImpl.ptr.prototype.Size = function() {
191472
- var b;
191473
- b = this;
191474
- return b.size;
191475
- };
191476
- BufferImpl.prototype.Size = function() { return this.$val.Size(); };
191477
- BufferImpl.ptr.prototype.Bounds = function() {
191478
- var b;
191479
- b = this;
191480
- return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
191481
- };
191482
- BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
191483
- BufferImpl.ptr.prototype.RGBA = function() {
191484
- var b;
191485
- b = this;
191486
- return b.rgba;
191381
+ d = [d];
191382
+ onKey = [onKey];
191383
+ d[0] = this;
191384
+ onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
191385
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191386
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191387
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191388
+ _r;
191389
+ $r = $send(d[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191390
+ $s = -1; return $ifaceNil;
191391
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
191392
+ }; })(d, onKey)), js.Func);
191393
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191394
+ _r;
191395
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191396
+ _r$1;
191397
+ d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
191398
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
191399
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191400
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191401
+ _r$2;
191402
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191403
+ _r$3;
191404
+ $clone(onKey[0], js.Func).Release();
191405
+ $s = -1; return;
191406
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
191407
+ }; })(d, onKey));
191408
+ $s = -1; return;
191409
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
191487
191410
  };
191488
- BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
191489
- BufferImpl.ptr.prototype.YCbCr = function() {
191490
- var b;
191491
- b = this;
191492
- return b.ycbcr;
191411
+ DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
191412
+ getKeyRune = function(ev) {
191413
+ var ev, key$1;
191414
+ key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
191415
+ if (key$1.$length === 1) {
191416
+ return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
191417
+ }
191418
+ return -1;
191493
191419
  };
191494
- BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
191495
- BufferImpl.ptr.prototype.YCbCrJS = function() {
191496
- var b;
191497
- b = this;
191498
- if (b.ycbcrJS === ptrType$4.nil) {
191499
- b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
191420
+ getKeyDirection = function(ev) {
191421
+ var dir, ev;
191422
+ dir = 0;
191423
+ dir = 0;
191424
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
191425
+ dir = 1;
191500
191426
  }
191501
- return b.ycbcrJS;
191427
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
191428
+ dir = 2;
191429
+ }
191430
+ return dir;
191502
191431
  };
191503
- BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
191504
- BufferImpl.ptr.prototype.Release = function() {
191505
- var {b, $s, $deferred, $r, $c} = $restore(this, {});
191506
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191507
- b = this;
191508
- $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191509
- $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
191510
- /* */ if (b.released) { $s = 2; continue; }
191511
- /* */ $s = 3; continue;
191512
- /* if (b.released) { */ case 2:
191513
- $s = 4; case 4: return;
191514
- /* } */ case 3:
191515
- b.released = true;
191516
- $s = -1; return;
191517
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
191432
+ getKeyCode = function(ev) {
191433
+ var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
191434
+ domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
191435
+ _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
191436
+ code = _tuple[0];
191437
+ exists = _tuple[1];
191438
+ if (exists) {
191439
+ return code;
191440
+ }
191441
+ domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
191442
+ _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
191443
+ code$1 = _tuple$1[0];
191444
+ exists$1 = _tuple$1[1];
191445
+ if (exists$1) {
191446
+ return code$1;
191447
+ }
191448
+ return 0;
191518
191449
  };
191519
- BufferImpl.prototype.Release = function() { return this.$val.Release(); };
191520
- ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
191521
- ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$8], [screen.Window, $error], false)}];
191522
- ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
191523
- windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
191524
- screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191525
- YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
191526
- BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
191450
+ ptrType.methods = [{prop: "GetEventChan", name: "GetEventChan", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "BindEvents", name: "BindEvents", pkg: "", typ: $funcType([], [], false)}, {prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}];
191451
+ DomEvents.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
191527
191452
  $init = function() {
191528
191453
  $pkg.$init = function() {};
191529
191454
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191530
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191531
- $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191532
- $r = errscreen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191533
- $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191534
- $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191535
- $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191536
- $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191537
- $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191538
- $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191539
- $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191455
+ $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191456
+ $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191457
+ $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191458
+ $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191459
+ $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191460
+ $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191461
+ $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191462
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191463
+ keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
191464
+ keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
191540
191465
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191541
191466
  };
191542
191467
  $pkg.$init = $init;
191543
191468
  return $pkg;
191544
191469
  })();
191545
- $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
191546
- var $pkg = {}, $init, hex, webgl, errs, jshelper, general, canvasdriver, image, js, Decoder, sliceType, funcType, arrayType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, NewDecoder;
191547
- hex = $packages["encoding/hex"];
191548
- webgl = $packages["github.com/nuberu/webgl"];
191549
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191550
- jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
191551
- general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
191552
- canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
191470
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
191471
+ var $pkg = {}, $init, fmt, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
191472
+ fmt = $packages["fmt"];
191473
+ dom = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"];
191474
+ screen = $packages["golang.org/x/exp/shiny/screen"];
191475
+ f64 = $packages["golang.org/x/image/math/f64"];
191553
191476
  image = $packages["image"];
191477
+ color = $packages["image/color"];
191478
+ draw = $packages["image/draw"];
191479
+ sync = $packages["sync"];
191554
191480
  js = $packages["syscall/js"];
191555
- Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, releaseVideoDecoder_) {
191481
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "nacldriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(screen_, mutex_, jsNaClDecoder_, domEvents_, released_) {
191556
191482
  this.$val = this;
191557
191483
  if (arguments.length === 0) {
191558
- this.jsVideoDecoder = ptrType.nil;
191559
- this.resolves = sliceType.nil;
191560
- this.rejects = sliceType.nil;
191561
- this.releaseVideoDecoder = $throwNilPointerError;
191484
+ this.screen = ptrType.nil;
191485
+ this.mutex = ptrType$1.nil;
191486
+ this.jsNaClDecoder = new js.Value.ptr(null, false, arrayType.zero());
191487
+ this.domEvents = ptrType$2.nil;
191488
+ this.released = false;
191562
191489
  return;
191563
191490
  }
191564
- this.jsVideoDecoder = jsVideoDecoder_;
191565
- this.resolves = resolves_;
191566
- this.rejects = rejects_;
191567
- this.releaseVideoDecoder = releaseVideoDecoder_;
191491
+ this.screen = screen_;
191492
+ this.mutex = mutex_;
191493
+ this.jsNaClDecoder = jsNaClDecoder_;
191494
+ this.domEvents = domEvents_;
191495
+ this.released = released_;
191568
191496
  });
191569
- sliceType = $sliceType(js.Value);
191497
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "nacldriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(doc_) {
191498
+ this.$val = this;
191499
+ if (arguments.length === 0) {
191500
+ this.doc = new js.Value.ptr(null, false, arrayType.zero());
191501
+ return;
191502
+ }
191503
+ this.doc = doc_;
191504
+ });
191505
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "nacldriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", true, function(pictureResult_, screen_, size_) {
191506
+ this.$val = this;
191507
+ if (arguments.length === 0) {
191508
+ this.pictureResult = ptrType$3.nil;
191509
+ this.screen = ptrType.nil;
191510
+ this.size = new image.Point.ptr(0, 0);
191511
+ return;
191512
+ }
191513
+ this.pictureResult = pictureResult_;
191514
+ this.screen = screen_;
191515
+ this.size = size_;
191516
+ });
191517
+ sliceType = $sliceType($emptyInterface);
191518
+ ptrType = $ptrType(screenImpl);
191519
+ ptrType$1 = $ptrType(sync.Mutex);
191570
191520
  funcType = $funcType([], [], false);
191571
191521
  arrayType = $arrayType(funcType, 0);
191572
- ptrType = $ptrType(js.Value);
191573
- sliceType$1 = $sliceType($emptyInterface);
191574
- ptrType$1 = $ptrType(canvasdriver.BufferImpl);
191575
- sliceType$2 = $sliceType($Uint8);
191576
- ptrType$2 = $ptrType(Decoder);
191577
- NewDecoder = function(header) {
191578
- var header, rejects, resolves;
191579
- resolves = new sliceType([]);
191580
- rejects = new sliceType([]);
191581
- return new Decoder.ptr(ptrType.nil, resolves, rejects, $throwNilPointerError);
191582
- };
191583
- $pkg.NewDecoder = NewDecoder;
191584
- Decoder.ptr.prototype.configure = function(nal) {
191585
- var {_r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r, $c} = $restore(this, {nal});
191586
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191587
- d = [d];
191588
- errorCallback = [errorCallback];
191589
- jsVideoDecoder = [jsVideoDecoder];
191590
- outputCallback = [outputCallback];
191591
- d[0] = this;
191592
- _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191593
- init = $clone(_r, js.Value);
191594
- outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
191595
- var {_i, _r$1, _ref, args, resolve, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191596
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191597
- _ref = d[0].resolves;
191598
- _i = 0;
191599
- /* while (true) { */ case 1:
191600
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
191601
- resolve = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
191602
- _r$1 = $clone(resolve, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191603
- _r$1;
191604
- _i++;
191605
- $s = 1; continue;
191606
- case 2:
191607
- d[0].resolves = new sliceType([]);
191608
- d[0].rejects = new sliceType([]);
191609
- $s = -1; return $ifaceNil;
191610
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, resolve, this$1, x, $s};return $f;
191611
- }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
191612
- errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
191613
- var {_i, _r$1, _ref, args, reject, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191614
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191615
- _ref = d[0].rejects;
191616
- _i = 0;
191617
- /* while (true) { */ case 1:
191618
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
191619
- reject = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
191620
- _r$1 = $clone(reject, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191621
- _r$1;
191622
- _i++;
191623
- $s = 1; continue;
191624
- case 2:
191625
- d[0].resolves = new sliceType([]);
191626
- d[0].rejects = new sliceType([]);
191627
- $s = -1; return $ifaceNil;
191628
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, reject, this$1, x, $s};return $f;
191629
- }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
191630
- $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0]));
191631
- $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0]));
191632
- _r$1 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType$1([new init.constructor.elem(init)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191633
- jsVideoDecoder[0] = $clone(_r$1, js.Value);
191634
- h264CodecName = d[0].detectCodecName(nal);
191635
- _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191636
- config = $clone(_r$2, js.Value);
191637
- $clone(config, js.Value).Set("codec", new $String(h264CodecName));
191638
- $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true));
191639
- _r$3 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType$1([new config.constructor.elem(config)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191640
- _r$3;
191641
- d[0].jsVideoDecoder = jsVideoDecoder[0];
191642
- d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function() {
191643
- d[0].jsVideoDecoder = ptrType.nil;
191644
- d[0].releaseVideoDecoder = $throwNilPointerError;
191645
- $clone(outputCallback[0], js.Func).Release();
191646
- $clone(errorCallback[0], js.Func).Release();
191647
- }; })(d, errorCallback, jsVideoDecoder, outputCallback);
191648
- $s = -1; return;
191649
- /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.configure, $c: true, $r, _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s};return $f;
191650
- };
191651
- Decoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
191652
- Decoder.ptr.prototype.detectCodecName = function(nal) {
191653
- var codecName, d, nal;
191654
- d = this;
191655
- codecName = "avc1." + hex.EncodeToString($subslice(nal, 5, 8));
191656
- return codecName;
191657
- };
191658
- Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
191659
- Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
191660
- var {$24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s, $r, $c} = $restore(this, {nal, outputBuffer});
191522
+ ptrType$2 = $ptrType(dom.DomEvents);
191523
+ ptrType$3 = $ptrType(js.Value);
191524
+ ptrType$4 = $ptrType(image.RGBA);
191525
+ ptrType$5 = $ptrType(image.YCbCr);
191526
+ ptrType$6 = $ptrType(screen.DrawOptions);
191527
+ ptrType$7 = $ptrType(windowImpl);
191528
+ ptrType$8 = $ptrType(screen.NewWindowOptions);
191529
+ ptrType$9 = $ptrType(BufferImpl);
191530
+ newWindow = function(screen$1, opts) {
191531
+ var {_r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
191661
191532
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191662
- d = [d];
191663
- d[0] = this;
191664
- frameType = "delta";
191665
- /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
191533
+ /* */ if (!(opts.Title === "")) { $s = 1; continue; }
191666
191534
  /* */ $s = 2; continue;
191667
- /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
191668
- frameType = "key";
191669
- /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
191670
- /* */ $s = 4; continue;
191671
- /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 3:
191672
- $r = d[0].configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191673
- /* } */ case 4:
191535
+ /* if (!(opts.Title === "")) { */ case 1:
191536
+ _r = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191537
+ _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191538
+ $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191674
191539
  /* } */ case 2:
191675
- /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
191540
+ jsNaClDecoder = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
191541
+ /* */ if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { $s = 6; continue; }
191676
191542
  /* */ $s = 7; continue;
191677
- /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 6:
191678
- _r = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType$1.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191679
- $24r = _r;
191680
- $s = 9; case 9: return $24r;
191543
+ /* if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { */ case 6:
191544
+ _r$2 = fmt.Errorf("Cannot get naclDecoder object from global scope", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191545
+ $panic(_r$2);
191681
191546
  /* } */ case 7:
191682
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191683
- chunkOpts = $clone(_r$1, js.Value);
191684
- _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191685
- frameData = $clone(_r$2, js.Value);
191686
- $clone(chunkOpts, js.Value).Set("type", new $String(frameType));
191687
- $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData));
191688
- $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0));
191689
- _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType$1([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191690
- chunk = $clone(_r$3, js.Value);
191691
- _r$4 = d[0].jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191692
- errDec = _r$4;
191693
- /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 14; continue; }
191694
- /* */ $s = 15; continue;
191695
- /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 14:
191696
- /* */ if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 16; continue; }
191697
- /* */ $s = 17; continue;
191698
- /* if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 16:
191699
- $r = d[0].releaseVideoDecoder(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191700
- /* } */ case 17:
191701
- $s = -1; return errDec;
191702
- /* } */ case 15:
191703
- framePromiseCb = $clone(js.FuncOf((function(d) { return function(this$1, args) {
191704
- var args, this$1;
191705
- d[0].resolves = $append(d[0].resolves, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]));
191706
- d[0].rejects = $append(d[0].rejects, (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]));
191707
- return $ifaceNil;
191708
- }; })(d)), js.Func);
191709
- _r$5 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new framePromiseCb.constructor.elem(framePromiseCb)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191710
- framePromise = $clone(_r$5, js.Value);
191711
- timeoutPromiseCb = $clone(js.FuncOf((function(d) { return function $b(this$1, args) {
191712
- var {_arg, _r$6, _r$7, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191713
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191714
- _r$6 = $clone((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), js.Value).Call("bind", new sliceType$1([$ifaceNil, new $String("Timeout")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191715
- _arg = (x = _r$6, new x.constructor.elem(x));
191716
- _r$7 = $clone(js.Global(), js.Value).Call("setTimeout", new sliceType$1([_arg, new $Int(500)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
191717
- _r$7;
191718
- $s = -1; return $ifaceNil;
191719
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$6, _r$7, args, this$1, x, $s};return $f;
191720
- }; })(d)), js.Func);
191721
- _r$6 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new timeoutPromiseCb.constructor.elem(timeoutPromiseCb)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191722
- timeoutPromise = $clone(_r$6, js.Value);
191723
- _r$7 = $clone($clone(js.Global(), js.Value).Get("Array"), js.Value).New(new sliceType$1([new framePromise.constructor.elem(framePromise), new timeoutPromise.constructor.elem(timeoutPromise)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
191724
- _arg = (x = _r$7, new x.constructor.elem(x));
191725
- _r$8 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).Call("race", new sliceType$1([_arg])); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
191726
- racePromise = $clone(_r$8, js.Value);
191727
- _r$9 = jshelper.Await($clone(racePromise, js.Value)); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
191728
- _tuple = _r$9;
191729
- frame = _tuple[0];
191730
- err = _tuple[1];
191731
- $clone(framePromiseCb, js.Func).Release();
191732
- $clone(timeoutPromiseCb, js.Func).Release();
191733
- /* */ if (!(err === ptrType.nil)) { $s = 24; continue; }
191734
- /* */ $s = 25; continue;
191735
- /* if (!(err === ptrType.nil)) { */ case 24:
191736
- errMessage = "";
191737
- if ($clone(err, js.Value).Type() === 4) {
191738
- errMessage = $clone(err, js.Value).String();
191739
- } else {
191740
- errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
191741
- }
191742
- _r$10 = errs.Errorf(errMessage, sliceType$1.nil); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
191743
- $24r$1 = _r$10;
191744
- $s = 27; case 27: return $24r$1;
191745
- /* } */ case 25:
191746
- ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
191747
- ycbcrJSImg.CanvasImageSource = frame;
191748
- displayWidth = $clone($clone(frame, js.Value).Get("displayWidth"), js.Value).Int();
191749
- displayHeight = $clone($clone(frame, js.Value).Get("displayHeight"), js.Value).Int();
191750
- _r$11 = outputBuffer.YCbCr(); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
191751
- ycbcrImg = _r$11;
191752
- image.Rectangle.copy(ycbcrImg.Rect, image.Rect(0, 0, displayWidth, displayHeight));
191753
- ycbcrImg.SubsampleRatio = 2;
191754
- $s = -1; return $ifaceNil;
191755
- /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s};return $f;
191547
+ domEvents = dom.NewDomEvents();
191548
+ w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(jsNaClDecoder, js.Value), domEvents, false);
191549
+ $s = -1; return w;
191550
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s};return $f;
191756
191551
  };
191757
- Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
191758
- Decoder.ptr.prototype.Release = function(outputBuffer) {
191759
- var {_r, m, outputBuffer, ycbcrJSImg, $s, $r, $c} = $restore(this, {outputBuffer});
191552
+ windowImpl.ptr.prototype.Release = function() {
191553
+ var {w, $s, $deferred, $r, $c} = $restore(this, {});
191554
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191555
+ w = this;
191556
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191557
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
191558
+ /* */ if (w.released) { $s = 2; continue; }
191559
+ /* */ $s = 3; continue;
191560
+ /* if (w.released) { */ case 2:
191561
+ $s = 4; case 4: return;
191562
+ /* } */ case 3:
191563
+ $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191564
+ w.released = true;
191565
+ $s = -1; return;
191566
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, w, $s, $deferred};return $f; } }
191567
+ };
191568
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
191569
+ windowImpl.ptr.prototype.Publish = function() {
191570
+ var w;
191571
+ w = this;
191572
+ if (w.released) {
191573
+ return new screen.PublishResult.ptr(false);
191574
+ }
191575
+ return new screen.PublishResult.ptr(false);
191576
+ };
191577
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
191578
+ windowImpl.ptr.prototype.Send = function(event) {
191579
+ var event, w;
191580
+ w = this;
191581
+ if (w.released) {
191582
+ return;
191583
+ }
191584
+ $panic(new $String("Not implemented"));
191585
+ };
191586
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
191587
+ windowImpl.ptr.prototype.SendFirst = function(event) {
191588
+ var event, w;
191589
+ w = this;
191590
+ if (w.released) {
191591
+ return;
191592
+ }
191593
+ $panic(new $String("Not implemented"));
191594
+ };
191595
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
191596
+ windowImpl.ptr.prototype.NextEvent = function() {
191597
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
191760
191598
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191761
- m = this;
191762
- ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
191763
- /* */ if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { $s = 1; continue; }
191764
- /* */ $s = 2; continue;
191765
- /* if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { */ case 1:
191766
- _r = $clone(ycbcrJSImg.CanvasImageSource, js.Value).Call("close", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191767
- _r;
191768
- /* } */ case 2:
191599
+ w = this;
191600
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191601
+ ev = _r[0];
191602
+ $s = -1; return ev;
191603
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
191604
+ };
191605
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
191606
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
191607
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
191608
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191609
+ w = this;
191610
+ if (w.released) {
191611
+ $s = -1; return;
191612
+ }
191613
+ _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191614
+ $panic(_r);
191769
191615
  $s = -1; return;
191770
- /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Release, $c: true, $r, _r, m, outputBuffer, ycbcrJSImg, $s};return $f;
191616
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
191617
+ };
191618
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
191619
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
191620
+ var dp, sr, src, w;
191621
+ w = this;
191622
+ if (w.released) {
191623
+ return;
191624
+ }
191625
+ };
191626
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
191627
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
191628
+ var dr, op, src, w;
191629
+ w = this;
191630
+ if (w.released) {
191631
+ return;
191632
+ }
191633
+ $panic(new $String("Not implemented"));
191634
+ };
191635
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
191636
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
191637
+ var op, opts, sr, src, src2dst, w;
191638
+ w = this;
191639
+ if (w.released) {
191640
+ return;
191641
+ }
191642
+ $panic(new $String("Not implemented"));
191771
191643
  };
191772
- Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
191773
- Decoder.ptr.prototype.jsSafeDecode = function(chunk) {
191774
- var {$24r, _r, chunk, d, err, $s, $deferred, $r, $c} = $restore(this, {chunk});
191775
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191776
- err = [err];
191777
- err[0] = $ifaceNil;
191778
- d = this;
191779
- $deferred.push([(function(err) { return function $b() {
191780
- var {_r, recoverErr, $s, $r, $c} = $restore(this, {});
191781
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191782
- recoverErr = $recover();
191783
- /* */ if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { $s = 1; continue; }
191784
- /* */ $s = 2; continue;
191785
- /* if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { */ case 1:
191786
- _r = errs.Errorf("Cannot decode %s", new sliceType$1([recoverErr])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191787
- err[0] = _r;
191788
- /* } */ case 2:
191789
- $s = -1; return;
191790
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, recoverErr, $s};return $f;
191791
- }; })(err), []]);
191792
- _r = $clone(d.jsVideoDecoder, js.Value).Call("decode", new sliceType$1([new chunk.constructor.elem(chunk)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191793
- _r;
191794
- err[0] = err[0];
191795
- $24r = err[0];
191796
- $s = 2; case 2: return $24r;
191797
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: Decoder.ptr.prototype.jsSafeDecode, $c: true, $r, $24r, _r, chunk, d, err, $s, $deferred};return $f; } }
191644
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
191645
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
191646
+ var op, opts, sr, src, src2dst, w;
191647
+ w = this;
191648
+ if (w.released) {
191649
+ return;
191650
+ }
191651
+ $panic(new $String("Not implemented"));
191798
191652
  };
191799
- Decoder.prototype.jsSafeDecode = function(chunk) { return this.$val.jsSafeDecode(chunk); };
191800
- ptrType$2.methods = [{prop: "configure", name: "configure", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [], false)}, {prop: "detectCodecName", name: "detectCodecName", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [$String], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$2, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "jsSafeDecode", name: "jsSafeDecode", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([js.Value], [$error], false)}];
191801
- Decoder.init("github.com/supraio/client-daemon/pkg/x264/webcodecs", [{prop: "jsVideoDecoder", name: "jsVideoDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolves", name: "resolves", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rejects", name: "rejects", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "releaseVideoDecoder", name: "releaseVideoDecoder", embedded: false, exported: false, typ: funcType, tag: ""}]);
191802
- $init = function() {
191803
- $pkg.$init = function() {};
191804
- /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191805
- $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191806
- $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191807
- $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191808
- $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191809
- $r = general.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191810
- $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191811
- $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191812
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191813
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191653
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
191654
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
191655
+ var dp, op, opts, sr, src, w;
191656
+ w = this;
191657
+ if (w.released) {
191658
+ return;
191659
+ }
191660
+ $panic(new $String("Not implemented"));
191814
191661
  };
191815
- $pkg.$init = $init;
191816
- return $pkg;
191817
- })();
191818
- $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
191819
- var $pkg = {}, $init, errs, general, h264_decoder, nacldecoder, webcodecs, js, Decoder, H264Decoder, ptrType, sliceType, sliceType$1, NewH264Decoder;
191820
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191821
- general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
191822
- h264_decoder = $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"];
191823
- nacldecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"];
191824
- webcodecs = $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"];
191825
- js = $packages["syscall/js"];
191826
- Decoder = $pkg.Decoder = $newType(8, $kindInterface, "x264.Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, null);
191827
- H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "x264.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, function(decoder_) {
191828
- this.$val = this;
191829
- if (arguments.length === 0) {
191830
- this.decoder = $ifaceNil;
191662
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
191663
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
191664
+ var dr, op, opts, sr, src, w;
191665
+ w = this;
191666
+ if (w.released) {
191831
191667
  return;
191832
191668
  }
191833
- this.decoder = decoder_;
191834
- });
191835
- ptrType = $ptrType(H264Decoder);
191836
- sliceType = $sliceType($emptyInterface);
191837
- sliceType$1 = $sliceType($Uint8);
191838
- NewH264Decoder = function(header) {
191839
- var {$24r, _r, decoder, header, $s, $r, $c} = $restore(this, {header});
191840
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191841
- decoder = $ifaceNil;
191842
- /* */ if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
191843
- /* */ if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { $s = 2; continue; }
191844
- /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 3; continue; }
191845
- /* */ $s = 4; continue;
191846
- /* if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { */ case 1:
191847
- decoder = nacldecoder.NewDecoder(header);
191848
- $s = 5; continue;
191849
- /* } else if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { */ case 2:
191850
- decoder = h264_decoder.NewDecoder(header);
191851
- $s = 5; continue;
191852
- /* } else if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 3:
191853
- decoder = webcodecs.NewDecoder(header);
191854
- $s = 5; continue;
191855
- /* } else { */ case 4:
191856
- _r = errs.Errorf("Not available any h264 decoder adapter in JS", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191857
- $24r = [ptrType.nil, _r];
191858
- $s = 7; case 7: return $24r;
191859
- /* } */ case 5:
191860
- $s = -1; return [new H264Decoder.ptr(decoder), $ifaceNil];
191861
- /* */ } return; } var $f = {$blk: NewH264Decoder, $c: true, $r, $24r, _r, decoder, header, $s};return $f;
191669
+ $panic(new $String("Not implemented"));
191862
191670
  };
191863
- $pkg.NewH264Decoder = NewH264Decoder;
191864
- H264Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
191865
- var {$24r, _r, m, nal, outputBuffer, $s, $r, $c} = $restore(this, {nal, outputBuffer});
191671
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
191672
+ newScreenImpl = function() {
191673
+ var s;
191674
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
191675
+ return [s, $ifaceNil];
191676
+ };
191677
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
191678
+ var buffer, s, size;
191679
+ s = this;
191680
+ buffer = newBuffer(s, $clone(size, image.Point));
191681
+ return [buffer, $ifaceNil];
191682
+ };
191683
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
191684
+ screenImpl.ptr.prototype.NewTexture = function(size) {
191685
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
191866
191686
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191867
- m = this;
191868
- _r = m.decoder.Decode(nal, outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191869
- $24r = _r;
191687
+ s = this;
191688
+ _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191689
+ $24r = [$ifaceNil, _r];
191870
191690
  $s = 2; case 2: return $24r;
191871
- /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Decode, $c: true, $r, $24r, _r, m, nal, outputBuffer, $s};return $f;
191691
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
191872
191692
  };
191873
- H264Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
191874
- H264Decoder.ptr.prototype.Release = function(outputBuffer) {
191875
- var {m, outputBuffer, $s, $r, $c} = $restore(this, {outputBuffer});
191693
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
191694
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
191695
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
191876
191696
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191877
- m = this;
191878
- $r = m.decoder.Release(outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191697
+ s = this;
191698
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191699
+ window = _r;
191700
+ $s = -1; return [window, $ifaceNil];
191701
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
191702
+ };
191703
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
191704
+ Main = function(f) {
191705
+ var {_r, err, f, $s, $r, $c} = $restore(this, {f});
191706
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191707
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191708
+ err = _r;
191709
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
191710
+ $panic(err);
191711
+ }
191879
191712
  $s = -1; return;
191880
- /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Release, $c: true, $r, m, outputBuffer, $s};return $f;
191713
+ /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
191881
191714
  };
191882
- H264Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
191883
- ptrType.methods = [{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
191884
- Decoder.init([{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}]);
191885
- H264Decoder.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "decoder", name: "decoder", embedded: false, exported: false, typ: Decoder, tag: ""}]);
191715
+ $pkg.Main = Main;
191716
+ main = function(f) {
191717
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
191718
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191719
+ retErr = $ifaceNil;
191720
+ _tuple = newScreenImpl();
191721
+ s = _tuple[0];
191722
+ err = _tuple[1];
191723
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
191724
+ retErr = err;
191725
+ $s = -1; return retErr;
191726
+ }
191727
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191728
+ retErr = $ifaceNil;
191729
+ $s = -1; return retErr;
191730
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
191731
+ };
191732
+ newBuffer = function(screen$1, size) {
191733
+ var b, screen$1, size;
191734
+ b = new BufferImpl.ptr(ptrType$3.nil, screen$1, $clone(size, image.Point));
191735
+ return b;
191736
+ };
191737
+ BufferImpl.ptr.prototype.Size = function() {
191738
+ var b;
191739
+ b = this;
191740
+ return b.size;
191741
+ };
191742
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
191743
+ BufferImpl.ptr.prototype.Bounds = function() {
191744
+ var b;
191745
+ b = this;
191746
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
191747
+ };
191748
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
191749
+ BufferImpl.ptr.prototype.RGBA = function() {
191750
+ var {_r, b, $s, $r, $c} = $restore(this, {});
191751
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191752
+ b = this;
191753
+ _r = fmt.Errorf("Not implemented RGBA(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191754
+ $panic(_r);
191755
+ $s = -1; return ptrType$4.nil;
191756
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.RGBA, $c: true, $r, _r, b, $s};return $f;
191757
+ };
191758
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
191759
+ BufferImpl.ptr.prototype.YCbCr = function() {
191760
+ var {_r, b, $s, $r, $c} = $restore(this, {});
191761
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191762
+ b = this;
191763
+ _r = fmt.Errorf("Not implemented YCbCr(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191764
+ $panic(_r);
191765
+ $s = -1; return ptrType$5.nil;
191766
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.YCbCr, $c: true, $r, _r, b, $s};return $f;
191767
+ };
191768
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
191769
+ BufferImpl.ptr.prototype.GetPictureResult = function() {
191770
+ var b;
191771
+ b = this;
191772
+ return b.pictureResult;
191773
+ };
191774
+ BufferImpl.prototype.GetPictureResult = function() { return this.$val.GetPictureResult(); };
191775
+ BufferImpl.ptr.prototype.SetPictureResult = function(pictureResult) {
191776
+ var b, pictureResult;
191777
+ b = this;
191778
+ b.pictureResult = pictureResult;
191779
+ };
191780
+ BufferImpl.prototype.SetPictureResult = function(pictureResult) { return this.$val.SetPictureResult(pictureResult); };
191781
+ BufferImpl.ptr.prototype.Release = function() {
191782
+ var b;
191783
+ b = this;
191784
+ };
191785
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
191786
+ ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
191787
+ ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$8], [screen.Window, $error], false)}];
191788
+ ptrType$9.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "GetPictureResult", name: "GetPictureResult", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "SetPictureResult", name: "SetPictureResult", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
191789
+ windowImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
191790
+ screenImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191791
+ BufferImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "pictureResult", name: "pictureResult", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
191886
191792
  $init = function() {
191887
191793
  $pkg.$init = function() {};
191888
191794
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191889
- $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191890
- $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191891
- $r = h264_decoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191892
- $r = nacldecoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191893
- $r = webcodecs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191894
- $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191795
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191796
+ $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191797
+ $r = screen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191798
+ $r = f64.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191799
+ $r = image.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191800
+ $r = color.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191801
+ $r = draw.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191802
+ $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191803
+ $r = js.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191895
191804
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191896
191805
  };
191897
191806
  $pkg.$init = $init;
@@ -192822,15 +192731,16 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192822
192731
  /* if (!w[0].closed) { */ case 6:
192823
192732
  $r = errs.Print("Frame error, skipping", err$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192824
192733
  /* } */ case 7:
192825
- /* */ if (w[0].screenReconnecting) { $s = 9; continue; }
192826
- /* */ $s = 10; continue;
192827
- /* if (w[0].screenReconnecting) { */ case 9:
192828
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192829
- /* } */ case 10:
192734
+ $r = time.Sleep(new time.Duration(0, 100000000)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192735
+ /* */ if (w[0].screenReconnecting) { $s = 10; continue; }
192736
+ /* */ $s = 11; continue;
192737
+ /* if (w[0].screenReconnecting) { */ case 10:
192738
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192739
+ /* } */ case 11:
192830
192740
  /* continue; */ $s = 1; continue;
192831
192741
  /* } */ case 5:
192832
192742
  $go($methodVal(w[0], "renderFrame"), [frame]);
192833
- $r = w[0].stats.NotifyFrame(frame); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192743
+ $r = w[0].stats.NotifyFrame(frame); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192834
192744
  $s = 1; continue;
192835
192745
  case 2:
192836
192746
  $s = -1; return;