Browse Source

ts

master
jfinn 4 years ago
parent
commit
3778822983
29 changed files with 1721 additions and 124 deletions
  1. 112
    2
      rf/class_dec.js
  2. 390
    0
      rf/conn/cui5.js
  3. 163
    0
      rf/conn/tconn.js
  4. 4
    0
      rf/fake_resize.js
  5. 1
    0
      rf/filmstrip_mod/m.js
  6. 7
    5
      rf/filmstrip_mod/m0.js
  7. 2
    2
      rf/fs.css
  8. 3
    0
      rf/i4n/m.css
  9. 1
    1
      rf/m/m_api_v2.js
  10. 34
    34
      rf/m/m_utils.js
  11. 2
    1
      rf/m/moveto.js
  12. 6
    29
      rf/m2/m2.js
  13. 2
    2
      rf/resize_hook.js
  14. 30
    3
      rf/svm.js
  15. 308
    0
      rf/ts/dev_raf.js
  16. 35
    0
      rf/ts/ts.css
  17. 8
    0
      rf/ts/ts.html
  18. 15
    0
      rf/ts/ts.js
  19. 9
    0
      rf/ts/ts.json
  20. 9
    0
      rf/ts/ts.txt
  21. 9
    0
      rf/ts/ts2.html
  22. 52
    0
      rf/ts/ts_dev.js
  23. 178
    0
      rf/ts/ts_req.js
  24. 1
    0
      rf/ts/tse.js
  25. 2
    2
      rf/u/universals.js
  26. 0
    27
      rf/ui_msg/r1.js
  27. 1
    7
      rf/ui_msg/r2.js
  28. 81
    1
      rf/ytsv/y.css
  29. 256
    8
      rf/ytsv/y.js

+ 112
- 2
rf/class_dec.js View File

@@ -80,8 +80,53 @@ function _method_dec_v2(fn,fn_name){
80 80
   }
81 81
 }
82 82
 
83
+function _method_dec_v2_1(fn,fn_name,cname){
84
+  return function() {
85
+
86
+    window.sv_trc ? sv_trc({fn_name,cname,that:this,args:[...arguments]}) : 0
87
+    // const ret1 = dec_fns[fn_name] && dec_fns[fn_name].pre ? dec_fns[fn_name].pre({that:this, args:arguments}) : 0
88
+    // const ret1 = dec_fns[fn_name] && dec_fns[fn_name].pre ? dec_fns[fn_name].pre.call(this,[{that:this, args:arguments}]) : 0
89
+    const ret1 = dec_fns[fn_name] && dec_fns[fn_name].pre ? dec_fns[fn_name].pre.apply(this,[{that:this, args:arguments}]) : 0
90
+
91
+    if (ret1){
92
+      return ret1.ret
93
+    }
94
+    const ret = fn.apply(this, arguments);
95
+    const ret2 = dec_fns[fn_name] && dec_fns[fn_name].post ? dec_fns[fn_name].post({that:this, arguments}) : 0
96
+        // clog("MDEX",{ret1,ret2})
97
+    if (ret2){
98
+      return ret2.ret
99
+    }
100
+    return ret;
101
+  }
102
+}
103
+
104
+function _method_dec_v2_2(fn,fn_name){
105
+  return function() {
106
+
107
+    const ret1 = dec_fns[fn_name] && dec_fns[fn_name].pre ? dec_fns[fn_name].pre({that:this, args:arguments}) : 0
108
+
109
+    if (ret1){
110
+      return ret1.ret
111
+    }
112
+    const ret = fn.apply(this, arguments);
113
+    const ret2 = dec_fns[fn_name] && dec_fns[fn_name].post ? dec_fns[fn_name].post({that:this, arguments}) : 0
114
+        // clog("MDEX",{ret1,ret2})
115
+    if (ret2){
116
+      return ret2.ret
117
+    }
118
+    return ret;
119
+  }
120
+}
121
+
122
+
123
+
124
+
125
+
126
+
83 127
 
84 128
 function dec_class_v2(cls,cls_orig,cname){
129
+  clog("trc dec_class_v2",cname,{cls,cls_orig,cname})
85 130
   var k,v
86 131
   var proto = cls_orig
87 132
   // var proto = glob_react.vidClass.LocalVideo.prototype
@@ -93,6 +138,19 @@ function dec_class_v2(cls,cls_orig,cname){
93 138
     // clog(k,v)
94 139
   } 
95 140
 }
141
+function dec_class_v2_1(cls,cls_orig,cname){
142
+  clog("trc dec_class_v2",cname,{cls,cls_orig,cname})
143
+  var k,v
144
+  var proto = cls_orig
145
+  // var proto = glob_react.vidClass.LocalVideo.prototype
146
+  // for ([k,v] of iter_desc(proto)){
147
+  for ([k,v] of Object.entries(proto)){
148
+    // glob_react.Filmstrip[k] = v
149
+    // clog(k,v)
150
+    cls.prototype[k] = _method_dec_v2_1(v.value,k,cname)
151
+    // clog(k,v)
152
+  } 
153
+}
96 154
 
97 155
 
98 156
 
@@ -137,6 +195,8 @@ cdec.glob_orig = window[GLOB_ORIG]
137 195
 if (runonce){
138 196
 
139 197
     window[GLOB_ORIG].classes["SharedVideoManager"] = cdec.get_class_methods(glob_react.SharedVideoManager)
198
+    window[GLOB_ORIG].classes["SharedVideoContainer"] = cdec.get_class_methods(glob_react.SharedVideoContainer)
199
+    // 
140 200
 }
141 201
 
142 202
 }
@@ -148,7 +208,8 @@ function undec_svm(){
148 208
 
149 209
 }
150 210
 function dec_svm(){
151
-    cdec.dec_class(glob_react.SharedVideoManager,cdec.glob_orig.classes.SharedVideoManager)
211
+    cdec.dec_class(glob_react.SharedVideoManager,cdec.glob_orig.classes.SharedVideoManager,"SharedVideoManager")
212
+    cdec.dec_class(glob_react.SharedVideoContainer,cdec.glob_orig.classes.SharedVideoContainer,"SharedVideoContainer")
152 213
 
153 214
 }
154 215
 // function dec_svm(){}
@@ -173,12 +234,53 @@ function onSharedVideoUpdate_mod(id, url, attributes) {
173 234
     }
174 235
 
