@supraio/client-daemon-js 0.0.0-jvmaster.366-jvmaster.375 → 0.0.0-jvmaster.366-jvdevelop.396

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.
@@ -9061,7 +9061,7 @@ $packages["unicode/utf8"] = (function() {
9061
9061
  return $pkg;
9062
9062
  })();
9063
9063
  $packages["bytes"] = (function() {
9064
- var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, asciiSet, Buffer, readOp, sliceType, sliceType$1, arrayType, ptrType, arrayType$1, ptrType$1, ptrType$2, asciiSpace, errNegativeRead, errUnreadByte, NewReader, IndexByte, Equal, Compare, explode, Count, Contains, ContainsAny, LastIndexByte, IndexRune, IndexAny, genSplit, Split, HasPrefix, HasSuffix, TrimLeftFunc, TrimRightFunc, TrimFunc, TrimPrefix, indexFunc, lastIndexFunc, makeASCIISet, containsRune, Trim, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, EqualFold, Index, Cut, growSlice;
9064
+ var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, asciiSet, Buffer, readOp, sliceType, sliceType$1, arrayType, ptrType, arrayType$1, ptrType$1, ptrType$2, asciiSpace, errNegativeRead, errUnreadByte, NewReader, IndexByte, Equal, Compare, explode, Count, Contains, ContainsAny, LastIndexByte, IndexRune, IndexAny, genSplit, Split, HasPrefix, HasSuffix, TrimLeftFunc, TrimRightFunc, TrimFunc, TrimPrefix, indexFunc, lastIndexFunc, makeASCIISet, containsRune, Trim, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, EqualFold, Index, Cut, growSlice, NewBuffer;
9065
9065
  errors = $packages["errors"];
9066
9066
  bytealg = $packages["internal/bytealg"];
9067
9067
  io = $packages["io"];
@@ -10595,6 +10595,11 @@ $packages["bytes"] = (function() {
10595
10595
  return [line, err];
10596
10596
  };
10597
10597
  Buffer.prototype.ReadString = function(delim) { return this.$val.ReadString(delim); };
10598
+ NewBuffer = function(buf) {
10599
+ var buf;
10600
+ return new Buffer.ptr(buf, 0, 0);
10601
+ };
10602
+ $pkg.NewBuffer = NewBuffer;
10598
10603
  ptrType$2.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([sliceType], [], false)}];
10599
10604
  ptrType.methods = [{prop: "contains", name: "contains", pkg: "bytes", typ: $funcType([$Uint8], [$Bool], false)}];
10600
10605
  ptrType$1.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}];
@@ -65037,7 +65042,7 @@ $packages["log"] = (function() {
65037
65042
  return $pkg;
65038
65043
  })();
65039
65044
  $packages["github.com/supraio/client-daemon/pkg/errs"] = (function() {
65040
- var $pkg = {}, $init, errors, log, sliceType, ptrType, Print, Errorf;
65045
+ var $pkg = {}, $init, errors, log, sliceType, ptrType, Print, Errorf, CombineErrors;
65041
65046
  errors = $packages["github.com/go-errors/errors"];
65042
65047
  log = $packages["log"];
65043
65048
  sliceType = $sliceType($emptyInterface);
@@ -65076,6 +65081,26 @@ $packages["github.com/supraio/client-daemon/pkg/errs"] = (function() {
65076
65081
  /* */ } return; } var $f = {$blk: Errorf, $c: true, $r, $24r, _r, extra, msg, $s};return $f;
65077
65082
  };
65078
65083
  $pkg.Errorf = Errorf;
65084
+ CombineErrors = function(errs) {
65085
+ var {$24r, _i, _r, _ref, err, errs, message, untypedErrs, $s, $r, $c} = $restore(this, {errs});
65086
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65087
+ untypedErrs = new sliceType([]);
65088
+ message = "";
65089
+ _ref = errs;
65090
+ _i = 0;
65091
+ while (true) {
65092
+ if (!(_i < _ref.$length)) { break; }
65093
+ err = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
65094
+ message = message + "%s\n";
65095
+ untypedErrs = $append(untypedErrs, err);
65096
+ _i++;
65097
+ }
65098
+ _r = errors.Errorf(message, untypedErrs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65099
+ $24r = _r;
65100
+ $s = 2; case 2: return $24r;
65101
+ /* */ } return; } var $f = {$blk: CombineErrors, $c: true, $r, $24r, _i, _r, _ref, err, errs, message, untypedErrs, $s};return $f;
65102
+ };
65103
+ $pkg.CombineErrors = CombineErrors;
65079
65104
  $init = function() {
65080
65105
  $pkg.$init = function() {};
65081
65106
  /* */ 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:
@@ -180471,13 +180496,13 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/general"] = (function()
180471
180496
  $pkg.$init = $init;
180472
180497
  return $pkg;
180473
180498
  })();
