Browse Source

ign4...

master
jfinn 4 years ago
parent
commit
fa98557754
25 changed files with 940 additions and 39 deletions
  1. 34
    2
      i4/lobby.js
  2. 29
    0
      rf/all_css.js
  3. 5
    0
      rf/calc/c.css
  4. 105
    0
      rf/calc/c.html
  5. 61
    0
      rf/calc/c.js
  6. 1
    0
      rf/calc/cm.js
  7. 101
    0
      rf/calc/cr.js
  8. 196
    2
      rf/coninc/coninc.js
  9. 90
    0
      rf/coninc/coninc_dev.js
  10. 47
    0
      rf/dev_ov/t.css
  11. 6
    0
      rf/dev_ov/t.html
  12. 37
    0
      rf/dev_ov/t.js
  13. 9
    1
      rf/filmstrip_mod/m.css
  14. 23
    0
      rf/filmstrip_mod/m.html
  15. 14
    2
      rf/filmstrip_mod/m.js
  16. 37
    7
      rf/fs.css
  17. 10
    2
      rf/inspect_utils.js
  18. 19
    0
      rf/load_mod.js
  19. 53
    14
      rf/m/m_api_v2.js
  20. 5
    0
      rf/m/m_dbg.js
  21. 18
    4
      rf/m/m_req.js
  22. 4
    4
      rf/m/m_utils.js
  23. 1
    1
      rf/m2/m2.js
  24. 2
    0
      rf/tfs/t.html
  25. 33
    0
      rf/ui_msg/r.js

+ 34
- 2
i4/lobby.js View File

27
 	css:[`${mod_path}m.css`],
27
 	css:[`${mod_path}m.css`],
28
 	html:[{url:`${mod_path}m.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler_lobby"}]
28
 	html:[{url:`${mod_path}m.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler_lobby"}]
29
 	}
29
 	}
30
-
30
+	mtx_2.name = "i4m"
31
 	setTimeout(add_module,300,mtx_2)
31
 	setTimeout(add_module,300,mtx_2)
32
 
32
 
33
 
33
 
48
 	css:[`${mod_path}m.css`],
48
 	css:[`${mod_path}m.css`],
49
 	html:[{url:`${mod_path}m.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler_not_lobby"}]
49
 	html:[{url:`${mod_path}m.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler_not_lobby"}]
50
 	}
50
 	}
51
-
51
+	mtx_2.name = "i4n"
52
 	setTimeout(add_module,300,mtx_2)
52
 	setTimeout(add_module,300,mtx_2)
53
 
53
 
54
 
54
 
74
 	]
74
 	]
75
 	}
75
 	}
76
 
76
 
77
+	mtx_2.name = "svg_dev"
77
 	setTimeout(add_module,300,mtx_2)
78
 	setTimeout(add_module,300,mtx_2)
78
 
79
 
79
 
80
 
99
 	]
100
 	]
100
 	}
101
 	}
101
 
102
 
103
+	mtx_2.name = "ovf_vid"
102
 	setTimeout(add_module,300,mtx_2)
104
 	setTimeout(add_module,300,mtx_2)
103
 
105
 
104
 
106
 
128
 	]
130
 	]
129
 	}
131
 	}
130
 
132
 
133
+	mtx_2.name = "ui_msg"
131
 	setTimeout(add_module,300,mtx_2)
134
 	setTimeout(add_module,300,mtx_2)
132
 
135
 
133
 
136
 
156
 	]
159
 	]
157
 	}
160
 	}
158
 
161
 
162
+	mtx_2.name = "ui_svg"
159
 	setTimeout(add_module,300,mtx_2)
163
 	setTimeout(add_module,300,mtx_2)
160
 
164
 
161
 
165
 
162
 
166
 
163
 }
167
 }
