| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029 |
- "use strict";
- var h;
- var counter = 0;
- var resizeFlag = true;
- function n(a) {
- var b = 0;
- return function () {
- return b < a.length ? { done: !1, value: a[b++] } : { done: !0 };
- };
- }
- function q(a) {
- var b =
- "undefined" != typeof Symbol && Symbol.iterator && a[Symbol.iterator];
- return b ? b.call(a) : { next: n(a) };
- }
- var r =
- "undefined" != typeof window && window === this
- ? this
- : "undefined" != typeof global && null != global
- ? global
- : this,
- u =
- "function" == typeof Object.defineProperties
- ? Object.defineProperty
- : function (a, b, d) {
- a != Array.prototype &&
- a != Object.prototype &&
- (a[b] = d.value);
- };
- function w(a, b) {
- if (b) {
- var d = r;
- a = a.split(".");
- for (var f = 0; f < a.length - 1; f++) {
- var g = a[f];
- g in d || (d[g] = {});
- d = d[g];
- }
- a = a[a.length - 1];
- f = d[a];
- b = b(f);
- b != f &&
- null != b &&
- u(d, a, { configurable: !0, writable: !0, value: b });
- }
- }
- w("Promise", function (a) {
- function b(c) {
- this.c = 0;
- this.h = void 0;
- this.b = [];
- var e = this.f();
- try {
- c(e.resolve, e.reject);
- } catch (k) {
- e.reject(k);
- }
- }
- function d() {
- this.b = null;
- }
- function f(c) {
- return c instanceof b
- ? c
- : new b(function (e) {
- e(c);
- });
- }
- if (a) return a;
- d.prototype.c = function (c) {
- if (null == this.b) {
- this.b = [];
- var e = this;
- this.f(function () {
- e.h();
- });
- }
- this.b.push(c);
- };
- var g = r.setTimeout;
- d.prototype.f = function (c) {
- g(c, 0);
- };
- d.prototype.h = function () {
- for (; this.b && this.b.length; ) {
- var c = this.b;
- this.b = [];
- for (var e = 0; e < c.length; ++e) {
- var k = c[e];
- c[e] = null;
- try {
- k();
- } catch (m) {
- this.g(m);
- }
- }
- }
- this.b = null;
- };
- d.prototype.g = function (c) {
- this.f(function () {
- throw c;
- });
- };
- b.prototype.f = function () {
- function c(m) {
- return function (p) {
- k || ((k = !0), m.call(e, p));
- };
- }
- var e = this,
- k = !1;
- return { resolve: c(this.s), reject: c(this.g) };
- };
- b.prototype.s = function (c) {
- if (c === this)
- this.g(new TypeError("A Promise cannot resolve to itself"));
- else if (c instanceof b) this.u(c);
- else {
- a: switch (typeof c) {
- case "object":
- var e = null != c;
- break a;
- case "function":
- e = !0;
- break a;
- default:
- e = !1;
- }
- e ? this.o(c) : this.i(c);
- }
- };
- b.prototype.o = function (c) {
- var e = void 0;
- try {
- e = c.then;
- } catch (k) {
- this.g(k);
- return;
- }
- "function" == typeof e ? this.v(e, c) : this.i(c);
- };
- b.prototype.g = function (c) {
- this.j(2, c);
- };
- b.prototype.i = function (c) {
- this.j(1, c);
- };
- b.prototype.j = function (c, e) {
- if (0 != this.c)
- throw Error(
- "Cannot settle(" +
- c +
- ", " +
- e +
- "): Promise already settled in state" +
- this.c
- );
- this.c = c;
- this.h = e;
- this.l();
- };
- b.prototype.l = function () {
- if (null != this.b) {
- for (var c = 0; c < this.b.length; ++c) l.c(this.b[c]);
- this.b = null;
- }
- };
- var l = new d();
- b.prototype.u = function (c) {
- var e = this.f();
- c.w(e.resolve, e.reject);
- };
- b.prototype.v = function (c, e) {
- var k = this.f();
- try {
- c.call(e, k.resolve, k.reject);
- } catch (m) {
- k.reject(m);
- }
- };
- b.prototype.then = function (c, e) {
- function k(t, v) {
- return "function" == typeof t
- ? function (B) {
- try {
- m(t(B));
- } catch (C) {
- p(C);
- }
- }
- : v;
- }
- var m,
- p,
- D = new b(function (t, v) {
- m = t;
- p = v;
- });
- this.w(k(c, m), k(e, p));
- return D;
- };
- b.prototype.catch = function (c) {
- return this.then(void 0, c);
- };
- b.prototype.w = function (c, e) {
- function k() {
- switch (m.c) {
- case 1:
- c(m.h);
- break;
- case 2:
- e(m.h);
- break;
- default:
- throw Error("Unexpected state: " + m.c);
- }
- }
- var m = this;
- null == this.b ? l.c(k) : this.b.push(k);
- };
- b.resolve = f;
- b.reject = function (c) {
- return new b(function (e, k) {
- k(c);
- });
- };
- b.race = function (c) {
- return new b(function (e, k) {
- for (var m = q(c), p = m.next(); !p.done; p = m.next())
- f(p.value).w(e, k);
- });
- };
- b.all = function (c) {
- var e = q(c),
- k = e.next();
- return k.done
- ? f([])
- : new b(function (m, p) {
- function D(B) {
- return function (C) {
- t[B] = C;
- v--;
- 0 == v && m(t);
- };
- }
- var t = [],
- v = 0;
- do
- t.push(void 0),
- v++,
- f(k.value).w(D(t.length - 1), p),
- (k = e.next());
- while (!k.done);
- });
- };
- return b;
- });
- function x() {
- x = function () {};
- r.Symbol || (r.Symbol = y);
- }
- function z(a, b) {
- this.b = a;
- u(this, "description", { configurable: !0, writable: !0, value: b });
- }
- z.prototype.toString = function () {
- return this.b;
- };
- var y = (function () {
- function a(d) {
- if (this instanceof a)
- throw new TypeError("Symbol is not a constructor");
- return new z("jscomp_symbol_" + (d || "") + "_" + b++, d);
- }
- var b = 0;
- return a;
- })();
- function A() {
- x();
- var a = r.Symbol.iterator;
- a || (a = r.Symbol.iterator = r.Symbol("Symbol.iterator"));
- "function" != typeof Array.prototype[a] &&
- u(Array.prototype, a, {
- configurable: !0,
- writable: !0,
- value: function () {
- return E(n(this));
- },
- });
- A = function () {};
- }
- function E(a) {
- A();
- a = { next: a };
- a[r.Symbol.iterator] = function () {
- return this;
- };
- return a;
- }
- function F() {
- this.g = !1;
- this.c = null;
- this.i = void 0;
- this.b = 1;
- this.l = this.h = 0;
- this.f = null;
- }
- function G(a) {
- if (a.g) throw new TypeError("Generator is already running");
- a.g = !0;
- }
- F.prototype.j = function (a) {
- this.i = a;
- };
- function H(a, b) {
- a.f = { F: b, Y: !0 };
- a.b = a.h || a.l;
- }
- F.prototype.return = function (a) {
- this.f = { return: a };
- this.b = this.l;
- };
- function I(a, b, d) {
- a.b = d;
- return { value: b };
- }
- function aa(a) {
- this.b = new F();
- this.c = a;
- }
- function ba(a, b) {
- G(a.b);
- var d = a.b.c;
- if (d)
- return J(
- a,
- "return" in d
- ? d["return"]
- : function (f) {
- return { value: f, done: !0 };
- },
- b,
- a.b.return
- );
- a.b.return(b);
- return K(a);
- }
- function J(a, b, d, f) {
- try {
- var g = b.call(a.b.c, d);
- if (!(g instanceof Object))
- throw new TypeError("Iterator result " + g + " is not an object");
- if (!g.done) return (a.b.g = !1), g;
- var l = g.value;
- } catch (c) {
- return (a.b.c = null), H(a.b, c), K(a);
- }
- a.b.c = null;
- f.call(a.b, l);
- return K(a);
- }
- function K(a) {
- for (; a.b.b; )
- try {
- var b = a.c(a.b);
- if (b) return (a.b.g = !1), { value: b.value, done: !1 };
- } catch (d) {
- (a.b.i = void 0), H(a.b, d);
- }
- a.b.g = !1;
- if (a.b.f) {
- b = a.b.f;
- a.b.f = null;
- if (b.Y) throw b.F;
- return { value: b.return, done: !0 };
- }
- return { value: void 0, done: !0 };
- }
- function ca(a) {
- this.next = function (b) {
- G(a.b);
- a.b.c ? (b = J(a, a.b.c.next, b, a.b.j)) : (a.b.j(b), (b = K(a)));
- return b;
- };
- this.throw = function (b) {
- G(a.b);
- a.b.c ? (b = J(a, a.b.c["throw"], b, a.b.j)) : (H(a.b, b), (b = K(a)));
- return b;
- };
- this.return = function (b) {
- return ba(a, b);
- };
- A();
- this[Symbol.iterator] = function () {
- return this;
- };
- }
- function da(a) {
- function b(f) {
- return a.next(f);
- }
- function d(f) {
- return a.throw(f);
- }
- return new Promise(function (f, g) {
- function l(c) {
- c.done
- ? f(c.value)
- : Promise.resolve(c.value).then(b, d).then(l, g);
- }
- l(a.next());
- });
- }
- function L(a) {
- return da(new ca(new aa(a)));
- }
- w("Object.entries", function (a) {
- return a
- ? a
- : function (b) {
- var d = [],
- f;
- for (f in b)
- Object.prototype.hasOwnProperty.call(b, f) &&
- d.push([f, b[f]]);
- return d;
- };
- });
- var Status = {
- PARSEC_OK: 0,
- PARSEC_NOT_RUNNING: -3,
- PARSEC_CONNECTING: 20,
- PARSEC_WRN_BROWSER: 30,
- };
- function addEvtListener(element, eventName, listener) {
- element.addEventListener(eventName, listener);
- return [element, eventName, listener];
- }
- function O(a, b, d, f, g) {
- a = new DataView(a);
- a.setInt32(0, d);
- a.setInt32(4, f);
- a.setInt32(8, g);
- a.setInt8(12, b);
- }
- function P(a, b, d, f) {
- var g = new ArrayBuffer(13);
- O(g, a, b, d, f);
- return g;
- }
- function Q(a, b, d) {
- var f = new ArrayBuffer(13 + d.length + 1);
- O(f, a, d.length + 1, b, 0);
- a = new TextEncoder().encode(d);
- b = new Int8Array(f, 13);
- for (var g = 0; g < d.length; g++) b[g] = a[g];
- return f;
- }
- function ea(a, b) {
- a = JSON.stringify({
- _version: 1,
- _max_w: 6e4,
- _max_h: 6e4,
- _flags: 0,
- resolutionX: a,
- resolutionY: b,
- refreshRate: 60,
- mediaContainer: 0,
- });
- return Q(11, 0, a);
- }
- function fa(a, b, d, f, g) {
- switch (a.type) {
- case 4:
- if (!a.relative) {
- var l = Math.min(f / b, g / d),
- c = b * l;
- l *= d;
- g = Math.max((g - l) / 2, 0);
- f = Math.round((b / c) * (a.x - Math.max((f - c) / 2, 0)));
- f === b - 1 && (f = b);
- f > b && (f = b);
- 0 > f && (f = 0);
- a.x = f;
- b = Math.round((d / l) * (a.y - g));
- b === d - 1 && (b = d);
- b > d && (b = d);
- 0 > b && (b = 0);
- a.y = b;
- }
- return P(3, a.relative ? 1 : 0, a.x, a.y);
- case 8:
- return (
- (d = new ArrayBuffer(28)),
- O(d, 23, a.id, 0, 0),
- (b = new DataView(d)),
- b.setUint16(16, a.buttons),
- b.setInt16(18, a.thumbLX),
- b.setInt16(20, a.thumbLY),
- b.setInt16(22, a.thumbRX),
- b.setInt16(24, a.thumbRY),
- b.setUint8(26, a.leftTrigger),
- b.setUint8(27, a.rightTrigger),
- d
- );
- case 2:
- return P(1, a.button, a.pressed ? 1 : 0, 0);
- case 1:
- return P(0, a.code, a.mod, a.pressed ? 1 : 0);
- case 3:
- return P(2, a.x, a.y, 0);
- case 5:
- return P(4, a.button, a.pressed ? 1 : 0, a.id);
- case 6:
- return P(5, a.axis, a.value, a.id);
- case 7:
- return P(6, 0, 0, a.id);
- case 9:
- return P(24, 0, 0, 0);
- }
- }
- var R = {},
- S = 1;
- function T(a) {
- var b = S++;
- R[b] = a;
- return b;
- }
- function ha(a) {
- var b = a.getInt16(32),
- d = a.getInt32(16),
- f = 0 < d ? new Uint8Array(a.buffer, 34, d) : null;
- f = f ? T(f) : 0;
- return {
- type: 1,
- cursor: {
- size: d,
- positionX: a.getInt16(24),
- positionY: a.getInt16(26),
- width: a.getInt16(20),
- height: a.getInt16(22),
- hotX: a.getInt16(28),
- hotY: a.getInt16(30),
- imageUpdate: 0 < f,
- relative: !!(b & 256),
- hidden: !!(b & 512),
- stream: 0,
- },
- key: f,
- };
- }
- function ia(a, b) {
- b = T(new Uint8Array(b.buffer, 13, a.m));
- return { type: 3, id: a.A, key: b };
- }
- function ja() {
- var a = new Uint8Array(16);
- crypto.getRandomValues(a);
- return a
- .map(function (b) {
- return b % 10;
- })
- .join("");
- }
- function U(a) {
- var b = this;
- this.l = a;
- this.i = !1;
- this.j = "";
- this.h = !1;
- this.b = this.sdp = null;
- this.c = {};
- this.g = [];
- this.f = null;
- this.b = new RTCPeerConnection({
- iceServers: [{ urls: "stun:47.114.174.231:3478" }],
- });
- this.b.onicecandidate = function (d) {
- d.candidate &&
- ((d = d.candidate.candidate.replace("candidate:", "").split(" ")),
- 8 <= d.length &&
- "udp" === d[2].toLowerCase() &&
- b.l(
- d[4],
- parseInt(d[5], 10),
- !1,
- "srflx" === d[7],
- "host" === d[7]
- ));
- };
- }
- U.prototype.close = function () {
- for (var a = q(Object.entries(this.c)), b = a.next(); !b.done; b = a.next())
- b.value[1].close();
- this.b.close();
- };
- function V(a, b, d, f, g) {
- a.c[d] = a.b.createDataChannel(b, { negotiated: !0, id: d });
- a.c[d].binaryType = "arraybuffer";
- a.c[d].onopen = f;
- a.c[d].onmessage = g;
- }
- function ka(a) {
- var b;
- return L(function (d) {
- if (1 == d.b) return (b = a), I(d, a.b.createOffer(), 2);
- b.f = d.i;
- for (var f = a.f.sdp.split("\n"), g = {}, l = 0; l < f.length; l++) {
- var c = f[l].split("="),
- e = c[0];
- c = c[1];
- e &&
- ("a" === e
- ? (g.a || (g.a = {}),
- (e = c.split(/:(.+)/)),
- (g.a[e[0]] = e[1]))
- : (g[e] = c));
- }
- a.sdp = g;
- return d.return({
- ice_ufrag: a.sdp.a["ice-ufrag"],
- ice_pwd: a.sdp.a["ice-pwd"],
- fingerprint: a.sdp.a.fingerprint,
- });
- });
- }
- U.prototype.send = function (a, b) {
- "open" == this.c[b].readyState && this.c[b].send(a);
- };
- function W(a) {
- for (; 0 < a.g.length; ) {
- var b = a.g.shift();
- a.b.addIceCandidate(
- new RTCIceCandidate({
- candidate:
- "candidate:2395300328 1 udp 2113937151 " +
- b.ip +
- " " +
- (b.port +
- " typ " +
- (b.from_stun ? "srflx" : "host") +
- " generation 0 ufrag " +
- a.j +
- " network-cost 50"),
- sdpMid: a.sdp.a.mid,
- sdpMLineIndex: 0,
- })
- );
- }
- }
- function la(a, b, d, f) {
- var g, l;
- L(function (c) {
- switch (c.b) {
- case 1:
- if (!a.f) throw "Offer is not set";
- if (a.h) {
- c.b = 0;
- break;
- }
- a.j = b;
- return I(c, a.b.setLocalDescription(a.f), 3);
- case 3:
- c.h = 4;
- var e = a.sdp.a.mid;
- g =
- "v=0\r\no=- " +
- (ja() +
- " 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE ") +
- (e +
- "\r\na=msid-semantic: WMS *\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:") +
- (b + "\r\na=ice-pwd:") +
- (d + "\r\na=ice-options:trickle\r\na=fingerprint:") +
- (f + "\r\na=setup:active\r\na=mid:") +
- (e +
- "\r\na=sendrecv\r\na=sctpmap:5000 webrtc-datachannel 256\r\na=max-message-size:1073741823\r\n");
- return I(
- c,
- a.b.setRemoteDescription(
- new RTCSessionDescription({ type: "answer", sdp: g })
- ),
- 6
- );
- case 6:
- c.b = 5;
- c.h = 0;
- break;
- case 4:
- (c.h = 0), (e = c.f.F), (c.f = null), (l = e), console.log(l);
- case 5:
- a.i && W(a), (a.h = !0), (c.b = 0);
- }
- });
- }
- function ma(a, b, d, f, g) {
- f
- ? ((a.i = !0),
- setTimeout(function () {
- a.l("1.2.3.4", 1234, !0, !1, !1);
- }, 500))
- : a.g.push({ ip: b.replace("::ffff:", ""), port: d, from_stun: g });
- a.h && a.i && W(a);
- }
- function Parsec(a) {
- var b = this;
- this.status = Status.PARSEC_NOT_RUNNING;
- this.G = performance.now();
- this.f = {
- encodeLatency: 0,
- decodeLatency: 0,
- networkLatency: 0,
- frameWidth: 0,
- frameHeight: 0,
- fullRange: !1,
- 444: !1,
- };
- this.h = [];
- this.b = null;
- this.B = [];
- this.j = "";
- this.c = a;
- this.l = a.getContext("2d");
- this.l.imageSmoothingEnabled = false;
- this.l.Z = "high";
- this.u = [];
- this.s = {};
- this.v = 0;
- this.o = [];
- this.i = this.g = null;
- this.B.push(
- addEvtListener(window, "beforeunload", function () {
- b.D();
- return null;
- })
- );
- }
- function na(a) {
- var last = performance.now();
- window.frameInterval = parseInt(
- localStorage.getItem("frameInterval") || "40"
- );
- a.g ||
- (a.g = new AudioDecoder({
- output: function (b) {
- if ("f32" == b.format) {
- var d = new ArrayBuffer(
- b.allocationSize({ planeIndex: 0 })
- );
- b.copyTo(d, { planeIndex: 0 });
- a.o.push(new Float32Array(d));
- b.close();
- }
- },
- error: function (b) {
- console.log("Audio decode error:", b);
- },
- }));
- a.i ||
- (a.i = new VideoDecoder({
- output: function (b) {
- window.requestAnimationFrame(function () {
- a.f.frameWidth = b.displayWidth;
- a.f.frameHeight = b.displayHeight;
- a.f.fullRange = b.colorSpace.fullRange;
- a.f["444"] = "I444" == b.format;
- a.f.decodeLatency =
- 0.9 * a.f.decodeLatency +
- 0.1 * (performance.now() - b.timestamp / 1e3);
- if (window.resizeFlag) {
- a.c.width = Math.round(
- document.body.clientWidth * window.devicePixelRatio
- );
- a.c.height = Math.round(
- document.body.clientHeight * window.devicePixelRatio
- );
- window.resizeFlag = false;
- }
- var d = b.displayWidth / b.displayHeight,
- f = 0,
- g = 0;
- if (
- (0 < a.c.height ? a.c.width / a.c.height : 1.77777777) >
- d
- ) {
- var l = a.c.height * d;
- d = a.c.height;
- f = (a.c.width - l) / 2;
- } else (l = a.c.width), (d = a.c.width / d), (g = (a.c.height - d) / 2);
- var now = performance.now();
- if (now - last > window.frameInterval) {
- a.l.drawImage(
- b,
- 0,
- 0,
- a.f.frameWidth,
- a.f.frameHeight,
- f,
- g,
- l,
- d
- );
- last = now;
- }
- b.close();
- });
- },
- error: function (b) {
- console.log("Video decode error:", b);
- },
- }));
- }
- function Y(a) {
- a.i && a.i.reset();
- a.g && a.g.reset();
- a.o = [];
- a.l.clearRect(0, 0, a.c.width, a.c.height);
- }
- function Z(a, b) {
- b != Status.PARSEC_OK &&
- (a.b && a.status == Status.PARSEC_OK && a.b.send(P(10, 0, 0, 0), 0),
- a.b && (a.b.close(), (a.b = null)),
- Y(a));
- a.status = b;
- a.u = [];
- a.s = {};
- a.v = 0;
- }
- h = Parsec.prototype;
- Parsec.prototype.destroy = function () {
- for (var a = q(this.B), b = a.next(); !b.done; b = a.next())
- (b = b.value), b[0].removeEventListener(b[1], b[2]);
- this.C(Status.PARSEC_NOT_RUNNING);
- };
- Parsec.prototype.getBufferSize = function (a) {
- a = R[a];
- return void 0 != a ? a.length : 0;
- };
- Parsec.prototype.getBuffer = function (a) {
- var b = R[a];
- void 0 != b && delete R[a];
- return void 0 == b ? null : b;
- };
- Parsec.prototype.clientNewAttempt = function (a) {
- var b = this,
- d,
- f,
- g;
- return L(function (l) {
- if (1 == l.b) {
- d =
- /Chrome/.test(navigator.userAgent) &&
- /Google Inc/.test(navigator.vendor);
- if (!d)
- return (b.status = Status.PARSEC_WRN_BROWSER), l.return(null);
- if (b.status != Status.PARSEC_NOT_RUNNING) return l.return(null);
- b.status = Status.PARSEC_CONNECTING;
- R = {};
- S = 1;
- na(b);
- Y(b);
- b.j = a;
- b.h = [];
- f = function (c, e, k, m, p) {
- b.h.push({
- type: 8,
- attemptID: b.j,
- ip: c,
- port: e,
- lan: p,
- fromStun: m,
- sync: k,
- });
- };
- g = function () {
- b.B.push(
- addEvtListener(document, "visibilitychange", function () {
- document.hidden
- ? b.b && b.b.send(P(19, 0, 0, 0), 0)
- : b.b && b.b.send(P(13, 0, 0, 0), 0);
- })
- );
- var c = window.screen.width,
- e = window.screen.height;
- if (800 > c || 600 > e || 1920 < c || 1080 < e)
- (c = 1920), (e = 1080);
- b.b && b.b.send(ea(c, e), 0);
- Z(b, Status.PARSEC_OK);
- };
- b.b = new U(f);
- V(b.b, "control", 0, g, function (c) {
- b.G = performance.now();
- var e = new DataView(c.data);
- c = {
- m: e.getInt32(0),
- A: e.getInt32(4),
- V: e.getInt32(8),
- type: e.getInt8(12),
- };
- switch (c.type) {
- case 10:
- b.status = c.m;
- break;
- case 21:
- b.f.encodeLatency = parseFloat(c.A) / 1e3;
- b.f.networkLatency = 0;
- break;
- case 20:
- b.h.push({
- type: 2,
- gamepadID: c.m,
- motorBig: c.A,
- motorSmall: c.V,
- });
- break;
- case 16:
- b.h.push({ type: c.m ? 4 : 5 });
- break;
- case 28:
- b.v = c.m;
- break;
- case 17:
- b.h.push(ia(c, e));
- break;
- case 9:
- b.h.push(ha(e));
- break;
- case 25:
- e = JSON.parse(
- new TextDecoder("utf-8").decode(
- new Uint8Array(e.buffer, 13, c.m - 1)
- )
- );
- for (var k = {}, m = 0; m < e.length; m++)
- e[m].id == c.A && (k = e[m]);
- c = { list: e, me: k };
- b.u = c.list;
- b.s = c.me;
- }
- });
- V(b.b, "video", 1, null, function (c) {
- "configured" != b.i.state &&
- b.i.configure({
- codec: "avc1.42001e",
- hardwareAcceleration: "prefer-hardware",
- optimizeForLatency: true,
- });
- c = new EncodedVideoChunk({
- type: "key",
- data: c.data,
- timestamp: 1e3 * performance.now(),
- duration: 1000000,
- });
- b.i.decode(c);
- });
- V(b.b, "audio", 2, null, function (c) {
- "configured" != b.g.state &&
- b.g.configure({
- codec: "opus",
- sampleRate: 48e3,
- numberOfChannels: 2,
- });
- c = new EncodedAudioChunk({
- type: "key",
- data: c.data,
- timestamp: 1e3 * performance.now(),
- duration: 0,
- });
- b.g.decode(c);
- });
- return I(l, ka(b.b), 2);
- }
- return l.return(l.i);
- });
- };
- Parsec.prototype.clientBeginP2P = function (a, b, d, f, g) {
- this.j == a && this.b && la(this.b, d, f, g);
- };
- Parsec.prototype.clientAddCandidate = function (a, b, d, f, g) {
- this.j == a && this.b && ma(this.b, b, d, f, g);
- };
- Parsec.prototype.clientGetStatus = function () {
- return this.status;
- };
- Parsec.prototype.clientGetSelf = function () {
- return this.s;
- };
- Parsec.prototype.clientGetHostMode = function () {
- return this.v;
- };
- Parsec.prototype.clientGetGuests = function () {
- return this.u;
- };
- Parsec.prototype.clientDisconnect = function (a) {
- Z(this, a);
- };
- Parsec.prototype.clientSendUserData = function (a, b) {
- this.b && this.status == Status.PARSEC_OK && this.b.send(Q(17, a, b), 0);
- };
- Parsec.prototype.clientSendMessage = function (a) {
- this.b &&
- this.status == Status.PARSEC_OK &&
- this.b.send(
- fa(
- a,
- this.f.frameWidth,
- this.f.frameHeight,
- this.c.width,
- this.c.height
- ),
- 0
- );
- };
- Parsec.prototype.clientPollEvents = function () {
- return this.h.shift();
- };
- Parsec.prototype.clientGetMetrics = function () {
- return this.f;
- };
- Parsec.prototype.clientNetworkFailure = function () {
- return this.status == Status.PARSEC_OK && 5e3 < performance.now() - this.G;
- };
- Parsec.prototype.clientPollAudio = function () {
- return this.o.shift();
- };
- Parsec.prototype.Status = Status;
- window.Parsec = Parsec;
|