180474
- $packages["github.com/supraio/client-daemon/pkg/mpeg2/codec"] = (function() {
180499
+ $packages["github.com/yapingcat/gomedia/go-codec"] = (function() {
180475
180500
  var $pkg = {}, $init, bytes, binary, errors, fmt, BitStream, BitStreamWriter, sliceType, ptrType$8, ptrType$19, crc32table, FindStartCode, SplitFrame, H264NaluTypeWithoutStartCode, H265NaluTypeWithoutStartCode, IsH264IDRFrame, IsH264VCLNaluType, IsH265VCLNaluType, IsH265IDRFrame, CalcCrc32, NewBitStreamWriter;
180476
180501
  bytes = $packages["bytes"];
180477
180502
  binary = $packages["encoding/binary"];
180478
180503
  errors = $packages["errors"];
180479
180504
  fmt = $packages["fmt"];
180480
- BitStream = $pkg.BitStream = $newType(0, $kindStruct, "codec.BitStream", true, "github.com/supraio/client-daemon/pkg/mpeg2/codec", true, function(bits_, bytesOffset_, bitsOffset_, bitsmark_, bytemark_) {
180505
+ BitStream = $pkg.BitStream = $newType(0, $kindStruct, "codec.BitStream", true, "github.com/yapingcat/gomedia/go-codec", true, function(bits_, bytesOffset_, bitsOffset_, bitsmark_, bytemark_) {
180481
180506
  this.$val = this;
180482
180507
  if (arguments.length === 0) {
180483
180508
  this.bits = sliceType.nil;
@@ -180493,7 +180518,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2/codec"] = (function() {
180493
180518
  this.bitsmark = bitsmark_;
180494
180519
  this.bytemark = bytemark_;
180495
180520
  });
180496
- BitStreamWriter = $pkg.BitStreamWriter = $newType(0, $kindStruct, "codec.BitStreamWriter", true, "github.com/supraio/client-daemon/pkg/mpeg2/codec", true, function(bits_, byteoffset_, bitsoffset_, bitsmark_, bytemark_) {
180521
+ BitStreamWriter = $pkg.BitStreamWriter = $newType(0, $kindStruct, "codec.BitStreamWriter", true, "github.com/yapingcat/gomedia/go-codec", true, function(bits_, byteoffset_, bitsoffset_, bitsmark_, bytemark_) {
180497
180522
  this.$val = this;
180498
180523
  if (arguments.length === 0) {
180499
180524
  this.bits = sliceType.nil;
@@ -181047,9 +181072,9 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2/codec"] = (function() {
181047
181072
  };
181048
181073
  BitStreamWriter.prototype.Reset = function() { return this.$val.Reset(); };
181049
181074
  ptrType$8.methods = [{prop: "Uint8", name: "Uint8", pkg: "", typ: $funcType([$Int], [$Uint8], false)}, {prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([$Int], [$Uint16], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([$Int], [$Uint32], false)}, {prop: "GetBytes", name: "GetBytes", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "GetBits", name: "GetBits", pkg: "", typ: $funcType([$Int], [$Uint64], false)}, {prop: "GetBit", name: "GetBit", pkg: "", typ: $funcType([], [$Uint8], false)}, {prop: "SkipBits", name: "SkipBits", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Markdot", name: "Markdot", pkg: "", typ: $funcType([], [], false)}, {prop: "DistanceFromMarkDot", name: "DistanceFromMarkDot", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "RemainBytes", name: "RemainBytes", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "RemainBits", name: "RemainBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "RemainData", name: "RemainData", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "ReadUE", name: "ReadUE", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "ReadSE", name: "ReadSE", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ByteOffset", name: "ByteOffset", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "UnRead", name: "UnRead", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "NextBits", name: "NextBits", pkg: "", typ: $funcType([$Int], [$Uint64], false)}, {prop: "EOS", name: "EOS", pkg: "", typ: $funcType([], [$Bool], false)}];
181050
- ptrType$19.methods = [{prop: "expandSpace", name: "expandSpace", pkg: "github.com/supraio/client-daemon/pkg/mpeg2/codec", typ: $funcType([$Int], [], false)}, {prop: "ByteOffset", name: "ByteOffset", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BitOffset", name: "BitOffset", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Markdot", name: "Markdot", pkg: "", typ: $funcType([], [], false)}, {prop: "DistanceFromMarkDot", name: "DistanceFromMarkDot", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PutByte", name: "PutByte", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "PutBytes", name: "PutBytes", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "PutRepetValue", name: "PutRepetValue", pkg: "", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "PutUint8", name: "PutUint8", pkg: "", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([$Uint16, $Int], [], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([$Uint32, $Int], [], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([$Uint64, $Int], [], false)}, {prop: "SetByte", name: "SetByte", pkg: "", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "SetUint16", name: "SetUint16", pkg: "", typ: $funcType([$Uint16, $Int], [], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "FillRemainData", name: "FillRemainData", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}];
181051
- BitStream.init("github.com/supraio/client-daemon/pkg/mpeg2/codec", [{prop: "bits", name: "bits", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "bytesOffset", name: "bytesOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsOffset", name: "bitsOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsmark", name: "bitsmark", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bytemark", name: "bytemark", embedded: false, exported: false, typ: $Int, tag: ""}]);
181052
- BitStreamWriter.init("github.com/supraio/client-daemon/pkg/mpeg2/codec", [{prop: "bits", name: "bits", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "byteoffset", name: "byteoffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsoffset", name: "bitsoffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsmark", name: "bitsmark", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bytemark", name: "bytemark", embedded: false, exported: false, typ: $Int, tag: ""}]);
181075
+ ptrType$19.methods = [{prop: "expandSpace", name: "expandSpace", pkg: "github.com/yapingcat/gomedia/go-codec", typ: $funcType([$Int], [], false)}, {prop: "ByteOffset", name: "ByteOffset", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BitOffset", name: "BitOffset", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Markdot", name: "Markdot", pkg: "", typ: $funcType([], [], false)}, {prop: "DistanceFromMarkDot", name: "DistanceFromMarkDot", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PutByte", name: "PutByte", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "PutBytes", name: "PutBytes", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "PutRepetValue", name: "PutRepetValue", pkg: "", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "PutUint8", name: "PutUint8", pkg: "", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([$Uint16, $Int], [], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([$Uint32, $Int], [], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([$Uint64, $Int], [], false)}, {prop: "SetByte", name: "SetByte", pkg: "", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "SetUint16", name: "SetUint16", pkg: "", typ: $funcType([$Uint16, $Int], [], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "FillRemainData", name: "FillRemainData", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}];
181076
+ BitStream.init("github.com/yapingcat/gomedia/go-codec", [{prop: "bits", name: "bits", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "bytesOffset", name: "bytesOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsOffset", name: "bitsOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsmark", name: "bitsmark", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bytemark", name: "bytemark", embedded: false, exported: false, typ: $Int, tag: ""}]);
181077
+ BitStreamWriter.init("github.com/yapingcat/gomedia/go-codec", [{prop: "bits", name: "bits", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "byteoffset", name: "byteoffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsoffset", name: "bitsoffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bitsmark", name: "bitsmark", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bytemark", name: "bytemark", embedded: false, exported: false, typ: $Int, tag: ""}]);
181053
181078
  $init = function() {
181054
181079
  $pkg.$init = function() {};
181055
181080
  /* */ 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:
@@ -181064,16 +181089,16 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2/codec"] = (function() {
181064
181089
  $pkg.$init = $init;
181065
181090
  return $pkg;
181066
181091
  })();
181067
- $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181092
+ $packages["github.com/yapingcat/gomedia/go-mpeg2"] = (function() {
181068
181093
  var $pkg = {}, $init, binary, errors, fmt, codec, io, os, TS_STREAM_TYPE, TSPacket, Adaptation_field, PmtPair, Pat, StreamPair, Pmt, pes_stream, table_pmt, table_pat, TSMuxer, needmoreError, parserError, PesPacket, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, ptrType$1, sliceType$4, ptrType$2, sliceType$5, ptrType$3, ptrType$4, ptrType$5, ptrType$7, ptrType$18, ptrType$20, ptrType$21, ptrType$22, ptrType$23, funcType, ptrType$25, ptrType$26, errNeedMore, errParser, NewPat, NewPmt, NewPESStream, NewTablePmt, NewTablePat, NewTSMuxer, findPESIDByStreamType, NewPesPacket;
181069
181094
  binary = $packages["encoding/binary"];
181070
181095
  errors = $packages["errors"];
181071
181096
  fmt = $packages["fmt"];
181072
- codec = $packages["github.com/supraio/client-daemon/pkg/mpeg2/codec"];
181097
+ codec = $packages["github.com/yapingcat/gomedia/go-codec"];
181073
181098
  io = $packages["io"];
181074
181099
  os = $packages["os"];
181075
- TS_STREAM_TYPE = $pkg.TS_STREAM_TYPE = $newType(4, $kindInt, "mpeg2.TS_STREAM_TYPE", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, null);
181076
- TSPacket = $pkg.TSPacket = $newType(0, $kindStruct, "mpeg2.TSPacket", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(Transport_error_indicator_, Payload_unit_start_indicator_, Transport_priority_, PID_, Transport_scrambling_control_, Adaptation_field_control_, Continuity_counter_, Field_, Payload_) {
181100
+ TS_STREAM_TYPE = $pkg.TS_STREAM_TYPE = $newType(4, $kindInt, "mpeg2.TS_STREAM_TYPE", true, "github.com/yapingcat/gomedia/go-mpeg2", true, null);
181101
+ TSPacket = $pkg.TSPacket = $newType(0, $kindStruct, "mpeg2.TSPacket", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(Transport_error_indicator_, Payload_unit_start_indicator_, Transport_priority_, PID_, Transport_scrambling_control_, Adaptation_field_control_, Continuity_counter_, Field_, Payload_) {
181077
181102
  this.$val = this;
181078
181103
  if (arguments.length === 0) {
181079
181104
  this.Transport_error_indicator = 0;
@@ -181097,7 +181122,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181097
181122
  this.Field = Field_;
181098
181123
  this.Payload = Payload_;
181099
181124
  });
181100
- Adaptation_field = $pkg.Adaptation_field = $newType(0, $kindStruct, "mpeg2.Adaptation_field", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(SingleStuffingByte_, Adaptation_field_length_, Discontinuity_indicator_, Random_access_indicator_, Elementary_stream_priority_indicator_, PCR_flag_, OPCR_flag_, Splicing_point_flag_, Transport_private_data_flag_, Adaptation_field_extension_flag_, Program_clock_reference_base_, Program_clock_reference_extension_, Original_program_clock_reference_base_, Original_program_clock_reference_extension_, Splice_countdown_, Transport_private_data_length_, Adaptation_field_extension_length_, Ltw_flag_, Piecewise_rate_flag_, Seamless_splice_flag_, Ltw_valid_flag_, Ltw_offset_, Piecewise_rate_, Splice_type_, DTS_next_AU_, Stuffing_byte_) {
181125
+ Adaptation_field = $pkg.Adaptation_field = $newType(0, $kindStruct, "mpeg2.Adaptation_field", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(SingleStuffingByte_, Adaptation_field_length_, Discontinuity_indicator_, Random_access_indicator_, Elementary_stream_priority_indicator_, PCR_flag_, OPCR_flag_, Splicing_point_flag_, Transport_private_data_flag_, Adaptation_field_extension_flag_, Program_clock_reference_base_, Program_clock_reference_extension_, Original_program_clock_reference_base_, Original_program_clock_reference_extension_, Splice_countdown_, Transport_private_data_length_, Adaptation_field_extension_length_, Ltw_flag_, Piecewise_rate_flag_, Seamless_splice_flag_, Ltw_valid_flag_, Ltw_offset_, Piecewise_rate_, Splice_type_, DTS_next_AU_, Stuffing_byte_) {
181101
181126
  this.$val = this;
181102
181127
  if (arguments.length === 0) {
181103
181128
  this.SingleStuffingByte = false;
@@ -181155,7 +181180,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181155
181180
  this.DTS_next_AU = DTS_next_AU_;
181156
181181
  this.Stuffing_byte = Stuffing_byte_;
181157
181182
  });
181158
- PmtPair = $pkg.PmtPair = $newType(0, $kindStruct, "mpeg2.PmtPair", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(Program_number_, PID_) {
181183
+ PmtPair = $pkg.PmtPair = $newType(0, $kindStruct, "mpeg2.PmtPair", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(Program_number_, PID_) {
181159
181184
  this.$val = this;
181160
181185
  if (arguments.length === 0) {
181161
181186
  this.Program_number = 0;
@@ -181165,7 +181190,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181165
181190
  this.Program_number = Program_number_;
181166
181191
  this.PID = PID_;
181167
181192
  });
181168
- Pat = $pkg.Pat = $newType(0, $kindStruct, "mpeg2.Pat", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(Table_id_, Section_syntax_indicator_, Section_length_, Transport_stream_id_, Version_number_, Current_next_indicator_, Section_number_, Last_section_number_, Pmts_) {
181193
+ Pat = $pkg.Pat = $newType(0, $kindStruct, "mpeg2.Pat", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(Table_id_, Section_syntax_indicator_, Section_length_, Transport_stream_id_, Version_number_, Current_next_indicator_, Section_number_, Last_section_number_, Pmts_) {
181169
181194
  this.$val = this;
181170
181195
  if (arguments.length === 0) {
181171
181196
  this.Table_id = 0;
@@ -181189,7 +181214,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181189
181214
  this.Last_section_number = Last_section_number_;
181190
181215
  this.Pmts = Pmts_;
181191
181216
  });
181192
- StreamPair = $pkg.StreamPair = $newType(0, $kindStruct, "mpeg2.StreamPair", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(StreamType_, Elementary_PID_, ES_Info_Length_) {
181217
+ StreamPair = $pkg.StreamPair = $newType(0, $kindStruct, "mpeg2.StreamPair", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(StreamType_, Elementary_PID_, ES_Info_Length_) {
181193
181218
  this.$val = this;
181194
181219
  if (arguments.length === 0) {
181195
181220
  this.StreamType = 0;
@@ -181201,7 +181226,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181201
181226
  this.Elementary_PID = Elementary_PID_;
181202
181227
  this.ES_Info_Length = ES_Info_Length_;
181203
181228
  });
181204
- Pmt = $pkg.Pmt = $newType(0, $kindStruct, "mpeg2.Pmt", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(Table_id_, Section_syntax_indicator_, Section_length_, Program_number_, Version_number_, Current_next_indicator_, Section_number_, Last_section_number_, PCR_PID_, Program_info_length_, Streams_) {
181229
+ Pmt = $pkg.Pmt = $newType(0, $kindStruct, "mpeg2.Pmt", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(Table_id_, Section_syntax_indicator_, Section_length_, Program_number_, Version_number_, Current_next_indicator_, Section_number_, Last_section_number_, PCR_PID_, Program_info_length_, Streams_) {
181205
181230
  this.$val = this;
181206
181231
  if (arguments.length === 0) {
181207
181232
  this.Table_id = 0;
@@ -181229,7 +181254,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181229
181254
  this.Program_info_length = Program_info_length_;
181230
181255
  this.Streams = Streams_;
181231
181256
  });
181232
- pes_stream = $pkg.pes_stream = $newType(0, $kindStruct, "mpeg2.pes_stream", true, "github.com/supraio/client-daemon/pkg/mpeg2", false, function(pid_, cc_, streamtype_) {
181257
+ pes_stream = $pkg.pes_stream = $newType(0, $kindStruct, "mpeg2.pes_stream", true, "github.com/yapingcat/gomedia/go-mpeg2", false, function(pid_, cc_, streamtype_) {
181233
181258
  this.$val = this;
181234
181259
  if (arguments.length === 0) {
181235
181260
  this.pid = 0;
@@ -181241,7 +181266,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181241
181266
  this.cc = cc_;
181242
181267
  this.streamtype = streamtype_;
181243
181268
  });
181244
- table_pmt = $pkg.table_pmt = $newType(0, $kindStruct, "mpeg2.table_pmt", true, "github.com/supraio/client-daemon/pkg/mpeg2", false, function(pid_, cc_, pcr_pid_, version_number_, pm_, streams_) {
181269
+ table_pmt = $pkg.table_pmt = $newType(0, $kindStruct, "mpeg2.table_pmt", true, "github.com/yapingcat/gomedia/go-mpeg2", false, function(pid_, cc_, pcr_pid_, version_number_, pm_, streams_) {
181245
181270
  this.$val = this;
181246
181271
  if (arguments.length === 0) {
181247
181272
  this.pid = 0;
@@ -181259,7 +181284,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181259
181284
  this.pm = pm_;
181260
181285
  this.streams = streams_;
181261
181286
  });
181262
- table_pat = $pkg.table_pat = $newType(0, $kindStruct, "mpeg2.table_pat", true, "github.com/supraio/client-daemon/pkg/mpeg2", false, function(cc_, version_number_, pmts_) {
181287
+ table_pat = $pkg.table_pat = $newType(0, $kindStruct, "mpeg2.table_pat", true, "github.com/yapingcat/gomedia/go-mpeg2", false, function(cc_, version_number_, pmts_) {
181263
181288
  this.$val = this;
181264
181289
  if (arguments.length === 0) {
181265
181290
  this.cc = 0;
@@ -181271,7 +181296,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181271
181296
  this.version_number = version_number_;
181272
181297
  this.pmts = pmts_;
181273
181298
  });
181274
- TSMuxer = $pkg.TSMuxer = $newType(0, $kindStruct, "mpeg2.TSMuxer", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(pat_, stream_pid_, pmt_pid_, pat_period_, OnPacket_) {
181299
+ TSMuxer = $pkg.TSMuxer = $newType(0, $kindStruct, "mpeg2.TSMuxer", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(pat_, stream_pid_, pmt_pid_, pat_period_, OnPacket_) {
181275
181300
  this.$val = this;
181276
181301
  if (arguments.length === 0) {
181277
181302
  this.pat = ptrType$3.nil;
@@ -181287,19 +181312,19 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
181287
181312
  this.pat_period = pat_period_;
181288
181313
  this.OnPacket = OnPacket_;
181289
181314
  });
181290
- needmoreError = $pkg.needmoreError = $newType(0, $kindStruct, "mpeg2.needmoreError", true, "github.com/supraio/client-daemon/pkg/mpeg2", false, function() {
181315
+ needmoreError = $pkg.needmoreError = $newType(0, $kindStruct, "mpeg2.needmoreError", true, "github.com/yapingcat/gomedia/go-mpeg2", false, function() {
181291
181316
  this.$val = this;
181292
181317
  if (arguments.length === 0) {
181293
181318
  return;
181294
181319
  }
181295
181320
  });
181296
- parserError = $pkg.parserError = $newType(0, $kindStruct, "mpeg2.parserError", true, "github.com/supraio/client-daemon/pkg/mpeg2", false, function() {
181321
+ parserError = $pkg.parserError = $newType(0, $kindStruct, "mpeg2.parserError", true, "github.com/yapingcat/gomedia/go-mpeg2", false, function() {
181297
181322
  this.$val = this;
181298
181323
  if (arguments.length === 0) {
181299
181324
  return;
181300
181325
  }
181301
181326
  });
181302
- PesPacket = $pkg.PesPacket = $newType(0, $kindStruct, "mpeg2.PesPacket", true, "github.com/supraio/client-daemon/pkg/mpeg2", true, function(Stream_id_, PES_packet_length_, PES_scrambling_control_, PES_priority_, Data_alignment_indicator_, Copyright_, Original_or_copy_, PTS_DTS_flags_, ESCR_flag_, ES_rate_flag_, DSM_trick_mode_flag_, Additional_copy_info_flag_, PES_CRC_flag_, PES_extension_flag_, PES_header_data_length_, Pts_, Dts_, ESCR_base_, ESCR_extension_, ES_rate_, Trick_mode_control_, Trick_value_, Additional_copy_info_, Previous_PES_packet_CRC_, Pes_payload_) {
181327
+ PesPacket = $pkg.PesPacket = $newType(0, $kindStruct, "mpeg2.PesPacket", true, "github.com/yapingcat/gomedia/go-mpeg2", true, function(Stream_id_, PES_packet_length_, PES_scrambling_control_, PES_priority_, Data_alignment_indicator_, Copyright_, Original_or_copy_, PTS_DTS_flags_, ESCR_flag_, ES_rate_flag_, DSM_trick_mode_flag_, Additional_copy_info_flag_, PES_CRC_flag_, PES_extension_flag_, PES_header_data_length_, Pts_, Dts_, ESCR_base_, ESCR_extension_, ES_rate_, Trick_mode_control_, Trick_value_, Additional_copy_info_, Previous_PES_packet_CRC_, Pes_payload_) {
181303
181328
  this.$val = this;
181304
181329
  if (arguments.length === 0) {
181305
181330
  this.Stream_id = 0;
@@ -182703,7 +182728,7 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
182703
182728
  ptrType.methods = [{prop: "PrettyPrint", name: "PrettyPrint", pkg: "", typ: $funcType([ptrType$20], [], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([ptrType$21], [], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([ptrType$18], [$error], false)}];
182704
182729
  ptrType$5.methods = [{prop: "PrettyPrint", name: "PrettyPrint", pkg: "", typ: $funcType([ptrType$20], [], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([ptrType$21], [], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([ptrType$18], [$error], false)}];
182705
182730
  ptrType$7.methods = [{prop: "PrettyPrint", name: "PrettyPrint", pkg: "", typ: $funcType([ptrType$20], [], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([ptrType$21], [], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([ptrType$18], [$error], false)}];
182706
- ptrType$23.methods = [{prop: "AddStream", name: "AddStream", pkg: "", typ: $funcType([TS_STREAM_TYPE], [$Uint16], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([$Uint16, sliceType, $Uint64, $Uint64], [$error], false)}, {prop: "writePat", name: "writePat", pkg: "github.com/supraio/client-daemon/pkg/mpeg2", typ: $funcType([ptrType$5], [], false)}, {prop: "writePmt", name: "writePmt", pkg: "github.com/supraio/client-daemon/pkg/mpeg2", typ: $funcType([ptrType$7, ptrType$2], [], false)}, {prop: "writePES", name: "writePES", pkg: "github.com/supraio/client-daemon/pkg/mpeg2", typ: $funcType([ptrType$1, ptrType$2, sliceType, $Uint64, $Uint64, $Bool, $Bool], [], false)}];
182731
+ ptrType$23.methods = [{prop: "AddStream", name: "AddStream", pkg: "", typ: $funcType([TS_STREAM_TYPE], [$Uint16], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([$Uint16, sliceType, $Uint64, $Uint64], [$error], false)}, {prop: "writePat", name: "writePat", pkg: "github.com/yapingcat/gomedia/go-mpeg2", typ: $funcType([ptrType$5], [], false)}, {prop: "writePmt", name: "writePmt", pkg: "github.com/yapingcat/gomedia/go-mpeg2", typ: $funcType([ptrType$7, ptrType$2], [], false)}, {prop: "writePES", name: "writePES", pkg: "github.com/yapingcat/gomedia/go-mpeg2", typ: $funcType([ptrType$1, ptrType$2, sliceType, $Uint64, $Uint64, $Bool, $Bool], [], false)}];
182707
182732
  ptrType$25.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NeedMore", name: "NeedMore", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ParserError", name: "ParserError", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "StreamIdNotFound", name: "StreamIdNotFound", pkg: "", typ: $funcType([], [$Bool], false)}];
182708
182733
  ptrType$26.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NeedMore", name: "NeedMore", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ParserError", name: "ParserError", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "StreamIdNotFound", name: "StreamIdNotFound", pkg: "", typ: $funcType([], [$Bool], false)}];
182709
182734
  ptrType$4.methods = [{prop: "PrettyPrint", name: "PrettyPrint", pkg: "", typ: $funcType([ptrType$20], [], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([ptrType$18], [$error], false)}, {prop: "DecodeMpeg1", name: "DecodeMpeg1", pkg: "", typ: $funcType([ptrType$18], [$error], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([ptrType$21], [], false)}];
@@ -182713,10 +182738,10 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
182713
182738
  Pat.init("", [{prop: "Table_id", name: "Table_id", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Section_syntax_indicator", name: "Section_syntax_indicator", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Section_length", name: "Section_length", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Transport_stream_id", name: "Transport_stream_id", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Version_number", name: "Version_number", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Current_next_indicator", name: "Current_next_indicator", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Section_number", name: "Section_number", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Last_section_number", name: "Last_section_number", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Pmts", name: "Pmts", embedded: false, exported: true, typ: sliceType$2, tag: ""}]);
182714
182739
  StreamPair.init("", [{prop: "StreamType", name: "StreamType", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Elementary_PID", name: "Elementary_PID", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "ES_Info_Length", name: "ES_Info_Length", embedded: false, exported: true, typ: $Uint16, tag: ""}]);
182715
182740
  Pmt.init("", [{prop: "Table_id", name: "Table_id", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Section_syntax_indicator", name: "Section_syntax_indicator", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Section_length", name: "Section_length", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Program_number", name: "Program_number", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Version_number", name: "Version_number", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Current_next_indicator", name: "Current_next_indicator", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Section_number", name: "Section_number", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Last_section_number", name: "Last_section_number", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "PCR_PID", name: "PCR_PID", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Program_info_length", name: "Program_info_length", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Streams", name: "Streams", embedded: false, exported: true, typ: sliceType$3, tag: ""}]);
182716
- pes_stream.init("github.com/supraio/client-daemon/pkg/mpeg2", [{prop: "pid", name: "pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cc", name: "cc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "streamtype", name: "streamtype", embedded: false, exported: false, typ: TS_STREAM_TYPE, tag: ""}]);
182717
- table_pmt.init("github.com/supraio/client-daemon/pkg/mpeg2", [{prop: "pid", name: "pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cc", name: "cc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "pcr_pid", name: "pcr_pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "version_number", name: "version_number", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "pm", name: "pm", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: sliceType$4, tag: ""}]);
182718
- table_pat.init("github.com/supraio/client-daemon/pkg/mpeg2", [{prop: "cc", name: "cc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "version_number", name: "version_number", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "pmts", name: "pmts", embedded: false, exported: false, typ: sliceType$5, tag: ""}]);
182719
- TSMuxer.init("github.com/supraio/client-daemon/pkg/mpeg2", [{prop: "pat", name: "pat", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "stream_pid", name: "stream_pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "pmt_pid", name: "pmt_pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "pat_period", name: "pat_period", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "OnPacket", name: "OnPacket", embedded: false, exported: true, typ: funcType, tag: ""}]);
182741
+ pes_stream.init("github.com/yapingcat/gomedia/go-mpeg2", [{prop: "pid", name: "pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cc", name: "cc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "streamtype", name: "streamtype", embedded: false, exported: false, typ: TS_STREAM_TYPE, tag: ""}]);
182742
+ table_pmt.init("github.com/yapingcat/gomedia/go-mpeg2", [{prop: "pid", name: "pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cc", name: "cc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "pcr_pid", name: "pcr_pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "version_number", name: "version_number", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "pm", name: "pm", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: sliceType$4, tag: ""}]);
182743
+ table_pat.init("github.com/yapingcat/gomedia/go-mpeg2", [{prop: "cc", name: "cc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "version_number", name: "version_number", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "pmts", name: "pmts", embedded: false, exported: false, typ: sliceType$5, tag: ""}]);
182744
+ TSMuxer.init("github.com/yapingcat/gomedia/go-mpeg2", [{prop: "pat", name: "pat", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "stream_pid", name: "stream_pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "pmt_pid", name: "pmt_pid", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "pat_period", name: "pat_period", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "OnPacket", name: "OnPacket", embedded: false, exported: true, typ: funcType, tag: ""}]);
182720
182745
  needmoreError.init("", []);
182721
182746
  parserError.init("", []);
182722
182747
  PesPacket.init("", [{prop: "Stream_id", name: "Stream_id", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "PES_packet_length", name: "PES_packet_length", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "PES_scrambling_control", name: "PES_scrambling_control", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "PES_priority", name: "PES_priority", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data_alignment_indicator", name: "Data_alignment_indicator", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Copyright", name: "Copyright", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Original_or_copy", name: "Original_or_copy", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "PTS_DTS_flags", name: "PTS_DTS_flags", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "ESCR_flag", name: "ESCR_flag", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "ES_rate_flag", name: "ES_rate_flag", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "DSM_trick_mode_flag", name: "DSM_trick_mode_flag", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Additional_copy_info_flag", name: "Additional_copy_info_flag", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "PES_CRC_flag", name: "PES_CRC_flag", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "PES_extension_flag", name: "PES_extension_flag", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "PES_header_data_length", name: "PES_header_data_length", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Pts", name: "Pts", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Dts", name: "Dts", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "ESCR_base", name: "ESCR_base", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "ESCR_extension", name: "ESCR_extension", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "ES_rate", name: "ES_rate", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Trick_mode_control", name: "Trick_mode_control", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Trick_value", name: "Trick_value", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Additional_copy_info", name: "Additional_copy_info", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Previous_PES_packet_CRC", name: "Previous_PES_packet_CRC", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pes_payload", name: "Pes_payload", embedded: false, exported: true, typ: sliceType, tag: ""}]);
@@ -182739,195 +182764,157 @@ $packages["github.com/supraio/client-daemon/pkg/mpeg2"] = (function() {
182739
182764
  return $pkg;
182740
182765
  })();
182741
182766
  $packages["github.com/supraio/client-daemon/pkg/decoder/android"] = (function() {
182742
- var $pkg = {}, $init, base64, fmt, general, errs, jshelper, mpeg2, js, time, AndroidDecoder, sliceType, funcType, arrayType, ptrType, ptrType$1, ptrType$2, sliceType$1, ptrType$3, isFakeBridge, init, initFakeBridge, IsAvailable, NewDecoder;
182767
+ var $pkg = {}, $init, bytes, base64, general, errs, jshelper, mpeg2, js, time, AndroidFramesDecoder, sliceType, funcType, arrayType, ptrType, ptrType$1, ptrType$2, sliceType$1, ptrType$3, ptrType$4, IsAvailable, NewDecoder;
182768
+ bytes = $packages["bytes"];
182743
182769
  base64 = $packages["encoding/base64"];
182744
- fmt = $packages["fmt"];
182745
182770
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
182746
182771
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
182747
182772
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
182748
- mpeg2 = $packages["github.com/supraio/client-daemon/pkg/mpeg2"];
182773
+ mpeg2 = $packages["github.com/yapingcat/gomedia/go-mpeg2"];
182749
182774
  js = $packages["syscall/js"];
182750
182775
  time = $packages["time"];
182751
- AndroidDecoder = $pkg.AndroidDecoder = $newType(0, $kindStruct, "android.AndroidDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/android", true, function(androidPlayer_, started_, sos_, frameNumber_, tsMuxer_, videoStreamID_, firstFrameTimestamp_) {
182776
+ AndroidFramesDecoder = $pkg.AndroidFramesDecoder = $newType(0, $kindStruct, "android.AndroidFramesDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/android", true, function(androidSupraMediaBridge_, started_, sos_, tsMuxer_, videoStreamID_, firstFrameTimestamp_, muxedFrameData_) {
182752
182777
  this.$val = this;
182753
182778
  if (arguments.length === 0) {
182754
- this.androidPlayer = new js.Value.ptr(null, false, arrayType.zero());
182779
+ this.androidSupraMediaBridge = new js.Value.ptr(null, false, arrayType.zero());
182755
182780
  this.started = false;
182756
182781
  this.sos = new js.Value.ptr(null, false, arrayType.zero());
182757
- this.frameNumber = new $Uint64(0, 0);
182758
182782
  this.tsMuxer = ptrType.nil;
182759
182783
  this.videoStreamID = 0;
182760
- this.firstFrameTimestamp = ptrType$1.nil;
182784
+ this.firstFrameTimestamp = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil);
182785
+ this.muxedFrameData = ptrType$2.nil;
182761
182786
  return;
182762
182787
  }
182763
- this.androidPlayer = androidPlayer_;
182788
+ this.androidSupraMediaBridge = androidSupraMediaBridge_;
182764
182789
  this.started = started_;
182765
182790
  this.sos = sos_;
182766
- this.frameNumber = frameNumber_;
182767
182791
  this.tsMuxer = tsMuxer_;
182768
182792
  this.videoStreamID = videoStreamID_;
182769
182793
  this.firstFrameTimestamp = firstFrameTimestamp_;
182794
+ this.muxedFrameData = muxedFrameData_;
182770
182795
  });
182771
- sliceType = $sliceType($emptyInterface);
182796
+ sliceType = $sliceType($Uint8);
182772
182797
  funcType = $funcType([], [], false);
182773
182798
  arrayType = $arrayType(funcType, 0);
182774
182799
  ptrType = $ptrType(mpeg2.TSMuxer);
182775
- ptrType$1 = $ptrType(time.Time);
182776
- ptrType$2 = $ptrType(js.Value);
182777
- sliceType$1 = $sliceType($Uint8);
182778
- ptrType$3 = $ptrType(AndroidDecoder);
182779
- init = function() {
182780
- var {_r, $s, $r, $c} = $restore(this, {});
182781
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182782
- /* */ if ($clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value).IsUndefined()) { $s = 1; continue; }
182783
- /* */ $s = 2; continue;
182784
- /* if ($clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value).IsUndefined()) { */ case 1:
182785
- $r = initFakeBridge(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182786
- _r = fmt.Println(new sliceType([new $String("ASDF Initializing fake done"), new $String("isFakeBridge"), new $Bool(isFakeBridge)])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182787
- _r;
182788
- /* } */ case 2:
182789
- $s = -1; return;
182790
- /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, $s};return $f;
182791
- };
182792
- initFakeBridge = function() {
182793
- var {_r, _r$1, fakeBridge, onFrame, serveData, $s, $r, $c} = $restore(this, {});
182794
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182795
- isFakeBridge = true;
182796
- _r = fmt.Println(new sliceType([new $String("ASDF Initializing fake"), new $String("AndroidSupraMedia"), new $String("bridge"), new $String("isFakeBridge"), new $Bool(isFakeBridge)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182797
- _r;
182798
- _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; }
182799
- fakeBridge = $clone(_r$1, js.Value);
182800
- $clone(js.Global(), js.Value).Set("AndroidSupraMedia", new fakeBridge.constructor.elem(fakeBridge));
182801
- serveData = $clone(js.FuncOf((function(this$1, args) {
182802
- var args, this$1;
182803
- return $ifaceNil;
182804
- })), js.Func);
182805
- $clone(fakeBridge, js.Value).Set("serveUdpData", new serveData.constructor.elem(serveData));
182806
- onFrame = $clone(js.FuncOf((function(this$1, args) {
182807
- var args, this$1;
182808
- return new $Int(666);
182809
- })), js.Func);
182810
- $clone(fakeBridge, js.Value).Set("onFrame", new onFrame.constructor.elem(onFrame));
182811
- $s = -1; return;
182812
- /* */ } return; } var $f = {$blk: initFakeBridge, $c: true, $r, _r, _r$1, fakeBridge, onFrame, serveData, $s};return $f;
182813
- };
182800
+ ptrType$1 = $ptrType(time.Location);
182801
+ ptrType$2 = $ptrType(bytes.Buffer);
182802
+ sliceType$1 = $sliceType($emptyInterface);
182803
+ ptrType$3 = $ptrType(js.Value);
182804
+ ptrType$4 = $ptrType(AndroidFramesDecoder);
182814
182805
  IsAvailable = function() {
182815
- return !$clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value).IsUndefined();
182806
+ var androidSupraMediaBridge, isAndroidSupraMediaBridgeAvailable, isStreamingEnabled, sos;
182807
+ androidSupraMediaBridge = $clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value);
182808
+ isAndroidSupraMediaBridgeAvailable = !$clone(androidSupraMediaBridge, js.Value).IsNull() && !$clone(androidSupraMediaBridge, js.Value).IsUndefined();
182809
+ sos = $clone($clone(js.Global(), js.Value).Get("sos"), js.Value);
182810
+ isStreamingEnabled = !$clone(sos, js.Value).IsUndefined() && $clone($clone($clone(sos, js.Value).Get("config"), js.Value).Get("stream"), js.Value).Truthy();
182811
+ return isAndroidSupraMediaBridgeAvailable && !isStreamingEnabled;
182816
182812
  };
182817
182813
  $pkg.IsAvailable = IsAvailable;
182818
182814
  NewDecoder = function(header) {
182819
- var androidPlayer, header, sos, tsMuxer, videoStreamID;
182815
+ var androidSupraMediaBridge, header, muxedFrameData, sos, tsMuxer, videoStreamID;
182820
182816
  sos = $clone($clone(js.Global(), js.Value).Get("sos"), js.Value);
182821
- androidPlayer = $clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value);
182817
+ muxedFrameData = bytes.NewBuffer($makeSlice(sliceType, 0));
182818
+ androidSupraMediaBridge = $clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value);
182822
182819
  tsMuxer = mpeg2.NewTSMuxer();
182823
182820
  tsMuxer.OnPacket = (function $b(packet) {
182824
- var {_r, encodedPacket, packet, $s, $r, $c} = $restore(this, {packet});
182821
+ var {_r, packet, $s, $r, $c} = $restore(this, {packet});
182825
182822
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182826
- encodedPacket = base64.StdEncoding.EncodeToString(packet);
182827
- _r = $clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value).Call("serveUdpData", new sliceType([new $String(encodedPacket), new $Int(4444)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182823
+ _r = muxedFrameData.Write(packet); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182828
182824
  _r;
182829
182825
  $s = -1; return;
182830
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, encodedPacket, packet, $s};return $f;
182826
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, packet, $s};return $f;
182831
182827
  });
182832
182828
  videoStreamID = tsMuxer.AddStream(27);
182833
- return [new AndroidDecoder.ptr($clone(androidPlayer, js.Value), false, $clone(sos, js.Value), new $Uint64(0, 0), tsMuxer, videoStreamID, ptrType$1.nil), $ifaceNil];
182829
+ return [new AndroidFramesDecoder.ptr($clone(androidSupraMediaBridge, js.Value), false, $clone(sos, js.Value), tsMuxer, videoStreamID, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil), muxedFrameData), $ifaceNil];
182834
182830
  };
182835
182831
  $pkg.NewDecoder = NewDecoder;
182836
- AndroidDecoder.ptr.prototype.Write = function(nal, timestamp) {
182837
- var {$24r, $24r$1, _arg, _arg$1, _arg$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, ad, err, err$1, fps, height, millisSinceFirstFrame, nal, options, playStream, preparePromise, timestamp, url, width, x, x$1, x$2, $s, $r, $c} = $restore(this, {nal, timestamp});
182832
+ AndroidFramesDecoder.ptr.prototype.Write = function(nal, timestamp) {
182833
+ var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, ad, encodedPackets, err, err$1, height, nal, options, playStream, preparePromise, streamUrl, timestamp, timestampMillisSinceFirstFrame, width, x, $s, $r, $c} = $restore(this, {nal, timestamp});
182838
182834
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182839
- timestamp = [timestamp];
182840
182835
  ad = this;
182841
- _r = $clone($clone(js.Global(), js.Value).Get("AndroidSupraMedia"), js.Value).Call("onFrame", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182842
- _r$1 = $clone(_r, js.Value).Int(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
182843
- fps = _r$1;
182844
- _r$2 = $clone($clone(js.Global(), js.Value).Get("document"), js.Value).Call("getElementById", new sliceType([new $String("fps")])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
182845
- _r$3 = fmt.Sprintf("FPS: %d", new sliceType([new $Int(fps)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
182846
- _arg = new $String(_r$3);
182847
- $r = $clone(_r$2, js.Value).Set("innerText", _arg); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182848
- /* */ if (!ad.started) { $s = 6; continue; }
182849
- /* */ $s = 7; continue;
182850
- /* if (!ad.started) { */ case 6:
182851
- ad.firstFrameTimestamp = timestamp[0];
182852
- _r$4 = fmt.Println(new sliceType([new $String("ASDF starting playback, first frame timestamp millis"), $clone(ad.firstFrameTimestamp, time.Time).UnixMilli()])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
182853
- _r$4;
182854
- _r$5 = fmt.Sprintf("udp://localhost:%d", new sliceType([new $Int(4444)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
182855
- url = _r$5;
182836
+ /* */ if (!ad.started) { $s = 1; continue; }
182837
+ /* */ $s = 2; continue;
182838
+ /* if (!ad.started) { */ case 1:
182839
+ time.Time.copy(ad.firstFrameTimestamp, timestamp);
182840
+ _r = $clone(ad.androidSupraMediaBridge, js.Value).Call("getStreamUrl", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182841
+ streamUrl = $clone(_r, js.Value);
182856
182842
  width = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
182857
182843
  height = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
182858
- _r$6 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
182859
- options = $clone(_r$6, js.Value);
182844
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
182845
+ options = $clone(_r$1, js.Value);
182860
182846
  $clone(options, js.Value).Set("background", new $Bool(true));
182861
182847
  $clone(options, js.Value).Set("protocol", new $String("UDP"));
182862
- _r$7 = $clone($clone(ad.sos, js.Value).Get("stream"), js.Value).Call("prepare", new sliceType([new $String(url), new $Int(0), new $Int(0), new $Int(width), new $Int(height), new options.constructor.elem(options)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
182863
- preparePromise = $clone(_r$7, js.Value);
182864
- _r$8 = jshelper.Await($clone(preparePromise, js.Value)); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
182865
- _tuple = _r$8;
182848
+ _r$2 = $clone($clone(ad.sos, js.Value).Get("stream"), js.Value).Call("prepare", new sliceType$1([new streamUrl.constructor.elem(streamUrl), new $Int(0), new $Int(0), new $Int(width), new $Int(height), new options.constructor.elem(options)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
182849
+ preparePromise = $clone(_r$2, js.Value);
182850
+ _r$3 = jshelper.Await($clone(preparePromise, js.Value)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
182851
+ _tuple = _r$3;
182866
182852
  err = _tuple[1];
182867
- /* */ if (!(err === ptrType$2.nil)) { $s = 13; continue; }
182868
- /* */ $s = 14; continue;
182869
- /* if (!(err === ptrType$2.nil)) { */ case 13:
182870
- _r$9 = jshelper.GetError(err); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
182871
- _r$10 = _r$9.Error(); /* */ $s = 16; case 16: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
182872
- _arg$1 = new $String(_r$10);
182873
- _r$11 = errs.Errorf("Failed to prepare sos video stream: %s", new sliceType([_arg$1])); /* */ $s = 17; case 17: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
182874
- $24r = _r$11;
182875
- $s = 18; case 18: return $24r;
182876
- /* } */ case 14:
182877
- _r$12 = $clone($clone(ad.sos, js.Value).Get("stream"), js.Value).Call("play", new sliceType([new $String(url), new $Int(0), new $Int(0), new $Int(width), new $Int(height), new options.constructor.elem(options)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
182878
- playStream = $clone(_r$12, js.Value);
182879
- _r$13 = jshelper.Await($clone(playStream, js.Value)); /* */ $s = 20; case 20: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
182880
- _tuple$1 = _r$13;
182853
+ /* */ if (!(err === ptrType$3.nil)) { $s = 7; continue; }
182854
+ /* */ $s = 8; continue;
182855
+ /* if (!(err === ptrType$3.nil)) { */ case 7:
182856
+ _r$4 = jshelper.GetError(err); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
182857
+ _r$5 = _r$4.Error(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
182858
+ _arg = new $String(_r$5);
182859
+ _r$6 = errs.Errorf("Failed to prepare sos video stream: %s", new sliceType$1([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
182860
+ $24r = _r$6;
182861
+ $s = 12; case 12: return $24r;
182862
+ /* } */ case 8:
182863
+ _r$7 = $clone($clone(ad.sos, js.Value).Get("stream"), js.Value).Call("play", new sliceType$1([new streamUrl.constructor.elem(streamUrl), new $Int(0), new $Int(0), new $Int(width), new $Int(height), new options.constructor.elem(options)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
182864
+ playStream = $clone(_r$7, js.Value);
182865
+ _r$8 = jshelper.Await($clone(playStream, js.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
182866
+ _tuple$1 = _r$8;
182881
182867
  err = _tuple$1[1];
182882
- /* */ if (!(err === ptrType$2.nil)) { $s = 21; continue; }
182883
- /* */ $s = 22; continue;
182884
- /* if (!(err === ptrType$2.nil)) { */ case 21:
182885
- _r$14 = jshelper.GetError(err); /* */ $s = 23; case 23: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
182886
- _r$15 = _r$14.Error(); /* */ $s = 24; case 24: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
182887
- _arg$2 = new $String(_r$15);
182888
- _r$16 = errs.Errorf("Failed to play sos video stream: %s", new sliceType([_arg$2])); /* */ $s = 25; case 25: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
182889
- $24r$1 = _r$16;
182890
- $s = 26; case 26: return $24r$1;
182891
- /* } */ case 22:
182868
+ /* */ if (!(err === ptrType$3.nil)) { $s = 15; continue; }
182869
+ /* */ $s = 16; continue;
182870
+ /* if (!(err === ptrType$3.nil)) { */ case 15:
182871
+ _r$9 = jshelper.GetError(err); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
182872
+ _r$10 = _r$9.Error(); /* */ $s = 18; case 18: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
182873
+ _arg$1 = new $String(_r$10);
182874
+ _r$11 = errs.Errorf("Failed to play sos video stream: %s", new sliceType$1([_arg$1])); /* */ $s = 19; case 19: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
182875
+ $24r$1 = _r$11;
182876
+ $s = 20; case 20: return $24r$1;
182877
+ /* } */ case 16:
182892
182878
  ad.started = true;
182893
- /* } */ case 7:
182894
- millisSinceFirstFrame = ((x = $clone(timestamp[0], time.Time).Sub($clone(ad.firstFrameTimestamp, time.Time)).Milliseconds(), new $Uint64(x.$high, x.$low)));
182895
- _r$17 = ad.tsMuxer.Write(ad.videoStreamID, nal, millisSinceFirstFrame, millisSinceFirstFrame); /* */ $s = 27; case 27: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
182896
- err$1 = _r$17;
182879
+ /* } */ case 2:
182880
+ timestampMillisSinceFirstFrame = ((x = $clone(timestamp, time.Time).Sub($clone(ad.firstFrameTimestamp, time.Time)).Milliseconds(), new $Uint64(x.$high, x.$low)));
182881
+ ad.muxedFrameData.Reset();
182882
+ _r$12 = ad.tsMuxer.Write(ad.videoStreamID, nal, timestampMillisSinceFirstFrame, timestampMillisSinceFirstFrame); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
182883
+ err$1 = _r$12;
182897
182884
  if (!($interfaceIsEqual(err$1, $ifaceNil))) {
182898
182885
  $s = -1; return err$1;
182899
182886
  }
182900
- ad.frameNumber = (x$1 = ad.frameNumber, x$2 = new $Uint64(0, 1), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
182887
+ encodedPackets = base64.StdEncoding.EncodeToString(ad.muxedFrameData.Bytes());
182888
+ _r$13 = $clone(ad.androidSupraMediaBridge, js.Value).Call("stream", new sliceType$1([new $String(encodedPackets)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
182889
+ _r$13;
182901
182890
  $s = -1; return $ifaceNil;
182902
- /* */ } return; } var $f = {$blk: AndroidDecoder.ptr.prototype.Write, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, ad, err, err$1, fps, height, millisSinceFirstFrame, nal, options, playStream, preparePromise, timestamp, url, width, x, x$1, x$2, $s};return $f;
182891
+ /* */ } return; } var $f = {$blk: AndroidFramesDecoder.ptr.prototype.Write, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, ad, encodedPackets, err, err$1, height, nal, options, playStream, preparePromise, streamUrl, timestamp, timestampMillisSinceFirstFrame, width, x, $s};return $f;
182903
182892
  };
182904
- AndroidDecoder.prototype.Write = function(nal, timestamp) { return this.$val.Write(nal, timestamp); };
182905
- AndroidDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
182893
+ AndroidFramesDecoder.prototype.Write = function(nal, timestamp) { return this.$val.Write(nal, timestamp); };
182894
+ AndroidFramesDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
182906
182895
  var ad, outputBuffer;
182907
182896
  ad = this;
182908
182897
  return $ifaceNil;
182909
182898
  };
182910
- AndroidDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
182911
- AndroidDecoder.ptr.prototype.Release = function(outputBuffer) {
182899
+ AndroidFramesDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
182900
+ AndroidFramesDecoder.ptr.prototype.Release = function(outputBuffer) {
182912
182901
  var ad, outputBuffer;
182913
182902
  ad = this;
182914
182903
  };
182915
- AndroidDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
182916
- ptrType$3.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
182917
- AndroidDecoder.init("github.com/supraio/client-daemon/pkg/decoder/android", [{prop: "androidPlayer", name: "androidPlayer", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "started", name: "started", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "frameNumber", name: "frameNumber", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "tsMuxer", name: "tsMuxer", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "videoStreamID", name: "videoStreamID", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "firstFrameTimestamp", name: "firstFrameTimestamp", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
182904
+ AndroidFramesDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
182905
+ ptrType$4.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType, time.Time], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
182906
+ AndroidFramesDecoder.init("github.com/supraio/client-daemon/pkg/decoder/android", [{prop: "androidSupraMediaBridge", name: "androidSupraMediaBridge", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "started", name: "started", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "tsMuxer", name: "tsMuxer", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "videoStreamID", name: "videoStreamID", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "firstFrameTimestamp", name: "firstFrameTimestamp", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "muxedFrameData", name: "muxedFrameData", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
182918
182907
  $init = function() {
182919
182908
  $pkg.$init = function() {};
182920
182909
  /* */ 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:
182921
- $r = base64.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182922
- $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182910
+ $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182911
+ $r = base64.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182923
182912
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182924
182913
  $r = errs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182925
182914
  $r = jshelper.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182926
182915
  $r = mpeg2.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182927
182916
  $r = js.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182928
182917
  $r = time.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182929
- isFakeBridge = false;
182930
- $r = init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182931
182918
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
182932
182919
  };
182933
182920
  $pkg.$init = $init;
@@ -183328,17 +183315,67 @@ $packages["golang.org/x/mobile/event/size"] = (function() {
183328
183315
  $pkg.$init = $init;
183329
183316
  return $pkg;
183330
183317
  })();
183331
- $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
183332
- var $pkg = {}, $init, focus, key, mouse, size, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetScreenWidth, GetScreenHeight, GetBrowserZoomRatio, SetWindowWidth, SetWindowHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
183318
+ $packages["golang.org/x/mobile/event/touch"] = (function() {
183319
+ var $pkg = {}, $init, fmt, Event, Sequence, Type, sliceType;
183320
+ fmt = $packages["fmt"];
183321
+ Event = $pkg.Event = $newType(0, $kindStruct, "touch.Event", true, "golang.org/x/mobile/event/touch", true, function(X_, Y_, Sequence_, Type_) {
183322
+ this.$val = this;
183323
+ if (arguments.length === 0) {
183324
+ this.X = 0;
183325
+ this.Y = 0;
183326
+ this.Sequence = new Sequence(0, 0);
183327
+ this.Type = 0;
183328
+ return;
183329
+ }
183330
+ this.X = X_;
183331
+ this.Y = Y_;
183332
+ this.Sequence = Sequence_;
183333
+ this.Type = Type_;
183334
+ });
183335
+ Sequence = $pkg.Sequence = $newType(8, $kindInt64, "touch.Sequence", true, "golang.org/x/mobile/event/touch", true, null);
183336
+ Type = $pkg.Type = $newType(1, $kindUint8, "touch.Type", true, "golang.org/x/mobile/event/touch", true, null);
183337
+ sliceType = $sliceType($emptyInterface);
183338
+ Type.prototype.String = function() {
183339
+ var {$24r, _1, _r, t, $s, $r, $c} = $restore(this, {});
183340
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
183341
+ t = this.$val;
183342
+ _1 = t;
183343
+ if (_1 === (0)) {
183344
+ $s = -1; return "begin";
183345
+ } else if (_1 === (1)) {
183346
+ $s = -1; return "move";
183347
+ } else if (_1 === (2)) {
183348
+ $s = -1; return "end";
183349
+ }
183350
+ _r = fmt.Sprintf("touch.Type(%d)", new sliceType([new Type(t)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
183351
+ $24r = _r;
183352
+ $s = 2; case 2: return $24r;
183353
+ /* */ } return; } var $f = {$blk: Type.prototype.String, $c: true, $r, $24r, _1, _r, t, $s};return $f;
183354
+ };
183355
+ $ptrType(Type).prototype.String = function() { return new Type(this.$get()).String(); };
183356
+ Type.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
183357
+ Event.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: $Float32, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: $Float32, tag: ""}, {prop: "Sequence", name: "Sequence", embedded: false, exported: true, typ: Sequence, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]);
183358
+ $init = function() {
183359
+ $pkg.$init = function() {};
183360
+ /* */ 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:
183361
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183362
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
183363
+ };
183364
+ $pkg.$init = $init;
183365
+ return $pkg;
183366
+ })();
183367
+ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/util/dom"] = (function() {
183368
+ var $pkg = {}, $init, focus, key, mouse, size, touch, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetScreenWidth, GetScreenHeight, GetBrowserZoomRatio, SetWindowWidth, SetWindowHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
183333
183369
  focus = $packages["golang.org/x/mobile/event/focus"];
183334
183370
  key = $packages["golang.org/x/mobile/event/key"];
183335
183371
  mouse = $packages["golang.org/x/mobile/event/mouse"];
183336
183372
  size = $packages["golang.org/x/mobile/event/size"];
183373
+ touch = $packages["golang.org/x/mobile/event/touch"];
183337
183374
  geom = $packages["golang.org/x/mobile/geom"];
183338
183375
  math = $packages["math"];
183339
183376
  strings = $packages["strings"];
183340
183377
  js = $packages["syscall/js"];
183341
- DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "golang.org/x/exp/shiny/driver/util/dom", true, function(eventChan_, releases_) {
183378
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", true, function(eventChan_, releases_) {
183342
183379
  this.$val = this;
183343
183380
  if (arguments.length === 0) {
183344
183381
  this.eventChan = $chanNil;
@@ -183485,6 +183522,7 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
183485
183522
  $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183486
183523
  $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183487
183524
  $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183525
+ $r = d.bindTouchEvents(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183488
183526
  $s = -1; return;
183489
183527
  /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
183490
183528
  };
@@ -183768,8 +183806,56 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
183768
183806
  }
183769
183807
  return 0;
183770
183808
  };
183771
- 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: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}];
183772
- DomEvents.init("golang.org/x/exp/shiny/driver/util/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
183809
+ DomEvents.ptr.prototype.addTouchListener = function(eventName, eventType) {
183810
+ var {_r, _r$1, d, eventName, eventType, handler, opts, $s, $r, $c} = $restore(this, {eventName, eventType});
183811
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
183812
+ d = [d];
183813
+ eventName = [eventName];
183814
+ eventType = [eventType];
183815
+ handler = [handler];
183816
+ d[0] = this;
183817
+ handler[0] = $clone(js.FuncOf((function(d, eventName, eventType, handler) { return function $b(this$1, args) {
183818
+ var {_r, args, t, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
183819
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
183820
+ _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; }
183821
+ _r;
183822
+ t = $clone($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("changedTouches"), js.Value).Index(0), js.Value);
183823
+ $r = $send(d[0].eventChan, (x = new touch.Event.ptr(($fround($clone($clone(t, js.Value).Get("screenX"), js.Value).Float())), ($fround($clone($clone(t, js.Value).Get("screenY"), js.Value).Float())), (new touch.Sequence(0, $clone($clone(t, js.Value).Get("identifier"), js.Value).Int())), eventType[0]), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183824
+ $s = -1; return $ifaceNil;
183825
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, t, this$1, x, $s};return $f;
183826
+ }; })(d, eventName, eventType, handler)), js.Func);
183827
+ _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; }
183828
+ opts = $clone(_r, js.Value);
183829
+ $clone(opts, js.Value).Set("passive", new $Bool(false));
183830
+ $clone(opts, js.Value).Set("capture", new $Bool(false));
183831
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String(eventName[0]), new handler[0].constructor.elem(handler[0]), new opts.constructor.elem(opts)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
183832
+ _r$1;
183833
+ d[0].releases = $append(d[0].releases, (function(d, eventName, eventType, handler) { return function $b() {
183834
+ var {_r$2, $s, $r, $c} = $restore(this, {});
183835
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
183836
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String(eventName[0]), new handler[0].constructor.elem(handler[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
183837
+ _r$2;
183838
+ $clone(handler[0], js.Func).Release();
183839
+ $s = -1; return;
183840
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, $s};return $f;
183841
+ }; })(d, eventName, eventType, handler));
183842
+ $s = -1; return;
183843
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.addTouchListener, $c: true, $r, _r, _r$1, d, eventName, eventType, handler, opts, $s};return $f;
183844
+ };
183845
+ DomEvents.prototype.addTouchListener = function(eventName, eventType) { return this.$val.addTouchListener(eventName, eventType); };
183846
+ DomEvents.ptr.prototype.bindTouchEvents = function() {
183847
+ var {d, $s, $r, $c} = $restore(this, {});
183848
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
183849
+ d = this;
183850
+ $r = d.addTouchListener("touchstart", 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183851
+ $r = d.addTouchListener("touchend", 2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183852
+ $r = d.addTouchListener("touchmove", 1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183853
+ $s = -1; return;
183854
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindTouchEvents, $c: true, $r, d, $s};return $f;
183855
+ };
183856
+ DomEvents.prototype.bindTouchEvents = function() { return this.$val.bindTouchEvents(); };
183857
+ 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/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "addTouchListener", name: "addTouchListener", pkg: "github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", typ: $funcType([$String, touch.Type], [], false)}, {prop: "bindTouchEvents", name: "bindTouchEvents", pkg: "github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", typ: $funcType([], [], false)}];
183858
+ DomEvents.init("github.com/supraio/client-daemon/pkg/shiny/driver/util/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
183773
183859
  $init = function() {
183774
183860
  $pkg.$init = function() {};
183775
183861
  /* */ 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:
@@ -183777,10 +183863,11 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
183777
183863
  $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183778
183864
  $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183779
183865
  $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183780
- $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183781
- $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183782
- $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183783
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183866
+ $r = touch.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183867
+ $r = geom.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183868
+ $r = math.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183869
+ $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183870
+ $r = js.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
183784
183871
  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 }]);
183785
183872
  keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
183786
183873
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
@@ -185862,7 +185949,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder/nacldriver"]
185862
185949
  jsdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder/jsdecoder"];
185863
185950
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
185864
185951
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
185865
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
185952
+ dom = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/util/dom"];
185866
185953
  screen = $packages["golang.org/x/exp/shiny/screen"];
185867
185954
  f64 = $packages["golang.org/x/image/math/f64"];
185868
185955
  image = $packages["image"];
@@ -186504,6 +186591,140 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"] = (functio
186504
186591
  $pkg.$init = $init;
186505
186592
  return $pkg;
186506
186593
  })();
186594
+ $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder/jsdecoder"] = (function() {
186595
+ var $pkg = {}, $init, js, ptrType, jsSamsungWasmDecoder, IsAvailable, CreateJsSamsungWasmDecoder, GetJsSamsungWasmDecoder;
186596
+ js = $packages["syscall/js"];
186597
+ ptrType = $ptrType(js.Value);
186598
+ IsAvailable = function() {
186599
+ return !$clone($clone(js.Global(), js.Value).Get("samsungWasmDecoder"), js.Value).IsUndefined();
186600
+ };
186601
+ $pkg.IsAvailable = IsAvailable;
186602
+ CreateJsSamsungWasmDecoder = function() {
186603
+ var createdJsSamsungWasmDecoder;
186604
+ if (!(jsSamsungWasmDecoder === ptrType.nil)) {
186605
+ $panic(new $String("JsSamsungWasmDecoder already created"));
186606
+ }
186607
+ createdJsSamsungWasmDecoder = $clone($clone(js.Global(), js.Value).Get("samsungWasmDecoder"), js.Value);
186608
+ jsSamsungWasmDecoder = createdJsSamsungWasmDecoder;
186609
+ return jsSamsungWasmDecoder;
186610
+ };
186611
+ $pkg.CreateJsSamsungWasmDecoder = CreateJsSamsungWasmDecoder;
186612
+ GetJsSamsungWasmDecoder = function() {
186613
+ return jsSamsungWasmDecoder;
186614
+ };
186615
+ $pkg.GetJsSamsungWasmDecoder = GetJsSamsungWasmDecoder;
186616
+ $init = function() {
186617
+ $pkg.$init = function() {};
186618
+ /* */ 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:
186619
+ $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186620
+ jsSamsungWasmDecoder = ptrType.nil;
186621
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
186622
+ };
186623
+ $pkg.$init = $init;
186624
+ return $pkg;
186625
+ })();
186626
+ $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"] = (function() {
186627
+ var $pkg = {}, $init, general, jsdecoder, errs, jshelper, sync, js, time, SamsungWasmDecoder, sliceType, ptrType, sliceType$1, ptrType$1, IsAvailable, NewDecoder;
186628
+ general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
186629
+ jsdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder/jsdecoder"];
186630
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
186631
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
186632
+ sync = $packages["sync"];
186633
+ js = $packages["syscall/js"];
186634
+ time = $packages["time"];
186635
+ SamsungWasmDecoder = $pkg.SamsungWasmDecoder = $newType(0, $kindStruct, "samsungwasmdecoder.SamsungWasmDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder", true, function(mutexDecode_, mutexGetPicture_) {
186636
+ this.$val = this;
186637
+ if (arguments.length === 0) {
186638
+ this.mutexDecode = new sync.Mutex.ptr(0, 0);
186639
+ this.mutexGetPicture = new sync.Mutex.ptr(0, 0);
186640
+ return;
186641
+ }
186642
+ this.mutexDecode = mutexDecode_;
186643
+ this.mutexGetPicture = mutexGetPicture_;
186644
+ });
186645
+ sliceType = $sliceType($emptyInterface);
186646
+ ptrType = $ptrType(js.Value);
186647
+ sliceType$1 = $sliceType($Uint8);
186648
+ ptrType$1 = $ptrType(SamsungWasmDecoder);
186649
+ IsAvailable = function() {
186650
+ return jsdecoder.IsAvailable();
186651
+ };
186652
+ $pkg.IsAvailable = IsAvailable;
186653
+ NewDecoder = function(header) {
186654
+ var header;
186655
+ return [new SamsungWasmDecoder.ptr($clone(new sync.Mutex.ptr(0, 0), sync.Mutex), $clone(new sync.Mutex.ptr(0, 0), sync.Mutex)), $ifaceNil];
186656
+ };
186657
+ $pkg.NewDecoder = NewDecoder;
186658
+ SamsungWasmDecoder.ptr.prototype.Write = function(nal, timestamp) {
186659
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, decodePromise, decodeResult, err, jsSamsungWasmDecoder, m, nal, pictureBuffer, pictureUint8Array, timestamp, $s, $r, $c} = $restore(this, {nal, timestamp});
186660
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186661
+ m = this;
186662
+ jsSamsungWasmDecoder = jsdecoder.GetJsSamsungWasmDecoder();
186663
+ if (jsSamsungWasmDecoder === ptrType.nil) {
186664
+ jsSamsungWasmDecoder = jsdecoder.CreateJsSamsungWasmDecoder();
186665
+ }
186666
+ _r = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186667
+ pictureBuffer = $clone(_r, js.Value);
186668
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186669
+ pictureUint8Array = $clone(_r$1, js.Value);
186670
+ js.CopyBytesToJS($clone(pictureUint8Array, js.Value), nal);
186671
+ $r = m.mutexDecode.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186672
+ _r$2 = $clone(jsSamsungWasmDecoder, js.Value).Call("decodeAndRender", new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
186673
+ decodePromise = $clone(_r$2, js.Value);
186674
+ _r$3 = jshelper.Await($clone(decodePromise, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
186675
+ _tuple = _r$3;
186676
+ decodeResult = _tuple[0];
186677
+ err = _tuple[1];
186678
+ $r = m.mutexDecode.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186679
+ /* */ if (!(err === ptrType.nil)) { $s = 7; continue; }
186680
+ /* */ $s = 8; continue;
186681
+ /* if (!(err === ptrType.nil)) { */ case 7:
186682
+ _r$4 = jshelper.GetError(err); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
186683
+ _r$5 = _r$4.Error(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
186684
+ _arg = new $String(_r$5);
186685
+ _r$6 = errs.Errorf("Failed to decode frame: %s", new sliceType([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
186686
+ $24r = _r$6;
186687
+ $s = 12; case 12: return $24r;
186688
+ /* } */ case 8:
186689
+ /* */ if (!(($clone(decodeResult, js.Value).Float() === 0))) { $s = 13; continue; }
186690
+ /* */ $s = 14; continue;
186691
+ /* if (!(($clone(decodeResult, js.Value).Float() === 0))) { */ case 13:
186692
+ _r$7 = errs.Errorf("Failed to decode frame with code: %f", new sliceType([new $Float64($clone(decodeResult, js.Value).Float())])); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
186693
+ $24r$1 = _r$7;
186694
+ $s = 16; case 16: return $24r$1;
186695
+ /* } */ case 14:
186696
+ $s = -1; return $ifaceNil;
186697
+ /* */ } return; } var $f = {$blk: SamsungWasmDecoder.ptr.prototype.Write, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, decodePromise, decodeResult, err, jsSamsungWasmDecoder, m, nal, pictureBuffer, pictureUint8Array, timestamp, $s};return $f;
186698
+ };
186699
+ SamsungWasmDecoder.prototype.Write = function(nal, timestamp) { return this.$val.Write(nal, timestamp); };
186700
+ SamsungWasmDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
186701
+ var m, outputBuffer;
186702
+ m = this;
186703
+ return $ifaceNil;
186704
+ };
186705
+ SamsungWasmDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
186706
+ SamsungWasmDecoder.ptr.prototype.Release = function(outputBuffer) {
186707
+ var m, outputBuffer;
186708
+ m = this;
186709
+ };
186710
+ SamsungWasmDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
186711
+ ptrType$1.methods = [{prop: "destroy", name: "destroy", pkg: "github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder", typ: $funcType([], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
186712
+ SamsungWasmDecoder.init("github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder", [{prop: "mutexDecode", name: "mutexDecode", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "mutexGetPicture", name: "mutexGetPicture", embedded: false, exported: false, typ: sync.Mutex, tag: ""}]);
186713
+ $init = function() {
186714
+ $pkg.$init = function() {};
186715
+ /* */ 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:
186716
+ $r = general.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186717
+ $r = jsdecoder.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186718
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186719
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186720
+ $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186721
+ $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186722
+ $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186723
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
186724
+ };
186725
+ $pkg.$init = $init;
186726
+ return $pkg;
186727
+ })();
186507
186728
  $packages["github.com/nuberu/webgl/types"] = (function() {
186508
186729
  var $pkg = {}, $init, js, VertexArray, UniformLocation, Texture, Shader, ShaderPrecisionFormat, Program, Buffer, FrameBuffer, RenderBuffer, GLEnum, PowerPreference, Attributes, ActiveInfo, funcType, arrayType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, NewVertexArray, NewUniformLocation, NewTexture, NewShader, NewShaderPrecisionFormat, NewProgram, NewBuffer, NewFrameBuffer, NewRenderBuffer, NewActiveInfo;
186509
186730
  js = $packages["syscall/js"];
@@ -190870,7 +191091,7 @@ $packages["github.com/nuberu/webgl"] = (function() {
190870
191091
  $packages["github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver"] = (function() {
190871
191092
  var $pkg = {}, $init, fmt, dom, 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;
190872
191093
  fmt = $packages["fmt"];
190873
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
191094
+ dom = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/util/dom"];
190874
191095
  screen = $packages["golang.org/x/exp/shiny/screen"];
190875
191096
  f64 = $packages["golang.org/x/image/math/f64"];
190876
191097
  image = $packages["image"];
@@ -192260,7 +192481,7 @@ $packages["github.com/supraio/client-daemon/pkg/message"] = (function() {
192260
192481
  return $pkg;
192261
192482
  })();
192262
192483
  $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192263
- var $pkg = {}, $init, binary, fmt, errs, message, focus, key, mouse, sync, MouseHandler, KeyHandler, JsHelper, KeyTransformer, Helper, sliceType, ptrType, sliceType$1, sliceType$2, ptrType$1, chanType, ptrType$2, chanType$1, chanType$2, ptrType$3, NewMouseHandler, NewKeyHandler, NewHelper, NewKeyTransformer;
192484
+ var $pkg = {}, $init, binary, fmt, errs, message, focus, key, mouse, touch, sync, TouchHandler, MouseHandler, KeyHandler, JsHelper, KeyTransformer, Helper, sliceType, ptrType, sliceType$1, sliceType$2, ptrType$1, chanType, ptrType$2, chanType$1, ptrType$3, chanType$2, chanType$3, ptrType$4, NewTouchHandler, NewMouseHandler, NewKeyHandler, NewHelper, NewKeyTransformer;
192264
192485
  binary = $packages["encoding/binary"];
192265
192486
  fmt = $packages["fmt"];
192266
192487
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -192268,7 +192489,20 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192268
192489
  focus = $packages["golang.org/x/mobile/event/focus"];
192269
192490
  key = $packages["golang.org/x/mobile/event/key"];
192270
192491
  mouse = $packages["golang.org/x/mobile/event/mouse"];
192492
+ touch = $packages["golang.org/x/mobile/event/touch"];
192271
192493
  sync = $packages["sync"];
192494
+ TouchHandler = $pkg.TouchHandler = $newType(0, $kindStruct, "input.TouchHandler", true, "github.com/supraio/client-daemon/pkg/input", true, function(touchEventChan_, messageSender_, closed_) {
192495
+ this.$val = this;
192496
+ if (arguments.length === 0) {
192497
+ this.touchEventChan = $chanNil;
192498
+ this.messageSender = $ifaceNil;
192499
+ this.closed = false;
192500
+ return;
192501
+ }
192502
+ this.touchEventChan = touchEventChan_;
192503
+ this.messageSender = messageSender_;
192504
+ this.closed = closed_;
192505
+ });
192272
192506
  MouseHandler = $pkg.MouseHandler = $newType(0, $kindStruct, "input.MouseHandler", true, "github.com/supraio/client-daemon/pkg/input", true, function(mouseEventChan_, messageSender_, closed_) {
192273
192507
  this.$val = this;
192274
192508
  if (arguments.length === 0) {
@@ -192320,12 +192554,68 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192320
192554
  ptrType = $ptrType(KeyTransformer);
192321
192555
  sliceType$1 = $sliceType($emptyInterface);
192322
192556
  sliceType$2 = $sliceType(key.Event);
192323
- ptrType$1 = $ptrType(MouseHandler);
192324
- chanType = $chanType(mouse.Event, false, false);
192325
- ptrType$2 = $ptrType(KeyHandler);
192326
- chanType$1 = $chanType(key.Event, false, false);
192327
- chanType$2 = $chanType(focus.Event, false, false);
192328
- ptrType$3 = $ptrType(JsHelper);
192557
+ ptrType$1 = $ptrType(TouchHandler);
192558
+ chanType = $chanType(touch.Event, false, false);
192559
+ ptrType$2 = $ptrType(MouseHandler);
192560
+ chanType$1 = $chanType(mouse.Event, false, false);
192561
+ ptrType$3 = $ptrType(KeyHandler);
192562
+ chanType$2 = $chanType(key.Event, false, false);
192563
+ chanType$3 = $chanType(focus.Event, false, false);
192564
+ ptrType$4 = $ptrType(JsHelper);
192565
+ NewTouchHandler = function(touchEventChan, messageSender) {
192566
+ var messageSender, touchEventChan;
192567
+ return new TouchHandler.ptr(touchEventChan, messageSender, true);
192568
+ };
192569
+ $pkg.NewTouchHandler = NewTouchHandler;
192570
+ TouchHandler.ptr.prototype.Start = function() {
192571
+ var h;
192572
+ h = this;
192573
+ h.closed = false;
192574
+ $go($methodVal(h, "listenEvents"), []);
192575
+ };
192576
+ TouchHandler.prototype.Start = function() { return this.$val.Start(); };
192577
+ TouchHandler.ptr.prototype.Close = function() {
192578
+ var h;
192579
+ h = this;
192580
+ h.closed = true;
192581
+ };
192582
+ TouchHandler.prototype.Close = function() { return this.$val.Close(); };
192583
+ TouchHandler.ptr.prototype.listenEvents = function() {
192584
+ var {_r, _r$1, err, ev, eventData, h, $s, $r, $c} = $restore(this, {});
192585
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192586
+ h = this;
192587
+ /* while (true) { */ case 1:
192588
+ /* if (!(!h.closed)) { break; } */ if(!(!h.closed)) { $s = 2; continue; }
192589
+ _r = $recv(h.touchEventChan); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192590
+ ev = $clone(_r[0], touch.Event);
192591
+ eventData = h.encodeTouchEvent($clone(ev, touch.Event));
192592
+ _r$1 = h.messageSender.Send(49, eventData); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192593
+ err = _r$1;
192594
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; }
192595
+ /* */ $s = 6; continue;
192596
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5:
192597
+ $r = errs.Print("Cannot send screen touch event", err); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192598
+ /* } */ case 6:
192599
+ $s = 1; continue;
192600
+ case 2:
192601
+ $s = -1; return;
192602
+ /* */ } return; } var $f = {$blk: TouchHandler.ptr.prototype.listenEvents, $c: true, $r, _r, _r$1, err, ev, eventData, h, $s};return $f;
192603
+ };
192604
+ TouchHandler.prototype.listenEvents = function() { return this.$val.listenEvents(); };
192605
+ TouchHandler.ptr.prototype.encodeTouchEvent = function(ev) {
192606
+ var ev, h, sequenceData, typeData, x, xData, yData;
192607
+ h = this;
192608
+ sequenceData = $makeSlice(sliceType, 8);
192609
+ $clone(binary.BigEndian, binary.bigEndian).PutUint64(sequenceData, ((x = ev.Sequence, new $Uint64(x.$high, x.$low))));
192610
+ typeData = $makeSlice(sliceType, 2);
192611
+ $clone(binary.BigEndian, binary.bigEndian).PutUint16(typeData, ((ev.Type << 16 >>> 16)));
192612
+ xData = $makeSlice(sliceType, 4);
192613
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(xData, ((ev.X >> 0)));
192614
+ yData = $makeSlice(sliceType, 4);
192615
+ $clone(binary.BigEndian, binary.bigEndian).PutUint32(yData, ((ev.Y >> 0)));
192616
+ return $appendSlice(sequenceData, $appendSlice(typeData, $appendSlice(xData, yData)));
192617
+ };
192618
+ TouchHandler.prototype.encodeTouchEvent = function(ev) { return this.$val.encodeTouchEvent(ev); };
192329
192619
  NewMouseHandler = function(mouseEventChan, messageSender) {
192330
192620
  var messageSender, mouseEventChan;
192331
192621
  return new MouseHandler.ptr(mouseEventChan, messageSender, true);
@@ -192592,12 +192882,14 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192592
192882
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return transformedEvs; } if($curGoroutine.asleep) { var $f = {$blk: KeyTransformer.ptr.prototype.TransformAltGr, $c: true, $r, $24r, ev, t, transformedEvs, $s, $deferred};return $f; } }
192593
192883
  };
192594
192884
  KeyTransformer.prototype.TransformAltGr = function(ev) { return this.$val.TransformAltGr(ev); };
192595
- ptrType$1.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "listenEvents", name: "listenEvents", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [], false)}, {prop: "encodeMouseEvent", name: "encodeMouseEvent", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([mouse.Event], [sliceType], false)}];
192596
- ptrType$2.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "listenEvents", name: "listenEvents", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [], false)}, {prop: "listenFocusEvents", name: "listenFocusEvents", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [], false)}, {prop: "encodeKeyEvent", name: "encodeKeyEvent", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([key.Event], [sliceType], false)}, {prop: "init", name: "init", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [$error], false)}];
192597
- ptrType$3.methods = [{prop: "GetCapsLockState", name: "GetCapsLockState", pkg: "", typ: $funcType([], [$Bool, $error], false)}, {prop: "GetNumLockState", name: "GetNumLockState", pkg: "", typ: $funcType([], [$Bool, $error], false)}, {prop: "GetKeyboardLayout", name: "GetKeyboardLayout", pkg: "", typ: $funcType([], [$String, $error], false)}];
192885
+ ptrType$1.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "listenEvents", name: "listenEvents", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [], false)}, {prop: "encodeTouchEvent", name: "encodeTouchEvent", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([touch.Event], [sliceType], false)}];
192886
+ ptrType$2.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "listenEvents", name: "listenEvents", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [], false)}, {prop: "encodeMouseEvent", name: "encodeMouseEvent", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([mouse.Event], [sliceType], false)}];
192887
+ ptrType$3.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "listenEvents", name: "listenEvents", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [], false)}, {prop: "listenFocusEvents", name: "listenFocusEvents", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [], false)}, {prop: "encodeKeyEvent", name: "encodeKeyEvent", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([key.Event], [sliceType], false)}, {prop: "init", name: "init", pkg: "github.com/supraio/client-daemon/pkg/input", typ: $funcType([], [$error], false)}];
192888
+ ptrType$4.methods = [{prop: "GetCapsLockState", name: "GetCapsLockState", pkg: "", typ: $funcType([], [$Bool, $error], false)}, {prop: "GetNumLockState", name: "GetNumLockState", pkg: "", typ: $funcType([], [$Bool, $error], false)}, {prop: "GetKeyboardLayout", name: "GetKeyboardLayout", pkg: "", typ: $funcType([], [$String, $error], false)}];
192598
192889
  ptrType.methods = [{prop: "TransformAltGr", name: "TransformAltGr", pkg: "", typ: $funcType([key.Event], [sliceType$2], false)}];
192599
- MouseHandler.init("github.com/supraio/client-daemon/pkg/input", [{prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "messageSender", name: "messageSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}]);
192600
- KeyHandler.init("github.com/supraio/client-daemon/pkg/input", [{prop: "helper", name: "helper", embedded: false, exported: false, typ: Helper, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "messageSender", name: "messageSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "keyTransformer", name: "keyTransformer", embedded: false, exported: false, typ: ptrType, tag: ""}]);
192890
+ TouchHandler.init("github.com/supraio/client-daemon/pkg/input", [{prop: "touchEventChan", name: "touchEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "messageSender", name: "messageSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}]);
192891
+ MouseHandler.init("github.com/supraio/client-daemon/pkg/input", [{prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "messageSender", name: "messageSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}]);
192892
+ KeyHandler.init("github.com/supraio/client-daemon/pkg/input", [{prop: "helper", name: "helper", embedded: false, exported: false, typ: Helper, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "messageSender", name: "messageSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "keyTransformer", name: "keyTransformer", embedded: false, exported: false, typ: ptrType, tag: ""}]);
192601
192893
  JsHelper.init("", []);
192602
192894
  KeyTransformer.init("github.com/supraio/client-daemon/pkg/input", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "isCtrlLeftPressed", name: "isCtrlLeftPressed", embedded: false, exported: false, typ: $Bool, tag: ""}]);
192603
192895
  Helper.init([{prop: "GetCapsLockState", name: "GetCapsLockState", pkg: "", typ: $funcType([], [$Bool, $error], false)}, {prop: "GetKeyboardLayout", name: "GetKeyboardLayout", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "GetNumLockState", name: "GetNumLockState", pkg: "", typ: $funcType([], [$Bool, $error], false)}]);
@@ -192611,7 +192903,8 @@ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
192611
192903
  $r = focus.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192612
192904
  $r = key.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192613
192905
  $r = mouse.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192614
- $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192906
+ $r = touch.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192907
+ $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192615
192908
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
192616
192909
  };
192617
192910
  $pkg.$init = $init;
@@ -192768,14 +193061,14 @@ $packages["github.com/supraio/client-daemon/pkg/netclient"] = (function() {
192768
193061
  h = this;
192769
193062
  /* while (true) { */ case 1:
192770
193063
  /* if (!(!h.closed)) { break; } */ if(!(!h.closed)) { $s = 2; continue; }
192771
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192772
- _r = h.messageSender.Send(2, new sliceType([])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193064
+ _r = h.messageSender.Send(2, new sliceType([])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192773
193065
  err = _r;
192774
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; }
192775
- /* */ $s = 6; continue;
192776
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5:
192777
- $r = errs.Print("Ping error", err); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192778
- /* } */ case 6:
193066
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
193067
+ /* */ $s = 5; continue;
193068
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
193069
+ $r = errs.Print("Ping error", err); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193070
+ /* } */ case 5:
193071
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192779
193072
  $s = 1; continue;
192780
193073
  case 2:
192781
193074
  $s = -1; return;
@@ -193460,7 +193753,7 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/webgldriver"] = (fu
193460
193753
  fmt = $packages["fmt"];
193461
193754
  webgl = $packages["github.com/nuberu/webgl"];
193462
193755
  types = $packages["github.com/nuberu/webgl/types"];
193463
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
193756
+ dom = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/util/dom"];
193464
193757
  imageutil = $packages["golang.org/x/exp/shiny/imageutil"];
193465
193758
  screen = $packages["golang.org/x/exp/shiny/screen"];
193466
193759
  f64 = $packages["golang.org/x/image/math/f64"];
@@ -194424,6 +194717,18 @@ $packages["github.com/supraio/client-daemon/pkg/videostream"] = (function() {
194424
194717
  return false;
194425
194718
  };
194426
194719
  UnavailableVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
194720
+ UnavailableVideoStreamer.ptr.prototype.Play = function() {
194721
+ var u;
194722
+ u = this;
194723
+ $panic(new $String("not implemented Play"));
194724
+ };
194725
+ UnavailableVideoStreamer.prototype.Play = function() { return this.$val.Play(); };
194726
+ UnavailableVideoStreamer.ptr.prototype.Stop = function() {
194727
+ var u;
194728
+ u = this;
194729
+ $panic(new $String("not implemented Stop"));
194730
+ };
194731
+ UnavailableVideoStreamer.prototype.Stop = function() { return this.$val.Stop(); };
194427
194732
  UnavailableVideoStreamer.ptr.prototype.GetProtocol = function() {
194428
194733
  var u;
194429
194734
  u = this;
@@ -194442,7 +194747,7 @@ $packages["github.com/supraio/client-daemon/pkg/videostream"] = (function() {
194442
194747
  $panic(new $String("not implemented GetHostname"));
194443
194748
  };
194444
194749
  UnavailableVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
194445
- ptrType.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}];
194750
+ ptrType.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Play", name: "Play", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [$error], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}];
194446
194751
  UnavailableVideoStreamer.init("", []);
194447
194752
  $init = function() {
194448
194753
  $pkg.$init = function() {};
@@ -194462,23 +194767,21 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194462
194767
  videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
194463
194768
  js = $packages["syscall/js"];
194464
194769
  time = $packages["time"];
194465
- SOSVideoStreamer = $pkg.SOSVideoStreamer = $newType(0, $kindStruct, "sosstream.SOSVideoStreamer", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_) {
194770
+ SOSVideoStreamer = $pkg.SOSVideoStreamer = $newType(0, $kindStruct, "sosstream.SOSVideoStreamer", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_, started_) {
194466
194771
  this.$val = this;
194467
194772
  if (arguments.length === 0) {
194468
194773
  this.sos = new js.Value.ptr(null, false, arrayType.zero());
194774
+ this.started = false;
194469
194775
  return;
194470
194776
  }
194471
194777
  this.sos = sos_;
194778
+ this.started = started_;
194472
194779
  });
194473
- SOSStreamDecoder = $pkg.SOSStreamDecoder = $newType(0, $kindStruct, "sosstream.SOSStreamDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_, started_) {
194780
+ SOSStreamDecoder = $pkg.SOSStreamDecoder = $newType(0, $kindStruct, "sosstream.SOSStreamDecoder", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function() {
194474
194781
  this.$val = this;
194475
194782
  if (arguments.length === 0) {
194476
- this.sos = new js.Value.ptr(null, false, arrayType.zero());
194477
- this.started = false;
194478
194783
  return;
194479
194784
  }
194480
- this.sos = sos_;
194481
- this.started = started_;
194482
194785
  });
194483
194786
  funcType = $funcType([], [], false);
194484
194787
  arrayType = $arrayType(funcType, 0);
@@ -194489,7 +194792,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194489
194792
  ptrType$2 = $ptrType(SOSStreamDecoder);
194490
194793
  init = function() {
194491
194794
  var videoStreamer;
194492
- videoStreamer = new SOSVideoStreamer.ptr($clone($clone(js.Global(), js.Value).Get("sos"), js.Value));
194795
+ videoStreamer = new SOSVideoStreamer.ptr($clone($clone(js.Global(), js.Value).Get("sos"), js.Value), false);
194493
194796
  videostream.Register(videoStreamer);
194494
194797
  };
194495
194798
  SOSVideoStreamer.ptr.prototype.IsAvailable = function() {
@@ -194498,65 +194801,15 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194498
194801
  return !$clone(m.sos, js.Value).IsUndefined() && $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("stream"), js.Value).Truthy();
194499
194802
  };
194500
194803
  SOSVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
194501
- SOSVideoStreamer.ptr.prototype.GetProtocol = function() {
194502
- var _1, m, protocol, protocolValue;
194503
- m = this;
194504
- protocolValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamProtocol"), js.Value);
194505
- protocol = 0;
194506
- if (!$clone(protocolValue, js.Value).IsUndefined() && ($clone(protocolValue, js.Value).Type() === 4)) {
194507
- _1 = $clone(protocolValue, js.Value).String();
194508
- if (_1 === ("UDP")) {
194509
- protocol = 0;
194510
- } else if (_1 === ("HTTP")) {
194511
- protocol = 1;
194512
- } else if (_1 === ("HTTPMP4")) {
194513
- protocol = 2;
194514
- } else if (_1 === ("RTP")) {
194515
- protocol = 3;
194516
- } else {
194517
- protocol = 0;
194518
- }
194519
- }
194520
- return protocol;
194521
- };
194522
- SOSVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
194523
- SOSVideoStreamer.ptr.prototype.GetPort = function() {
194524
- var m, port, portValue;
194525
- m = this;
194526
- portValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamPort"), js.Value);
194527
- port = 5000;
194528
- if (!$clone(portValue, js.Value).IsUndefined() && ($clone(portValue, js.Value).Type() === 3)) {
194529
- port = $clone(portValue, js.Value).Int();
194530
- }
194531
- return ((port << 16 >>> 16));
194532
- };
194533
- SOSVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
194534
- SOSVideoStreamer.ptr.prototype.GetHostname = function() {
194535
- var hostname, hostnameValue, m;
194536
- m = this;
194537
- hostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamHostname"), js.Value);
194538
- hostname = "";
194539
- if (!$clone(hostnameValue, js.Value).IsUndefined() && ($clone(hostnameValue, js.Value).Type() === 4)) {
194540
- hostname = $clone(hostnameValue, js.Value).String();
194541
- }
194542
- return hostname;
194543
- };
194544
- SOSVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
194545
- NewDecoder = function(header) {
194546
- var header, sos;
194547
- sos = $clone($clone(js.Global(), js.Value).Get("sos"), js.Value);
194548
- return [new SOSStreamDecoder.ptr($clone(sos, js.Value), false), $ifaceNil];
194549
- };
194550
- $pkg.NewDecoder = NewDecoder;
194551
- SOSStreamDecoder.ptr.prototype.Write = function(nal, param) {
194552
- var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, err, height, hostname, m, nal, options, param, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s, $r, $c} = $restore(this, {nal, param});
194804
+ SOSVideoStreamer.ptr.prototype.Play = function() {
194805
+ var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, err, height, hostname, m, options, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s, $r, $c} = $restore(this, {});
194553
194806
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194554
194807
  m = this;
194555
194808
  /* */ if (!m.started) { $s = 1; continue; }
194556
194809
  /* */ $s = 2; continue;
194557
194810
  /* if (!m.started) { */ case 1:
194558
- protocol = m.getProtocol();
194559
- port = m.getPort();
194811
+ protocol = m.GetProtocol();
194812
+ port = m.GetPort();
194560
194813
  hostname = m.getStreamHostname(protocol);
194561
194814
  urlProtocol = m.getURLProtocol(protocol);
194562
194815
  sosProtocol = m.getSOSProtocol(protocol);
@@ -194601,35 +194854,90 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194601
194854
  m.started = true;
194602
194855
  /* } */ case 2:
194603
194856
  $s = -1; return $ifaceNil;
194604
- /* */ } return; } var $f = {$blk: SOSStreamDecoder.ptr.prototype.Write, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, err, height, hostname, m, nal, options, param, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s};return $f;
194857
+ /* */ } return; } var $f = {$blk: SOSVideoStreamer.ptr.prototype.Play, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, err, height, hostname, m, options, playStream, port, preparePromise, protocol, sosProtocol, url, urlProtocol, width, $s};return $f;
194605
194858
  };
194606
- SOSStreamDecoder.prototype.Write = function(nal, param) { return this.$val.Write(nal, param); };
194607
- SOSStreamDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
194608
- var m, outputBuffer;
194859
+ SOSVideoStreamer.prototype.Play = function() { return this.$val.Play(); };
194860
+ SOSVideoStreamer.ptr.prototype.Stop = function() {
194861
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, height, hostname, m, port, protocol, stopPromise, url, urlProtocol, width, $s, $r, $c} = $restore(this, {});
194862
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194609
194863
  m = this;
194610
- return $ifaceNil;
194864
+ /* */ if (m.started) { $s = 1; continue; }
194865
+ /* */ $s = 2; continue;
194866
+ /* if (m.started) { */ case 1:
194867
+ protocol = m.GetProtocol();
194868
+ port = m.GetPort();
194869
+ hostname = m.getStreamHostname(protocol);
194870
+ urlProtocol = m.getURLProtocol(protocol);
194871
+ _r = fmt.Sprintf("%s://%s:%d", new sliceType([new $String(urlProtocol), new $String(hostname), new $Uint16(port)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
194872
+ url = _r;
194873
+ width = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
194874
+ height = $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
194875
+ _r$1 = $clone($clone(m.sos, js.Value).Get("stream"), js.Value).Call("stop", new sliceType([new $String(url), new $Int(0), new $Int(0), new $Int(width), new $Int(height)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
194876
+ stopPromise = $clone(_r$1, js.Value);
194877
+ _r$2 = jshelper.Await($clone(stopPromise, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
194878
+ _tuple = _r$2;
194879
+ err = _tuple[1];
194880
+ /* */ if (!(err === ptrType.nil)) { $s = 6; continue; }
194881
+ /* */ $s = 7; continue;
194882
+ /* if (!(err === ptrType.nil)) { */ case 6:
194883
+ _r$3 = jshelper.GetError(err); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
194884
+ _r$4 = _r$3.Error(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
194885
+ _arg = new $String(_r$4);
194886
+ _r$5 = errs.Errorf("Failed to stop sos video stream: %s", new sliceType([_arg])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
194887
+ $24r = _r$5;
194888
+ $s = 11; case 11: return $24r;
194889
+ /* } */ case 7:
194890
+ m.started = false;
194891
+ /* } */ case 2:
194892
+ $s = -1; return $ifaceNil;
194893
+ /* */ } return; } var $f = {$blk: SOSVideoStreamer.ptr.prototype.Stop, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, height, hostname, m, port, protocol, stopPromise, url, urlProtocol, width, $s};return $f;
194611
194894
  };
194612
- SOSStreamDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
194613
- SOSStreamDecoder.ptr.prototype.Release = function(outputBuffer) {
194614
- var m, outputBuffer;
194895
+ SOSVideoStreamer.prototype.Stop = function() { return this.$val.Stop(); };
194896
+ SOSVideoStreamer.ptr.prototype.GetProtocol = function() {
194897
+ var _1, m, protocol, protocolValue;
194615
194898
  m = this;
194899
+ protocolValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamProtocol"), js.Value);
194900
+ protocol = 0;
194901
+ if (!$clone(protocolValue, js.Value).IsUndefined() && ($clone(protocolValue, js.Value).Type() === 4)) {
194902
+ _1 = $clone(protocolValue, js.Value).String();
194903
+ if (_1 === ("UDP")) {
194904
+ protocol = 0;
194905
+ } else if (_1 === ("HTTP")) {
194906
+ protocol = 1;
194907
+ } else if (_1 === ("HTTPMP4")) {
194908
+ protocol = 2;
194909
+ } else if (_1 === ("RTP")) {
194910
+ protocol = 3;
194911
+ } else {
194912
+ protocol = 0;
194913
+ }
194914
+ }
194915
+ return protocol;
194616
194916
  };
194617
- SOSStreamDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
194618
- SOSStreamDecoder.ptr.prototype.getProtocol = function() {
194619
- var m, videoStreamer;
194917
+ SOSVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
194918
+ SOSVideoStreamer.ptr.prototype.GetPort = function() {
194919
+ var m, port, portValue;
194620
194920
  m = this;
194621
- videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
194622
- return videoStreamer.GetProtocol();
194921
+ portValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamPort"), js.Value);
194922
+ port = 5000;
194923
+ if (!$clone(portValue, js.Value).IsUndefined() && ($clone(portValue, js.Value).Type() === 3)) {
194924
+ port = $clone(portValue, js.Value).Int();
194925
+ }
194926
+ return ((port << 16 >>> 16));
194623
194927
  };
194624
- SOSStreamDecoder.prototype.getProtocol = function() { return this.$val.getProtocol(); };
194625
- SOSStreamDecoder.ptr.prototype.getPort = function() {
194626
- var m, videoStreamer;
194928
+ SOSVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
194929
+ SOSVideoStreamer.ptr.prototype.GetHostname = function() {
194930
+ var hostname, hostnameValue, m;
194627
194931
  m = this;
194628
- videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
194629
- return videoStreamer.GetPort();
194932
+ hostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamHostname"), js.Value);
194933
+ hostname = "";
194934
+ if (!$clone(hostnameValue, js.Value).IsUndefined() && ($clone(hostnameValue, js.Value).Type() === 4)) {
194935
+ hostname = $clone(hostnameValue, js.Value).String();
194936
+ }
194937
+ return hostname;
194630
194938
  };
194631
- SOSStreamDecoder.prototype.getPort = function() { return this.$val.getPort(); };
194632
- SOSStreamDecoder.ptr.prototype.getServerHostname = function() {
194939
+ SOSVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
194940
+ SOSVideoStreamer.ptr.prototype.getServerHostname = function() {
194633
194941
  var m, serverHostname, serverHostnameValue;
194634
194942
  m = this;
194635
194943
  serverHostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("hostname"), js.Value);
@@ -194639,11 +194947,11 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194639
194947
  }
194640
194948
  return serverHostname;
194641
194949
  };
194642
- SOSStreamDecoder.prototype.getServerHostname = function() { return this.$val.getServerHostname(); };
194643
- SOSStreamDecoder.ptr.prototype.getStreamHostname = function(protocol) {
194950
+ SOSVideoStreamer.prototype.getServerHostname = function() { return this.$val.getServerHostname(); };
194951
+ SOSVideoStreamer.ptr.prototype.getStreamHostname = function(protocol) {
194644
194952
  var _1, hostname, m, protocol, videoStreamer;
194645
194953
  m = this;
194646
- videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value));
194954
+ videoStreamer = new SOSVideoStreamer.ptr($clone(m.sos, js.Value), false);
194647
194955
  hostname = videoStreamer.GetHostname();
194648
194956
  if (!(hostname === "")) {
194649
194957
  return hostname;
@@ -194656,8 +194964,8 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194656
194964
  }
194657
194965
  return hostname;
194658
194966
  };
194659
- SOSStreamDecoder.prototype.getStreamHostname = function(protocol) { return this.$val.getStreamHostname(protocol); };
194660
- SOSStreamDecoder.ptr.prototype.getURLProtocol = function(protocol) {
194967
+ SOSVideoStreamer.prototype.getStreamHostname = function(protocol) { return this.$val.getStreamHostname(protocol); };
194968
+ SOSVideoStreamer.ptr.prototype.getURLProtocol = function(protocol) {
194661
194969
  var _1, m, protocol;
194662
194970
  m = this;
194663
194971
  _1 = protocol;
@@ -194671,8 +194979,8 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194671
194979
  $panic(new $String("Unknown url protocol"));
194672
194980
  }
194673
194981
  };
194674
- SOSStreamDecoder.prototype.getURLProtocol = function(protocol) { return this.$val.getURLProtocol(protocol); };
194675
- SOSStreamDecoder.ptr.prototype.getSOSProtocol = function(protocol) {
194982
+ SOSVideoStreamer.prototype.getURLProtocol = function(protocol) { return this.$val.getURLProtocol(protocol); };
194983
+ SOSVideoStreamer.ptr.prototype.getSOSProtocol = function(protocol) {
194676
194984
  var _1, m, protocol;
194677
194985
  m = this;
194678
194986
  _1 = protocol;
@@ -194686,11 +194994,41 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194686
194994
  $panic(new $String("Unknown sos protocol"));
194687
194995
  }
194688
194996
  };
194689
- SOSStreamDecoder.prototype.getSOSProtocol = function(protocol) { return this.$val.getSOSProtocol(protocol); };
194690
- ptrType$1.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [videostream.Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}];
194691
- ptrType$2.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "getProtocol", name: "getProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([], [videostream.Protocol], false)}, {prop: "getPort", name: "getPort", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([], [$Uint16], false)}, {prop: "getServerHostname", name: "getServerHostname", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([], [$String], false)}, {prop: "getStreamHostname", name: "getStreamHostname", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}, {prop: "getURLProtocol", name: "getURLProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}, {prop: "getSOSProtocol", name: "getSOSProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}];
194692
- SOSVideoStreamer.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}]);
194693
- SOSStreamDecoder.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "started", name: "started", embedded: false, exported: false, typ: $Bool, tag: ""}]);
194997
+ SOSVideoStreamer.prototype.getSOSProtocol = function(protocol) { return this.$val.getSOSProtocol(protocol); };
194998
+ NewDecoder = function(header) {
194999
+ var header;
195000
+ return [new SOSStreamDecoder.ptr(), $ifaceNil];
195001
+ };
195002
+ $pkg.NewDecoder = NewDecoder;
195003
+ SOSStreamDecoder.ptr.prototype.Write = function(nal, param) {
195004
+ var {$24r, _r, m, nal, param, $s, $r, $c} = $restore(this, {nal, param});
195005
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195006
+ m = this;
195007
+ _r = errs.Errorf("SOSStreamDecoder does not expect any input data. Play SOS stream directly", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195008
+ $24r = _r;
195009
+ $s = 2; case 2: return $24r;
195010
+ /* */ } return; } var $f = {$blk: SOSStreamDecoder.ptr.prototype.Write, $c: true, $r, $24r, _r, m, nal, param, $s};return $f;
195011
+ };
195012
+ SOSStreamDecoder.prototype.Write = function(nal, param) { return this.$val.Write(nal, param); };
195013
+ SOSStreamDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
195014
+ var {$24r, _r, m, outputBuffer, $s, $r, $c} = $restore(this, {outputBuffer});
195015
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195016
+ m = this;
195017
+ _r = errs.Errorf("SOSStreamDecoder does not expect any input data. Play SOS stream directly", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195018
+ $24r = _r;
195019
+ $s = 2; case 2: return $24r;
195020
+ /* */ } return; } var $f = {$blk: SOSStreamDecoder.ptr.prototype.NextOutput, $c: true, $r, $24r, _r, m, outputBuffer, $s};return $f;
195021
+ };
195022
+ SOSStreamDecoder.prototype.NextOutput = function(outputBuffer) { return this.$val.NextOutput(outputBuffer); };
195023
+ SOSStreamDecoder.ptr.prototype.Release = function(outputBuffer) {
195024
+ var m, outputBuffer;
195025
+ m = this;
195026
+ };
195027
+ SOSStreamDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
195028
+ ptrType$1.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Play", name: "Play", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [$error], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [videostream.Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}, {prop: "getServerHostname", name: "getServerHostname", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([], [$String], false)}, {prop: "getStreamHostname", name: "getStreamHostname", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}, {prop: "getURLProtocol", name: "getURLProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}, {prop: "getSOSProtocol", name: "getSOSProtocol", pkg: "github.com/supraio/client-daemon/pkg/decoder/sosstream", typ: $funcType([videostream.Protocol], [$String], false)}];
195029
+ ptrType$2.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$error], false)}, {prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
195030
+ SOSVideoStreamer.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "started", name: "started", embedded: false, exported: false, typ: $Bool, tag: ""}]);
195031
+ SOSStreamDecoder.init("", []);
194694
195032
  $init = function() {
194695
195033
  $pkg.$init = function() {};
194696
195034
  /* */ 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:
@@ -194708,12 +195046,13 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function(
194708
195046
  return $pkg;
194709
195047
  })();
194710
195048
  $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194711
- var $pkg = {}, $init, fmt, android, general, h264decoder, nacldecoder, sosstream, webcodecs, errs, videostream, time, Decoder, sliceType, sliceType$1, NewDecoder;
195049
+ var $pkg = {}, $init, fmt, android, general, h264decoder, nacldecoder, samsungwasmdecoder, sosstream, webcodecs, errs, videostream, time, Decoder, sliceType, sliceType$1, NewDecoder;
194712
195050
  fmt = $packages["fmt"];
194713
195051
  android = $packages["github.com/supraio/client-daemon/pkg/decoder/android"];
194714
195052
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
194715
195053
  h264decoder = $packages["github.com/supraio/client-daemon/pkg/decoder/h264decoder"];
194716
195054
  nacldecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"];
195055
+ samsungwasmdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"];
194717
195056
  sosstream = $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"];
194718
195057
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
194719
195058
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -194723,7 +195062,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194723
195062
  sliceType = $sliceType($emptyInterface);
194724
195063
  sliceType$1 = $sliceType($Uint8);
194725
195064
  NewDecoder = function(header) {
194726
- var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, header, $s, $r, $c} = $restore(this, {header});
195065
+ var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, _returncast$5, header, $s, $r, $c} = $restore(this, {header});
194727
195066
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194728
195067
  _arg = new $Bool(android.IsAvailable());
194729
195068
  _r = videostream.Get().IsAvailable(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
@@ -194734,12 +195073,13 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194734
195073
  _r$1 = fmt.Println(new sliceType([new $String("Decoders availability: android"), _arg, new $String(", videostream"), _arg$1, new $String(", nacldecoder"), _arg$2, new $String(", webcodecs"), _arg$3, new $String(", h264decoder"), _arg$4])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
194735
195074
  _r$1;
194736
195075
  /* */ if (android.IsAvailable()) { $s = 3; continue; }
194737
- _r$2 = videostream.Get().IsAvailable(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195076
+ _r$2 = videostream.Get().IsAvailable(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
194738
195077
  /* */ if (_r$2) { $s = 4; continue; }
194739
195078
  /* */ if (nacldecoder.IsAvailable()) { $s = 5; continue; }
194740
- /* */ if (webcodecs.IsAvailable()) { $s = 6; continue; }
194741
- /* */ if (h264decoder.IsAvailable()) { $s = 7; continue; }
194742
- /* */ $s = 8; continue;
195079
+ /* */ if (samsungwasmdecoder.IsAvailable()) { $s = 6; continue; }
195080
+ /* */ if (webcodecs.IsAvailable()) { $s = 7; continue; }
195081
+ /* */ if (h264decoder.IsAvailable()) { $s = 8; continue; }
195082
+ /* */ $s = 9; continue;
194743
195083
  /* if (android.IsAvailable()) { */ case 3:
194744
195084
  _returncast = android.NewDecoder(header);
194745
195085
  $s = -1; return [_returncast[0], _returncast[1]];
@@ -194749,19 +195089,22 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194749
195089
  /* } else if (nacldecoder.IsAvailable()) { */ case 5:
194750
195090
  _returncast$2 = nacldecoder.NewDecoder(header);
194751
195091
  $s = -1; return [_returncast$2[0], _returncast$2[1]];
194752
- /* } else if (webcodecs.IsAvailable()) { */ case 6:
194753
- _returncast$3 = webcodecs.NewDecoder(header);
195092
+ /* } else if (samsungwasmdecoder.IsAvailable()) { */ case 6:
195093
+ _returncast$3 = samsungwasmdecoder.NewDecoder(header);
194754
195094
  $s = -1; return [_returncast$3[0], _returncast$3[1]];
194755
- /* } else if (h264decoder.IsAvailable()) { */ case 7:
194756
- _returncast$4 = h264decoder.NewDecoder(header);
195095
+ /* } else if (webcodecs.IsAvailable()) { */ case 7:
195096
+ _returncast$4 = webcodecs.NewDecoder(header);
194757
195097
  $s = -1; return [_returncast$4[0], _returncast$4[1]];
194758
- /* } else { */ case 8:
194759
- _r$3 = errs.Errorf("Not available any decoder adapter in JS", sliceType.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
195098
+ /* } else if (h264decoder.IsAvailable()) { */ case 8:
195099
+ _returncast$5 = h264decoder.NewDecoder(header);
195100
+ $s = -1; return [_returncast$5[0], _returncast$5[1]];
195101
+ /* } else { */ case 9:
195102
+ _r$3 = errs.Errorf("Not available any decoder adapter in JS", sliceType.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
194760
195103
  $24r = [$ifaceNil, _r$3];
194761
- $s = 12; case 12: return $24r;
194762
- /* } */ case 9:
195104
+ $s = 13; case 13: return $24r;
195105
+ /* } */ case 10:
194763
195106
  $s = -1; return [$ifaceNil, $ifaceNil];
194764
- /* */ } return; } var $f = {$blk: NewDecoder, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, header, $s};return $f;
195107
+ /* */ } return; } var $f = {$blk: NewDecoder, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _returncast, _returncast$1, _returncast$2, _returncast$3, _returncast$4, _returncast$5, header, $s};return $f;
194765
195108
  };
194766
195109
  $pkg.NewDecoder = NewDecoder;
194767
195110
  Decoder.init([{prop: "NextOutput", name: "NextOutput", pkg: "", typ: $funcType([general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1, time.Time], [$error], false)}]);
@@ -194773,11 +195116,12 @@ $packages["github.com/supraio/client-daemon/pkg/decoder"] = (function() {
194773
195116
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194774
195117
  $r = h264decoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194775
195118
  $r = nacldecoder.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194776
- $r = sosstream.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194777
- $r = webcodecs.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194778
- $r = errs.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194779
- $r = videostream.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194780
- $r = time.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195119
+ $r = samsungwasmdecoder.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195120
+ $r = sosstream.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195121
+ $r = webcodecs.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195122
+ $r = errs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195123
+ $r = videostream.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195124
+ $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194781
195125
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
194782
195126
  };
194783
195127
  $pkg.$init = $init;
@@ -194958,11 +195302,12 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
194958
195302
  this.groups = groups_;
194959
195303
  });
194960
195304
  Frame = $pkg.Frame = $newType(8, $kindInterface, "stats.Frame", true, "github.com/supraio/client-daemon/pkg/stats", true, null);
194961
- Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, stopwatch_, metrics_, latency_, serverTimestampAhead_, serverTimestampAheadBuffer_, currentFramesCount_, lastFrameRate_, totalFramesCount_, lastFramesLatencyAverage_, lastFramesLatencyVariance_, longTermFramesLatencyAverage_, longTermFramesLatencyVariance_, lastFramesCollectionAverage_, lastFramesCollectionVariance_, longTermFramesCollectionAverage_, longTermFramesCollectionVariance_, currentThrottledCollectionFramesCount_, lastThrottledCollectionFrameRate_, lastFramesDecodeWriteAverage_, lastFramesDecodeOutputAverage_, lastFramesDecodeWriteVariance_, lastFramesDecodeOutputVariance_, longTermFramesDecodeWriteAverage_, longTermFramesDecodeOutputAverage_, longTermFramesDecodeWriteVariance_, longTermFramesDecodeOutputVariance_, currentThrottledDecodeFramesCount_, lastThrottledDecodeFrameRate_, lastFramesRenderAverage_, lastFramesRenderVariance_, longTermFramesRenderAverage_, longTermFramesRenderVariance_, currentThrottledRenderFramesCount_, lastThrottledRenderFrameRate_, screenResolutionWidth_, screenResolutionHeight_, lastInteractionAt_) {
195305
+ Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, lastScreenPingAt_, stopwatch_, metrics_, latency_, serverTimestampAhead_, serverTimestampAheadBuffer_, currentFramesCount_, lastFrameRate_, totalFramesCount_, lastFramesLatencyAverage_, lastFramesLatencyVariance_, longTermFramesLatencyAverage_, longTermFramesLatencyVariance_, lastFramesCollectionAverage_, lastFramesCollectionVariance_, longTermFramesCollectionAverage_, longTermFramesCollectionVariance_, currentThrottledCollectionFramesCount_, lastThrottledCollectionFrameRate_, lastFramesDecodeWriteAverage_, lastFramesDecodeOutputAverage_, lastFramesDecodeWriteVariance_, lastFramesDecodeOutputVariance_, longTermFramesDecodeWriteAverage_, longTermFramesDecodeOutputAverage_, longTermFramesDecodeWriteVariance_, longTermFramesDecodeOutputVariance_, currentThrottledDecodeFramesCount_, lastThrottledDecodeFrameRate_, lastFramesRenderAverage_, lastFramesRenderVariance_, longTermFramesRenderAverage_, longTermFramesRenderVariance_, currentThrottledRenderFramesCount_, lastThrottledRenderFrameRate_, screenResolutionWidth_, screenResolutionHeight_, lastInteractionAt_) {
194962
195306
  this.$val = this;
194963
195307
  if (arguments.length === 0) {
194964
195308
  this.stopped = false;
194965
195309
  this.lastFrameAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
195310
+ this.lastScreenPingAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
194966
195311
  this.stopwatch = ptrType$1.nil;
194967
195312
  this.metrics = ptrType$2.nil;
194968
195313
  this.latency = new time.Duration(0, 0);
@@ -195004,6 +195349,7 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195004
195349
  }
195005
195350
  this.stopped = stopped_;
195006
195351
  this.lastFrameAt = lastFrameAt_;
195352
+ this.lastScreenPingAt = lastScreenPingAt_;
195007
195353
  this.stopwatch = stopwatch_;
195008
195354
  this.metrics = metrics_;
195009
195355
  this.latency = latency_;
@@ -195172,14 +195518,15 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195172
195518
  };
195173
195519
  Stopwatch.prototype.Stop = function(group) { return this.$val.Stop(group); };
195174
195520
  NewStats = function() {
195175
- var {_r, _r$1, s, $s, $r, $c} = $restore(this, {});
195521
+ var {_r, _r$1, _r$2, s, $s, $r, $c} = $restore(this, {});
195176
195522
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195177
195523
  _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195178
195524
  _r$1 = time.Now(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195179
- s = new Stats.ptr(false, $clone(_r, time.Time), NewStopwatch(), NewMetrics(), new time.Duration(0, 0), new time.Duration(0, 0), sliceType$1.nil, 0, 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, 0, 0, $clone(_r$1, time.Time));
195525
+ _r$2 = time.Now(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
195526
+ s = new Stats.ptr(false, $clone(_r, time.Time), $clone(_r$1, time.Time), NewStopwatch(), NewMetrics(), new time.Duration(0, 0), new time.Duration(0, 0), sliceType$1.nil, 0, 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), new time.Duration(0, 0), 0, 0, 0, 0, $clone(_r$2, time.Time));
195180
195527
  $go($methodVal(s, "startCalculations"), []);
195181
195528
  $s = -1; return s;
195182
- /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, s, $s};return $f;
195529
+ /* */ } return; } var $f = {$blk: NewStats, $c: true, $r, _r, _r$1, _r$2, s, $s};return $f;
195183
195530
  };
195184
195531
  $pkg.NewStats = NewStats;
195185
195532
  Stats.ptr.prototype.GetClientStats = function() {
@@ -195237,6 +195584,16 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195237
195584
  /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrame, $c: true, $r, _r, _r$1, _r$2, _r$3, frame, frameLatency, s, $s};return $f;
195238
195585
  };
195239
195586
  Stats.prototype.NotifyFrame = function(frame) { return this.$val.NotifyFrame(frame); };
195587
+ Stats.ptr.prototype.NotifyScreenPing = function() {
195588
+ var {_r, s, $s, $r, $c} = $restore(this, {});
195589
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195590
+ s = this;
195591
+ _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195592
+ time.Time.copy(s.lastScreenPingAt, _r);
195593
+ $s = -1; return;
195594
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyScreenPing, $c: true, $r, _r, s, $s};return $f;
195595
+ };
195596
+ Stats.prototype.NotifyScreenPing = function() { return this.$val.NotifyScreenPing(); };
195240
195597
  Stats.ptr.prototype.NotifyFrameCollectionStarted = function() {
195241
195598
  var {s, $s, $r, $c} = $restore(this, {});
195242
195599
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -195247,17 +195604,15 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195247
195604
  };
195248
195605
  Stats.prototype.NotifyFrameCollectionStarted = function() { return this.$val.NotifyFrameCollectionStarted(); };
195249
195606
  Stats.ptr.prototype.NotifyFrameCollectionEnded = function() {
195250
- var {_arg, _arg$1, _r, _r$1, s, $s, $r, $c} = $restore(this, {});
195607
+ var {_r, dur, s, $s, $r, $c} = $restore(this, {});
195251
195608
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
195252
195609
  s = this;
195253
195610
  _r = s.stopwatch.Stop("frame_collection"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
195254
- _arg = _r;
195255
- $r = s.metrics.AddSample("frame_collection", new sliceType$1([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195256
- _r$1 = s.stopwatch.Stop("frame_collection"); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
195257
- _arg$1 = _r$1;
195258
- $r = s.metrics.AddSample("frame_collection_long_term", new sliceType$1([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195611
+ dur = _r;
195612
+ $r = s.metrics.AddSample("frame_collection", new sliceType$1([dur])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195613
+ $r = s.metrics.AddSample("frame_collection_long_term", new sliceType$1([dur])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195259
195614
  $s = -1; return;
195260
- /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrameCollectionEnded, $c: true, $r, _arg, _arg$1, _r, _r$1, s, $s};return $f;
195615
+ /* */ } return; } var $f = {$blk: Stats.ptr.prototype.NotifyFrameCollectionEnded, $c: true, $r, _r, dur, s, $s};return $f;
195261
195616
  };
195262
195617
  Stats.prototype.NotifyFrameCollectionEnded = function() { return this.$val.NotifyFrameCollectionEnded(); };
195263
195618
  Stats.ptr.prototype.NotifyThrottledCollectionFrame = function() {
@@ -195347,6 +195702,23 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195347
195702
  return s.lastFrameAt;
195348
195703
  };
195349
195704
  Stats.prototype.GetLastFrameAt = function() { return this.$val.GetLastFrameAt(); };
195705
+ Stats.ptr.prototype.GetLastScreenPingAt = function() {
195706
+ var s;
195707
+ s = this;
195708
+ return s.lastScreenPingAt;
195709
+ };
195710
+ Stats.prototype.GetLastScreenPingAt = function() { return this.$val.GetLastScreenPingAt(); };
195711
+ Stats.ptr.prototype.GetLastScreenImpulseAt = function() {
195712
+ var lastFrameAt, lastScreenPingAt, s;
195713
+ s = this;
195714
+ lastScreenPingAt = $clone(s.GetLastScreenPingAt(), time.Time);
195715
+ lastFrameAt = $clone(s.GetLastFrameAt(), time.Time);
195716
+ if ($clone(lastScreenPingAt, time.Time).After($clone(lastFrameAt, time.Time))) {
195717
+ return lastScreenPingAt;
195718
+ }
195719
+ return lastFrameAt;
195720
+ };
195721
+ Stats.prototype.GetLastScreenImpulseAt = function() { return this.$val.GetLastScreenImpulseAt(); };
195350
195722
  Stats.ptr.prototype.GetFrameRate = function() {
195351
195723
  var s;
195352
195724
  s = this;
@@ -195606,11 +195978,11 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195606
195978
  return (new time.Duration(0, math.Sqrt(($flatten64($div64(sum, (new time.Duration(0, values.$length)), false))))));
195607
195979
  };
195608
195980
  ptrType$1.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([$String], [time.Duration], false)}];
195609
- ptrType$5.methods = [{prop: "GetClientStats", name: "GetClientStats", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "UpdateServerTimestampAhead", name: "UpdateServerTimestampAhead", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "SetScreenResolution", name: "SetScreenResolution", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyFrameCollectionStarted", name: "NotifyFrameCollectionStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionEnded", name: "NotifyFrameCollectionEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledCollectionFrame", name: "NotifyThrottledCollectionFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteStarted", name: "NotifyFrameDecodeWriteStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteEnded", name: "NotifyFrameDecodeWriteEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputStarted", name: "NotifyFrameDecodeOutputStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputEnded", name: "NotifyFrameDecodeOutputEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledDecodeFrame", name: "NotifyThrottledDecodeFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderStarted", name: "NotifyFrameRenderStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderEnded", name: "NotifyFrameRenderEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledRenderFrame", name: "NotifyThrottledRenderFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "print", name: "print", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "GetServerTime", name: "GetServerTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "NotifyInteraction", name: "NotifyInteraction", pkg: "", typ: $funcType([], [], false)}, {prop: "GetInteractionWaitMultiplier", name: "GetInteractionWaitMultiplier", pkg: "", typ: $funcType([], [$Float64], false)}];
195981
+ ptrType$5.methods = [{prop: "GetClientStats", name: "GetClientStats", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "UpdateServerTimestampAhead", name: "UpdateServerTimestampAhead", pkg: "", typ: $funcType([time.Duration], [], false)}, {prop: "SetScreenResolution", name: "SetScreenResolution", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyScreenPing", name: "NotifyScreenPing", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionStarted", name: "NotifyFrameCollectionStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameCollectionEnded", name: "NotifyFrameCollectionEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledCollectionFrame", name: "NotifyThrottledCollectionFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteStarted", name: "NotifyFrameDecodeWriteStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeWriteEnded", name: "NotifyFrameDecodeWriteEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputStarted", name: "NotifyFrameDecodeOutputStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeOutputEnded", name: "NotifyFrameDecodeOutputEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledDecodeFrame", name: "NotifyThrottledDecodeFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderStarted", name: "NotifyFrameRenderStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderEnded", name: "NotifyFrameRenderEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyThrottledRenderFrame", name: "NotifyThrottledRenderFrame", pkg: "", typ: $funcType([], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenPingAt", name: "GetLastScreenPingAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetLastScreenImpulseAt", name: "GetLastScreenImpulseAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "print", name: "print", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "GetServerTime", name: "GetServerTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "NotifyInteraction", name: "NotifyInteraction", pkg: "", typ: $funcType([], [], false)}, {prop: "GetInteractionWaitMultiplier", name: "GetInteractionWaitMultiplier", pkg: "", typ: $funcType([], [$Float64], false)}];
195610
195982
  ptrType$2.methods = [{prop: "AddSample", name: "AddSample", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "GetCount", name: "GetCount", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "GetAverage", name: "GetAverage", pkg: "", typ: $funcType([$String], [time.Duration], false)}, {prop: "GetVariance", name: "GetVariance", pkg: "", typ: $funcType([$String], [time.Duration], false)}, {prop: "RemoveOldest", name: "RemoveOldest", pkg: "", typ: $funcType([$String, $Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([$String], [], false)}];
195611
195983
  Stopwatch.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "groups", name: "groups", embedded: false, exported: false, typ: mapType, tag: ""}]);
195612
195984
  Frame.init([{prop: "GetTimestamp", name: "GetTimestamp", pkg: "", typ: $funcType([], [time.Time], false)}]);
195613
- Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "stopped", name: "stopped", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastFrameAt", name: "lastFrameAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "stopwatch", name: "stopwatch", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "metrics", name: "metrics", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "latency", name: "latency", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAhead", name: "serverTimestampAhead", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAheadBuffer", name: "serverTimestampAheadBuffer", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "currentFramesCount", name: "currentFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFrameRate", name: "lastFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalFramesCount", name: "totalFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesLatencyAverage", name: "lastFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesLatencyVariance", name: "lastFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyAverage", name: "longTermFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyVariance", name: "longTermFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionAverage", name: "lastFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionVariance", name: "lastFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionAverage", name: "longTermFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionVariance", name: "longTermFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledCollectionFramesCount", name: "currentThrottledCollectionFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledCollectionFrameRate", name: "lastThrottledCollectionFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesDecodeWriteAverage", name: "lastFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputAverage", name: "lastFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeWriteVariance", name: "lastFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputVariance", name: "lastFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteAverage", name: "longTermFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputAverage", name: "longTermFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteVariance", name: "longTermFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputVariance", name: "longTermFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledDecodeFramesCount", name: "currentThrottledDecodeFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledDecodeFrameRate", name: "lastThrottledDecodeFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesRenderAverage", name: "lastFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesRenderVariance", name: "lastFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderAverage", name: "longTermFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderVariance", name: "longTermFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledRenderFramesCount", name: "currentThrottledRenderFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledRenderFrameRate", name: "lastThrottledRenderFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "screenResolutionWidth", name: "screenResolutionWidth", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "screenResolutionHeight", name: "screenResolutionHeight", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lastInteractionAt", name: "lastInteractionAt", embedded: false, exported: false, typ: time.Time, tag: ""}]);
195985
+ Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "stopped", name: "stopped", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastFrameAt", name: "lastFrameAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "lastScreenPingAt", name: "lastScreenPingAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "stopwatch", name: "stopwatch", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "metrics", name: "metrics", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "latency", name: "latency", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAhead", name: "serverTimestampAhead", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "serverTimestampAheadBuffer", name: "serverTimestampAheadBuffer", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "currentFramesCount", name: "currentFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFrameRate", name: "lastFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalFramesCount", name: "totalFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesLatencyAverage", name: "lastFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesLatencyVariance", name: "lastFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyAverage", name: "longTermFramesLatencyAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesLatencyVariance", name: "longTermFramesLatencyVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionAverage", name: "lastFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesCollectionVariance", name: "lastFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionAverage", name: "longTermFramesCollectionAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesCollectionVariance", name: "longTermFramesCollectionVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledCollectionFramesCount", name: "currentThrottledCollectionFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledCollectionFrameRate", name: "lastThrottledCollectionFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesDecodeWriteAverage", name: "lastFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputAverage", name: "lastFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeWriteVariance", name: "lastFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesDecodeOutputVariance", name: "lastFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteAverage", name: "longTermFramesDecodeWriteAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputAverage", name: "longTermFramesDecodeOutputAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeWriteVariance", name: "longTermFramesDecodeWriteVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesDecodeOutputVariance", name: "longTermFramesDecodeOutputVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledDecodeFramesCount", name: "currentThrottledDecodeFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledDecodeFrameRate", name: "lastThrottledDecodeFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFramesRenderAverage", name: "lastFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastFramesRenderVariance", name: "lastFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderAverage", name: "longTermFramesRenderAverage", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "longTermFramesRenderVariance", name: "longTermFramesRenderVariance", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "currentThrottledRenderFramesCount", name: "currentThrottledRenderFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastThrottledRenderFrameRate", name: "lastThrottledRenderFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "screenResolutionWidth", name: "screenResolutionWidth", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "screenResolutionHeight", name: "screenResolutionHeight", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lastInteractionAt", name: "lastInteractionAt", embedded: false, exported: false, typ: time.Time, tag: ""}]);
195614
195986
  Metrics.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "groups", name: "groups", embedded: false, exported: false, typ: mapType$1, tag: ""}]);
195615
195987
  ClientStats.init("", [{prop: "LatencyNano", name: "LatencyNano", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "ServerTimestampAhead", name: "ServerTimestampAhead", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFrameRate", name: "LastFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "TotalFramesCount", name: "TotalFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFramesLatencyAverage", name: "LastFramesLatencyAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesLatencyVariance", name: "LastFramesLatencyVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesLatencyAverage", name: "LongTermFramesLatencyAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesLatencyVariance", name: "LongTermFramesLatencyVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesCollectionAverage", name: "LastFramesCollectionAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesCollectionVariance", name: "LastFramesCollectionVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesCollectionAverage", name: "LongTermFramesCollectionAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesCollectionVariance", name: "LongTermFramesCollectionVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastThrottledCollectionFrameRate", name: "LastThrottledCollectionFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFramesDecodeWriteAverage", name: "LastFramesDecodeWriteAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesDecodeOutputAverage", name: "LastFramesDecodeOutputAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesDecodeWriteVariance", name: "LastFramesDecodeWriteVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesDecodeOutputVariance", name: "LastFramesDecodeOutputVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeWriteAverage", name: "LongTermFramesDecodeWriteAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeOutputAverage", name: "LongTermFramesDecodeOutputAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeWriteVariance", name: "LongTermFramesDecodeWriteVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesDecodeOutputVariance", name: "LongTermFramesDecodeOutputVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastThrottledDecodeFrameRate", name: "LastThrottledDecodeFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFramesRenderAverage", name: "LastFramesRenderAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesRenderVariance", name: "LastFramesRenderVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesRenderAverage", name: "LongTermFramesRenderAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LongTermFramesRenderVariance", name: "LongTermFramesRenderVariance", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastThrottledRenderFrameRate", name: "LastThrottledRenderFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ScreenResolutionWidth", name: "ScreenResolutionWidth", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "ScreenResolutionHeight", name: "ScreenResolutionHeight", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
195616
195988
  $init = function() {
@@ -195627,7 +195999,8 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
195627
195999
  return $pkg;
195628
196000
  })();
195629
196001
  $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
195630
- var $pkg = {}, $init, decoder, errs, frame, netframe, screenbuffer, stats, screen, image, time, RenderingLoop, DecodeResultProvider, DecodeResult, DecoderLoop, FrameProvider, CollectionLoop, ptrType, sliceType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, funcType, ptrType$6, chanType, chanType$1, ptrType$7, NewRenderingLoop, NewDecoderLoop, NewCollectionLoop;
196002
+ var $pkg = {}, $init, fmt, decoder, errs, frame, netframe, screenbuffer, stats, screen, image, js, time, RenderingLoop, DecodeResultProvider, DecodeResult, DecoderLoop, FrameProvider, CollectionLoop, ptrType, sliceType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, funcType, ptrType$6, chanType, chanType$1, ptrType$7, NewRenderingLoop, NewDecoderLoop, NewCollectionLoop;
196003
+ fmt = $packages["fmt"];
195631
196004
  decoder = $packages["github.com/supraio/client-daemon/pkg/decoder"];
195632
196005
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
195633
196006
  frame = $packages["github.com/supraio/client-daemon/pkg/render/frame"];
@@ -195636,6 +196009,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
195636
196009
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
195637
196010
  screen = $packages["golang.org/x/exp/shiny/screen"];
195638
196011
  image = $packages["image"];
196012
+ js = $packages["syscall/js"];
195639
196013
  time = $packages["time"];
195640
196014
  RenderingLoop = $pkg.RenderingLoop = $newType(0, $kindStruct, "player.RenderingLoop", true, "github.com/supraio/client-daemon/pkg/render/player", true, function(decodeResultProvider_, window_, stats_, started_, renderingInProgress_) {
195641
196015
  this.$val = this;
@@ -195816,6 +196190,32 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
195816
196190
  /* */ } return; } var $f = {$blk: RenderingLoop.ptr.prototype.waitForRenderTime, $c: true, $r, _r, _r$1, dl, frame$1, renderTime, serverTime, waitDuration, $s};return $f;
195817
196191
  };
195818
196192
  RenderingLoop.prototype.waitForRenderTime = function(frame$1) { return this.$val.waitForRenderTime(frame$1); };
196193
+ DecoderLoop.ptr.prototype.showFPS = function() {
196194
+ var dl;
196195
+ dl = this;
196196
+ $go((function $b() {
196197
+ var {_arg, _r, _r$1, fps, fpsElement, $s, $r, $c} = $restore(this, {});
196198
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196199
+ _r = $clone($clone(js.Global(), js.Value).Get("document"), js.Value).Call("getElementById", new sliceType([new $String("fps")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196200
+ fpsElement = $clone(_r, js.Value);
196201
+ /* */ if (!$clone(fpsElement, js.Value).IsNull() && !$clone(fpsElement, js.Value).IsUndefined()) { $s = 2; continue; }
196202
+ /* */ $s = 3; continue;
196203
+ /* if (!$clone(fpsElement, js.Value).IsNull() && !$clone(fpsElement, js.Value).IsUndefined()) { */ case 2:
196204
+ /* while (true) { */ case 4:
196205
+ /* if (!(dl.started)) { break; } */ if(!(dl.started)) { $s = 5; continue; }
196206
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196207
+ fps = dl.stats.GetFrameRate();
196208
+ _r$1 = fmt.Sprintf("FPS: %d", new sliceType([new $Int(fps)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
196209
+ _arg = new $String(_r$1);
196210
+ $r = $clone(fpsElement, js.Value).Set("innerText", _arg); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196211
+ $s = 4; continue;
196212
+ case 5:
196213
+ /* } */ case 3:
196214
+ $s = -1; return;
196215
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r, _r$1, fps, fpsElement, $s};return $f;
196216
+ }), []);
196217
+ };
196218
+ DecoderLoop.prototype.showFPS = function() { return this.$val.showFPS(); };
195819
196219
  NewDecoderLoop = function(frameProvider, createBuffer, stats$1) {
195820
196220
  var createBuffer, frameProvider, stats$1;
195821
196221
  return new DecoderLoop.ptr(frameProvider, screenbuffer.NewBufferPool(createBuffer, 20), stats$1, new $Chan(ptrType$2, 50), new $Chan(ptrType$3, 50), false, $ifaceNil);
@@ -195882,6 +196282,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
195882
196282
  $s = -1; return;
195883
196283
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, err, $s};return $f;
195884
196284
  }), []);
196285
+ dl.showFPS();
195885
196286
  };
195886
196287
  DecoderLoop.prototype.Start = function() { return this.$val.Start(); };
195887
196288
  DecoderLoop.ptr.prototype.Stop = function() {
@@ -196018,13 +196419,13 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196018
196419
  };
196019
196420
  $pkg.NewCollectionLoop = NewCollectionLoop;
196020
196421
  CollectionLoop.ptr.prototype.NextFrame = function() {
196021
- var {_r, cl, frame$1, $s, $r, $c} = $restore(this, {});
196422
+ var {_r, cl, collectedFrame, $s, $r, $c} = $restore(this, {});
196022
196423
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196023
196424
  cl = this;
196024
196425
  _r = $recv(cl.framesChan); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196025
- frame$1 = _r[0];
196026
- $s = -1; return [frame$1, $ifaceNil];
196027
- /* */ } return; } var $f = {$blk: CollectionLoop.ptr.prototype.NextFrame, $c: true, $r, _r, cl, frame$1, $s};return $f;
196426
+ collectedFrame = _r[0];
196427
+ $s = -1; return [collectedFrame, $ifaceNil];
196428
+ /* */ } return; } var $f = {$blk: CollectionLoop.ptr.prototype.NextFrame, $c: true, $r, _r, cl, collectedFrame, $s};return $f;
196028
196429
  };
196029
196430
  CollectionLoop.prototype.NextFrame = function() { return this.$val.NextFrame(); };
196030
196431
  CollectionLoop.ptr.prototype.Start = function() {
@@ -196035,13 +196436,13 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196035
196436
  }
196036
196437
  cl.started = true;
196037
196438
  $go((function $b() {
196038
- var {_r, _tuple, err, frame$1, $s, $r, $c} = $restore(this, {});
196439
+ var {_1, _r, _tuple, collectedFrame, err, $s, $r, $c} = $restore(this, {});
196039
196440
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196040
196441
  /* while (true) { */ case 1:
196041
196442
  /* if (!(cl.started)) { break; } */ if(!(cl.started)) { $s = 2; continue; }
196042
196443
  _r = cl.frameCollector.CollectFrame($methodVal(cl.stats, "NotifyFrameCollectionStarted"), $methodVal(cl.stats, "NotifyFrameCollectionEnded")); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196043
196444
  _tuple = _r;
196044
- frame$1 = _tuple[0];
196445
+ collectedFrame = _tuple[0];
196045
196446
  err = _tuple[1];
196046
196447
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
196047
196448
  /* */ $s = 5; continue;
@@ -196057,7 +196458,17 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196057
196458
  /* */ if (cl.framesChan.$buffer.length < 50) { $s = 10; continue; }
196058
196459
  /* */ $s = 11; continue;
196059
196460
  /* if (cl.framesChan.$buffer.length < 50) { */ case 10:
196060
- $r = $send(cl.framesChan, frame$1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196461
+ _1 = collectedFrame.FrameType();
196462
+ /* */ if (_1 === (1)) { $s = 14; continue; }
196463
+ /* */ if (_1 === (255)) { $s = 15; continue; }
196464
+ /* */ $s = 16; continue;
196465
+ /* if (_1 === (1)) { */ case 14:
196466
+ $r = $send(cl.framesChan, collectedFrame); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196467
+ $s = 16; continue;
196468
+ /* } else if (_1 === (255)) { */ case 15:
196469
+ $r = cl.stats.NotifyScreenPing(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196470
+ /* } */ case 16:
196471
+ case 13:
196061
196472
  $s = 12; continue;
196062
196473
  /* } else { */ case 11:
196063
196474
  cl.stats.NotifyThrottledCollectionFrame();
@@ -196065,7 +196476,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196065
196476
  $s = 1; continue;
196066
196477
  case 2:
196067
196478
  $s = -1; return;
196068
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _tuple, err, frame$1, $s};return $f;
196479
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _1, _r, _tuple, collectedFrame, err, $s};return $f;
196069
196480
  }), []);
196070
196481
  };
196071
196482
  CollectionLoop.prototype.Start = function() { return this.$val.Start(); };
@@ -196076,7 +196487,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196076
196487
  };
196077
196488
  CollectionLoop.prototype.Stop = function() { return this.$val.Stop(); };
196078
196489
  ptrType$5.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}, {prop: "renderBuffer", name: "renderBuffer", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([], [$error], false)}, {prop: "waitForRenderTime", name: "waitForRenderTime", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([ptrType$3], [], false)}];
196079
- ptrType$6.methods = [{prop: "NextDecodedResult", name: "NextDecodedResult", pkg: "", typ: $funcType([], [ptrType$2, $error], false)}, {prop: "Start", name: "Start", pkg: "", typ: $funcType([], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([], [$error], false)}, {prop: "outputBuffer", name: "outputBuffer", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([], [$error], false)}, {prop: "ensureDecoder", name: "ensureDecoder", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([ptrType$3], [decoder.Decoder, $error], false)}];
196490
+ ptrType$6.methods = [{prop: "showFPS", name: "showFPS", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([], [], false)}, {prop: "NextDecodedResult", name: "NextDecodedResult", pkg: "", typ: $funcType([], [ptrType$2, $error], false)}, {prop: "Start", name: "Start", pkg: "", typ: $funcType([], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([], [$error], false)}, {prop: "outputBuffer", name: "outputBuffer", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([], [$error], false)}, {prop: "ensureDecoder", name: "ensureDecoder", pkg: "github.com/supraio/client-daemon/pkg/render/player", typ: $funcType([ptrType$3], [decoder.Decoder, $error], false)}];
196080
196491
  ptrType$7.methods = [{prop: "NextFrame", name: "NextFrame", pkg: "", typ: $funcType([], [ptrType$3, $error], false)}, {prop: "Start", name: "Start", pkg: "", typ: $funcType([], [], false)}, {prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}];
196081
196492
  RenderingLoop.init("github.com/supraio/client-daemon/pkg/render/player", [{prop: "decodeResultProvider", name: "decodeResultProvider", embedded: false, exported: false, typ: DecodeResultProvider, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "started", name: "started", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "renderingInProgress", name: "renderingInProgress", embedded: false, exported: false, typ: $Bool, tag: ""}]);
196082
196493
  DecodeResultProvider.init([{prop: "NextDecodedResult", name: "NextDecodedResult", pkg: "", typ: $funcType([], [ptrType$2, $error], false)}]);
@@ -196087,15 +196498,17 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196087
196498
  $init = function() {
196088
196499
  $pkg.$init = function() {};
196089
196500
  /* */ 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:
196090
- $r = decoder.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196091
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196092
- $r = frame.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196093
- $r = netframe.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196094
- $r = screenbuffer.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196095
- $r = stats.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196096
- $r = screen.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196097
- $r = image.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196098
- $r = time.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196501
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196502
+ $r = decoder.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196503
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196504
+ $r = frame.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196505
+ $r = netframe.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196506
+ $r = screenbuffer.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196507
+ $r = stats.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196508
+ $r = screen.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196509
+ $r = image.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196510
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196511
+ $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196099
196512
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
196100
196513
  };
196101
196514
  $pkg.$init = $init;
@@ -196104,7 +196517,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196104
196517
  $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (function() {
196105
196518
  var $pkg = {}, $init, errs, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, funcType, arrayType, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, newWindow, newScreenImpl, Main, main, newBuffer;
196106
196519
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
196107
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
196520
+ dom = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/util/dom"];
196108
196521
  screen = $packages["golang.org/x/exp/shiny/screen"];
196109
196522
  f64 = $packages["golang.org/x/image/math/f64"];
196110
196523
  image = $packages["image"];
@@ -196594,7 +197007,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
196594
197007
  return $pkg;
196595
197008
  })();
196596
197009
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196597
- var $pkg = {}, $init, binary, json, fmt, query, clientscreen, clipboard, android, nacldecoder, nacldriver, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, canvasdriver, overlaydriver, webgldriver, stats, videostream, window, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, ScreenWindow, ProcessInfo, ProcessInfoManager, ptrType, ptrType$1, funcType, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, structType, sliceType$3, funcType$1, ptrType$10, ptrType$11, chanType, chanType$1, chanType$2, chanType$3, chanType$4, NewScreenWindow, MainDriver, NewProcessInfoManager;
197010
+ var $pkg = {}, $init, binary, json, fmt, query, clientscreen, clipboard, android, nacldecoder, nacldriver, samsungwasmdecoder, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, canvasdriver, overlaydriver, webgldriver, stats, videostream, window, screen, focus, key, lifecycle, mouse, size, touch, image, io, ioutil, log, os, path, strings, sync, js, time, ScreenWindow, ProcessInfo, ProcessInfoManager, sliceType, ptrType, ptrType$1, funcType, sliceType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$2, structType, sliceType$3, sliceType$4, funcType$1, ptrType$11, ptrType$12, chanType, chanType$1, chanType$2, chanType$3, chanType$4, chanType$5, RegisterVideoStream, UnregisterVideoStream, NewScreenWindow, MainDriver, NewProcessInfoManager;
196598
197011
  binary = $packages["encoding/binary"];
196599
197012
  json = $packages["encoding/json"];
196600
197013
  fmt = $packages["fmt"];
@@ -196604,6 +197017,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196604
197017
  android = $packages["github.com/supraio/client-daemon/pkg/decoder/android"];
196605
197018
  nacldecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"];
196606
197019
  nacldriver = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder/nacldriver"];
197020
+ samsungwasmdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"];
196607
197021
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
196608
197022
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
196609
197023
  helper = $packages["github.com/supraio/client-daemon/pkg/helper"];
@@ -196626,6 +197040,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196626
197040
  lifecycle = $packages["golang.org/x/mobile/event/lifecycle"];
196627
197041
  mouse = $packages["golang.org/x/mobile/event/mouse"];
196628
197042
  size = $packages["golang.org/x/mobile/event/size"];
197043
+ touch = $packages["golang.org/x/mobile/event/touch"];
196629
197044
  image = $packages["image"];
196630
197045
  io = $packages["io"];
196631
197046
  ioutil = $packages["io/ioutil"];
@@ -196636,7 +197051,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196636
197051
  sync = $packages["sync"];
196637
197052
  js = $packages["syscall/js"];
196638
197053
  time = $packages["time"];
196639
- ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, clientID_, clientSecret_, screenID_, secure_, screenSize_, timeoutDuration_, closed_, stats_, onClose_, window_, screen_, screenConn_, metadataServer_, collectionLoop_, decoderLoop_, renderingLoop_, sizeHandler_, keyHandler_, mouseHandler_, pinger_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, winCloseChannel_) {
197054
+ ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, clientID_, clientSecret_, screenID_, secure_, screenSize_, timeoutDuration_, closed_, stats_, onClose_, window_, screen_, screenConn_, metadataServer_, collectionLoop_, decoderLoop_, renderingLoop_, sizeHandler_, touchHandler_, keyHandler_, mouseHandler_, pinger_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, touchEventChan_, winCloseChannel_) {
196640
197055
  this.$val = this;
196641
197056
  if (arguments.length === 0) {
196642
197057
  this.processInfoManager = ptrType.nil;
@@ -196652,7 +197067,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196652
197067
  this.timeoutDuration = new time.Duration(0, 0);
196653
197068
  this.closed = false;
196654
197069
  this.stats = ptrType$1.nil;
196655
- this.onClose = sliceType.nil;
197070
+ this.onClose = sliceType$1.nil;
196656
197071
  this.window = $ifaceNil;
196657
197072
  this.screen = $ifaceNil;
196658
197073
  this.screenConn = $ifaceNil;
@@ -196661,13 +197076,15 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196661
197076
  this.decoderLoop = ptrType$4.nil;
196662
197077
  this.renderingLoop = ptrType$5.nil;
196663
197078
  this.sizeHandler = ptrType$6.nil;
196664
- this.keyHandler = ptrType$7.nil;
196665
- this.mouseHandler = ptrType$8.nil;
196666
- this.pinger = ptrType$9.nil;
197079
+ this.touchHandler = ptrType$7.nil;
197080
+ this.keyHandler = ptrType$8.nil;
197081
+ this.mouseHandler = ptrType$9.nil;
197082
+ this.pinger = ptrType$10.nil;
196667
197083
  this.keyEventChan = $chanNil;
196668
197084
  this.mouseEventChan = $chanNil;
196669
197085
  this.sizeEventChan = $chanNil;
196670
197086
  this.focusEventChan = $chanNil;
197087
+ this.touchEventChan = $chanNil;
196671
197088
  this.winCloseChannel = $chanNil;
196672
197089
  return;
196673
197090
  }
@@ -196693,6 +197110,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196693
197110
  this.decoderLoop = decoderLoop_;
196694
197111
  this.renderingLoop = renderingLoop_;
196695
197112
  this.sizeHandler = sizeHandler_;
197113
+ this.touchHandler = touchHandler_;
196696
197114
  this.keyHandler = keyHandler_;
196697
197115
  this.mouseHandler = mouseHandler_;
196698
197116
  this.pinger = pinger_;
@@ -196700,6 +197118,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196700
197118
  this.mouseEventChan = mouseEventChan_;
196701
197119
  this.sizeEventChan = sizeEventChan_;
196702
197120
  this.focusEventChan = focusEventChan_;
197121
+ this.touchEventChan = touchEventChan_;
196703
197122
  this.winCloseChannel = winCloseChannel_;
196704
197123
  });
196705
197124
  ProcessInfo = $pkg.ProcessInfo = $newType(0, $kindStruct, "render.ProcessInfo", true, "github.com/supraio/client-daemon/pkg/render", true, function(ScreenID_, Pid_) {
@@ -196722,35 +197141,96 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196722
197141
  this.username = username_;
196723
197142
  this.processDir = processDir_;
196724
197143
  });
197144
+ sliceType = $sliceType($Uint8);
196725
197145
  ptrType = $ptrType(ProcessInfoManager);
196726
197146
  ptrType$1 = $ptrType(stats.Stats);
196727
197147
  funcType = $funcType([], [], false);
196728
- sliceType = $sliceType(funcType);
197148
+ sliceType$1 = $sliceType(funcType);
196729
197149
  ptrType$2 = $ptrType(netclient.MetadataServer);
196730
197150
  ptrType$3 = $ptrType(player.CollectionLoop);
196731
197151
  ptrType$4 = $ptrType(player.DecoderLoop);
196732
197152
  ptrType$5 = $ptrType(player.RenderingLoop);
196733
197153
  ptrType$6 = $ptrType(window.SizeHandler);
196734
- ptrType$7 = $ptrType(input.KeyHandler);
196735
- ptrType$8 = $ptrType(input.MouseHandler);
196736
- ptrType$9 = $ptrType(netclient.Pinger);
196737
- sliceType$1 = $sliceType($emptyInterface);
196738
- sliceType$2 = $sliceType($Uint8);
197154
+ ptrType$7 = $ptrType(input.TouchHandler);
197155
+ ptrType$8 = $ptrType(input.KeyHandler);
197156
+ ptrType$9 = $ptrType(input.MouseHandler);
197157
+ ptrType$10 = $ptrType(netclient.Pinger);
197158
+ sliceType$2 = $sliceType($emptyInterface);
196739
197159
  structType = $structType("", []);
196740
- sliceType$3 = $sliceType($String);
197160
+ sliceType$3 = $sliceType($error);
197161
+ sliceType$4 = $sliceType($String);
196741
197162
  funcType$1 = $funcType([], [$error], false);
196742
- ptrType$10 = $ptrType(netclient.MetadataResponsiveSender);
196743
- ptrType$11 = $ptrType(ScreenWindow);
197163
+ ptrType$11 = $ptrType(netclient.MetadataResponsiveSender);
197164
+ ptrType$12 = $ptrType(ScreenWindow);
196744
197165
  chanType = $chanType(key.Event, false, false);
196745
197166
  chanType$1 = $chanType(mouse.Event, false, false);
196746
197167
  chanType$2 = $chanType(size.Event, false, false);
196747
197168
  chanType$3 = $chanType(focus.Event, false, false);
196748
- chanType$4 = $chanType($emptyInterface, false, false);
197169
+ chanType$4 = $chanType(touch.Event, false, false);
197170
+ chanType$5 = $chanType($emptyInterface, false, false);
197171
+ RegisterVideoStream = function(sender) {
197172
+ var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, data, err, sender, streamHostname, videoStreamer, $s, $r, $c} = $restore(this, {sender});
197173
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197174
+ videoStreamer = videostream.Get();
197175
+ _r = videoStreamer.IsAvailable(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197176
+ /* */ if (_r) { $s = 1; continue; }
197177
+ /* */ $s = 2; continue;
197178
+ /* if (_r) { */ case 1:
197179
+ data = $makeSlice(sliceType, 3);
197180
+ _r$1 = videoStreamer.GetProtocol(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197181
+ (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0] = ((_r$1 << 24 >>> 24)));
197182
+ _arg = $subslice(data, 1);
197183
+ _r$2 = videoStreamer.GetPort(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197184
+ _arg$1 = (_r$2);
197185
+ $r = $clone(binary.BigEndian, binary.bigEndian).PutUint16(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197186
+ _r$3 = videoStreamer.GetHostname(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197187
+ streamHostname = _r$3;
197188
+ if (!(streamHostname === "")) {
197189
+ data = $appendSlice(data, (new sliceType($stringToBytes(streamHostname))));
197190
+ }
197191
+ _r$4 = sender.Send(5, data); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
197192
+ err = _r$4;
197193
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197194
+ $s = -1; return err;
197195
+ }
197196
+ _r$5 = videoStreamer.Play(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197197
+ err = _r$5;
197198
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197199
+ $s = -1; return err;
197200
+ }
197201
+ /* } */ case 2:
197202
+ $s = -1; return $ifaceNil;
197203
+ /* */ } return; } var $f = {$blk: RegisterVideoStream, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, data, err, sender, streamHostname, videoStreamer, $s};return $f;
197204
+ };
197205
+ $pkg.RegisterVideoStream = RegisterVideoStream;
197206
+ UnregisterVideoStream = function(sender) {
197207
+ var {_r, _r$1, _r$2, err, sender, videoStreamer, $s, $r, $c} = $restore(this, {sender});
197208
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197209
+ videoStreamer = videostream.Get();
197210
+ _r = videoStreamer.IsAvailable(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197211
+ /* */ if (_r) { $s = 1; continue; }
197212
+ /* */ $s = 2; continue;
197213
+ /* if (_r) { */ case 1:
197214
+ _r$1 = videoStreamer.Stop(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197215
+ err = _r$1;
197216
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197217
+ $s = -1; return err;
197218
+ }
197219
+ _r$2 = sender.Send(6, new sliceType([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197220
+ err = _r$2;
197221
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197222
+ $s = -1; return err;
197223
+ }
197224
+ /* } */ case 2:
197225
+ $s = -1; return $ifaceNil;
197226
+ /* */ } return; } var $f = {$blk: UnregisterVideoStream, $c: true, $r, _r, _r$1, _r$2, err, sender, videoStreamer, $s};return $f;
197227
+ };
197228
+ $pkg.UnregisterVideoStream = UnregisterVideoStream;
196749
197229
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration) {
196750
197230
  var {$24r, _r, clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration, $s, $r, $c} = $restore(this, {processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration});
196751
197231
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196752
197232
  _r = stats.NewStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196753
- $24r = new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), timeoutDuration, true, _r, sliceType.nil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$2.nil, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, new $Chan(key.Event, 50), new $Chan(mouse.Event, 50), new $Chan(size.Event, 50), new $Chan(focus.Event, 50), new $Chan($emptyInterface, 0));
197233
+ $24r = new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), timeoutDuration, true, _r, sliceType$1.nil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$2.nil, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, new $Chan(key.Event, 50), new $Chan(mouse.Event, 50), new $Chan(size.Event, 50), new $Chan(focus.Event, 50), new $Chan(touch.Event, 50), new $Chan($emptyInterface, 0));
196754
197234
  $s = 2; case 2: return $24r;
196755
197235
  /* */ } return; } var $f = {$blk: NewScreenWindow, $c: true, $r, $24r, _r, clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration, $s};return $f;
196756
197236
  };
@@ -196762,7 +197242,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196762
197242
  /* */ if (!w.closed) { $s = 1; continue; }
196763
197243
  /* */ $s = 2; continue;
196764
197244
  /* if (!w.closed) { */ case 1:
196765
- _r = errs.Errorf("Screen window is already started", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197245
+ _r = errs.Errorf("Screen window is already started", sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196766
197246
  $24r = _r;
196767
197247
  $s = 4; case 4: return $24r;
196768
197248
  /* } */ case 2:
@@ -196793,6 +197273,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196793
197273
  if (!($interfaceIsEqual(err, $ifaceNil))) {
196794
197274
  $s = -1; return err;
196795
197275
  }
197276
+ $go($methodVal(w, "startTimestampSyncing"), []);
197277
+ $go($methodVal(w, "startStatsSyncing"), []);
197278
+ $go($methodVal(w, "startScreenHealthChecking"), []);
196796
197279
  $s = -1; return $ifaceNil;
196797
197280
  /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.Start, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, err, w, $s};return $f;
196798
197281
  };
@@ -196805,28 +197288,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196805
197288
  $s = -1; return;
196806
197289
  }
196807
197290
  w.closed = true;
196808
- if (!(w.collectionLoop === ptrType$3.nil)) {
196809
- w.collectionLoop.Stop();
196810
- w.collectionLoop = ptrType$3.nil;
196811
- }
196812
- if (!(w.decoderLoop === ptrType$4.nil)) {
196813
- w.decoderLoop.Stop();
196814
- w.decoderLoop = ptrType$4.nil;
196815
- }
196816
- if (!(w.renderingLoop === ptrType$5.nil)) {
196817
- w.renderingLoop.Stop();
196818
- w.renderingLoop = ptrType$5.nil;
196819
- }
196820
- if (!(w.pinger === ptrType$9.nil)) {
196821
- w.pinger.Close();
196822
- w.pinger = ptrType$9.nil;
196823
- }
196824
- _r = w.createScreenSender().Send(3, new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197291
+ _r = w.closeScreen(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196825
197292
  err = _r;
196826
197293
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
196827
197294
  /* */ $s = 3; continue;
196828
197295
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
196829
- $r = errs.Print("Cannot close screen stream", err); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197296
+ $r = errs.Print("Cannot close screen", err); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196830
197297
  /* } */ case 3:
196831
197298
  /* */ if (!(w.metadataServer === ptrType$2.nil)) { $s = 5; continue; }
196832
197299
  /* */ $s = 6; continue;
@@ -196947,7 +197414,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196947
197414
  _r = $recv(windowChannel[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196948
197415
  err = _r[0];
196949
197416
  $go((function(w, windowChannel) { return function $b() {
196950
- var {_r$1, _ref, e, e$1, e$2, e$3, e$4, $s, $r, $c} = $restore(this, {});
197417
+ var {_r$1, _ref, e, e$1, e$2, e$3, e$4, e$5, $s, $r, $c} = $restore(this, {});
196951
197418
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196952
197419
  /* while (true) { */ case 1:
196953
197420
  _r$1 = w[0].window.NextEvent(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
@@ -196957,40 +197424,46 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
196957
197424
  /* */ if ($assertType(_ref, mouse.Event, true)[1]) { $s = 6; continue; }
196958
197425
  /* */ if ($assertType(_ref, size.Event, true)[1]) { $s = 7; continue; }
196959
197426
  /* */ if ($assertType(_ref, focus.Event, true)[1]) { $s = 8; continue; }
196960
- /* */ $s = 9; continue;
197427
+ /* */ if ($assertType(_ref, touch.Event, true)[1]) { $s = 9; continue; }
197428
+ /* */ $s = 10; continue;
196961
197429
  /* if ($assertType(_ref, lifecycle.Event, true)[1]) { */ case 4:
196962
197430
  e = $clone(_ref.$val, lifecycle.Event);
196963
- /* */ if (e.To === 0) { $s = 10; continue; }
196964
- /* */ $s = 11; continue;
196965
- /* if (e.To === 0) { */ case 10:
196966
- $r = w[0].Close(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197431
+ /* */ if (e.To === 0) { $s = 11; continue; }
197432
+ /* */ $s = 12; continue;
197433
+ /* if (e.To === 0) { */ case 11:
197434
+ $r = w[0].Close(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196967
197435
  $s = -1; return;
196968
- /* } */ case 11:
196969
- $s = 9; continue;
197436
+ /* } */ case 12:
197437
+ $s = 10; continue;
196970
197438
  /* } else if ($assertType(_ref, key.Event, true)[1]) { */ case 5:
196971
197439
  e$1 = $clone(_ref.$val, key.Event);
196972
- $r = $send(w[0].keyEventChan, $clone($clone(e$1, key.Event), key.Event)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196973
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196974
- $s = 9; continue;
197440
+ $r = $send(w[0].keyEventChan, $clone($clone(e$1, key.Event), key.Event)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197441
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197442
+ $s = 10; continue;
196975
197443
  /* } else if ($assertType(_ref, mouse.Event, true)[1]) { */ case 6:
196976
197444
  e$2 = $clone(_ref.$val, mouse.Event);
196977
- $r = $send(w[0].mouseEventChan, $clone($clone(e$2, mouse.Event), mouse.Event)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196978
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196979
- $s = 9; continue;
197445
+ $r = $send(w[0].mouseEventChan, $clone($clone(e$2, mouse.Event), mouse.Event)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197446
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197447
+ $s = 10; continue;
196980
197448
  /* } else if ($assertType(_ref, size.Event, true)[1]) { */ case 7:
196981
197449
  e$3 = $clone(_ref.$val, size.Event);
196982
- $r = $send(w[0].sizeEventChan, $clone($clone(e$3, size.Event), size.Event)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196983
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196984
- $s = 9; continue;
197450
+ $r = $send(w[0].sizeEventChan, $clone($clone(e$3, size.Event), size.Event)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197451
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197452
+ $s = 10; continue;
196985
197453
  /* } else if ($assertType(_ref, focus.Event, true)[1]) { */ case 8:
196986
197454
  e$4 = $clone(_ref.$val, focus.Event);
196987
- $r = $send(w[0].focusEventChan, $clone($clone(e$4, focus.Event), focus.Event)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196988
- $r = w[0].stats.NotifyInteraction(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196989
- /* } */ case 9:
197455
+ $r = $send(w[0].focusEventChan, $clone($clone(e$4, focus.Event), focus.Event)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197456
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197457
+ $s = 10; continue;
197458
+ /* } else if ($assertType(_ref, touch.Event, true)[1]) { */ case 9:
197459
+ e$5 = $clone(_ref.$val, touch.Event);
197460
+ $r = $send(w[0].touchEventChan, $clone($clone(e$5, touch.Event), touch.Event)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197461
+ $r = w[0].stats.NotifyInteraction(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197462
+ /* } */ case 10:
196990
197463
  $s = 1; continue;
196991
197464
  case 2:
196992
197465
  $s = -1; return;
196993
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _ref, e, e$1, e$2, e$3, e$4, $s};return $f;
197466
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _ref, e, e$1, e$2, e$3, e$4, e$5, $s};return $f;
196994
197467
  }; })(w, windowChannel), []);
196995
197468
  $s = -1; return err;
196996
197469
  /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.startWindow, $c: true, $r, _r, err, w, windowChannel, $s};return $f;
@@ -197137,18 +197610,20 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197137
197610
  w[0].mouseHandler.Start();
197138
197611
  w[0].sizeHandler = window.NewSizeHandler(w[0].sizeEventChan, metadataSender);
197139
197612
  w[0].sizeHandler.Start();
197140
- $go($methodVal(w[0], "startTimestampSyncing"), []);
197141
- $go($methodVal(w[0], "startStatsSyncing"), []);
197613
+ w[0].touchHandler = input.NewTouchHandler(w[0].touchEventChan, metadataSender);
197614
+ w[0].touchHandler.Start();
197142
197615
  w[0].metadataServer.OnClose((function(w) { return function $b() {
197143
197616
  var {_r$7, err$1, $s, $r, $c} = $restore(this, {});
197144
197617
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197145
197618
  w[0].metadataServer = ptrType$2.nil;
197146
197619
  w[0].keyHandler.Close();
197147
- w[0].keyHandler = ptrType$7.nil;
197620
+ w[0].keyHandler = ptrType$8.nil;
197148
197621
  w[0].mouseHandler.Close();
197149
- w[0].mouseHandler = ptrType$8.nil;
197622
+ w[0].mouseHandler = ptrType$9.nil;
197150
197623
  w[0].sizeHandler.Close();
197151
197624
  w[0].sizeHandler = ptrType$6.nil;
197625
+ w[0].touchHandler.Close();
197626
+ w[0].touchHandler = ptrType$7.nil;
197152
197627
  _r$7 = w[0].retriableOpen(-1, $methodVal(w[0], "openMetadata")); /* */ $s = 1; case 1: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
197153
197628
  err$1 = _r$7;
197154
197629
  /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; }
@@ -197195,7 +197670,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197195
197670
  /* } */ case 4:
197196
197671
  _r = time.Now(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197197
197672
  latencyStart = $clone(_r, time.Time);
197198
- _r$1 = w.createMetadataResponsiveSender().SendServerWaitResponse(46, new sliceType$2([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197673
+ _r$1 = w.createMetadataResponsiveSender().SendServerWaitResponse(46, new sliceType([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197199
197674
  _tuple = _r$1;
197200
197675
  serverTimestampData = _tuple[0];
197201
197676
  err = _tuple[1];
@@ -197280,128 +197755,147 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197280
197755
  return $mul64((new time.Duration(clampedTimeoutMs.$high, clampedTimeoutMs.$low)), new time.Duration(0, 1000000));
197281
197756
  };
197282
197757
  ScreenWindow.prototype.getFrameHealthCheckTimeout = function() { return this.$val.getFrameHealthCheckTimeout(); };
197758
+ ScreenWindow.ptr.prototype.startScreenHealthChecking = function() {
197759
+ var {_r, _r$1, _r$2, _r$3, err, lastImpulseAt, w, $s, $r, $c} = $restore(this, {});
197760
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197761
+ w = this;
197762
+ /* while (true) { */ case 1:
197763
+ /* if (!(!w.closed)) { break; } */ if(!(!w.closed)) { $s = 2; continue; }
197764
+ /* */ if ($interfaceIsEqual(w.screenConn, $ifaceNil)) { $s = 3; continue; }
197765
+ /* */ $s = 4; continue;
197766
+ /* if ($interfaceIsEqual(w.screenConn, $ifaceNil)) { */ case 3:
197767
+ $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197768
+ /* continue; */ $s = 1; continue;
197769
+ /* } */ case 4:
197770
+ lastImpulseAt = $clone(w.stats.GetLastScreenImpulseAt(), time.Time);
197771
+ _r = time.Now(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197772
+ _r$1 = $clone($clone(lastImpulseAt, time.Time).Add(w.getFrameHealthCheckTimeout()), time.Time).Before($clone(_r, time.Time)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197773
+ /* */ if (_r$1) { $s = 6; continue; }
197774
+ /* */ $s = 7; continue;
197775
+ /* if (_r$1) { */ case 6:
197776
+ _r$2 = w.closeScreen(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197777
+ err = _r$2;
197778
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 11; continue; }
197779
+ /* */ $s = 12; continue;
197780
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 11:
197781
+ $r = errs.Print("Cannot close screen", err); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197782
+ /* } */ case 12:
197783
+ _r$3 = w.retriableOpen(-1, $methodVal(w, "openScreen")); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197784
+ err = _r$3;
197785
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; }
197786
+ /* */ $s = 16; continue;
197787
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15:
197788
+ $r = errs.Print("Reconnecting screen", err); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197789
+ /* } */ case 16:
197790
+ /* } */ case 7:
197791
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197792
+ $s = 1; continue;
197793
+ case 2:
197794
+ $s = -1; return;
197795
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.startScreenHealthChecking, $c: true, $r, _r, _r$1, _r$2, _r$3, err, lastImpulseAt, w, $s};return $f;
197796
+ };
197797
+ ScreenWindow.prototype.startScreenHealthChecking = function() { return this.$val.startScreenHealthChecking(); };
197283
197798
  ScreenWindow.ptr.prototype.openScreen = function() {
197284
- var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, conn, connect, data, err, frameCollector, maxPacketSize, msgData, screenSender, streamHostname, videoStreamer, w, $s, $r, $c} = $restore(this, {});
197799
+ var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, conn, connect, err, frameCollector, maxPacketSize, msgData, screenSender, w, $s, $r, $c} = $restore(this, {});
197285
197800
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197286
- err = [err];
197287
- screenSender = [screenSender];
197288
- w = [w];
197289
- w[0] = this;
197290
- err[0] = $ifaceNil;
197291
- _r = netpacket.Create(w[0].screenDriver); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197801
+ w = this;
197802
+ err = $ifaceNil;
197803
+ _r = netpacket.Create(w.screenDriver); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197292
197804
  _tuple = _r;
197293
197805
  connect = _tuple[0];
197294
- err[0] = _tuple[1];
197295
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197296
- $s = -1; return err[0];
197806
+ err = _tuple[1];
197807
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197808
+ $s = -1; return err;
197297
197809
  }
197298
- _r$1 = connect(w[0].screenHost, new time.Duration(0, 1000000000), w[0].secure); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197810
+ _r$1 = connect(w.screenHost, new time.Duration(0, 1000000000), w.secure); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197299
197811
  _tuple$1 = _r$1;
197300
197812
  conn = _tuple$1[0];
197301
- err[0] = _tuple$1[1];
197302
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197303
- $s = -1; return err[0];
197813
+ err = _tuple$1[1];
197814
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197815
+ $s = -1; return err;
197304
197816
  }
197305
- w[0].screenConn = conn;
197306
- maxPacketSize = netpacket.GetMaxPacketSize(w[0].screenDriver);
197817
+ w.screenConn = conn;
197818
+ maxPacketSize = netpacket.GetMaxPacketSize(w.screenDriver);
197307
197819
  frameCollector = netframe.NewFrameCollector(conn, maxPacketSize);
197308
- w[0].collectionLoop = player.NewCollectionLoop(frameCollector, w[0].stats);
197309
- w[0].collectionLoop.Start();
197310
- w[0].decoderLoop = player.NewDecoderLoop(w[0].collectionLoop, $methodVal(w[0], "createScreenBuffer"), w[0].stats);
197311
- w[0].decoderLoop.Start();
197312
- w[0].renderingLoop = player.NewRenderingLoop(w[0].decoderLoop, w[0].window, w[0].stats);
197313
- w[0].renderingLoop.Start();
197314
- screenSender[0] = w[0].createScreenSender();
197315
- msgData = (new sliceType$2($stringToBytes(w[0].clientID + w[0].clientSecret + w[0].screenID)));
197316
- _r$2 = screenSender[0].Send(1, msgData); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197317
- err[0] = _r$2;
197318
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197319
- $s = -1; return err[0];
197820
+ w.collectionLoop = player.NewCollectionLoop(frameCollector, w.stats);
197821
+ w.collectionLoop.Start();
197822
+ w.decoderLoop = player.NewDecoderLoop(w.collectionLoop, $methodVal(w, "createScreenBuffer"), w.stats);
197823
+ w.decoderLoop.Start();
197824
+ w.renderingLoop = player.NewRenderingLoop(w.decoderLoop, w.window, w.stats);
197825
+ w.renderingLoop.Start();
197826
+ screenSender = w.createScreenSender();
197827
+ msgData = (new sliceType($stringToBytes(w.clientID + w.clientSecret + w.screenID)));
197828
+ _r$2 = screenSender.Send(1, msgData); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197829
+ err = _r$2;
197830
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197831
+ $s = -1; return err;
197832
+ }
197833
+ w.pinger = netclient.NewPinger(screenSender);
197834
+ w.pinger.Start();
197835
+ _r$3 = RegisterVideoStream(screenSender); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197836
+ err = _r$3;
197837
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
197838
+ $s = -1; return err;
197320
197839
  }
197321
- w[0].pinger = netclient.NewPinger(screenSender[0]);
197322
- w[0].pinger.Start();
197323
- videoStreamer = videostream.Get();
197324
- _r$3 = videoStreamer.IsAvailable(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197325
- /* */ if (_r$3) { $s = 4; continue; }
197326
- /* */ $s = 5; continue;
197327
- /* if (_r$3) { */ case 4:
197328
- data = $makeSlice(sliceType$2, 3);
197329
- _r$4 = videoStreamer.GetProtocol(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
197330
- (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0] = ((_r$4 << 24 >>> 24)));
197331
- _arg = $subslice(data, 1);
197332
- _r$5 = videoStreamer.GetPort(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197333
- _arg$1 = (_r$5);
197334
- $r = $clone(binary.BigEndian, binary.bigEndian).PutUint16(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197335
- _r$6 = videoStreamer.GetHostname(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
197336
- streamHostname = _r$6;
197337
- if (!(streamHostname === "")) {
197338
- data = $appendSlice(data, (new sliceType$2($stringToBytes(streamHostname))));
197339
- }
197340
- _r$7 = screenSender[0].Send(5, data); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
197341
- err[0] = _r$7;
197342
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
197343
- $s = -1; return err[0];
197344
- }
197345
- /* } */ case 5:
197346
- $go((function(err, screenSender, w) { return function $b() {
197347
- var {_r$10, _r$11, _r$12, _r$8, _r$9, err$1, $s, $r, $c} = $restore(this, {});
197348
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197349
- /* while (true) { */ case 1:
197350
- /* if (!(!w[0].closed)) { break; } */ if(!(!w[0].closed)) { $s = 2; continue; }
197351
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197352
- _r$8 = time.Now(); /* */ $s = 6; case 6: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
197353
- _r$9 = $clone($clone(w[0].stats.GetLastFrameAt(), time.Time).Add(w[0].getFrameHealthCheckTimeout()), time.Time).Before($clone(_r$8, time.Time)); /* */ $s = 7; case 7: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
197354
- /* */ if (_r$9) { $s = 4; continue; }
197355
- /* */ $s = 5; continue;
197356
- /* if (_r$9) { */ case 4:
197357
- if (!(w[0].pinger === ptrType$9.nil)) {
197358
- w[0].pinger.Close();
197359
- w[0].pinger = ptrType$9.nil;
197360
- }
197361
- if (!(w[0].collectionLoop === ptrType$3.nil)) {
197362
- w[0].collectionLoop.Stop();
197363
- w[0].collectionLoop = ptrType$3.nil;
197364
- }
197365
- if (!(w[0].decoderLoop === ptrType$4.nil)) {
197366
- w[0].decoderLoop.Stop();
197367
- w[0].decoderLoop = ptrType$4.nil;
197368
- }
197369
- if (!(w[0].renderingLoop === ptrType$5.nil)) {
197370
- w[0].renderingLoop.Stop();
197371
- w[0].renderingLoop = ptrType$5.nil;
197372
- }
197373
- _r$10 = screenSender[0].Send(3, new sliceType$2([])); /* */ $s = 8; case 8: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
197374
- err[0] = _r$10;
197375
- /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 9; continue; }
197376
- /* */ $s = 10; continue;
197377
- /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 9:
197378
- $r = errs.Print("Could not send disconnect msg to screen", err[0]); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197379
- /* } */ case 10:
197380
- _r$11 = w[0].screenConn.Close(); /* */ $s = 12; case 12: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
197381
- err[0] = _r$11;
197382
- /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 13; continue; }
197383
- /* */ $s = 14; continue;
197384
- /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 13:
197385
- $r = errs.Print("Could not disconnect screen", err[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197386
- /* } */ case 14:
197387
- _r$12 = w[0].retriableOpen(-1, $methodVal(w[0], "openScreen")); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
197388
- err$1 = _r$12;
197389
- /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 17; continue; }
197390
- /* */ $s = 18; continue;
197391
- /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 17:
197392
- $r = errs.Print("Reconnecting screen", err$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197393
- /* } */ case 18:
197394
- /* break; */ $s = 2; continue;
197395
- /* } */ case 5:
197396
- $s = 1; continue;
197397
- case 2:
197398
- $s = -1; return;
197399
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$10, _r$11, _r$12, _r$8, _r$9, err$1, $s};return $f;
197400
- }; })(err, screenSender, w), []);
197401
197840
  $s = -1; return $ifaceNil;
197402
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openScreen, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, conn, connect, data, err, frameCollector, maxPacketSize, msgData, screenSender, streamHostname, videoStreamer, w, $s};return $f;
197841
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openScreen, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, conn, connect, err, frameCollector, maxPacketSize, msgData, screenSender, w, $s};return $f;
197403
197842
  };
197404
197843
  ScreenWindow.prototype.openScreen = function() { return this.$val.openScreen(); };
197844
+ ScreenWindow.ptr.prototype.closeScreen = function() {
197845
+ var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, errList, screenSender, w, $s, $r, $c} = $restore(this, {});
197846
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197847
+ w = this;
197848
+ if (!(w.collectionLoop === ptrType$3.nil)) {
197849
+ w.collectionLoop.Stop();
197850
+ w.collectionLoop = ptrType$3.nil;
197851
+ }
197852
+ if (!(w.decoderLoop === ptrType$4.nil)) {
197853
+ w.decoderLoop.Stop();
197854
+ w.decoderLoop = ptrType$4.nil;
197855
+ }
197856
+ if (!(w.renderingLoop === ptrType$5.nil)) {
197857
+ w.renderingLoop.Stop();
197858
+ w.renderingLoop = ptrType$5.nil;
197859
+ }
197860
+ if (!(w.pinger === ptrType$10.nil)) {
197861
+ w.pinger.Close();
197862
+ w.pinger = ptrType$10.nil;
197863
+ }
197864
+ errList = new sliceType$3([]);
197865
+ screenSender = w.createScreenSender();
197866
+ _r = UnregisterVideoStream(screenSender); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197867
+ err = _r;
197868
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
197869
+ /* */ $s = 3; continue;
197870
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
197871
+ _r$1 = errs.Errorf("Could not unregister video stream: %s", new sliceType$2([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197872
+ errList = $append(errList, _r$1);
197873
+ /* } */ case 3:
197874
+ _r$2 = screenSender.Send(3, new sliceType([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197875
+ err = _r$2;
197876
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; }
197877
+ /* */ $s = 7; continue;
197878
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6:
197879
+ _r$3 = errs.Errorf("Could not send disconnect msg to screen: %s", new sliceType$2([err])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197880
+ errList = $append(errList, _r$3);
197881
+ /* } */ case 7:
197882
+ _r$4 = w.screenConn.Close(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
197883
+ err = _r$4;
197884
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 10; continue; }
197885
+ /* */ $s = 11; continue;
197886
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 10:
197887
+ _r$5 = errs.Errorf("Could not close screen connection: %s", new sliceType$2([err])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197888
+ errList = $append(errList, _r$5);
197889
+ /* } */ case 11:
197890
+ if (errList.$length === 0) {
197891
+ $s = -1; return $ifaceNil;
197892
+ }
197893
+ _r$6 = errs.CombineErrors(errList); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
197894
+ $24r = _r$6;
197895
+ $s = 14; case 14: return $24r;
197896
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.closeScreen, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, errList, screenSender, w, $s};return $f;
197897
+ };
197898
+ ScreenWindow.prototype.closeScreen = function() { return this.$val.closeScreen(); };
197405
197899
  ScreenWindow.ptr.prototype.createScreenBuffer = function() {
197406
197900
  var {_r, _tuple, _tuple$1, err, localScreenSize, screenBuffer, w, $s, $r, $c} = $restore(this, {});
197407
197901
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -197431,31 +197925,35 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197431
197925
  _arg$1 = new $Bool(_r);
197432
197926
  _arg$2 = new $Bool(nacldecoder.IsAvailable());
197433
197927
  _arg$3 = new $Bool(webcodecs.IsAvailable());
197434
- _r$1 = fmt.Println(new sliceType$1([new $String("Drivers availability: android"), _arg, new $String(", videostream"), _arg$1, new $String(", nacldecoder"), _arg$2, new $String(", webcodecs"), _arg$3])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197928
+ _r$1 = fmt.Println(new sliceType$2([new $String("Drivers availability: android"), _arg, new $String(", videostream"), _arg$1, new $String(", nacldecoder"), _arg$2, new $String(", webcodecs"), _arg$3])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
197435
197929
  _r$1;
197436
197930
  /* */ if (android.IsAvailable()) { $s = 3; continue; }
197437
- _r$2 = videostream.Get().IsAvailable(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197931
+ _r$2 = videostream.Get().IsAvailable(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
197438
197932
  /* */ if (_r$2) { $s = 4; continue; }
197439
197933
  /* */ if (nacldecoder.IsAvailable()) { $s = 5; continue; }
197440
- /* */ if (webcodecs.IsAvailable()) { $s = 6; continue; }
197441
- /* */ $s = 7; continue;
197934
+ /* */ if (samsungwasmdecoder.IsAvailable()) { $s = 6; continue; }
197935
+ /* */ if (webcodecs.IsAvailable()) { $s = 7; continue; }
197936
+ /* */ $s = 8; continue;
197442
197937
  /* if (android.IsAvailable()) { */ case 3:
197443
- $r = overlaydriver.Main(f); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197444
- $s = 8; continue;
197445
- /* } else if (_r$2) { */ case 4:
197446
197938
  $r = overlaydriver.Main(f); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197447
- $s = 8; continue;
197939
+ $s = 9; continue;
197940
+ /* } else if (_r$2) { */ case 4:
197941
+ $r = overlaydriver.Main(f); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197942
+ $s = 9; continue;
197448
197943
  /* } else if (nacldecoder.IsAvailable()) { */ case 5:
197449
- $r = nacldriver.Main(f); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197450
- $s = 8; continue;
197451
- /* } else if (webcodecs.IsAvailable()) { */ case 6:
197452
- $r = canvasdriver.Main(f); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197453
- $s = 8; continue;
197454
- /* } else { */ case 7:
197455
- _r$3 = fmt.Println(new sliceType$1([new $String("Using webgldriver as fallback")])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197944
+ $r = nacldriver.Main(f); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197945
+ $s = 9; continue;
197946
+ /* } else if (samsungwasmdecoder.IsAvailable()) { */ case 6:
197947
+ $r = overlaydriver.Main(f); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197948
+ $s = 9; continue;
197949
+ /* } else if (webcodecs.IsAvailable()) { */ case 7:
197950
+ $r = canvasdriver.Main(f); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197951
+ $s = 9; continue;
197952
+ /* } else { */ case 8:
197953
+ _r$3 = fmt.Println(new sliceType$2([new $String("Using webgldriver as fallback")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
197456
197954
  _r$3;
197457
- $r = webgldriver.Main(f); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197458
- /* } */ case 8:
197955
+ $r = webgldriver.Main(f); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197956
+ /* } */ case 9:
197459
197957
  $s = -1; return;
197460
197958
  /* */ } return; } var $f = {$blk: MainDriver, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, f, $s};return $f;
197461
197959
  };
@@ -197531,7 +198029,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197531
198029
  /* */ if ((x = _r$4, (x.$high > 0 || (x.$high === 0 && x.$low > 30000)))) { $s = 5; continue; }
197532
198030
  /* */ $s = 6; continue;
197533
198031
  /* if ((x = _r$4, (x.$high > 0 || (x.$high === 0 && x.$low > 30000)))) { */ case 5:
197534
- _r$5 = errs.Errorf("Waiting for process %s start timed out", new sliceType$1([new $String(screenID)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
198032
+ _r$5 = errs.Errorf("Waiting for process %s start timed out", new sliceType$2([new $String(screenID)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
197535
198033
  $24r = _r$5;
197536
198034
  $s = 11; case 11: return $24r;
197537
198035
  /* } */ case 6:
@@ -197581,14 +198079,14 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197581
198079
  ProcessInfoManager.ptr.prototype.ListScreenIDs = function() {
197582
198080
  var {_i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, err, fileInfo, fileInfos, m, screenIDs, userProcessDirPath, $s, $r, $c} = $restore(this, {});
197583
198081
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
197584
- screenIDs = sliceType$3.nil;
198082
+ screenIDs = sliceType$4.nil;
197585
198083
  err = $ifaceNil;
197586
198084
  m = this;
197587
198085
  userProcessDirPath = m.getUserProcessDirPath();
197588
198086
  _r = os.MkdirAll(userProcessDirPath, 448); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
197589
198087
  err = _r;
197590
198088
  if (!($interfaceIsEqual(err, $ifaceNil))) {
197591
- _tmp = sliceType$3.nil;
198089
+ _tmp = sliceType$4.nil;
197592
198090
  _tmp$1 = err;
197593
198091
  screenIDs = _tmp;
197594
198092
  err = _tmp$1;
@@ -197599,7 +198097,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197599
198097
  fileInfos = _tuple[0];
197600
198098
  err = _tuple[1];
197601
198099
  if (!($interfaceIsEqual(err, $ifaceNil))) {
197602
- _tmp$2 = sliceType$3.nil;
198100
+ _tmp$2 = sliceType$4.nil;
197603
198101
  _tmp$3 = err;
197604
198102
  screenIDs = _tmp$2;
197605
198103
  err = _tmp$3;
@@ -197626,12 +198124,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197626
198124
  ProcessInfoManager.ptr.prototype.getUserProcessDirPath = function() {
197627
198125
  var m;
197628
198126
  m = this;
197629
- return path.Join(new sliceType$3([m.processDir, "S-" + m.username]));
198127
+ return path.Join(new sliceType$4([m.processDir, "S-" + m.username]));
197630
198128
  };
197631
198129
  ProcessInfoManager.prototype.getUserProcessDirPath = function() { return this.$val.getUserProcessDirPath(); };
197632
- ptrType$11.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createMetadataResponsiveSender", name: "createMetadataResponsiveSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [ptrType$10], false)}, {prop: "createMetadataSender", name: "createMetadataSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "createScreenSender", name: "createScreenSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "startStatsSyncing", name: "startStatsSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "sendStats", name: "sendStats", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "getFrameHealthCheckTimeout", name: "getFrameHealthCheckTimeout", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [time.Duration], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createScreenBuffer", name: "createScreenBuffer", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [screen.Buffer, $error], false)}];
197633
- ptrType.methods = [{prop: "CreateProcessInfo", name: "CreateProcessInfo", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "RemoveProcessInfo", name: "RemoveProcessInfo", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "WaitProcess", name: "WaitProcess", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "GetProcessInfo", name: "GetProcessInfo", pkg: "", typ: $funcType([$String], [ProcessInfo, $error], false)}, {prop: "ListScreenIDs", name: "ListScreenIDs", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "getUserProcessDirPath", name: "getUserProcessDirPath", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$String], false)}];
197634
- ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "collectionLoop", name: "collectionLoop", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "decoderLoop", name: "decoderLoop", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "renderingLoop", name: "renderingLoop", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "pinger", name: "pinger", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$4, tag: ""}]);
198130
+ ptrType$12.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createMetadataResponsiveSender", name: "createMetadataResponsiveSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [ptrType$11], false)}, {prop: "createMetadataSender", name: "createMetadataSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "createScreenSender", name: "createScreenSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "startStatsSyncing", name: "startStatsSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "sendStats", name: "sendStats", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "getFrameHealthCheckTimeout", name: "getFrameHealthCheckTimeout", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [time.Duration], false)}, {prop: "startScreenHealthChecking", name: "startScreenHealthChecking", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "closeScreen", name: "closeScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createScreenBuffer", name: "createScreenBuffer", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [screen.Buffer, $error], false)}];
198131
+ ptrType.methods = [{prop: "CreateProcessInfo", name: "CreateProcessInfo", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "RemoveProcessInfo", name: "RemoveProcessInfo", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "WaitProcess", name: "WaitProcess", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "GetProcessInfo", name: "GetProcessInfo", pkg: "", typ: $funcType([$String], [ProcessInfo, $error], false)}, {prop: "ListScreenIDs", name: "ListScreenIDs", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "getUserProcessDirPath", name: "getUserProcessDirPath", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$String], false)}];
198132
+ ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "collectionLoop", name: "collectionLoop", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "decoderLoop", name: "decoderLoop", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "renderingLoop", name: "renderingLoop", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "touchHandler", name: "touchHandler", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "pinger", name: "pinger", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "touchEventChan", name: "touchEventChan", embedded: false, exported: false, typ: chanType$4, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$5, tag: ""}]);
197635
198133
  ProcessInfo.init("", [{prop: "ScreenID", name: "ScreenID", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Int, tag: ""}]);
197636
198134
  ProcessInfoManager.init("github.com/supraio/client-daemon/pkg/render", [{prop: "username", name: "username", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "processDir", name: "processDir", embedded: false, exported: false, typ: $String, tag: ""}]);
197637
198135
  $init = function() {
@@ -197646,38 +198144,40 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
197646
198144
  $r = android.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197647
198145
  $r = nacldecoder.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197648
198146
  $r = nacldriver.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197649
- $r = webcodecs.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197650
- $r = errs.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197651
- $r = helper.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197652
- $r = input.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197653
- $r = message.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197654
- $r = netclient.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197655
- $r = netpacket.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197656
- $r = netstream.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197657
- $r = netframe.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197658
- $r = player.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197659
- $r = canvasdriver.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197660
- $r = overlaydriver.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197661
- $r = webgldriver.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197662
- $r = stats.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197663
- $r = videostream.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197664
- $r = window.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197665
- $r = screen.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197666
- $r = focus.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197667
- $r = key.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197668
- $r = lifecycle.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197669
- $r = mouse.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197670
- $r = size.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197671
- $r = image.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197672
- $r = io.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197673
- $r = ioutil.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197674
- $r = log.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197675
- $r = os.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197676
- $r = path.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197677
- $r = strings.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197678
- $r = sync.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197679
- $r = js.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197680
- $r = time.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198147
+ $r = samsungwasmdecoder.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198148
+ $r = webcodecs.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198149
+ $r = errs.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198150
+ $r = helper.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198151
+ $r = input.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198152
+ $r = message.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198153
+ $r = netclient.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198154
+ $r = netpacket.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198155
+ $r = netstream.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198156
+ $r = netframe.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198157
+ $r = player.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198158
+ $r = canvasdriver.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198159
+ $r = overlaydriver.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198160
+ $r = webgldriver.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198161
+ $r = stats.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198162
+ $r = videostream.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198163
+ $r = window.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198164
+ $r = screen.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198165
+ $r = focus.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198166
+ $r = key.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198167
+ $r = lifecycle.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198168
+ $r = mouse.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198169
+ $r = size.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198170
+ $r = touch.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198171
+ $r = image.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198172
+ $r = io.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198173
+ $r = ioutil.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198174
+ $r = log.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198175
+ $r = os.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198176
+ $r = path.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198177
+ $r = strings.$init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198178
+ $r = sync.$init(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198179
+ $r = js.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198180
+ $r = time.$init(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
197681
198181
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
197682
198182
  };
197683
198183
  $pkg.$init = $init;