168
+function dev_ov() {
169
+	// body...
170
+	// clog("This is lobby2")
171
+var mod_path ="ign/rf/dev_ov/"
172
+var n ="t"
164
 
173
 
174
+var mtx_2 ={	
175
+	// js:["ign/m/timer/m.js","ign/m/timer/m0.js"],
176
+	js:[
177
+	// `${mod_path}m0.js`,
178
+	`${mod_path}${n}.js`,
179
+	// `${mod_path}${n}1.js`,
180
+	],
181
+	css:[`${mod_path}${n}.css`],
182
+	html:[
183
+	{url:`${mod_path}${n}.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler_dev_ov"},
184
+	// C:\bspace\repos\jc4\ign4\rf\img\full-frame.svg
185
+	// {url:`ign/rf/img/full-frame.svg`,diffH:get_cui_html,success:html_rld_cb4,success_js:"svg_icon_handler"},
186
+	// {url:`ign/rf/img/full-frame_24.svg`,diffH:get_cui_html,success:html_rld_cb4,success_js:"svg_icon_handler2"},
187
+	]
188
+	}
189
+	mtx_2.name = "dev_ov"
190
+
191
+	setTimeout(add_module,300,mtx_2)
192
+
193
+
194
+
195
+}
165
 
196
 
166
 
197
 
167
 if (location.pathname.endsWith("/")){
198
 if (location.pathname.endsWith("/")){
170
 not_lobby()
201
 not_lobby()
171
 ui_msg()
202
 ui_msg()
172
 ovf_vid()
203
 ovf_vid()
204
+dev_ov()
173
 }
205
 }
174
 svg_dev()
206
 svg_dev()
175
 
207
 

+ 29
- 0
rf/all_css.js View File

1
+ 
2
+
3
+
4
+clog("ALL_CSS RLD")
5
+
6
+
7
+function all_css_rld(rldh,rsp) {
8
+		var s = document.createElement("link")
9
+		// s.href = rldh.url+"?"+"v="+rldh.qs.v
10
+		s.href = "css/all.css"
11
+		s.rel = "stylesheet"
12
+		s.classList.add("all_css")
13
+		// var s0 = $(`link.rld[href^="`+rldh.url+`"]`)[0]
14
+		// var j0 = $(`link.rld[href^="`+rldh.url+`"]`)
15
+		var j0 = $(`.all_css`)
16
+		var s0 = j0[0]
17
+		s0.after(s)
18
+		// var sp =s0.previousElementSibling
19
+		// sp.after(s)
20
+		// setTimeout(rmv_timeout,50,s0)
21
+		setTimeout(rmv_timeout,50,j0)
22
+}
23
+
24
+
25
+all_css_rld_init = window.all_css_rld_init || 0
26
+if (all_css_rld_init){
27
+	all_css_rld()
28
+}
29
+all_css_rld_init = 1

+ 5
- 0
rf/calc/c.css View File

1
+ 
2
+.text_io{
3
+	width: 49%;
4
+	height: 30%;
5
+}

+ 105
- 0
rf/calc/c.html View File

1
+
2
+<html>
3
+<head>
4
+	<title>t0</title>
5
+	<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script>
6
+	    <script class="rld" src="/ign/rf/u/universals.js?c=023"></script>
7
+    <script class="" src="/ign/rf/u/proto_ext.js?c=023"></script>
8
+    <script class="" src="/ign/rf/preload.js?c=023"></script>
9
+    <script class="rld" src="/ign/rf/inspect_utils.js?c=023"></script>
10
+
11
+    <script class="rld" src="/ign/rf/m/m_req.js?c=023"></script>
12
+    <script src="/rldjs/rldjs3_2.js?v=139"></script>
13
+    <!-- <script src="/rldjs/rldjs3.js?v=139"></script> -->
14
+    <!-- <script src="/rldjs/rldjs2.js?v=139"></script> -->
15
+    <script class="rld rrld" src="/ign/rls.js?c=023"></script>
16
+
17
+
18
+
19
+    <script class="rld" src="/ign/rf/m/_m_utils.js?c=023"></script>
20
+    <script class="rld" src="/ign/rf/m/m_utils.js?c=023"></script>
21
+    <script class="rld" src="/ign/rf/m/m_api_v2.js?c=023"></script>
22
+
23
+
24
+
25
+     <script class="rld" src="/ign/rf/calc/c.js?c=023"></script>
26
+     <script class="rld" src="/ign/rf/calc/cr.js?c=023"></script>
27
+
28
+       <meta class="m0 module">
29
+    <link class="rld" rel="stylesheet" href="/ign/rf/calc/c.css?c=023">
30
+
31
+
32
+<!-- 
33
+    <script class="rld" src="ign/m/m_req.js?c=023"></script>
34
+
35
+
36
+    <script class="rld" src="ign/r0.js?c=023"></script>
37
+    <script class="rld" src="ign/tfn.js?c=023"></script>
38
+ -->
39
+
40
+
41
+<!-- APP -->
42
+<!-- 
43
+    <script class="rld" src="ign/react_fn.js?c=023"></script>
44
+
45
+    <script class="rld" src="ign/r1.js?c=023"></script>
46
+    <script class="rld" src="ign/r2.js?c=023"></script>
47
+
48
+
49
+
50
+
51
+    
52
+
53
+
54
+
55
+    <script class="rld" src="ign/deep_walk.js?c=023"></script>
56
+    <script class="rld" src="ign/deep_walk2.js?c=023"></script>
57
+
58
+
59
+
60
+
61
+    <script class="rld" src="ign/m/m_const.js?c=023"></script>
62
+    <script class="rld" src="ign/m/_m_utils.js?c=023"></script>
63
+    <script class="rld" src="ign/m/m_utils.js?c=023"></script>
64
+    <script class="rld" src="ign/m/m_api_html.js?c=023"></script>
65
+
66
+
67
+
68
+    <script class="rld" src="ign/tconn.js?c=023"></script>
69
+    <script class="rld" src="ign/cui5.js?c=023"></script>
70
+
71
+
72
+    <script class="rld" src="ign/m/m_api.js?c=023"></script>
73
+
74
+
75
+
76
+
77
+
78
+    <script class="rld" src="ign/fs_hook.js?c=023"></script>
79
+    <script class="rld" src="ign/resize_hook.js?c=023"></script>
80
+
81
+
82
+    <link class="rld" rel="stylesheet" href="ign/r0.css?c=023">
83
+    <link class="rld" rel="stylesheet" href="ign/fs.css?c=023">
84
+
85
+ -->
86
+
87
+</head>
88
+<body>
89
+tile
90
+<br/>
91
+<br>
92
+<textarea class="text_io text_in"></textarea>
93
+<textarea class="text_io text_out"></textarea>
94
+<br>
95
+<textarea class="text_io text_parse"></textarea>
96
+
97
+<div class="root"></div>
98
+
99
+</body>
100
+</html>
101
+
102
+
103
+
104
+
105
+ 

+ 61
- 0
rf/calc/c.js View File

1
+ 
2
+
3
+// mtx_t = {	
4
+// 	// js:["ign/m/timer/m.js","ign/m/timer/m0.js"],
5
+// 	js:[,`${mod_path_t}t_fns.js`,`${mod_path_t}t_api_fn.js`,`${mod_path_t}t.js`,],
6
+// 	css:[`${mod_path_t}t.css`],
7
+// 	html:[{url:`${mod_path_t}t.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler_t"}]
8
+// 	}
9
+
10
+// mod_templates = window.mod_templates || $("")
11
+// rld_html = window.rld_html || $("")
12
+rld_html = $("")
13
+
14
+
15
+function html_rld(rsp){
16
+	clog("HTML_RLD")
17
+	if (rld_html.length){
18
+		clog("location.reload")
19
+	location.reload()
20
+	}
21
+	rld_html =$(rsp)
22
+	// location.reload()
23
+}
24
+function load_calc_mod() {
25
+	// body...
26
+	// clog("This is lobby2")
27
+var mod_path ="/ign/rf/calc/"
28
+var n ="c"
29
+
30
+var mtx_2 ={	
31
+	// js:["ign/m/timer/m.js","ign/m/timer/m0.js"],
32
+	js:[
33
+	// `${mod_path}m0.js`,
34
+	// `${mod_path}${n}.js`,
35
+	// `${mod_path}${n}1.js`,
36
+	],
37
+	// css:[`${mod_path}${n}.css`],
38
+	html:[
39
+	{url:`${mod_path}${n}.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_rld"},
40
+	// C:\bspace\repos\jc4\ign4\rf\img\full-frame.svg
41
+	// {url:`ign/rf/img/full-frame.svg`,diffH:get_cui_html,success:html_rld_cb4,success_js:"svg_icon_handler"},
42
+	// {url:`ign/rf/img/full-frame_24.svg`,diffH:get_cui_html,success:html_rld_cb4,success_js:"svg_icon_handler2"},
43
+	]
44
+	}
45
+
46
+	setTimeout(add_module,300,mtx_2)
47
+
48
+
49
+
50
+}
51
+
52
+load_calc_mod()
53
+clog("CJS~~~~~~~~~~~~~")
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+

+ 1
- 0
rf/calc/cm.js View File

1
+ 

+ 101
- 0
rf/calc/cr.js View File

1
+
2
+clog("...") 
3
+
4
+function text_mod(argument) {
5
+	// clog("text_mod",argument)
6
+	regex_n()
7
+	// body...
8
+}
9
+function text_modc(argument) {
10
+	clog("text_modc")
11
+	// body...
12
+}
13
+
14
+// $(".text_in").on("input",text_mod)
15
+// $(".text_in").off()
16
+// $(".text_in").off("input")
17
+
18
+
19
+function tvnt(){
20
+	// $(".text_in").off("input")
21
+$(".text_in").off()
22
+$(".text_in").on("input",text_mod)
23
+$(".text_in").on("click",text_modc)
24
+}
25
+
26
+function to_dec(hx){
27
+	var len = hx.length
28
+	var dec = parseInt(hexString, 16);
29
+	// if ()
30
+
31
+
32
+}
33
+
34
+
35
+function regex_n(){
36
+	var s,i,j,k,v,rgx,m,txt
37
+	var hex,delim,rstr,ec,g
38
+	txt = $(".text_in")[0].value
39
+	rgx = /[0-9]+/gi
40
+	rgx = /(?<name>[0-9a-f]+)|(?<name2>[a-z\s]*[a-z]+[a-z\s]*)/gi
41
+	rgx = /(?<name2>[a-z\s]*[a-z]+[a-z\s]*)|(?<name>[0-9a-f]+)/gi
42
+	rgx = /(?<name>[0-9a-f]+)|(?<name2>[a-z]+)/gi
43
+	delim = `(\\s|,|\\$)`
44
+	hex = `(?<hex_group>(#|0x)(?<hex>[0-9a-fA-F]+)${delim})`
45
+	dec = `(?<dec_group>(?<dec>[0-9]+)${delim})`
46
+	rstr = `${hex}|${dec}`
47
+	rgx = new RegExp(rstr, 'gi');
48
+
49
+	// m=txt.match(rgx)
50
+	m=txt.matchAll(rgx)
51
+	// clog(v,m)
52
+	clog(rgx)
53
+	clog(txt)
54
+	clog(m)
55
+	// for (k in m){
56
+	for (k of m){
57
+		// clog(k)
58
+		g=k.groups
59
+		if (g.hex){
60
+			clog("HEX",g.hex)
61
+		} else if (g.dec){
62
+			clog("DEC",g.dec)
63
+
64
+		}
65
+	}
66
+}
67
+function splicer(str,n){
68
+	var ret,s,t,len
69
+	ret=[]
70
+	len =Math.round(str.length/n)
71
+	s=str
72
+	// if ()
73
+	while (s){
74
+		ret.push(s.slice(0,len))
75
+		s = s.slice(len)
76
+
77
+	}
78
+	clog(len)
79
+	return ret
80
+
81
+
82
+}
83
+
84
+function splt(){
85
+	clog("SPLITTER",{that:this,args:[...arguments]})
86
+}
87
+tvnt()
88
+regex_n()
89
+// 0x[0-9a-fA-F]*
90
+// 0b
91
+// #[0-9a-fA-F]*
92
+// #rgba?(,,,,)
93
+
94
+// int[0-9]()
95
+// [0-9.]
96
+
97
+
98
+// hex ((#|0x)[0-9a-fA-F]*)
99
+// dec ((#|0x)[0-9a-fA-F]*)
100
+// float ([0-9]*\.[0-9]*)
101
+

+ 196
- 2
rf/coninc/coninc.js View File

1
 
1
 
2
 window.glob_dev_fns.conInc_render_icon = function (o,name,a3) {
2
 window.glob_dev_fns.conInc_render_icon = function (o,name,a3) {
3
 	// body...
3
 	// body...
4
+	// that.props.connectionStatus == "inactive"
5
+
4
 	// clog("coninc render",o,name,a3)
6
 	// clog("coninc render",o,name,a3)
5
-	clog("coninc render",o.that.props.connectionStatus,o.that.props.participantId,o,name)
7
+	// clog("coninc render",o.that.props.connectionStatus,o.that.props.participantId,o,name)
8
+}
9
+
10
+
11
+
12
+
13
+
14
+
15
+function pleft(o){
16
+	// clog("pleft",o,get_participants())
17
+	discard_participant(o)
18
+	
19
+	discard_smallvid(o.action.participant.id)
20
+	// clog("pleft",o,get_participants(),Object.keys(msto.participants) )
21
+		// prune_smallvids()
22
+}
23
+function pjoin(o){
24
+	add_participant(o)
25
+	clog("pjoin",o,get_participants())
26
+}
27
+function deep_prop_v2(o,p){
28
+	try {
29
+	var arr = jc(p)
30
+	var ret = o
31
+	var retm = {}
32
+	var key
33
+	retm.arr = arr
34
+	retm.arr0 = p
35
+
36
+	while (arr.length){
37
+		// clog("deep_prop",arr,ret)
38
+		key = arr.shift()
39
+		if (!arr.length){
40
+			retm.v_exist = key in ret
41
+		}
42
+
43
+		ret = ret[key]
44
+		retm.v = ret
45
+
46
+	}
47
+	// clog("deep_prop ret",ret)
48
+	// return retm
49
+	} catch(err){
50
+		retm.err=err
51
+		retm.key=key
52
+		// console.error("DEEP_PROP ERR:",err)
53
+	}
54
+	return retm
55
+}
56
+
57
+
58
+
59
+
60
+
61
+
62
+function smallvid_filter_0(elm){
63
+	var s = this
64
+	// clog("smallvids filter",this,[...arguments])
65
+	// clog("smallvids filter",s == "ID",s+"" == "ID",this,[...arguments])
66
+  // clog("GLVCB",this,[...arguments])
67
+  try{
68
+  // return  elm.isLocal
69
+  return  elm.id != this 
70
+
71
+  } catch{}
72
+}
73
+
74
+function discard_smallvid(id){
75
+	var smallvids = glob_dev_hooks.smallvids.filter(smallvid_filter_0,id)
76
+	glob_dev_hooks.smallvids = smallvids
77
+
78
+}
79
+function smallvid_filter(elm){
80
+	// var s = this
81
+	// clog("~",elm,elm.id)
82
+	// clog("smallvids filter",this,[...arguments])
83
+	// clog("smallvids filter",s == "ID",s+"" == "ID",this,[...arguments])
84
+  // clog("GLVCB",this,[...arguments])
85
+  try{
86
+  // return  elm.isLocal
87
+  // return  elm.id != this 
88
+  return this.includes(elm.id)
89
+
90
+  } catch{}
91
+}
92
+
93
+
94
+function get_ids(){
95
+	// clog("")
96
+	var ret = []
97
+	var p = get_participants()
98
+	for (k of p){
99
+		ret.push(k.id)
100
+		// clog("~",k)
101
+	}
102
+	return ret
103
+		// clog("~2",ret)
104
+}
105
+
106
+function prune_smallvids(){
107
+	// var smallvids = get_participants().filter(smallvid_filter,Object.keys(msto.participants))
108
+	var smallvids = glob_dev_hooks.smallvids.filter(smallvid_filter,get_ids())
109
+
110
+	// clog(smallvids,glob_dev_hooks.smallvids)
111
+	glob_dev_hooks.smallvids = smallvids
112
+
113
+}
114
+
115
+// function
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+function coninc_conection_event(o){
128
+
129
+	// clog("PARTICIPANT_UPDATED",o,get_participants())
130
+	// "action.participant.connectionStatus".split(".")
131
+
132
+	// clog("PARTICIPANT_UPDATED",o,get_participants())
133
+	if (o.action && o.action.participant && o.action.participant.connectionStatus){
134
+
135
+	}
136
+	var ret = deep_prop_v2(o,"action.participant.connectionStatus".split("."))
137
+	if (ret.v_exist){
138
+		clog("conic +",ret,o)
139
+
140
+	} else {
141
+		clog("conic !",ret,o)
142
+		// clog(ret)
143
+	}
144
+	// clog("PARTICIPANT_UPDATED",o)
145
+}
146
+function discard_participant(o){
147
+	// o.action.participant.id
148
+	delete window.glob_mx.participants[o.action.participant.id]
149
+}
150
+function add_participant(o){
151
+	// o.action.participant.id
152
+	if (o.action.participant.id == undefined || o.action.participant.id == "local"){
153
+		return
154
+	}
155
+	window.glob_mx.participants[o.action.participant.id] = undefined
156
+}
157
+
158
+
159
+function conf_joined(){
160
+	clog("conf_joined",{participants:get_participants(),smallvids:glob_dev_hooks.smallvids})
161
+}
162
+
163
+function init_participants_obj(){
164
+	var i,k,j,v
165
+	var sf,pf,merged,participants
166
+	merged = {}
167
+	var participants = participants_info()
168
+	for ([k,v] of Object.entries(participants.sf)){
169
+		merged[k]=v["_connectionStatus"] || participants.pf[k].connectionStatus
170
+		// m2.push(v)
171
+		// m2.push(k)
172
+	}
173
+	Object.assign(window.glob_mx.participants,merged)
174
+	return {merged,participants}
175
+	
6
 }
176
 }
7
 
177
 
8
-clog("CONINC js")
178
+
179
+// PARTICIPANT_JOINED
180
+// PARTICIPANT_LEFT
181
+// glob_mx.qxi_cb
182
+window.glob_mx.qxi_cb.PARTICIPANT_UPDATED = window.glob_mx.qxi_cb.PARTICIPANT_UPDATED || {}
183
+window.glob_mx.participants = window.glob_mx.participants || {}
184
+
185
+window.glob_mx.qxi_cb.PARTICIPANT_LEFT    = window.glob_mx.qxi_cb.PARTICIPANT_LEFT || {}
186
+window.glob_mx.qxi_cb.CONFERENCE_JOINED    = window.glob_mx.qxi_cb.CONFERENCE_JOINED || {}
187
+window.glob_mx.qxi_cb.PARTICIPANT_JOINED  = window.glob_mx.qxi_cb.PARTICIPANT_JOINED || {}
188
+glob_mx.qxi_cb.PARTICIPANT_UPDATED.coninc_conection_event = coninc_conection_event
189
+glob_mx.qxi_cb.PARTICIPANT_LEFT.pleft = pleft
190
+
191
+glob_mx.qxi_cb.PARTICIPANT_JOINED.pjoin = pjoin
192
+glob_mx.qxi_cb.CONFERENCE_JOINED.conf_joined = conf_joined
193
+
194
+clog("CONINC js")
195
+
196
+
197
+function get_coninc_status(){
198
+	clog("CON_INC",get_participants())
199
+}
200
+// get_coninc_status()
201
+// exp_api_dbg("CON_INC")
202
+// clog("CON_INC",{})

+ 90
- 0
rf/coninc/coninc_dev.js View File

1
+
2
+
3
+{
4
+
5
+class Eobj{
6
+	constructor(){
7
+		this.v="init"
8
+		clog("EOBJ",Eobj.prototype.name,Eobj)
9
+		Eobj.prototype.clsname = Eobj.name
10
+	}
11
+}
12
+
13
+class Estr extends String{
14
+	constructor(){
15
+		super()
16
+		this.v="init"
17
+		clog("EOBJ",Eobj.prototype.name,Eobj)
18
+		Eobj.prototype.clsname = Eobj.name
19
+	}
20
+}
21
+window.Eobj = Eobj
22
+window.Estr = Estr
23
+
24
+
25
+
26
+window.eobj = new Eobj()
27
+window.estr = new Estr()
28
+}
29
+
30
+
31
+
32
+
33
+
34
+function* keyVal(obj){
35
+  for (let en in obj){
36
+    yield [en,obj[en]]
37
+  }
38
+}
39
+
40
+function* keyVal2(obj){
41
+  let ctr = 0
42
+  for (let en in obj){
43
+    yield [ctr++,en,obj[en]]
44
+  }
45
+}
46
+
47
+function oid(obj,index,attrs){
48
+	var ret = {}
49
+	var i,j,k,v
50
+	var i2,j2,k2,v2
51
+	var key
52
+	var val
53
+	for ([i,k,v] of keyVal2(obj)) {
54
+		key = v[index]
55
+		val = {}
56
+		ret[key]=val
57
+		for ([i2,k2,v2] of keyVal2(attrs)){
58
+			val[k2] = v[v2]
59
+		}
60
+
61
+	}
62
+	return ret
63
+
64
+}
65
+
66
+// function 
67
+
68
+function kvt(o){}
69
+function kvt2(o){
70
+	for (ijk of keyVal2(o)){
71
+		clog(ijk)
72
+	}
73
+}
74
+
75
+function participants_info(){
76
+	var smallvids = glob_dev_hooks.smallvids
77
+	var participants = get_participants()
78
+	var sf,pf,merged,m2
79
+	var i,k,j,v
80
+	// merged = {}
81
+	// merged = {}
82
+	// m2 = []
83
+	sf = oid(smallvids,"id",{"_connectionStatus":"_connectionStatus",isLocal:"isLocal"})
84
+	pf = oid(participants,"id",{"connectionStatus":"connectionStatus",local:"local"})
85
+
86
+
87
+
88
+	return {smallvids,participants,sf,pf}
89
+}
90
+

+ 47
- 0
rf/dev_ov/t.css View File

1
+
2
+.small_vid_overlay {
3
+	/*z-index: ;*/
4
+
5
+	position: relative;
6
+	position: absolute;
7
+	width: 100%;
8
+	text-align:center;
9
+} 
10
+.small_vid_overlay_v2{
11
+	position: relative;
12
+	width: 100%;
13
+	text-align:center;
14
+
15
+}
16
+
17
+.vid_toptoolbar_hook {
18
+
19
+	/*text-align:center;*/
20
+}
21
+
22
+.indicator-container{
23
+	display: block !important;
24
+}
25
+
26
+/*.connection_full {*/
27
+.connection_empty {
28
+	/*position: absolute;*/
29
+	/*top :2px;*/
30
+	width: 8px !important;
31
+	/*opacity: 0;*/
32
+	/*display: none;*/
33
+	/*display: block !important;*/
34
+}
35
+.connection_full {
36
+/*.connection_empty {*/
37
+		position: absolute;
38
+		/*position: relative;*/
39
+	/*top :2px;*/
40
+	transform: rotate(90deg);
41
+	transform: rotate(180deg);
42
+	transform: translate(-50%,-50%) rotate(180deg);
43
+	transform: translate(-50%,0%) rotate(180deg);
44
+	transform: translate(0%,-50%) rotate(180deg);
45
+	/*display: none;*/
46
+	/*opacity: 0;*/
47
+}

+ 6
- 0
rf/dev_ov/t.html View File

1
+ 
2
+
3
+<div></div>
4
+<span class="dev_ov_template plugin_root small_vid_overlay"><span class="small_vid_overlay_v2">
5
+OVERLAY</span>
6
+</span>

+ 37
- 0
rf/dev_ov/t.js View File

1
+mod_templates_dev_ov = window.mod_templates_dev_ov|| $("")
2
+function html_js_handler_dev_ov(rsp) {
3
+	clog("html_js_handler_dev_ov",[...arguments])
4
+	mod_templates_dev_ov = $(`<span>${rsp}</span>`)[0].outerHTML
5
+	clog("html_js_handler_dev_ov")
6
+	// init_lobby()
7
+	// dev_ov
8
+	dev_ov_init()
9
+	// init_ui_msg()
10
+	// if (window.refresh_overflow_menu){
11
+		// refresh_overflow_menu()
12
+	// }
13
+	// clog("html_js_handler_lobby3")
14
+	// init_api6()
15
+} 
16
+
17
+
18
+function dev_ov_init(){
19
+	clog("dev_ov_template")
20
+	saftly_remove(".dev_ov_template")
21
+	var templates = $(mod_templates_dev_ov)
22
+	n = templates.find(".dev_ov_template")
23
+	// $(".small_vid_overlay")
24
+	clog(":",n)
25
+	// add_node(n,".small_vid","append")
26
+	add_node(n,".vid_toptoolbar_hook","append")
27
+	// $(".small_vid")
28
+	// small_vid_overlay
29
+}
30
+
31
+// function 
32
+
33
+try {
34
+	dev_ov_init()
35
+} catch (err){
36
+	clog("dev_ov err:",err)
37
+}

+ 9
- 1
rf/filmstrip_mod/m.css View File

80
 	background-color: #f00;
80
 	background-color: #f00;
81
 	background-image: linear-gradient(to top left, #ff8 50%, #0ff 50%);
81
 	background-image: linear-gradient(to top left, #ff8 50%, #0ff 50%);
82
 }
82
 }
83
+.pseudo_avatar {
84
+	background-image: linear-gradient(to top left, #ff8e 50%, #0ffe 50%);
85
+	color: #000;
86
+	color: #444;
83
 
87
 
88
+}
84
 
89
 
85
 .tile-view .pseudo_vid,.vertical-filmstrip .pseudo_vid{
90
 .tile-view .pseudo_vid,.vertical-filmstrip .pseudo_vid{
86
 	background-size:contain;
91
 	background-size:contain;
97
 	position: relative;
102
 	position: relative;
98
 	/*position: absolute;*/
103
 	/*position: absolute;*/
99
 }
104
 }
100
-
105
+.pseudo_vid.pseudo_vid_a{
106
+	background-image:unset;
107
+	background-color:unset;
108
+}
101
 
109
 
102
 
110
 
103
 .vspace {
111
 .vspace {

+ 23
- 0
rf/filmstrip_mod/m.html View File

10
 
10
 
11
 <!-- <div class="mp1">abc</div>
11
 <!-- <div class="mp1">abc</div>
12
 <div class="mp2">def</div> -->
12
 <div class="mp2">def</div> -->
13
+<div class="pseudo_vid_avatar_orig named avatar-container" style="height: 53px; width: 53px;"><div class="avatar  userAvatar " style="background-color: rgba(234, 255, 128, 0.4); font-size: 180%; height: 100%; width: 100%;"><svg class="avatar-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><foreignObject height="100%" width="100%"><span class="avatar-foreign">Ps</span></foreignObject></svg></div></div>
14
+
15
+
16
+
17
+
18
+
19
+<div class="pseudo_vid_avatar named avatar-container" style="height: 53px; width: 53px;"><div class="avatar  userAvatar pseudo_avatar" style="font-size: 180%; height: 100%; width: 100%;"><svg class="avatar-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><foreignObject height="100%" width="100%"><span class="avatar-foreign">Ps</span></foreignObject></svg></div></div>
20
+
21
+
22
+<div class="pseudo_vid_avatar anon avatar-container" style="height: 53px; width: 53px;"><div class=""><img class="avatar defaultAvatar userAvatar" src="images/avatar.png" style="font-size: 180%; height: 100%; width: 100%;"></div></div>
23
+
24
+
25
+<span class="plugin_top pseudo_vid small_vid pseudo_vid_a"><div class="videocontainer__background"></div>
26
+<div class="displayNameContainer"><span class="displayname" >pseudo_vid</span></div>
27
+
28
+</span>
29
+<span class="plugin_top pseudo_vid small_vid "><div class="m2 xbox2">ABC</div></span>
30
+
31
+
32
+
33
+
34
+
35
+
13
 
36
 
14
 
37
 
15
 
38
 

+ 14
- 2
rf/filmstrip_mod/m.js View File

7
 function html_js_handler(rsp) {
7
 function html_js_handler(rsp) {
8
 	clog("html_js_handler",[...arguments])
8
 	clog("html_js_handler",[...arguments])
9
 	mod_templates = $(`<span>${rsp}</span>`)
9
 	mod_templates = $(`<span>${rsp}</span>`)
10
-	init_api6()
10
+	// init_api6()
11
+    refresh_fs_proc()
11
 }
12
 }
12
 
13
 
13
 
14
 
233
     clog("init_api6...")
234
     clog("init_api6...")
234
     saftly_remove(".plugin_top")
235
     saftly_remove(".plugin_top")
235
     // return
236
     // return
237
+    // clog("~init_api6~",mod_templates)
238
+    templates = $(mod_templates[0].outerHTML)
236
     var arr = []
239
     var arr = []
237
-    var n 
240
+    var n,nt
238
     n = `<span class="plugin_top pseudo_vid small_vid "><div class="m2 xbox2">ABC</div></span>`
241
     n = `<span class="plugin_top pseudo_vid small_vid "><div class="m2 xbox2">ABC</div></span>`
242
+    nt = templates.find(".pseudo_vid_a")
243
+    if (nt.length){
244
+        n = $(nt[0].outerHTML)
245
+         
246
+        nt = mod_templates.find(".pseudo_vid_avatar.named")
247
+        // nt = templates.find(".pseudo_vid_avatar.anon")
248
+        add_node(nt,n,"append")
249
+        n = n[0].outerHTML
250
+    }
239
 
251
 
240
     const repeat = window.msto ?  msto.conference.repeat || 0 : 0
252
     const repeat = window.msto ?  msto.conference.repeat || 0 : 0
241
     if ((!isNaN(repeat) && repeat > 0 )){
253
     if ((!isNaN(repeat) && repeat > 0 )){

+ 37
- 7
rf/fs.css View File

119
 }
119
 }
120
 
120
 
121
 
121
 
122
-.vid_toptoolbar_hook {
123
-	position: absolute;
124
-}
125
 
122
 
126
 
123
 
127
 #toggleFilmstripButton,[aria-label="Toggle tile view"] {
124
 #toggleFilmstripButton,[aria-label="Toggle tile view"] {
157
 	width: 100%;
154
 	width: 100%;
158
 	height: 0%;
155
 	height: 0%;
159
 	padding-bottom: 56.25%;
156
 	padding-bottom: 56.25%;
157
+	position: absolute;
158
+	/*outline: 1px solid #8C8C8C;*/
160
 }
159
 }
161
 
160
 
161
+#largeVideoContainer{
162
+	outline: 1px solid #8C8C8C;
163
+
164
+}
165
+.videocontainer__background {
166
+	outline: 1px solid #8C8C8C;
167
+	
168
+}
162
 
169
 
163
 
170
 
164
 
171
 
197
 }
204
 }
198
 
205
 
199
 
206
 
200
-
207
+.outline_indicator {
208
+	/*outline:unset;*/
209
+}
201
 
210
 
202
 
211
 
203
 .remote-video-menu-trigger, .remotevideomenu {
212
 .remote-video-menu-trigger, .remotevideomenu {
230
 		/*background-color: rgb(27, 38, 56);*/
239
 		/*background-color: rgb(27, 38, 56);*/
231
 		/*background-color: rgb(71, 71, 71);*/
240
 		/*background-color: rgb(71, 71, 71);*/
232
 		background-color: #374757;
241
 		background-color: #374757;
242
+    /*--vr3:  rgba(0,0,0,0)  100%;*/
243
+    --vr0:  #000  0%;
244
+    --vr1:  #414141 60%;
245
+    --vr2:  #414141 100%;
246
+
247
+    background-image: linear-gradient(to top,var(--vr0),var(--vr1),var(--vr2));
248
+    background-image: linear-gradient(to bottom,var(--vr0),var(--vr1),var(--vr2));
249
+		/*background-color: #000;*/
250
+
233
 }
251
 }
234
 
252
 
235
 
253
 
312
 	overflow: visible;
330
 	overflow: visible;
313
 }
331
 }
314
 
332
 
315
-* {
316
-	/*color: red;*/
317
-}
318
 #sharedVideo.z{
333
 #sharedVideo.z{
319
 	pointer-events: unset !important;
334
 	pointer-events: unset !important;
320
 }
335
 }
324
 	/*z-index: 500 !important;*/
339
 	/*z-index: 500 !important;*/
325
 	z-index: -1 !important;
340
 	z-index: -1 !important;
326
 	pointer-events: none;
341
 	pointer-events: none;
342
+}
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+.tsi > .jquery-corner > div {
355
+	/*border-color: #ff0 !important;*/
356
+	border-color: #414141 !important;
327
 }
357
 }

+ 10
- 2
rf/inspect_utils.js View File

23
 	try {
23
 	try {
24
 	var arr = jc(p)
24
 	var arr = jc(p)
25
 	var ret = o
25
 	var ret = o
26
+	var retm = {}
27
+	retm.arr = arr
28
+	retm.arr0 = p
26
 
29
 
27
 	while (arr.length){
30
 	while (arr.length){
28
 		// clog("deep_prop",arr,ret)
31
 		// clog("deep_prop",arr,ret)
29
 		ret = ret[arr.shift()]
32
 		ret = ret[arr.shift()]
33
+		retm.v = ret
30
 	}
34
 	}
31
 	// clog("deep_prop ret",ret)
35
 	// clog("deep_prop ret",ret)
32
-	return ret
33
-	} catch(err){console.error("DEEP_PROP ERR:",err)}
36
+	return retm
37
+	} catch(err){
38
+		retm.err=err
39
+		console.error("DEEP_PROP ERR:",err)
40
+	return retm
41
+	}
34
 }
