(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 ); }());