@supraio/client-daemon-js 0.0.0-mznacldate1212.297 → 0.0.0-mznacldate1212.299

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