42
 }

+ 19
- 0
rf/load_mod.js View File

1
+// C:\bspace\repos\jc4\ign4\rf\load_mod.js
2
+
3
+
4
+function filmstrip_mod() {
5
+	// body...
6
+mod_path ="ign/rf/filmstrip_mod/"
7
+
8
+var mtx ={	
9
+	// js:["ign/m/timer/m.js","ign/m/timer/m0.js"],
10
+	js:[`${mod_path}m0.js`,`${mod_path}m.js`,],
11
+	css:[`${mod_path}m.css`],
12
+	html:[{url:`${mod_path}m.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler"}]
13
+	}
14
+	mtx.name="filmstrip_mod"
15
+setTimeout(add_module,300,mtx)
16
+}
17
+filmstrip_mod()
18
+
19
+// add_module(mtx )

+ 53
- 14
rf/m/m_api_v2.js View File

216
 
216
 
217
 // function 
217
 // function 
218
 
218
 
219
+function inc_map(map,key,dflt=0,inc=1){
220
+	if (!map.has(key)){
221
+		map.set(key,dflt + inc)
222
+	} else {
223
+		map.set(key,map.get(key) + inc)
224
+	}
225
+}
226
+function fmap(o){
227
+	var i,k,v,ret
228
+	var jstr 
229
+	ret = []
230
+	clog("FM","\n\r.\n\r")
231
+	clog("FM name",o.name)
232
+	for (k of o.js || []){
233
+		clog("FM js",k)
234
+		ret.push(k)
235
+	}
236
+	for (k of o.css || []){
237
+		clog("FM css",k)
238
+		ret.push(k)
239
+		
240
+	}
241
+	for (k of o.html || []){
242
+		clog("FM html",k)
243
+		ret.push(k.url)
244
+		
245
+	}
219
 
246
 
247
+	jstr = JSON.stringify(ret)
248
+	if (!o.name){
249
+	inc_map(rldi.mods.file_map_c,jstr)
250
+	rldi.mods.file_map.setD(jstr,o)
251
+	}
252
+}
253
+function log_mod(o){
254
+	inc_map(rldi.mods.m,o.name)
255
+	if (!o.name){
256
+
257
+	}
258
+	fmap(o)
259
+	// log_tb("mod",new Error())
260
+	// log_tb(new Error(),"mod")
261
+
262
+}
263
+
264
+
265
+rldi.mods = window.rldi.mods || {
266
+	arr:[],
267
+	m:new Map(),
268
+	file_map:new Map(),
269
+	file_map_c:new Map(),
270
+	mtx:{},
271
+}
220
 
272
 
221
 
273
 
222
 function add_module(o){
274
 function add_module(o){
223
 	var k,v
275
 	var k,v
224
 	let file 
276
 	let file 
277
+	log_mod(o)
225
 		// qto_init()
278
 		// qto_init()
226
 		// file = jclone(api_dflts.css)
279
 		// file = jclone(api_dflts.css)
227
 	for (k of o.css || []){
280
 	for (k of o.css || []){
361
 
414
 
362
 
415
 
363
 
416
 
364
-
365
-mod_path ="ign/rf/filmstrip_mod/"
366
-
367
-mtx ={	
368
-	// js:["ign/m/timer/m.js","ign/m/timer/m0.js"],
369
-	js:[`${mod_path}m0.js`,`${mod_path}m.js`,],
370
-	css:[`${mod_path}m.css`],
371
-	html:[{url:`${mod_path}m.html`,diffH:get_cui_html,success:html_rld_cb4,success_js:"html_js_handler"}]
372
-	}
373
-
374
-setTimeout(add_module,300,mtx)
375
-
376
-
377
-// add_module(mtx )

+ 5
- 0
rf/m/m_dbg.js View File

1
+
2
+
3
+function dbg_trc(err) {
4
+	// body...
5
+}

+ 18
- 4
rf/m/m_req.js View File

16
 function get_participants(){
16
 function get_participants(){
17
 	return APP.store.getState()["features/base/participants"]
17
 	return APP.store.getState()["features/base/participants"]
18
 }
18
 }
19
+
20
+
21
+
19
 function get_local(participants){
22
 function get_local(participants){
20
 	if (!participants){
23
 	if (!participants){
21
 	participants = get_participants()
24
 	participants = get_participants()
172
 }
175
 }
173
 
176
 
174
 function qxi2(o){
177
 function qxi2(o){
175
-	if (qxi_skip.includes(o.action.type)){
176
-		// return
178
+	var k = o.action.type
179
+	glob_dbg.qxi_map.setD(k,0)
180
+	// var k,v
181
+	glob_dbg.qxi_map.set(k,glob_dbg.qxi_map.get(k) + 1)
182
+
183
+
184
+	if (qxi_skip.includes(k)){
185
+		return
177
 	}
186
 	}
178
-	clog("qxi2",o.action.type,o)
187
+	clog("qxi2",k,o)
179
 }
188
 }
180
 
189
 
181
 
190
 
182
 function qxi_event(o){
191
 function qxi_event(o){
183
 	var cb
192
 	var cb
193
+	/*	
194
+	if (o.action.type == "CONFERENCE_JOINED"){
195
+		clog("conf_joined x")
196
+	}
197
+	*/
184
 	run_qxi_cbs(o.action.type,o)
198
 	run_qxi_cbs(o.action.type,o)
185
 	/*
199
 	/*
186
 	cb = glob_mx.qxi_test[o.action.type]
200
 	cb = glob_mx.qxi_test[o.action.type]
196
 	glob_mx.qxi_test[action_type] = cb
210
 	glob_mx.qxi_test[action_type] = cb
197
 }
211
 }
198
 
212
 
199
-
213
+window.glob_dbg.qxi_map =  window.glob_dbg.qxi_map || new Map()
200
 // this is called with setTimeout so we can throw errors without wrecking everything
214
 // this is called with setTimeout so we can throw errors without wrecking everything
201
 function dev_middleware_listner(o) {
215
 function dev_middleware_listner(o) {
202
 	if (!o.action.type){
216
 	if (!o.action.type){

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

300
 
300
 
301
 
301
 
302
 
302
 
303
-/*
304
-function deep_prop_duplicate(o,p){
303
+
304
+function deep_prop_v0(o,p){
305
 	try {
305
 	try {
306
 	var arr = jc(p)
306
 	var arr = jc(p)
307
 	var ret = o
307
 	var ret = o
314
 	return ret
314
 	return ret
315
 	} catch(err){console.error("DEEP_PROP ERR:",err)}
315
 	} catch(err){console.error("DEEP_PROP ERR:",err)}
316
 }
316
 }
317
-*/
317
+
318
 
318
 
319
 
319
 
320
 
320
 
378
 	_set_recv(path,prop,val){
378
 	_set_recv(path,prop,val){
379
 		// return
379
 		// return
380
 		var p = path
380
 		var p = path
381
-		var nprop =deep_prop(this.root,p)
381
+		var nprop = deep_prop_v0(this.root,p)
382
 		var dpth = nprop.__dpth
382
 		var dpth = nprop.__dpth
383
 		if (tlu[typeof(val)]){
383
 		if (tlu[typeof(val)]){
384
 		nprop._set(nprop,prop,val,val)
384
 		nprop._set(nprop,prop,val,val)

+ 1
- 1
rf/m2/m2.js View File

76
 
76
 
77
 	} else {
77
 	} else {
78
 		arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"desktop")
78
 		arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"desktop")
79
-		arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"sharedvideo")
79
+		// arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"sharedvideo")
80
 		// arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"")
80
 		// arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"")
81
 	}
81
 	}
82
 		arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"videobackgroundblur")
82
 		arr_rmv(interfaceConfig.TOOLBAR_BUTTONS,"videobackgroundblur")

+ 2
- 0
rf/tfs/t.html View File

45
 <div class="plugin_top pseudo_vid small_vid pseudo_vid_template"><div class="m2 xbox2">ABC</div></div>
45
 <div class="plugin_top pseudo_vid small_vid pseudo_vid_template"><div class="m2 xbox2">ABC</div></div>
46
 <span class="plugin_top pseudo_vid small_vid pseudo_vid_template2"><div class="m2 xbox2">ABC2</div></span>
46
 <span class="plugin_top pseudo_vid small_vid pseudo_vid_template2"><div class="m2 xbox2">ABC2</div></span>
47
 
47
 
48
+
49
+

+ 33
- 0
rf/ui_msg/r.js View File

174
 		// url:`${mod_path}r.html`,diffH:get_cui_html,success:svg_rld_cb,success_js:"html_js_handler"}]
174
 		// url:`${mod_path}r.html`,diffH:get_cui_html,success:svg_rld_cb,success_js:"html_js_handler"}]
175
 		// mod_path
175
 		// mod_path
176
 	}
176
 	}
177
+	mtx.name = "svg_mod"
177
 	add_module(mtx )
178
 	add_module(mtx )
178
 	// init_ui_msg()
179
 	// init_ui_msg()
179
 
180
 
370
 
371
 
371
 
372
 
372
 }
373
 }
374
+
375
+
376
+
377
+async function isbrave12(){
378
+	/*
379
+	var ret 
380
+	var r1
381
+	var r2
382
+	r1 = navigator.brave && await navigator.brave.isBrave() || false
383
+	r2 = navigator.hardwareConcurrency == 12
384
+	ret = r1 && r2
385
+	*/
386
+	// clog(r1,r2,ret)
387
+	// return {r1,r2,ret}
388
+	// return ret
389
+	return ((navigator.brave && await navigator.brave.isBrave() || false) && (navigator.hardwareConcurrency == 12))
390
+	// return ((navigator.brave && await navigator.brave.isBrave() || false) && (navigator.hardwareConcurrency == 12))
391
+}
392
+function isbrave12_then(ib12){
393
+	window.ib12 = ib12
394
+	clog("isbrave12_then",{that:this,args:[...arguments]})
395
+}
396
+isbrave12().then(isbrave12_then)
397
+// ib12 = isbrave12()
398
+// navigator.hardwareConcurrency
399
+// (navigator.brave && await navigator.brave.isBrave() || false)
400
+
373
 function req_av_io(o){
401
 function req_av_io(o){
374
 	var payload = o.parsed.payload
402
 	var payload = o.parsed.payload
375
 	clog("....>",o)
403
 	clog("....>",o)
381
 	switch(payload.act){
409
 	switch(payload.act){
382
 	// switch(payload.action){
410
 	// switch(payload.action){
383
 		case "force_vid_on":
411
 		case "force_vid_on":
412
+		if (window.ib12){
413
+			break;
414
+		}
384
 		set_vid_on()
415
 		set_vid_on()
385
 		break;
416
 		break;
386
 		case "vid_on":
417
 		case "vid_on":
445
             },"code")
476
             },"code")
446
 }
477
 }
447
 // req_av_send({act:"av_off","to":"all"})
478
 // req_av_send({act:"av_off","to":"all"})
479
+// req_av_send({to:"all",act:"force_vid_on"})
480
+// 
448
 glob_mx.event_handlers.av2 = {
481
 glob_mx.event_handlers.av2 = {
449
     fn:req_av_io,
482
     fn:req_av_io,
450
     // fn:nop,
483
     // fn:nop,

Loading…
Cancel
Save