summaryrefslogtreecommitdiff
path: root/reveal.js-2.6.2/plugin/multiplex/master.js
diff options
context:
space:
mode:
Diffstat (limited to 'reveal.js-2.6.2/plugin/multiplex/master.js')
-rw-r--r--reveal.js-2.6.2/plugin/multiplex/master.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/reveal.js-2.6.2/plugin/multiplex/master.js b/reveal.js-2.6.2/plugin/multiplex/master.js
new file mode 100644
index 0000000..b6a7eb7
--- /dev/null
+++ b/reveal.js-2.6.2/plugin/multiplex/master.js
@@ -0,0 +1,51 @@
+(function() {
+ // Don't emit events from inside of notes windows
+ if ( window.location.search.match( /receiver/gi ) ) { return; }
+
+ var multiplex = Reveal.getConfig().multiplex;
+
+ var socket = io.connect(multiplex.url);
+
+ var notify = function( slideElement, indexh, indexv, origin ) {
+ if( typeof origin === 'undefined' && origin !== 'remote' ) {
+ var nextindexh;
+ var nextindexv;
+
+ var fragmentindex = Reveal.getIndices().f;
+ if (typeof fragmentindex == 'undefined') {
+ fragmentindex = 0;
+ }
+
+ if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
+ nextindexh = indexh;
+ nextindexv = indexv + 1;
+ } else {
+ nextindexh = indexh + 1;
+ nextindexv = 0;
+ }
+
+ var slideData = {
+ indexh : indexh,
+ indexv : indexv,
+ indexf : fragmentindex,
+ nextindexh : nextindexh,
+ nextindexv : nextindexv,
+ secret: multiplex.secret,
+ socketId : multiplex.id
+ };
+
+ socket.emit('slidechanged', slideData);
+ }
+ }
+
+ Reveal.addEventListener( 'slidechanged', function( event ) {
+ notify( event.currentSlide, event.indexh, event.indexv, event.origin );
+ } );
+
+ var fragmentNotify = function( event ) {
+ notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
+ };
+
+ Reveal.addEventListener( 'fragmentshown', fragmentNotify );
+ Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
+}()); \ No newline at end of file