diff --git a/animations.js b/animations.js index 45b886f..c1e138b 100644 --- a/animations.js +++ b/animations.js @@ -121,10 +121,10 @@ $('#audioSource').on('mousedown touchend focusin focusout', function(e) { }); $('#audioSource3').on('mousedown touchend focusin focusout', function(e) { - var state = $('#multiselect-trigger3').data('state') || 0; + var state = $('#multiselect-trigger3').attr('data-state') || 0; if( state == 0 ) { ////open the dropdown - $('#multiselect-trigger3').data('state', '1').addClass('open').removeClass('closed'); + $('#multiselect-trigger3').attr('data-state', '1').addClass('open').removeClass('closed'); $('#multiselect-trigger3').find('.chevron').removeClass('bottom'); $('#multiselect-trigger3').parent().find('.multiselect-contents').show(); $('#multiselect-trigger3').parent().find('.multiselect-contents').find('input[type="checkbox"]').parent().show();; @@ -154,17 +154,19 @@ $('#multiselect-trigger').on('mousedown touchend focusin focusout', function(e) }); // multiselect dropdowns $('#multiselect-trigger3').on('mousedown touchend focusin focusout', function(e) { - var state = $(this).data('state') || 0; + var state = $(this).attr('data-state') || 0; + if( state == 0 ) { // open the dropdown - $(this).data('state', '1').addClass('open').removeClass('closed'); + errorlog("STATE: "+state); + $(this).attr('data-state', '1').addClass('open').removeClass('closed'); $(this).find('.chevron').removeClass('bottom'); $(this).parent().find('.multiselect-contents').show(); $(this).parent().find('.multiselect-contents').find('input[type="checkbox"]').parent().show();; $(this).parent().find('.multiselect-contents').find('input[type="checkbox"]').show();; } else { // close the dropdown - $(this).data('state', '0').addClass('closed').removeClass('open'); + $(this).attr('data-state', '0').addClass('closed').removeClass('open'); $(this).find('.chevron').addClass('bottom'); $(this).parent().find('.multiselect-contents').find('input[type="checkbox"]').not(":checked").parent().hide();; $(this).parent().find('.multiselect-contents').find('input[type="checkbox"]').hide();; diff --git a/examples/stats.html b/examples/stats.html new file mode 100644 index 0000000..bd350d4 --- /dev/null +++ b/examples/stats.html @@ -0,0 +1,264 @@ + + + + OBS.Ninja IFRAME Outgoing Stats Example + + + + + + + + + + +
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+

This example will show all connections to the stream generated from this page using statistics gathered using the iFrame API.

+

Click start to generate a stream using the OBS.Ninja URL shown. If you use the example URL shown, you can click here to connect to this stream as a viewer in a new window/tab, this will then show in the table below. Expired connections will be removed after a short delay.

+
+
+
+
Audio:
+
+ + +
+
+
+
Video:
+
+ + +
+
+
+
Stats:
+
+ + +
+
+
+
Outbound Connections:
+
0
+
+
+
+
+
+ + + + + + + + + + + + + + +
LabelAddedQuality Limit ReasonResolutionPlatformEncoderUser Agent
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/iframe.html b/iframe.html index 854c5a4..d482be3 100644 --- a/iframe.html +++ b/iframe.html @@ -203,6 +203,16 @@ function loadIframe(){ // this is pretty important if you want to avoid camera button.onclick = function(){iframe.contentWindow.postMessage({"automixer":false}, '*');}; iframeContainer.appendChild(button); + var button = document.createElement("button"); + button.innerHTML = "ENABLE TALLY LIGHT"; + button.onclick = function(){iframe.contentWindow.postMessage({"sceneState":true}, '*');}; + iframeContainer.appendChild(button); + + var button = document.createElement("button"); + button.innerHTML = "STOP TALLY LIGHT"; + button.onclick = function(){iframe.contentWindow.postMessage({"sceneState":false}, '*');}; + iframeContainer.appendChild(button); + var button = document.createElement("button"); button.innerHTML = "Add Target Video"; button.onclick = function(){iframe.contentWindow.postMessage({"target":"*", "add":true, "settings":{"style":{"width":"640px", "height":"360px", "float":"left", "border":"10px solid red", "display":"block"}}}, '*');}; // target can be a stream ID or * for all. diff --git a/images/hd.svg b/images/hd.svg new file mode 100644 index 0000000..c107866 --- /dev/null +++ b/images/hd.svg @@ -0,0 +1,2 @@ + background Layer 1 + HQ diff --git a/images/mic-animate.gif b/images/mic-animate.gif new file mode 100644 index 0000000..ac8de0d Binary files /dev/null and b/images/mic-animate.gif differ diff --git a/images/mic-slash.gif b/images/mic-slash.gif new file mode 100644 index 0000000..227e427 Binary files /dev/null and b/images/mic-slash.gif differ diff --git a/images/mic.gif b/images/mic.gif new file mode 100644 index 0000000..640d9fa Binary files /dev/null and b/images/mic.gif differ diff --git a/images/obsNinja_logo_full.png b/images/obsNinja_logo_full.png index aa6e1f1..09f509c 100644 Binary files a/images/obsNinja_logo_full.png and b/images/obsNinja_logo_full.png differ diff --git a/images/old_logo.png b/images/old_logo.png new file mode 100644 index 0000000..aa6e1f1 Binary files /dev/null and b/images/old_logo.png differ diff --git a/images/sd.svg b/images/sd.svg new file mode 100644 index 0000000..7c3fa3e --- /dev/null +++ b/images/sd.svg @@ -0,0 +1,2 @@ + background Layer 1 + LQ diff --git a/index.html b/index.html index d48d918..c10af3e 100644 --- a/index.html +++ b/index.html @@ -52,7 +52,7 @@ - + @@ -62,8 +62,8 @@ - - + + @@ -158,32 +164,58 @@ Rooms allow for group-chat and the tools to manage multiple guests.

- +
- - + - - + + + + + + + + + + +
+ Room Name:
+ Password: - +
-
- -

- -
+ + + + Guests can only see the Director's video + +
+ + + + Preferred Video Codec + +
+ +

+ +

@@ -233,9 +264,9 @@ Video Source - +    - +
@@ -265,7 +296,7 @@
Audio Source(s) -
+