175 236
 dec_fns_v2 = {
237
+  fireSharedVideoEvent:{
238
+
239
+      pre(o) {
240
+        // return
241
+        const sendPauseEvent = o.args[0]
242
+        const UIEvents = glob_react.UIEvents
243
+        clog("fireSharedVideoEventx",this,o,o.args[0],[...arguments])
244
+        // return {}
245
+        // return 
246
+        // ignore update checks if we are not the owner of the video
247
+        // or there is still no player defined or we are stopped
248
+        // (in a process of stopping)
249
+        if (!APP.conference.isLocalId(this.from) || !this.player
250
+            || !this.isSharedVideoShown) {
251
+            // return;
252
+            return {};
253
+        }
254
+
255
+        const state = this.player.getPlayerState();
256
+
257
+        // if its paused and haven't been pause - send paused
258
+
259
+        if (state === YT.PlayerState.PAUSED && sendPauseEvent) {
260
+            this.emitter.emit(UIEvents.UPDATE_SHARED_VIDEO,
261
+                this.url, 'pause', this.player.getCurrentTime());
262
+        } else if (state === YT.PlayerState.PLAYING) {
263
+            // if its playing and it was paused - send update with time
264
+            // if its playing and was playing just send update with time
265
+            this.emitter.emit(UIEvents.UPDATE_SHARED_VIDEO,
266
+                this.url, 'playing',
267
+                this.player.getCurrentTime(),
268
+                this.player.isMuted(),
269
+                this.player.getVolume(),);
270
+                // this.player.getVolume(),"xtra_var");
271
+        }
272
+            return {};
273
+    }
274
+  },
176 275
     onSharedVideoUpdate:{
177 276
         pre(o){
178 277
             try {
179 278
                 if (!o.that.player){
180 279
                     window.autoplay_probably_disabled ? autoplay_probably_disabled(o) : clog("NO fix implemented")
280
+                    // window.autoplay_probably_disabled ? autoplay_probably_disabled(o) : clog("NO fix implemented2")
181 281
                     clog("...autoplay_probably_disabled...")
282
+                } else {
283
+                  // clog("yt_dbg AUTO")
182 284
                 }
183 285
 /*
184 286
             clog("onSharedVideoUpdate pre arg",[...o.args])
@@ -213,10 +315,18 @@ dec_fns_v2 = {
213 315
     }
214 316
 }
215 317
 
318
+
319
+
320
+
321
+
322
+// clog("TRC_ <!--#echo var='request_filename' -->",'<!--#echo var="uri" -->')
323
+clog("TRC_2 ",'<!--#echo var="request_filename" -->'.split("/").pop())
324
+
216 325
 cdec = {
217 326
     get_class_methods:save_orig_class,
218 327
     undec_class:undec_class_v2,
219
-    dec_class:dec_class_v2,
328
+    // dec_class:dec_class_v2,
329
+    dec_class:dec_class_v2_1,
220 330
     glob_orig:window[GLOB_ORIG],
221 331
 }
222 332
 dec_fns = window.dec_fns || {}

+ 390
- 0
rf/conn/cui5.js View File

@@ -0,0 +1,390 @@
1
+
2
+
3
+
4
+
5
+twsfn5 = window.twsfn5 || {}
6
+
7
+vc2 = {
8
+    key:"key",
9
+}
10
+
11
+
12
+
13
+
14
+
15
+
16
+if (!window.gws){
17
+    window.gws = {
18
+        sockets:{},
19
+    }
20
+}
21
+gws.twsfn5 = twsfn5
22
+
23
+// gws
24
+
25
+
26
+
27
+
28
+// Object.keys(twsfn5_bak)
29
+// Object.keys(twsfn5)
30
+
31
+// Object.keys(twsfn5_bak) +"" == Object.keys(twsfn5)+""
32
+
33
+
34
+
35
+
36
+function connect_helper5(){
37
+        var o = {  
38
+            // ':8943/ws/vts/'
39
+            // url:'wss://' + window.location.host + '/ws/vts2/' + window.roomName.toLowerCase() + '/?CONN',
40
+            url:'wss://' + window.location.host + ':8943/ws/vts2/' + window.roomName.toLowerCase() + '/?CONN',
41
+            wsfn:twsfn5,
42
+            name:"ws_n15",
43
+        }
44
+        clog("o",o)
45
+        connect_ws_arg(o)
46
+}
47
+
48
+
49
+
50
+
51
+
52
+// connect_ws_arg()
53
+
54
+
55
+        // 'wss://' + window.location.host +
56
+        // '/ws/vts/' + window.roomName + '/?qqAAAAAAAAAAAAAAAAA'
57
+
58
+
59
+
60
+
61
+    twsfn5.ts_t2x = function(data) {
62
+        clog("ts_t2x",data)
63
+        var k,v
64
+        for ([k,v] of Object.entries(data.obj.times)){
65
+            clog(k,v.t - data.obj.t0 )
66
+        }
67
+    }
68
+
69
+
70
+    twsfn5.ts_t0x = function(data) {
71
+        // clog("pub_msg",pub_msg)
72
+        var msg = {}
73
+        msg[vc2.key] = "ts_t1"
74
+        twsfn5.s(msg)
75
+    }
76
+
77
+    twsfn5.ts_test = function(data) {
78
+        // clog("pub_msg",pub_msg)
79
+        // var msg = {}
80
+        // msg[vc2.key] = "ts_t1"
81
+        // twsfn.s(msg)
82
+        clog("jx twsfn5.ts_test TEST")
83
+    }
84
+
85
+    twsfn5.pub_msg = function(data) {
86
+        clog("pub_msg",data)
87
+        // var msg = {}
88
+        // msg[vc2.key] = "pong"
89
+        // twsfn5.s(msg)
90
+    }
91
+
92
+
93
+
94
+
95
+
96
+
97
+    twsfn5.qdb_got = function(data) {
98
+        clog("jx qdb_data",data)
99
+        clog("jx qdb_got",data.obj)
100
+        clog(data.obj)
101
+    }
102
+
103
+    twsfn5.qdb_got3 = function(data) {
104
+        clog("jx qdb_data",data)
105
+        clog("jx qdb_got",data.obj)
106
+        clog("~jx~",data.obj.participants,data.obj.corners)
107
+    }
108
+
109
+    twsfn5.recv_corners = function(data) {
110
+        // clog("jx qdb_data",data)
111
+        // clog("jx qdb_got",data.obj)
112
+        // glob_corner.corners=data.obj.corners
113
+        cad_ts5r()
114
+        clog("~jx~",data.obj.participants,data.obj.corners)
115
+    }
116
+
117
+    twsfn5.pingpong = function(data) {
118
+        // clog("VFB5 PONG2!")
119
+
120
+        var msg = {}
121
+        msg[vc2.key] = "pong"
122
+        twsfn5.s(msg)
123
+    }
124
+
125
+
126
+
127
+
128
+    twsfn5.onmessage = function(e) {
129
+        var recv_ts_u0 = window.performance.now()
130
+        var recv_ts = Date.now()
131
+        var recv_ts_u1 = window.performance.now()
132
+        // clog("VFB MSG",e)
133
+
134
+        // clog()
135
+        // return
136
+        var data = JSON.parse(e.data);
137
+        data.recv_ts = recv_ts
138
+        data.recv_ts_u0 = recv_ts_u0
139
+        data.recv_ts_u1 = recv_ts_u1
140
+        if (data.type != "pingpong"){
141
+            // clog("ixq twsfn5.onmessage")
142
+        }
143
+        // clog("VFB data",data)
144
+        // clog("WS ONMSG",data)
145
+        if (data.message != undefined){
146
+            // twsfn5.on_chat_message(data)
147
+        }
148
+        if (data.type != undefined && twsfn5[data.type]){
149
+            twsfn5[data.type](data,e)
150
+
151
+        } else {
152
+            clog("VFB data",data)
153
+        }
154
+    };
155
+
156
+    twsfn5.onopen = function(e) {
157
+        clog("jx ONCON...")
158
+        chatSocket.onopen
159
+        // clog("jx ONCON....")
160
+        // window.qdb ? onconnect : console.err("ERR no qdb")
161
+        // window.qdb ? window.qdb.onconnect() : console.error(" jx ERR no qdb")
162
+        window.qdb ? window.qdb.onconnect_2() : console.error(" jx ERR no qdb")
163
+        // console.error(" jx ERR test")
164
+        // console.error(" jx ERR test2")
165
+        // clog("jx ONCON... fin")
166
+    }
167
+    twsfn5.onclose = function(e) {
168
+        console.error('VFB2 vChat socket closed unexpectedly');
169
+        setTimeout(connect_helper5,1400)
170
+        // setTimeout(vconnect_ws,1400)
171
+    };
172
+
173
+
174
+ twsfn5.s=   function(o){
175
+
176
+        if (o.key != "pong"){
177
+            // clog("ixq twsfn5.send")
178
+        }
179
+
180
+    var vchatSocket = gws.sockets["ws_n15"]
181
+        // .send(JSON.stringify(o));
182
+        // twsfn5.s0 =
183
+         vchatSocket.send(JSON.stringify(o));
184
+    }
185
+
186
+// s =twsfn5.s
187
+// vconnect_ws()
188
+
189
+
190
+
191
+
192
+
193
+
194
+// delete qdb
195
+{
196
+
197
+class QDB {
198
+    constructor(){
199
+        this.db = {}
200
+    }
201
+    onconnect(){
202
+
203
+        qdb.get_corners()
204
+    }
205
+    onconnect_2(){
206
+        clog("JX onconnect_2")
207
+        // qdb.get_corners()
208
+        // setTimeout(this.get_corners.bind(this,1000))
209
+
210
+        setTimeout(this.get_corners.bind(this),100)
211
+        setTimeout(this.get_corners.bind(this),2000)
212
+        get_cui_html(rldi.files["cui3.html"])
213
+
214
+        // setTimeout(this.get_corners.bind(this,1000))
215
+        // setTimeout(this.get_corners.bind(this,))
216
+        // setTimeout(qdb.get_corners.bind(this,100)
217
+
218
+        // qdb.get_corners()
219
+    }
220
+
221
+    send(o){
222
+        twsfn5.s(o)
223
+    }
224
+    q(action){
225
+        this.send({"key":"qdb","action":action})
226
+
227
+    }
228
+    get_db(){
229
+        this.send({"key":"qdb","action":"get_db"})
230
+
231
+    }
232
+    get_db2(){
233
+        this.send({"key":"qdb","action":"get_db2"})
234
+
235
+    }
236
+
237
+    
238
+    set_db(){
239
+        this.send({"key":"qdb","action":"set_db"})
240
+
241
+    }
242
+
243
+    update(){
244
+
245
+    }
246
+    proc_response(data){
247
+        clog("jx proc_response",data)
248
+    }
249
+
250
+    updated(){
251
+
252
+    }
253
+
254
+    set_corners(corner_name){
255
+        this.send({"key":"qdb","action":"set_corners","corner_name":corner_name})
256
+    }
257
+    get_corners(corner_name){
258
+        clog("jx get_corners abc 123",this)
259
+        this.send({"key":"qdb","action":"get_corners"})
260
+    }
261
+    add_corner(corner_name){
262
+        this.send({"key":"qdb","action":"add_corner","corner_name":corner_name})
263
+    }
264
+    remove_corner(corner_name){
265
+        this.send({"key":"qdb","action":"remove_corner","corner_name":corner_name})
266
+    }
267
+    move(corner_name){
268
+        this.send({"key":"qdb","action":"move","corner_name":corner_name})
269
+    }
270
+
271
+
272
+    time_sync(){
273
+        clog("TIME SYNC")
274
+        // Date.now()
275
+
276
+
277
+        this.send({"key":"qdb","action":"time_sync","t0":Date.now(),"t0_u":window.performance.now()})
278
+    }
279
+
280
+    // server_ts
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+}
290
+window.QDB = QDB
291
+}
292
+function replace_proto(){
293
+    window.qdb.__proto__ = QDB.prototype
294
+    var vchatSocket = gws.sockets["ws_n15"]
295
+    var wsfn = twsfn5
296
+
297
+    vchatSocket.onmessage = wsfn.onmessage
298
+    vchatSocket.onclose = wsfn.onclose  
299
+    vchatSocket.onopen = wsfn.onopen  
300
+
301
+}
302
+if (!window.qdb){
303
+    window.qdb = new QDB()
304
+
305
+} 
306
+
307
+
308
+
309
+
310
+window.QDB_def0 = QDB + ""
311
+if (window.QDB_def0 != window.QDB_def){
312
+    if (window.QDB_def){
313
+
314
+window.QDB_def = QDB + ""
315
+replace_proto()
316
+    }
317
+window.QDB_def = QDB + ""
318
+}
319
+if (window.qdb){
320
+    twsfn5.client_qbd = window.qdb.proc_response
321
+}
322
+
323
+twsfn5.get_db = function(){
324
+
325
+}
326
+twsfn5.server_ts = function(data,e){
327
+    var ts_u1 = window.performance.now()
328
+
329
+    var t1 = Date.now()
330
+    var t0 = data.req.t0
331
+    var ts = data.server_time
332
+    var tsx =ts * 1000
333
+    var ta = (t0+t1)/2
334
+    tsd = new Date(ts*1000)
335
+    t0d = new Date(t0)
336
+    t1d = new Date(t1)
337
+    td2 = ta - tsx
338
+    td  =  tsx - ta
339
+    tarr = [[t1,"t1"],[tsx,"tsx"],[t0,"t0"],[ta,"ta"],[td,"td"],[td2,"td2"]]
340
+    tobj = {t1,tsx,t0,ta,td,td2}
341
+
342
+    clog("ts:",t1 - data.recv_ts,ts_u1- data.recv_ts_u1,data)
343
+    // clog("ts:",{t0,ts,t1})
344
+
345
+    // clog("ts3:",(t0+t1)/2 - (ts *1000),t0 - t1)
346
+
347
+    t01 = t0 - t1
348
+    t01_u = data.req.t0_u - ts_u1
349
+
350
+    clog("ts3:",(t0+t1)/2 - tsx,t0-tsx,t1-tsx,t0 - t1)
351
+    if (!qdb.td){
352
+        qdb.td = 0
353
+    }
354
+    clog("ts4:",qdb.td - td,"~",qdb.td,td)
355
+    clog("ts5:",t01,t01_u)
356
+    qdb.td = td
357
+    qdb.td2 = td2
358
+    if (window.clock_info_draw){
359
+        clock_info_draw()
360
+    }
361
+
362
+}
363
+twsfn5.update_db = function(){}
364
+twsfn5.updated_db = function(){}
365
+
366
+
367
+
368
+
369
+
370
+function rld_continues(){
371
+    clog("vfb jx RC")
372
+    if (window.stop_flag){
373
+        return 
374
+    }
375
+    twsfn5.s({"key":"rld"})
376
+    setTimeout(rld_continues,500)
377
+}
378
+
379
+
380
+
381
+
382
+
383
+connect_helper5()
384
+
385
+
386
+
387
+// setTimeout
388
+
389
+
390
+clog("BX5")

+ 163
- 0
rf/conn/tconn.js View File

@@ -0,0 +1,163 @@
1
+twsfn = {}
2
+
3
+vc2 = {
4
+    key:"key",
5
+}
6
+
7
+
8
+window.roomName = window.location.pathname.split("/").pop()
9
+
10
+if (!window.gws){
11
+    window.gws = {
12
+        sockets:{},
13
+    }
14
+}
15
+gws.twsfn= twsfn
16
+
17
+
18
+function connect_ws_arg(o){
19
+    // console.trace("lxw")
20
+    var vchatSocket
21
+    // vchatSocket = gws[o.name]
22
+    vchatSocket = gws.sockets[o.name]
23
+    if (vchatSocket && vchatSocket.readyState < 2) {
24
+    clog("VFB2 WSS ALLREADY CONNECTED!")
25
+        return
26
+    }
27
+    clog("VFB2 WSS CONTECTING")
28
+
29
+    vchatSocket = new WebSocket(o.url);
30
+        // '/ws/chat/' + window.roomName + '/?qqAAAAAAAAAAAAAAAAA');
31
+    // window.vchatSocket =vchatSocket
32
+    gws.sockets[o.name] = vchatSocket
33
+    // var wsfn = gws[o.wsfn]
34
+    var wsfn = o.wsfn
35
+
36
+    vchatSocket.onmessage = wsfn.onmessage
37
+    vchatSocket.onclose = wsfn.onclose  
38
+    vchatSocket.onopen = wsfn.onopen  
39
+}
40
+
41
+
42
+
43
+function connect_helper(){
44
+        var o = {  
45
+            // url:'wss://' + window.location.host + '/ws/vts/' + window.roomName.toLowerCase() + '/?qqAAAAAAAAAAAAAAAAA',
46
+            // url:'wss://' + window.location.host + '/chat/' + window.roomName.toLowerCase() + '/?qqAAAAAAAAAAAAAAAAA',
47
+            url:'wss://' + window.location.host + ':8943/ws/vts/' + window.roomName.toLowerCase() + '/?qqAAAAAAAAAAAAAAAAA',
48
+            // url:'ws://' + window.location.host + '/ws/vts/' + window.roomName.toLowerCase() + '/?qqAAAAAAAAAAAAAAAAA',
49
+            wsfn:twsfn,
50
+            name:"ws_n1",
51
+        }
52
+        clog("o",o)
53
+        connect_ws_arg(o)
54
+}
55
+
56
+
57
+
58
+
59
+
60
+// connect_ws_arg()
61
+
62
+
63
+        // 'wss://' + window.location.host +
64
+        // '/ws/vts/' + window.roomName + '/?qqAAAAAAAAAAAAAAAAA'
65
+
66
+
67
+
68
+
69
+    twsfn.ts_t2x = function(data) {
70
+        clog("ts_t2x",data)
71
+        var k,v
72
+        for ([k,v] of Object.entries(data.obj.times)){
73
+            clog(k,v.t - data.obj.t0 )
74
+        }
75
+    }
76
+
77
+
78
+    twsfn.ts_t0x = function(data) {
79
+        // clog("pub_msg",pub_msg)
80
+        var msg = {}
81
+        msg[vc2.key] = "ts_t1"
82
+        twsfn.s(msg)
83
+    }
84
+
85
+
86
+
87
+    twsfn.pub_msg = function(data) {
88
+        clog("pub_msg",data)
89
+        // var msg = {}
90
+        // msg[vc2.key] = "pong"
91
+        // twsfn.s(msg)
92
+    }
93
+
94
+
95
+
96
+
97
+
98
+
99
+    twsfn.pingpong = function(data) {
100
+        // clog("VFB2 PONG2!")
101
+
102
+        var msg = {}
103
+        msg[vc2.key] = "pong"
104
+        twsfn.s(msg)
105
+    }
106
+
107
+
108
+
109
+
110
+    twsfn.onmessage = function(e) {
111
+        // clog("VFB MSG",e)
112
+
113
+        // clog()
114
+        // return
115
+        var data = JSON.parse(e.data);
116
+        // clog("VFB data",data)
117
+        // clog("WS ONMSG",data)
118
+        if (data.message != undefined){
119
+            // twsfn.on_chat_message(data)
120
+        }
121
+        if (data.type != undefined && twsfn[data.type]){
122
+            twsfn[data.type](data,e)
123
+
124
+        } else {
125
+            clog("VFB data",data)
126
+        }
127
+    };
128
+
129
+    twsfn.onopen = function(e) {
130
+        chatSocket.onopen
131
+    }
132
+    twsfn.onclose = function(e) {
133
+        console.error('VFB2 vChat socket closed unexpectedly');
134
+        setTimeout(connect_helper,1400)
135
+        // setTimeout(vconnect_ws,1400)
136
+    };
137
+
138
+
139
+ twsfn.s=   function(o){
140
+    var vchatSocket = gws.sockets["ws_n1"]
141
+        // .send(JSON.stringify(o));
142
+        vchatSocket.send(JSON.stringify(o));
143
+    }
144
+    twsfn.ts_test = function(data) {
145
+        // clog("pub_msg",pub_msg)
146
+        // var msg = {}
147
+        // msg[vc2.key] = "ts_t1"
148
+        // twsfn.s(msg)
149
+        clog("jx twsfn.ts_test TEST")
150
+    }
151
+
152
+// s =twsfn.s
153
+// vconnect_ws()
154
+
155
+
156
+// connect_helper()
157
+
158
+
159
+
160
+// setTimeout
161
+// twsfn.s({key:"ts_t0"})
162
+
163
+

+ 4
- 0
rf/fake_resize.js View File

@@ -1,6 +1,10 @@
1 1
 
2 2
 // make the App think you resized the window
3 3
 function dispatch_resize(store = APP.store) {
4
+	if (!store){
5
+		clog("nostore")
6
+		return
7
+	}
4 8
         // store.dispatch(clientResized_dev(innerWidth, innerHeight));
5 9
         store.dispatch({
6 10
         type: "CLIENT_RESIZED",

+ 1
- 0
rf/filmstrip_mod/m.js View File

@@ -113,6 +113,7 @@ function refresh_toolbars(){
113 113
     n = `
114 114
     <span class="plugin_top tbar"><span class="outline_indicator ind_1"></span><span class="outline_indicator ind_2"></span><span class="outline_indicator ind_3"></span><span class="outline_indicator ind_4"></span>
115 115
     <div class="m xbox">ABC</div>
116
+    <div class="m sv_info"></div>
116 117
     </span>`
117 118
 
118 119
     html_hooks.create_vid_toptoolbar_hook_after(n)

+ 7
- 5
rf/filmstrip_mod/m0.js View File

@@ -333,6 +333,8 @@ function calc_fs_dims(){
333 333
         width:s_width - m,
334 334
         // height:h53,
335 335
         height:h_height - hm,
336
+        "--vheight":h_height - hm,
337
+        "--width":s_width - m,
336 338
         // top:vtop - 2 + (hm * .5),
337 339
         transform: "translate(0%, -50%)",
338 340
         top:`calc(50% + ${Math.floor(hm * 1)}px)`,
@@ -661,19 +663,19 @@ window.reverse_indexed_map =  new Map()
661 663
     // remap_set($(".local_vid")[0],1)
662 664
     remap_set($(".local_vid")[0],3)
663 665
     // remap_set( $(`#participant_${mod_id.id}`)[0],2)
664
-    clog("indexed_map0",arr,indexed_map)
666
+    // clog("indexed_map0",arr,indexed_map)
665 667
     if (window.rotate_tiles){
666 668
         try {
667
-            clog("mod_sort2")
669
+            // clog("mod_sort2")
668 670
         window.rotate_tiles(arr)
669 671
 
670 672
         } catch {}
671 673
     }
672
-    clog("indexed_map",arr,indexed_map)
674
+    // clog("indexed_map",arr,indexed_map)
673 675
     arr = remap_sort(arr)
674 676
     arr = remap_sort(arr)
675 677
     arr = remap_sort(arr)
676
-    clog("indexed_map2",arr,indexed_map)
678
+    // clog("indexed_map2",arr,indexed_map)
677 679
     window.sorted_tiles = arr
678 680
 
679 681
 
@@ -869,7 +871,7 @@ function get_bcrs(arr,fs_bcr){
869 871
         
870 872
 
871 873
     }
872
-    clog("````",ret)
874
+    // clog("````",ret)
873 875
     $(ret.first_right).addClass("ir0")
874 876
     $(ret.first_left).addClass("il0")
875 877
     return ret

+ 2
- 2
rf/fs.css View File

@@ -69,8 +69,8 @@
69 69
 }
70 70
 
71 71
 #sharedVideoIFrame {
72
-	width: 100% !important;
73
-	height: 100% !important;
72
+	/*width: 100% !important;*/
73
+	/*height: 100% !important;*/
74 74
 }
75 75
 
76 76
 #videospace{

+ 3
- 0
rf/i4n/m.css View File

@@ -337,3 +337,6 @@
337 337
 	/*height: 2em;*/
338 338
 	/*top: 0px; left: 0px; right: 0px; bottom: 0px;*/
339 339
 }
340
+
341
+
342
+

+ 1
- 1
rf/m/m_api_v2.js View File

@@ -173,7 +173,7 @@ function html_rld_cb4(rsp,status,xhr){
173 173
 }
174 174
 function html_rld_cb5(that,rsp,status,xhr){
175 175
 	clog("html_rld_cb5",{that,rsp,status,xhr})
176
-	console.err("~ async load_err html_rld_cb5 ~")
176
+	console.error("~ async load_err html_rld_cb5 ~")
177 177
 	window[xhr.file.success_js](rsp,status,xhr)
178 178
 
179 179
 

+ 34
- 34
rf/m/m_utils.js View File

@@ -41,16 +41,16 @@ glob_mx.filmstrip_handlers  = {}
41 41
 //glob_mx.filmstrip_handlers = glob_mx.filmstrip_handlers || {}
42 42
 
43 43
 }
44
-
44
+dlog = nop
45 45
 
46 46
 
47 47
 function match(mx,m,o){
48 48
 	var k,v,k2,v2
49 49
 	var r = 0
50
-		// clog("@",mx,m,o)
50
+
51 51
 	for ([k,v] of Object.entries(m || {})){
52 52
 		v2 = o[k]
53
-    // clog("M~",k,typeof(v),typeof(v2),v,v2)
53
+
54 54
 		if (typeof(v) == "string" && typeof(v2) == "string") {
55 55
 			r += !(v==v2)
56 56
 		} else if (Array.isArray(v) && Array.isArray(v2)){
@@ -58,7 +58,7 @@ function match(mx,m,o){
58 58
 		} else if (Array.isArray(v) && typeof(v2) == "string"){
59 59
       // r += !(isSubset_arr(v2,v))
60 60
       r += !v.includes(v2)
61
-			// clog("!!!!!!!!!!!!!",v,v2,isSubset_arr(v2,v))
61
+
62 62
 		} else if (Array.isArray(v2) && typeof(v) == "string"){
63 63
 			r += !(v2.includes(v))
64 64
 		}
@@ -116,10 +116,10 @@ function dispatch_events(e,key){
116 116
 	var k,v
117 117
 	e.parsed.etype ? 1 : e.parsed.etype = "null"
118 118
 	var mflag =0
119
-		clog("dispatch_events??",e,key)
119
+		dlog("dispatch_events??",e,key)
120 120
 
121 121
 	for ([k,v] of Object.entries(glob_mx.event_handlers || {}) ) {
122
-		clog("dispatch_events:",k)
122
+		dlog("dispatch_events:",k)
123 123
 		if (v.m){
124 124
 			mflag = match({},v.m,e.parsed)
125 125
 		mflag ? v.fn(e) : 1
@@ -130,20 +130,20 @@ function dispatch_events(e,key){
130 130
 
131 131
 function run_cbs(key){
132 132
 	var k,v
133
-		clog("RUN_CB??",key,glob_mx.cb[key])
133
+		dlog("RUN_CB??",key,glob_mx.cb[key])
134 134
 
135 135
 	for ([k,v] of Object.entries(glob_mx.cb[key]|| {}) ) {
136
-		clog("RUN_CB:",k)
136
+		dlog("RUN_CB:",k)
137 137
 		v()
138 138
 	}
139 139
 }
140 140
 
141 141
 function run_hook_cbs(key,o){
142 142
 	var k,v
143
-		// clog("RUN_HOOK_CB??",key,glob_mx.hook_cb[key])
143
+		// dlog("RUN_HOOK_CB??",key,glob_mx.hook_cb[key])
144 144
 
145 145
 	for ([k,v] of Object.entries(glob_mx.hook_cb[key]|| {}) ) {
146
-		// clog("RUN_HOOK_CB:",k)
146
+		// dlog("RUN_HOOK_CB:",k)
147 147
 		v(o)
148 148
 	}
149 149
 }
@@ -199,28 +199,28 @@ function mhndlr_rld(that,m){
199 199
 		// var id = ai.from.split().slice(-1)[0]
200 200
 		var id = ai.from.split("/").pop()
201 201
 
202
-		clog("mhndlr_rld2",m,parsed,n,n.dataset)
202
+		dlog("mhndlr_rld2",m,parsed,n,n.dataset)
203 203
 		var o = parsed.payload
204 204
 		switch (parsed.type){
205 205
 			case "set_msg":
206 206
 				pf._set_recv(o.path,o.key,o.val)
207 207
 			break;
208 208
 			case "event":
209
-				clog("~event~",parsed)
209
+				dlog("~event~",parsed)
210 210
 				dispatch_events({parsed,ai,m,that})
211 211
 			break;
212 212
 			case "msg_test":
213
-				clog("msg_test",parsed)
213
+				dlog("msg_test",parsed)
214 214
 			break;
215 215
 			case "db_sync_request":
216 216
 				// tmsgx3({type:"db_sync_response",payload:pf.root})
217 217
 				tmsgx3({type:"db_sync_response",payload:pf.root},{to:ai.from})
218 218
 				
219
-				clog("db_sync_request",parsed)
219
+				dlog("db_sync_request",parsed)
220 220
 			break;
221 221
 			case "db_sync_response":
222 222
 				if (id == glob_mx.local_id){
223
-					clog( "db_sync_response ...")
223
+					dlog( "db_sync_response ...")
224 224
 					break
225 225
 
226 226
 				}
@@ -229,7 +229,7 @@ function mhndlr_rld(that,m){
229 229
 
230 230
 					}
231 231
 
232
-				clog("db_sync_response",ai.from == glob_mx.local_id,ai.from,parsed)
232
+				dlog("db_sync_response",ai.from == glob_mx.local_id,ai.from,parsed)
233 233
 			break;
234 234
 
235 235
 		}
@@ -333,7 +333,7 @@ class Proxy_Factory {
333 333
 		this.SymPrx = Symbol("SymPrx")
334 334
 	}
335 335
 	init(o){
336
-		// clog("BP",this,this.baseProp,this.__proto__.baseProp,window.baseProp)
336
+		// dlog("BP",this,this.baseProp,this.__proto__.baseProp,window.baseProp)
337 337
 		this.root = o
338 338
 	}
339 339
 	sync(o){
@@ -349,15 +349,15 @@ class Proxy_Factory {
349 349
 	}
350 350
 
351 351
 	_sett(o,k,v,prx,a0){
352
-		clog("_SETT",this,arguments)
352
+		dlog("_SETT",this,arguments)
353 353
 	}
354 354
 	_sett2(o,k,v,prx,a0){
355
-		clog("_SETT2",this,arguments)
355
+		dlog("_SETT2",this,arguments)
356 356
 	}
357 357
 
358 358
 	set_pub(obj, prop, val,receiver){
359
-		// clog("qia_pub",obj, prop, val,receiver)
360
-		// clog("qia_pub2",this.n,obj.__path_arr, prop, jx(val))
359
+		// dlog("qia_pub",obj, prop, val,receiver)
360
+		// dlog("qia_pub2",this.n,obj.__path_arr, prop, jx(val))
361 361
 		this._set_pub(obj.__path_arr, prop, jx(val))
362 362
 
363 363
 	}
@@ -393,7 +393,7 @@ class Proxy_Factory {
393 393
 	}
394 394
 
395 395
 	set(obj, prop, val,receiver){
396
-		// clog("prx_db set ",this,obj, prop, val,receiver,val.__prx)
396
+		// dlog("prx_db set ",this,obj, prop, val,receiver,val.__prx)
397 397
 		if (obj[prop] === val){
398 398
 			return Reflect.set(...arguments)
399 399
 		}
@@ -415,7 +415,7 @@ class Proxy_Factory {
415 415
 		return Reflect.set(...arguments)
416 416
 	}
417 417
 	get(obj, prop,receiver){
418
-		// clog("prx_db get ...",prop==isProxy,this,obj, prop,receiver)
418
+		// dlog("prx_db get ...",prop==isProxy,this,obj, prop,receiver)
419 419
 		if (this.hidden_props.includes(prop)){
420 420
 			switch (prop){
421 421
 				case "add_proxy":
@@ -424,7 +424,7 @@ class Proxy_Factory {
424 424
 				case "prxy":
425 425
 				return this
426 426
 				case "_set":
427
-				// clog("_SET")
427
+				// dlog("_SET")
428 428
 				// return this._set.bind({this})
429 429
 				return this._set.bind({that:this,obj, prop,receiver})
430 430
 				case "_sett":
@@ -470,7 +470,7 @@ class Proxy_Factory {
470 470
 	}
471 471
 
472 472
 	walker(o,tfo,dpth=0){
473
-		clog("qia WALK",this)
473
+		// dlog("qia WALK",this)
474 474
 		if (dpth > 7){
475 475
 			console.error("MAX DEPTH")
476 476
 			return
@@ -515,7 +515,7 @@ function arr_match(m,o){
515 515
 
516 516
 	// for ([k,v] in m){
517 517
 		// case 
518
-		clog(k,v)
518
+		// dlog(k,v)
519 519
 	}
520 520
 	return !r
521 521
 }
@@ -526,7 +526,7 @@ permissions_def = {
526 526
 		fn(set_scope,match){
527 527
 
528 528
 
529
-			clog("FN....",match.fp,match.fp[1] == window.glob_mx.local_id)
529
+			// clog("FN....",match.fp,match.fp[1] == window.glob_mx.local_id)
530 530
 			if (match.fp[1] != window.glob_mx.local_id)
531 531
 				throw "permission err"
532 532
 			return 
@@ -541,7 +541,7 @@ permissions_def__set = {
541 541
 		fn(set_scope,match){
542 542
 
543 543
 
544
-			clog("FN....",match.fp,match.fp[1] == window.glob_mx.local_id)
544
+			dlog("FN....",match.fp,match.fp[1] == window.glob_mx.local_id)
545 545
 			if (match.fp[1] != window.glob_mx.local_id)
546 546
 				// throw "permission err"
547 547
 			return 
@@ -556,7 +556,7 @@ permissions_def__set = {
556 556
 			super(...arguments)
557 557
 		}
558 558
 		set(obj, prop, val,receiver){
559
-			clog("PRX_PERM",obj.__path_arr,prop)
559
+			// clog("PRX_PERM",obj.__path_arr,prop)
560 560
 			var k,v
561 561
 			var r
562 562
 			var matched 
@@ -570,10 +570,10 @@ permissions_def__set = {
570 570
 			}
571 571
 			// case
572 572
 			// if (obj.__path_arr && obj.__path_arr.length){}
573
-			super.set(obj, prop, val,receiver)
573
+			return super.set(obj, prop, val,receiver)
574 574
 		}
575 575
 		_set(){
576
-			clog("Proxy_Permissions _set")
576
+			// clog("Proxy_Permissions _set")
577 577
 			super._set(...arguments)
578 578
 		}
579 579
 	}
@@ -645,9 +645,9 @@ run_cbs("init_db")
645 645
 
646 646
 function init_mu(persistent_mods){
647 647
 	// .role == "moderator"
648
-		clog(">>>>>>>>>>>>>>>>>>>.. RUN_CB")
648
+		// clog(">>>>>>>>>>>>>>>>>>>.. RUN_CB")
649 649
 var participants = get_participants()
650
-clog(participants)
650
+// clog(participants)
651 651
 
652 652
 
653 653
 
@@ -655,7 +655,7 @@ clog(participants)
655 655
 var local = get_local(participants)
656 656
 	if (window.glob_mx.local_id && persistent_mods && local.role=="moderator"){
657 657
 		// if window.glob_mx.local_id
658
-		clog("no RUN_CB")
658
+		// clog("no RUN_CB")
659 659
 
660 660
 		return
661 661
 	}

+ 2
- 1
rf/m/moveto.js View File

@@ -38,7 +38,8 @@ function allevnt_rld(a0,a1,a2,a3,a4){
38 38
 	if (get_local().id == _from){
39 39
 		rld_room(room)
40 40
 	} else {
41
-		setTimeout(rld_room,2500,room)
41
+		// setTimeout(rld_room,2500,room)
42
+		setTimeout(rld_room,3500,room)
42 43
 
43 44
 	}
44 45
 

+ 6
- 29
rf/m2/m2.js View File

@@ -80,8 +80,8 @@ function refresh_toolbar_config(){
80 80
 		} else {
81 81
 			
82 82
 		arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"sharedvideo")
83
-		}
84 83
 		arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"desktop")
84
+		}
85 85
 
86 86
 		
87 87
 		// arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"")
@@ -101,46 +101,23 @@ function mod_now(){
101 101
 	refresh_toolbar_config()
102 102
 dispatch_resize()
103 103
 }
104
-window.ifn_obj.iammod = [mod_now]
105 104
 
106
-
107
-refresh_toolbar_config()
108
-dispatch_resize()
109
-// function
110
-clog("zzz")
111
-
112
-// mouseenter/mouseleave
105
+window.ifn_obj.iammod = [mod_now]
113 106
 
114 107
 
115 108
 
109
+refresh_toolbar_config()
116 110
 
111
+dispatch_resize()
117 112
 
113
+// function
118 114
 
119
-function dev_raf(){
120
-	if (glob_dbg.ff.stop){
121
-		return
122
-	}
123
-	let now = Date.now()
124
-	let ts = glob_dbg.ff.ts
125
-	let then = glob_dbg.ff.then
126
-	glob_dbg.ff.n.innerHTML = (now - ts ) / 1000 + "<br>"+ ( now - then ) + "<br>" + glob_dbg.ff.mmc + "<br>" + Math.max(...glob_dbg.ff.mma) + "<br>" + glob_dbg.ff.mma
127
-	glob_dbg.ff.then=now
128
-	// glob_dbg.ff.mmc
129
-	glob_dbg.ff.mma.push(glob_dbg.ff.mmc)
130
-	glob_dbg.ff.mma.shift()
131 115
 
116
+// mouseenter/mouseleave
132 117
 
133
-	glob_dbg.ff.mmc = 0
134
-	requestAnimationFrame(dev_raf)
135 118
 
136
-}
137 119
 
138 120
 
139
-glob_dbg.ff={
140
-	stop:0,
141
-	mmc:0,
142
-	mma:[-1,-1,-1,-1,-1,-1,-1],
143
-}
144 121
 // glob_dbg.ytp.playVideo()
145 122
 
146 123
 /*

+ 2
- 2
rf/resize_hook.js View File

@@ -250,14 +250,14 @@ function save_orig_prototype(classes){
250 250
   // for ([k,v] of Object.entries(o)){
251 251
   // for ([k2,v2] of Object.entries(glob_react.vidClass)){
252 252
   for ([k2,v2] of Object.entries(classes)){
253
-      clog("...",k2)
253
+      clog("... dec",k2)
254 254
       ret[k2] = {}
255 255
       o = v2.prototype
256 256
     for ([k,v] of iter_desc(o)){
257 257
 
258 258
       // clog(k,v)
259 259
       ret[k2][k]=v
260
-      clog(k2,k,v)
260
+      // clog(k2,k,v)
261 261
     }
262 262
   }
263 263
   // clog("><",Object.getOwnPropertyDescriptors(o))

+ 30
- 3
rf/svm.js View File

@@ -1,13 +1,35 @@
1 1
 
2
+
3
+
4
+function psc(o){
5
+	let event = o.args[0]
6
+	// if (event. == )
7
+
8
+ 	// event.data.push(event.data)
9
+ 	glob_dbg.yt.psl.push(event.data)
10
+	clog("yt_s psc",event.data,"~",event.target.getPlayerState(),event.target,event)
11
+	if (event.data == YT.PlayerState.PLAYING){
12
+		// glob_dbg.yt.unstart ? 0 : clog("yt_s psc","UNSTART 1")
13
+		glob_dbg.yt.unstart ? clog("yt_s psc","UNSTART 1") : 0
14
+		window.yt_rem1 ? window.yt_rem1() : clog("yt_dbg NO yt_rem1")
15
+ 	glob_dbg.yt.unstart = 0
16
+	}
17
+ 	window.ytp_unstart ? ytp_started_check(o.args[0]) : 0
18
+}
19
+glob_dbg.yt = glob_dbg.yt || {psl:[]}
20
+
2 21
 svm_win = {
3 22
  onYouTubeIframeAPIReady:function (o) {
4 23
  	
5 24
  }, 
6 25
  onPlayerStateChange:function (o) {
7 26
  	// clog("xyz",o.args[0])
27
+ 	// clog("yt_0dbg","onPlayerStateChange",o,)
8 28
  	// console.trace("OPSC")
29
+
9 30
  	// if ()
10
- 	window.ytp_unstart ? ytp_started_check(o.args[0]) : 0
31
+ 	psc(o)
32
+ 	// window.ytp_unstart ? ytp_started_check(o.args[0]) : 0
11 33
  	
12 34
  }, 
13 35
  onVideoProgress:function (o) {
@@ -17,6 +39,8 @@ svm_win = {
17 39
  	
18 40
  }, 
19 41
  onPlayerReady:function (o) {
42
+ 	glob_dbg.yt.psl.push("R")
43
+ 	glob_dbg.yt.unstart = 1
20 44
  	
21 45
  }, 
22 46
  onPlayerError:function (o) {
@@ -25,11 +49,14 @@ svm_win = {
25 49
  svm:function (o) {
26 50
  	try {
27 51
  	// clog("svm xyz",this,o)
52
+ 	// clog("yt_0dbg","svm",o.fn_name,o)
28 53
  	this[o.fn_name](o)
29 54
 
30 55
  	}catch (err) {
31 56
 
32
- 	// clog("svm xyz err",err)
57
+ 	clog("svm xyz err",err)
33 58
  	}
34 59
  },
35
-}
60
+}
61
+
62
+

+ 308
- 0
rf/ts/dev_raf.js View File

@@ -0,0 +1,308 @@
1
+
2
+
3
+function isEven(n) {
4
+   return Math.floor(n) % 2 == 0;
5
+}
6
+function to_server_time(t){
7
+	return t - - qdb.td
8
+
9
+}
10
+function to_client_time(t){
11
+	return t -  qdb.td
12
+	
13
+}
14
+
15
+function start_dev_raf(){
16
+	  glob_dbg.ff.ts = Date.now()
17
+	  glob_dbg.ff.ts = glob_dbg.ff0.ts
18
+    glob_dbg.ff.stop = 0
19
+    // glob_dbg.ff.n = $(".toggle_ff")[0]
20
+    glob_dbg.ff.n = $(".shared_vid_overlay")[0]
21
+    glob_dbg.ff.n.classList.remove("dev_raf_t0")
22
+    glob_dbg.ff.n.classList.remove("dev_raf_t1")
23
+
24
+    dev_raf()
25
+}
26
+
27
+
28
+function stop_dev_raf(){
29
+	  // glob_dbg.ff.ts = Date.now()
30
+    glob_dbg.ff.stop = 1
31
+    // glob_dbg.ff.n = $(".toggle_ff")[0]
32
+}
33
+function step_dev_raf(){
34
+	  // glob_dbg.ff.ts = Date.now()
35
+    glob_dbg.ff.stop = 1
36
+    glob_dbg.ff.step = 1
37
+	  glob_dbg.ff.ts = glob_dbg.ff0.ts
38
+    glob_dbg.ff.n = $(".shared_vid_overlay")[0]
39
+    glob_dbg.ff.n.classList.remove("dev_raf_t0")
40
+    glob_dbg.ff.n.classList.remove("dev_raf_t1")
41
+    dev_raf()
42
+    // glob_dbg.ff.n = $(".toggle_ff")[0]
43
+}
44
+
45
+function step_dev_raf_t(){
46
+	  // glob_dbg.ff.ts = Date.now()
47
+    glob_dbg.ff.stop = 1
48
+    glob_dbg.ff.step = 1
49
+	  glob_dbg.ff.ts = glob_dbg.ff0.ts
50
+	  // glob_dbg.ff.ts1 = Date.now()
51
+    glob_dbg.ff.n = $(".shared_vid_overlay")[0]
52
+    glob_dbg.ff.n.classList.remove("even")
53
+    glob_dbg.ff.n.classList.add("dev_raf_t0")
54
+    glob_dbg.ff.n.classList.remove("dev_raf_t1")
55
+    // setTimeout(dev_raf_t,1500)
56
+	  glob_dbg.ff.ts1 = to_server_time(Date.now())
57
+    setTimeout(dev_raf_t,1150)
58
+    // dev_raf_t()
59
+    // glob_dbg.ff.n = $(".toggle_ff")[0]
60
+}
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+function dev_raf_t(){
70
+	if (glob_dbg.ff.stop && !glob_dbg.ff.step){
71
+		return
72
+	}
73
+
74
+	let now = Date.now()
75
+
76
+	let ts = glob_dbg.ff.ts
77
+	let then = glob_dbg.ff.then
78
+	let tcount0  = (now - ts ) / 1000
79
+	// let tcount = tcount0 + qdb.td2
80
+
81
+	// let tcount = tcount0 - qdb.td2
82
+	let tcount = tcount0 - qdb_td2
83
+	let tcount2 = tcount0 + qdb_td2
84
+	// let tcount2 = tcount0 + qdb.td2
85
+
86
+	// glob_dbg.ff.n.innerHTML = tcount0 + "<br>" + tcount + "<br>" +  tcount2 + "<br>"+ ( now - then ) + "<br>"  +qdb_td2  +  "<br>"  
87
+	glob_dbg.ff.n.innerHTML =  `  ${tcount0} <br>${tcount} <br>${tcount2} <br>${ now - then }<br>${qdb_td2}  <br>`
88
+	glob_dbg.ff.then=now
89
+    glob_dbg.ff.n.classList.remove("dev_raf_t0")
90
+    glob_dbg.ff.n.classList.add("dev_raf_t1")
91
+    /*
92
+	if (isEven((tcount )/5)){
93
+		glob_dbg.ff.n.classList.add("even")
94
+		// glob_dbg.ff.n.classlist
95
+	} else {
96
+		glob_dbg.ff.n.classList.remove("even")
97
+	}
98
+	// glob_dbg.ff.mmc
99
+	glob_dbg.ff.mma.push(now - then)
100
+	// glob_dbg.ff.mma.push(glob_dbg.ff.mmc)
101
+	glob_dbg.ff.mma.shift()
102
+
103
+
104
+	glob_dbg.ff.mmc = 0
105
+    */
106
+
107
+	if (glob_dbg.ff.stop){
108
+		return
109
+	}
110
+
111
+	requestAnimationFrame(dev_raf_t)
112
+
113
+}
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+function dev_raf(){
137
+	if (glob_dbg.ff.stop && !glob_dbg.ff.step){
138
+		return
139
+	}
140
+
141
+	let now = Date.now()
142
+
143
+	let ts = glob_dbg.ff.ts
144
+	let then = glob_dbg.ff.then
145
+	let tcount0  = (now - ts ) / 1000
146
+	// let tcount = tcount0 + qdb.td2
147
+
148
+	// let tcount = tcount0 - qdb.td2
149
+	let tcount = tcount0 - qdb_td2
150
+	let tcount2 = tcount0 + qdb_td2
151
+	// let tcount2 = tcount0 + qdb.td2
152
+
153
+	glob_dbg.ff.n.innerHTML = tcount0 + "<br>" + tcount + "<br>" +  tcount2 + "<br>"+ ( now - then ) + "<br>"  +qdb_td2 + "<br>" + glob_dbg.ff.mmc + "<br>" + Math.max(...glob_dbg.ff.mma) + "<br>" + glob_dbg.ff.mma
154
+	glob_dbg.ff.then=now
155
+	if (isEven((tcount )/5)){
156
+		glob_dbg.ff.n.classList.add("even")
157
+		// glob_dbg.ff.n.classlist
158
+	} else {
159
+		glob_dbg.ff.n.classList.remove("even")
160
+	}
161
+	// glob_dbg.ff.mmc
162
+	glob_dbg.ff.mma.push(now - then)
163
+	// glob_dbg.ff.mma.push(glob_dbg.ff.mmc)
164
+	glob_dbg.ff.mma.shift()
165
+
166
+
167
+	glob_dbg.ff.mmc = 0
168
+
169
+	if (glob_dbg.ff.stop){
170
+		return
171
+	}
172
+
173
+	// requestAnimationFrame(dev_raf)
174
+	requestAnimationFrame(dev_raf)
175
+
176
+}
177
+// clog("m2 glob_dbg",window.glob_dbg)
178
+
179
+// clog("RF m2 070")
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+glob_dbg.ff={
191
+	stop:1,
192
+	mmc:0,
193
+	mma:[-1,-1,-1,-1,-1,-1,-1],
194
+	 n:$(".shared_vid_overlay")[0]
195
+}
196
+
197
+
198
+
199
+
200
+/*
201
+    config.desktopSharingFrameRate ={
202
+        min: 15,
203
+        max: 15
204
+    },
205
+
206
+*/
207
+
208
+glob_dbg.et = 0
209
+glob_dbg.et = glob_dbg.et || {
210
+	tsarr :[],
211
+	tsarr2 :[],
212
+} 
213
+
214
+function ltime0(n){
215
+	glob_dbg.et.x = Date.now()
216
+	setTimeout(ltime,0,0)
217
+	setTimeout(ltime,1,1)
218
+	setTimeout(ltime,2,2)
219
+	setTimeout(ltime,3,3)
220
+	setTimeout(ltime,4,4)
221
+	setTimeout(ltime,20,5)
222
+	setTimeout(ltime,40,6)
223
+	glob_dbg.et.x2 = Date.now()
224
+
225
+}
226
+function ltime(n){
227
+	glob_dbg.et.tsarr2[n] = Date.now()
228
+	// glob_dbg.et.tsarr.push(Date.now())
229
+
230
+}
231
+function exact_time(c=0){
232
+	if (c > 16){
233
+		return
234
+	}
235
+	setTimeout(exact_time,0,c+1)
236
+	glob_dbg.et.tsarr.push(Date.now())
237
+
238
+}
239
+
240
+function et_info(){
241
+	var t = 0
242
+	var ret = [] 
243
+	var k,v 
244
+	for (k of glob_dbg.et.tsarr){
245
+		ret.push(k-t)
246
+		t=k
247
+	}
248
+	return ret
249
+}
250
+
251
+function et_info2(){
252
+	var t = glob_dbg.et.x
253
+	var ret = [] 
254
+	var k,v 
255
+	for (k of glob_dbg.et.tsarr2){
256
+		ret.push(k-t)
257
+		// t=k
258
+	}
259
+	clog(glob_dbg.et.x2 - glob_dbg.et.x)
260
+	return ret
261
+}
262
+// glob_dbg.ff0 = 0
263
+glob_dbg.ff0 = glob_dbg.ff0 || {
264
+	ts:1594655494321,
265
+}
266
+
267
+
268
+function ff0_init(){
269
+	try {
270
+		clog(msto)
271
+		if (glob_mx.flags.init_db && msto.conference.ts){
272
+			glob_dbg.ff0.ts = msto.conference.ts
273
+		}
274
+		qdb.td ? 0 : qdb.time_sync()
275
+		glob_dbg.ff.n.classList.remove("even")
276
+	} catch (e){
277
+		clog("ff0 err:",e)
278
+	}
279
+
280
+}
281
+function reset_ts(){
282
+	// msto.conference.ts = Date.now() - qdb.td2
283
+	msto.conference.ts = Date.now() - Math.round(qdb.td2)
284
+	// msto.conference.ts = Date.now() - Math.round(qdb.td2)
285
+}
286
+
287
+
288
+
289
+ff0_init()
290
+
291
+
292
+window.qdb ? qdb_td2 = qdb.td2/1000 : 0
293
+// start_dev_raf()
294
+    // setTimeout(start_dev_raf,-100)
295
+    
296
+
297
+
298
+step_dev_raf()
299
+step_dev_raf_t()
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+

+ 35
- 0
rf/ts/ts.css View File

@@ -0,0 +1,35 @@
1
+
2
+
3
+.shared_vid_overlay{
4
+	position: relative;
5
+	/*text-align: left !important;*/
6
+	text-align: justify !important;
7
+	display: block;
8
+	/*width: 200px;*/
9
+	z-index: 20;
10
+	width: 100%;
11
+	height: 100%;
12
+	/*display: inline-block;*/
13
+}
14
+.shared_vid_overlay.even{
15
+
16
+	background-color: #0088;
17
+}
18
+
19
+.dev_raf_t0 {
20
+	background-color: #8008;
21
+
22
+}
23
+
24
+.dev_raf_t1 {
25
+	background-color: #0ff4;
26
+
27
+}
28
+
29
+.sv_info {
30
+	position: absolute;
31
+	width: 50%;
32
+	height: 50px;
33
+	/*background-color: red;*/
34
+	z-index: 3;
35
+}

+ 8
- 0
rf/ts/ts.html View File

@@ -0,0 +1,8 @@
1
+
2
+TS<br>
3
+<!--#echo var="DATE_GMT" --> 
4
+<br>
5
+
6
+<!--#echo var="time_iso8601" --> 
7
+<br>
8
+<!--#echo var="msec" --> 

+ 15
- 0
rf/ts/ts.js View File

@@ -0,0 +1,15 @@
1
+
2
+
3
+
4
+ts_js = {
5
+	filename:'<!--#echo var="request_filename" -->',
6
+	fn2:'<!--#echo var="uri" -->',
7
+	fn3:'<!--#echo var="args" -->',
8
+	ts:<!--#echo var="msec" --> ,
9
+	ts2:Date.now() ,
10
+}
11
+
12
+
13
+ 
14
+// clog("TS_dbg TS.JS")
15
+

+ 9
- 0
rf/ts/ts.json View File

@@ -0,0 +1,9 @@
1
+
2
+
3
+{
4
+	"filename":"<!--#echo var='request_filename' -->",
5
+	"fn2":"<!--#echo var="uri" -->",
6
+	"fn3":"<!--#echo var="args" -->",
7
+	"ts":"<!--#echo var="msec" -->" ,
8
+	"ts2":"Date.now()" ,
9
+}

+ 9
- 0
rf/ts/ts.txt View File

@@ -0,0 +1,9 @@
1
+
2
+
3
+{
4
+	"filename":"<!--#echo var='request_filename' -->",
5
+	"fn2":"<!--#echo var="uri" -->",
6
+	"fn3":"<!--#echo var="args" -->",
7
+	"ts":"<!--#echo var="msec" -->" ,
8
+	"ts2":"Date.now()" ,
9
+}

+ 9
- 0
rf/ts/ts2.html View File

@@ -0,0 +1,9 @@
1
+
2
+
3
+{
4
+	"filename":"<!--#echo var='request_filename' -->",
5
+	"fn2":"<!--#echo var="uri" -->",
6
+	"fn3":"<!--#echo var="args" -->",
7
+	"ts":<!--#echo var="msec" --> ,
8
+	"ts2":"Date.now()" ,
9
+}

+ 52
- 0
rf/ts/ts_dev.js View File

@@ -0,0 +1,52 @@
1
+
2
+
3
+// browser_tag
4
+
5
+
6
+// browser_tag
7
+
8
+
9
+
10
+if (typeof(window.isonfocus) == "undefined"){
11
+	window.isonfocus=true
12
+}
13
+
14
+// var isonfocus=true;  
15
+window.onblur = function(){  
16
+	clog("onblur")
17
+  isonfocus=false;  
18
+}  
19
+window.onfocus = function(){  
20
+	clog("onfocus")
21
+  isonfocus=true;  
22
+}
23
+
24
+
25
+function isviv(){
26
+	if (localStorage.browser_tag == "Vivaldi"){
27
+		clog("isviv")
28
+		$("body").addClass("vivaldi")
29
+	} else {
30
+		clog("!isviv")
31
+
32
+	}
33
+
34
+}
35
+
36
+isviv()
37
+
38
+
39
+function sv_trc(o){
40
+	let cnick = ""
41
+	if (o.cname == "SharedVideoManager"){
42
+		cnick = "svm"
43
+	} else if (o.cname == "SharedVideoContainer") {
44
+		cnick = "svc"
45
+
46
+	}
47
+		// SharedVideoManager
48
+		// SharedVideoContainer
49
+	clog("sv_trc",cnick,o.fn_name,[o])
50
+}
51
+
52
+

+ 178
- 0
rf/ts/ts_req.js View File

@@ -0,0 +1,178 @@
1
+
2
+
3
+
4
+glob_ts = window.glob_ts || {}
5
+
6
+function ts_req() {
7
+		clog("ts_dbg")
8
+		var file = {
9
+			url:"/ign/rf/ts/ts.js",
10
+  			cache:false,
11
+  			data:{"z":"abc"},
12
+  			dataType: "script",
13
+  			success:ts_rsp,
14
+		}
15
+		var ts = {}
16
+
17
+			var aii 
18
+		ts.t0= Date.now()
19
+			aii= $.ajax(file)
20
+		ts.t1= Date.now()
21
+			aii.jreq=file
22
+			aii.jmeta=ts
23
+
24
+
25
+		// clog("RLD CHECK")
26
+		/*
27
+		for (var file of this.arr){
28
+			var aii 
29
+			aii= $.ajax({
30
+  				url: file.url,
31
+  				data: file.qs,
32
+  				cache:false,
33
+  				success: file.respH,
34
+  				dataType: "text"
35
+			})
36
+			aii.rldh=file
37
+		}
38
+		*/
39
+	}
40
+
41
+function ts_rsp(resp,status,jqXHR) {
42
+	// clog("ts_dbg ts_rsp",{that:this,args:[arguments]})
43
+	var tfin = Date.now()
44
+	clog("ts_dbg ts_rsp",{that:this,resp,status,jqXHR,ts_js,tfin})
45
+	var ts_arr,ts_com
46
+	var ts_obj
47
+	ts_arr = [
48
+	jqXHR.jmeta.t0,
49
+	jqXHR.jmeta.t1,
50
+	ts_js.ts,
51
+	ts_js.ts2,
52
+	tfin,
53
+	]
54
+
55
+	ts_obj = {
56
+	req0:jqXHR.jmeta.t0,
57
+	req1:jqXHR.jmeta.t1,
58
+	server:ts_js.ts,
59
+	js:ts_js.ts2,
60
+	fin:tfin,
61
+	}
62
+
63
+	clog(ts_arr,ts_obj)
64
+	glob_ts.ts_obj = ts_obj
65
+	glob_ts.ts_arr = ts_arr
66
+	var tping = tfin - jqXHR.jmeta.t0
67
+	var tavg = (tfin + jqXHR.jmeta.t0)/2
68
+	var tsrv = ts_obj.server * 1000
69
+	var tdiff = tsrv  - tavg
70
+	ts_com = {
71
+		ts_dbg:"ts_com",
72
+		tping,
73
+		tavg,
74
+		tsrv,
75
+		tdiff,
76
+	}
77
+	glob_ts.ts_com = ts_com
78
+	console.table(ts_com)
79
+	// clog("ts_dbg","tdiff:",,)
80
+
81
+
82
+}
83
+
84
+
85
+function ts_req2() {
86
+		clog("ts_dbg")
87
+		var file = {
88
+			url:"/ign/rf/ts/tse.js",
89
+  			cache:false,
90
+  			data:{"z":"abc"},
91
+  			// dataType: "text",
92
+  			// dataType: "plane-text",
93
+  			dataType: "text",
94
+  			success:ts_rsp2,
95
+		}
96
+		var ts = {}
97
+
98
+			var aii 
99
+		ts.t0= Date.now()
100
+		file.xyz =ts.t0
101
+			aii= $.ajax(file)
102
+		// ts.t1= Date.now()
103
+			// aii.jreq=file
104
+			// aii.jmeta=ts
105
+
106
+
107
+		// clog("RLD CHECK")
108
+		/*
109
+		for (var file of this.arr){
110
+			var aii 
111
+			aii= $.ajax({
112
+  				url: file.url,
113
+  				data: file.qs,
114
+  				cache:false,
115
+  				success: file.respH,
116
+  				dataType: "text"
117
+			})
118
+			aii.rldh=file
119
+		}
120
+		*/
121
+	}
122
+
123
+function ts_rsp2(resp,status,jqXHR) {
124
+	// clog("ts_dbg ts_rsp",{that:this,args:[arguments]})
125
+	var tfin = Date.now()
126
+	// ts_js
127
+	clog("ts_dbg ts_rsp2",{that:this,resp,status,jqXHR,tfin})
128
+	// clog("ts_dbg ts_rsp2..",tfin - jqXHR.jmeta.t0)
129
+	clog("ts_dbg ts_rsp2..",tfin - this.xyz)
130
+	return
131
+
132
+	// clog("ts_dbg ts_rsp",{that:this,resp,status,jqXHR,ts_js,tfin})
133
+	var ts_arr,ts_com
134
+	var ts_obj
135
+	ts_arr = [
136
+	jqXHR.jmeta.t0,
137
+	jqXHR.jmeta.t1,
138
+	ts_js.ts,
139
+	ts_js.ts2,
140
+	tfin,
141
+	]
142
+
143
+	ts_obj = {
144
+	req0:jqXHR.jmeta.t0,
145
+	req1:jqXHR.jmeta.t1,
146
+	server:ts_js.ts,
147
+	js:ts_js.ts2,
148
+	fin:tfin,
149
+	}
150
+
151
+	clog(ts_arr,ts_obj)
152
+	glob_ts.ts_obj = ts_obj
153
+	glob_ts.ts_arr = ts_arr
154
+	var tping = tfin - jqXHR.jmeta.t0
155
+	var tavg = (tfin + jqXHR.jmeta.t0)/2
156
+	var tsrv = ts_obj.server * 1000
157
+	var tdiff = tsrv  - tavg
158
+	ts_com = {
159
+		ts_dbg:"ts_com",
160
+		tping,
161
+		tavg,
162
+		tsrv,
163
+		tdiff,
164
+	}
165
+	glob_ts.ts_com = ts_com
166
+	console.table(ts_com)
167
+	// clog("ts_dbg","tdiff:",,)
168
+
169
+
170
+}
171
+
172
+
173
+
174
+
175
+
176
+
177
+glob_ts.t = Date.now()
178
+setTimeout(ts_req,1250)

+ 1
- 0
rf/ts/tse.js View File

@@ -0,0 +1 @@
1
+:<!--#echo var="msec" -->

+ 2
- 2
rf/u/universals.js View File

@@ -2,8 +2,8 @@
2 2
 
3 3
 clog = console.log
4 4
 function nop(){}
5
-window.dev_flag = 0
6
-// window.dev_flag = 1
5
+// window.dev_flag = 0
6
+window.dev_flag = 1
7 7
 
8 8
 if (window.dev_flag){
9 9
 

+ 0
- 27
rf/ui_msg/r1.js View File

@@ -11,28 +11,7 @@ function rvm_to(a){
11 11
 	var svg,icon_template
12 12
 
13 13
 	var jmod_templates_ui_msg = $(mod_templates_ui_msg)
14
-	// n = jmod_templates_ui_msg.find(".popup_item_t")
15
-	// n = jmod_templates_ui_msg.find(".popup_item")
16 14
 	n = jmod_templates_ui_msg.find(".popup_item_req")
17
-	// ji_mic_on
18
-	/*
19
-
20
-	// svg = $(`<span>${glob_mx.svg["mic-disabled.svg"]}</span>`).find("svg").addClass("icon_svg")                                  
21
-	svg = $(`<span>${glob_mx.svg["mic-camera-combined.svg"]}</span>`).find("svg").addClass("icon_svg")                                  
22
-	// svg[0].setAttribute("width",16)                           
23
-	// svg[0].setAttribute("height",16)  
24
-	n.find(".jitsi-icon").append(svg)
25
-
26
-	svg = $(`<span>${glob_mx.svg["close.svg"]}</span>`).find("svg").addClass("icon_svg")                                  
27
-	svg[0].setAttribute("width",16)                           
28
-	svg[0].setAttribute("height",16) 
29
-	svg.addClass("x_svg") 
30
-	n.find(".jitsi-icon").append(svg)
31
-	*/
32
-
33
-	// ji_mic_on
34
-	// popup_item
35
-	// popupmenu
36 15
 	n.find(".av_io").click(evnt_av_io)
37 16
 	$(".popupmenu").prepend(n)
38 17
 
@@ -576,10 +555,7 @@ function evnt_av_io(a,a2,a3){
576 555
 	} else {
577 556
 		// participant_07b5a03f
578 557
 		j.parents(".small_vid")[0]
579
-		// clog("ELS",j.parents(".small_vid")[0].id.split("_").pop())
580
-		// o.id = j.parents(".small_vid")[0].id.split("_").pop()
581 558
 		o.to = j.parents(".small_vid")[0].id.split("_").pop()
582
-		// o.to = "abc"
583 559
 	}
584 560
 	req_av_send(o)
585 561
 
@@ -607,12 +583,9 @@ function refresh_overflow_menu_only(){
607 583
 
608 584
 
609 585
 console.log("R1",$("#sharedVideoIFrame")[0].contentWindow)
610
-// $(".popover")
611 586
 // dispatch_evnt()
612 587
 // refresh_overflow_menu()
613 588
 // toggle_overflow_menu()
614
-// toggle_overflow_menu()
615
-// toggle_overflow_menu()
616 589
 
617 590
 
618 591
 

+ 1
- 7
rf/ui_msg/r2.js View File

@@ -16,8 +16,6 @@ defined_depth_dflt = {
16 16
 
17 17
 function defined_depth(o) {
18 18
 	var n
19
-	// n = $("#sideToolbarContainer").clone()
20
-	// n = $(".sideToolbarContainer").clone()
21 19
 	n=$(o.root).clone()
22 20
 	clog("DEF DEPTH",n)
23 21
 
@@ -67,8 +65,6 @@ function defined_depth(o) {
67 65
 	k.parent().addBack().removeAttr("id")
68 66
 
69 67
 	return {n,z:n[0],raw_str:n[0].outerHTML,k,k2:k.parent().addBack()}
70
-
71
-	// n = $("#sideToolbarContainer")
72 68
 	// n.remove()
73 69
 
74 70
 	// body...
@@ -116,8 +112,6 @@ function r_callback(){
116 112
 tbx_u = 0
117 113
 tbx_uadd = 0
118 114
 function toolbox_update(o,name){
119
-	// console.trace("toolbox_update")
120
-	// _overflowMenuVisible
121 115
 	var diff,prevProps,that,props,ovrm
122 116
 	var attrs = [
123 117
 	"_overflowMenuVisible",
@@ -142,7 +136,7 @@ function toolbox_update(o,name){
142 136
 	} else if (o.prevProps._overflowMenuVisible && !o.that.props._overflowMenuVisible){
143 137
 		close_ovfm(ovrm)
144 138
 	}
145
-	clog(name,o,diff,tbx_u,ovrm,o.prevProps._overflowMenuVisible && !o.that.props._overflowMenuVisible)
139
+	// clog(name,o,diff,tbx_u,ovrm,o.prevProps._overflowMenuVisible && !o.that.props._overflowMenuVisible)
146 140
 
147 141
 	if (Object.entries(diff).length){
148 142
 

+ 81
- 1
rf/ytsv/y.css View File

@@ -39,7 +39,10 @@ div#sharedVideo {
39 39
 
40 40
 .yt_thumb{
41 41
 	opacity: 0;
42
+}
43
+.yt_thumb.yt_thumb_focus{
42 44
 	pointer-events: none;
45
+
43 46
 }
44 47
 .ic1 {
45 48
 	/*opacity: .4;*/
@@ -83,4 +86,81 @@ div#sharedVideo {
83 86
 .yt_fs_focus .ic1> *:not(.yt_thumb) {
84 87
 	pointer-events: auto;
85 88
 	/*opacity: .4;*/
86
-}
89
+}
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+.yt_fs .toggle_ff {
101
+	bottom: 45px !important;
102
+	padding-bottom: 0px;
103
+	/*left: 50%;*/
104
+	right:  50%;
105
+	transform: translateX(50%);
106
+}
107
+
108
+
109
+.yt_fs_focus {
110
+	/*background-color: red;*/
111
+}
112
+
113
+
114
+
115
+.toggle_ff.lvov{
116
+	/*opacity: 1 !important;*/
117
+}
118
+
119
+.yt_fs {
120
+	/*background-color: red;*/
121
+	/*outline: 20px solid #004;*/
122
+	/*outline: 20px inset #004;*/
123
+	outline: 20px ridge #008;
124
+	outline-offset: -15px;
125
+	/*opacity: 0;*/
126
+}
127
+.x_yt_fs2.x {
128
+	/*opacity: .5;*/
129
+		/*outline: 20px ridge #008;*/
130
+	background-color: #ff0;
131
+	/*outline-offset: -15px;*/
132
+}
133
+.x_yt_fs {
134
+	/*background-color: #055;*/
135
+		/*outline: 20px ridge #008;*/
136
+	/*outline-offset: -15px;*/
137
+}
138
+
139
+
140
+
141
+#largeVideoContainer{
142
+}
143
+
144
+
145
+#sharedVideoIFrame.z {
146
+	position: relative;
147
+
148
+	height:calc(var(--vheight) *  1px + 360px) !important;
149
+	/*padding-bottom: 20px;*/
150
+	top:0px;
151
+	/*padding-top: 0px;*/
152
+	/*height:  */
153
+	/*width: 100% !important;*/
154
+	/*height: 100% !important;*/
155
+	/*position: */
156
+	/*bottom: 0px;*/
157
+}
158
+
159
+
160
+
161
+.vivaldi #sharedVideo{
162
+	/*pointer-events: auto;*/
163
+	/*padding-bottom: 20px;*/
164
+}
165
+
166
+

+ 256
- 8
rf/ytsv/y.js View File

@@ -48,6 +48,7 @@ function bcr_offset(b1,b2){
48 48
 
49 49
 
50 50
 function mv_yt(){
51
+	// clog("ytp_dbg MV_YT")
51 52
 	// clog( $(`#sharedVideoContainer.small_vid`),$("#sharedVideo"))
52 53
 	var shared_small_vid,shared_vid,sv_css,shared_vid_bcr,small_vid_bcr,node_offset
53 54
 	// var shared_vid
@@ -85,6 +86,9 @@ function mv_yt(){
85 86
 		// $("#sharedVideo").css("pointer-events")
86 87
 	if (shared_vid.css("pointer-events") != "none"){
87 88
 			shared_small_vid.addClass("yt_thumb_focus")
89
+	// $(".fs_container").removeClass("yt_fs")
90
+	// $(".fs_container").addClass("yt_sv")
91
+	// $(".lvov_container").addClass("yt_fs_focus")
88 92
 	$(".fs_container").addClass("yt_fs_focus")
89 93
 	}
90 94
 
@@ -105,6 +109,12 @@ function mv_yt0(){
105 109
 	shared_small_vid.removeClass("yt_thumb")
106 110
 	shared_small_vid.removeClass("yt_thumb_focus")
107 111
 	$(".fs_container").removeClass("yt_fs_focus")
112
+
113
+
114
+	// $(".fs_container").addClass("yt_fs")
115
+	// $(".fs_container").removeClass("yt_sv")
116
+
117
+
108 118
 	shared_vid.css(dflt_shared_vid_css)
109 119
 	clog("mv_yt")
110 120
 }
@@ -137,8 +147,54 @@ function slvp(o){
137 147
 	mvyt_helper()
138 148
 }
139 149
 window.glob_mx.qxi_cb.SELECT_LARGE_VIDEO_PARTICIPANT.fn = slvp
150
+
151
+
152
+function yt_ui(lvp,lvs){
153
+
154
+if ($("#sharedVideoContainer.small_vid").length &&  $("#sharedVideo").css("pointer-events") != "none") {
155
+
156
+
157
+		 // $(".fs_container").removeClass("x_yt_fs")
158
+		 $(".lvov_container").addClass("yt_fs")
159
+
160
+	} else {
161
+		 $(".lvov_container").removeClass("yt_fs")
162
+
163
+	}
164
+
165
+}
166
+function yt_ui2(lvp,lvs){
167
+		 $(".fs_container").removeClass("x_yt_fs2")
168
+
169
+	if ((!lvs.isVideoMuted ) && (!(lvp.isFakeParticipant && lvp.name == "YouTube") )){
170
+		 $(".lvov_container").removeClass("yt_fs")
171
+		 $(".fs_container").addClass("x_yt_fs")
172
+		 if ($("#sharedVideoContainer.small_vid").length) {
173
+		 $(".fs_container").addClass("x_yt_fs2")
174
+
175
+		 }
176
+
177
+
178
+	} else if ($("#sharedVideoContainer.small_vid").length &&  $("#sharedVideo").css("pointer-events") != "none") {
179
+
180
+
181
+		 $(".fs_container").removeClass("x_yt_fs")
182
+		 $(".lvov_container").addClass("yt_fs")
183
+
184
+	} else {
185
+		 $(".fs_container").addClass("x_yt_fs")
186
+		 $(".lvov_container").removeClass("yt_fs")
187
+
188
+	}
189
+
190
+	// $("#sharedVideoContainer.small_vid")
191
+}
192
+
193
+
140 194
 function get_large_vid(){
141 195
 	var lv,smallvids,participants,id,lvp,lvs
196
+	// $(".fs_container").removeClass("yt_sv")
197
+	// $(".fs_container").removeClass("yt_fs")
142 198
 	lv = APP.store.getState()['features/large-video']
143 199
 	id = lv.participantId
144 200
 
@@ -160,7 +216,15 @@ function get_large_vid(){
160 216
 		mv_yt0()
161 217
 
162 218
 	}
163
-	// glob_dev_hooks.smallvids
219
+
220
+	// $("#sharedVideoContainer.small_vid")
221
+	yt_ui(lvp,lvs)
222
+	// if (lvp.isFakeParticipant && lvp.name == "YouTube"){
223
+
224
+	// }
225
+	// fix theater & full screen possitions
226
+	 // $("#sharedVideo").css("pointer-events")
227
+ 
164 228
 
165 229
 }
166 230
 
@@ -172,9 +236,15 @@ function init_db_yt(){
172 236
 	clog("init_db_yt...",jc(msto))
173 237
 	msto.my_data.yt_dbg = {
174 238
 		yt_id:"",
239
+		shared:{},
175 240
 		yt_all_evnt:[],
176 241
 		yt_evnt:[],
177 242
 	}
243
+	glob_dbg.participants = get_participants()
244
+	if (glob_dbg.ytp_onload){
245
+		clog("yt_dbg onload")
246
+		yt_check_status()
247
+	}
178 248
 	// msto.
179 249
 }
180 250
 
@@ -198,12 +268,148 @@ what_is_loaded()
198 268
 // window.glob_mx.qxi_cb.PARTICIPANT_LEFT    = window.glob_mx.qxi_cb.PARTICIPANT_LEFT || {}
199 269
 // window.glob_mx.qxi_cb.CONFERENCE_JOINED    = window.glob_mx.qxi_cb.CONFERENCE_JOINED || {}
200 270
 // window.glob_mx.qxi_cb.PARTICIPANT_JOINED  = window.glob_mx.qxi_cb.PARTICIPANT_JOINED || {}
271
+function yt_remove(){
272
+	glob_dbg.svm.onSharedVideoStop(glob_dbg.svm.from)
273
+}
274
+
275
+
201 276
 
277
+function identical(array) {
278
+    for(var i = 0; i < array.length - 1; i++) {
279
+        if(array[i] !== array[i+1]) {
280
+            return false;
281
+        }
282
+    }
283
+    return true;
284
+}
285
+
286
+
287
+
288
+function yt_conf_match(){
289
+	if (!glob_mx.flags.init_db){return}
290
+	var yt_id = glob_dbg.svc.id
291
+	var shared_by = glob_dbg.svm.from
292
+	if (msto.conference.yt && yt_id == msto.conference.yt.id && shared_by == msto.conference.yt.shared_by){
293
+		return true
294
+	} 
295
+	return false
296
+
297
+}
298
+
299
+
300
+function yt_rem1(){
301
+	var m
302
+	clog("yt_dbg yt_rem1")
303
+	m=yt_conf_match()
304
+	if (m){
305
+		if (msto.conference.yt.stopped){
306
+		yt_check_status("YR1")
307
+			setTimeout(yt_remove,100)
308
+			// yt_remove()
309
+		}
310
+	} else {
311
+		setTimeout(yt_rem2,250)
312
+	}
313
+}
314
+
315
+function yt_rem2(){
316
+	var m
317
+	m=yt_conf_match()
318
+	clog("yt_dbg2 yt_rem1")
319
+
320
+	if (m && !msto.conference.yt.stopped){
321
+		// if (msto.conference.yt.stopped){
322
+		// }
323
+	} else {
324
+		yt_check_status("YR2")
325
+			setTimeout(yt_remove,10)
326
+		// yt_remove()
327
+
328
+	}
329
+
330
+}
331
+
332
+function detect_stop(n){
333
+	try {
334
+		return yt_conf_match() && !msto.conference.yt.stopped
335
+	 // clog(yt_conf_match() && !msto.conference.yt.stopped)
336
+	} catch {
337
+		return "err"
338
+	}
339
+
340
+}
341
+function yt_check_status(n){
342
+
343
+
344
+	try {
345
+
346
+
347
+
348
+
349
+	var yt_id = glob_dbg.svc.id
350
+	var shared_by = glob_dbg.svm.from
351
+	var ret
352
+	var tdiff
353
+	ret = {
354
+		msto:jc(msto),
355
+		yt:jc(msto.conference.yt),
356
+		yt_dbg:jc(msto.my_data.yt_dbg),
357
+		yt_id,
358
+		shared_by,
359
+	}
360
+
361
+	try {
362
+	ret.A_conf_match = yt_conf_match()
363
+	ret.A_yt_stopped = !!msto.conference.yt.stopped
364
+	ret.A_detect_stop = detect_stop()
365
+	ret.tdiff = msto.my_data.yt_dbg.shared.now - msto.conference.yt.now 
366
+		// tdiff:
367
+	ret.ident_id = identical([yt_id,msto.conference.yt.id,msto.my_data.yt_dbg.shared.id])
368
+	ret.ident_from =  identical([shared_by,msto.conference.yt.shared_by,msto.my_data.yt_dbg.shared.shared_by])
369
+	// msto.conference.yt.stopped
370
+	// msto.participants["7d2b7157"]
371
+	} catch (err) {}
372
+	// shared_by
373
+
374
+		clog("yt_dbg yt_stat",n,ret)
375
+
376
+
377
+	// shared_by
378
+
379
+	// msto.conference.yt
380
+	// msto.my_data.yt_dbg
381
+		// clog("yt_dbg yt_stat err:",n,err)
382
+	
383
+	} catch (err) {
384
+		clog("yt_dbg yt_stat err:",n,err)
385
+	}
386
+	
387
+
388
+}
202 389
 function yt_left(o){
203 390
 	try {
204 391
 
205 392
 		// clog("yt_dbg yt_left",{init_db:glob_mx.flags.init_db,o})
206
-		clog("yt_dbg yt_left",glob_mx.flags.init_db ? 1 : 0,o)
393
+		var now,shared_by,ytp,local
394
+		if (o.action.participant.id == msto.my_data.yt_dbg.shared.id && msto.my_data.yt_dbg.shared.id){
395
+			local = get_local() 
396
+			now = Date.now()
397
+			if (msto.my_data.yt_dbg.shared.shared_by == local.id) {
398
+				msto.conference.yt.stopped = 1
399
+			}
400
+			// delete msto.conference.yt
401
+			msto.my_data.yt_dbg.shared = {}
402
+			// delete msto.conference.yt
403
+			// shared_by = glob_dbg.svm.from
404
+		} else {
405
+
406
+		}
407
+
408
+
409
+		
410
+
411
+
412
+		clog("yt_dbg yt_left",glob_mx.flags.init_db ? 1 : 0,{svm:glob_dbg.svm,svc:glob_dbg.svc,o,participants:get_participants(),smallvids:get_smallvids()})
207 413
 		return
208 414
 	// clog("yt_dbg yt_left0")
209 415
 	clog("yt_dbg yt_left",{that:this,args:[...arguments]})
@@ -215,11 +421,52 @@ function yt_left(o){
215 421
 
216 422
 }
217 423
 function yt_join(o){
218
-	try {
424
+	try {		
425
+		var now,shared_by,ytp,local
426
+		if (o.action.participant.isFakeParticipant && o.action.participant.name == "YouTube"){
427
+			// glob_mx.flags.init_db ? 0 :  setTimeout(yt_check_status,250,o)
428
+			glob_mx.flags.init_db ? 0 :  setTimeout(yt_check_status,250,"no_msto t")
429
+			glob_mx.flags.init_db ? 0 :  glob_dbg.ytp_onload = 1
430
+
431
+			local = get_local() 
432
+			now = Date.now()
433
+			shared_by = glob_dbg.svm.from
434
+			ytp = {shared_by,now}
435
+			ytp.id = o.action.participant.id
436
+
437
+			if (glob_dbg.svm.from == local.id){
438
+				ytp.a = "LOCAL"
439
+				msto.conference.yt = {
440
+					id:ytp.id,
441
+					shared_by,
442
+					now,
443
+				}
444
+				// msto.my_data.yt_dbg
445
+			}
446
+			if (msto.conference.yt){
447
+				if (shared_by == msto.conference.yt.shared_by && ytp.id == msto.conference.yt.id && !msto.conference.yt.stopped){
448
+				ytp.ytc = 1
449
+
450
+				} else {
451
+					ytp.ytc = "?"
452
+					yt_check_status("inv")
453
+					setTimeout(yt_check_status,250,"inv t")
454
+				}
455
+			} else {
456
+					yt_check_status("ytc")
457
+					setTimeout(yt_check_status,250,"ytc t")
458
+				ytp.ytc = 0
459
+			}
219 460
 
220
-		// glob_mx.flags.init_db ? 1 : 0
221
-		clog("yt_dbg yt_join",glob_mx.flags.init_db ? 1 : 0,o)
222
-		// clog("yt_dbg yt_join",{init_db:glob_mx.flags.init_db,o})
461
+			msto.my_data.yt_dbg.shared = ytp
462
+
463
+
464
+		} else {
465
+
466
+		return
467
+			
468
+		}
469
+		clog("yt_dbg yt_join",glob_mx.flags.init_db ? 1 : 0,{svm:glob_dbg.svm,svc:glob_dbg.svc,o,participants:get_participants(),smallvids:get_smallvids()})
223 470
 		return
224 471
 		var local = get_local() 
225 472
 		clog("yt_dbg J",o.action.participant,jc(o.action.participant))
@@ -238,7 +485,7 @@ function yt_join(o){
238 485
 
239 486
 	} catch (err){
240 487
 
241
-		clog("yt_dbg yt_join ERR:",err)
488
+		clog("yt_dbg yt_join ERR:",glob_mx.flags,err)
242 489
 	}
243 490
 
244 491
 
@@ -249,9 +496,10 @@ function yt_join(o){
249 496
 
250 497
 
251 498
 
252
-function mute_audio_helper(){
499
+function mute_audio_helper(n){
253 500
 	try {
254 501
 	// setAudioMuted
502
+	clog("yt_dbg yt_s",n)
255 503
 	disp(glob_react.media.setAudioMuted(1))
256 504
 
257 505
 	} catch (err) {

Loading…
Cancel
Save