Kaydet (Commit) 4fae09f7 authored tarafından Andrzej J.R. Hunt's avatar Andrzej J.R. Hunt

Complete slideshow control functions.

Change-Id: I093d1a06c6771a22fb804b302d573dbfa72aaf86
üst 6b3bca32
...@@ -17,13 +17,30 @@ ...@@ -17,13 +17,30 @@
console.info("Hello world"); console.info("Hello world");
} }
var mCommunicator; var mClient;
var mTransmitter;
</script> </script>
<script src="js/client.js"></script>
<script src="js/transmitter.js"></script> <script src="js/transmitter.js"></script>
</head> </head>
<body onLoad="init();"> <body onLoad="init();">
<button id="open_comm" onclick="mCommunicator = new Communicator('127.0.0.1');">Press to Connect (localhost)</button> <button id="open_comm" onclick="mClient = new Client('127.0.0.1'); mTransmitter = new Transmitter( mClient );">Press to Connect (localhost)</button>
<button id="transition_next" onclick="if (mCommunicator) mCommunicator.sendMessage('transition_next\n\n');">transition_next</button>
<br/><br/>
<button id="startPres" onclick="mTransmitter.startPresentation()">Start Presentation</button>
<button id="stopPres" onclick="mTransmitter.stopPresentation()">Stop Presentation</button>
<br/><br/>
<button id="next" onclick="mTransmitter.nextTransition()">Next</button>
<button id="previous" onclick="mTransmitter.previousTransition()">Previous</button>
<br/>
<button id="blank" onclick="mTransmitter.blankScreen()">Blank Screen</button>
<button id="resume" onclick="mTransmitter.resume()">Resume</button>
<br/>
<p>Current slide: <span id="current slide">---</span></p> <p>Current slide: <span id="current slide">---</span></p>
</body> </body>
</html> </html>
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function Client( aServerAddress ) {
var mReceiveBuffer = "";
var mCurrentMessage = [];
var mSocket;
// PUBLIC
this.sendMessage = function( aMessage ) {
mSocket.send( aMessage );
}
// PRIVATE
function processMessage( aMessage ) {
console.log( "Received message " + aMessage );
}
function dataReceived( aEvent ) {
mReceiveBuffer += aEvent.data;
var i;
while ( ( i = mReceiveBuffer.indexOf( '\n' ) ) != -1 ) {
var aLine = mReceiveBuffer.substring( 0, i );
mReceiveBuffer = mReceiveBuffer.substring( i+1 );
if ( aLine.length > 0 ) {
mCurrentMessage.push( aLine );
} else {
processMessage( mCurrentMessage );
mCurrentMessage = [];
}
aLine = "";
}
}
// CONSTRUCTOR
if( navigator.mozTCPSocket ) {
mSocket = navigator.mozTCPSocket.open( "localhost", 1599 );
mSocket.onopen = function( aEvent ) {
console.log( "Received onopen" );
mSocket.send( "LO_SERVER_CLIENT_PAIR\nFirefox OS\n1234\n\n" );
}
mSocket.onerror = function( aEvent ) {
console.log( "Received error: " + aEvent.data );
}
mSocket.ondata = dataReceived;
} else {
console.log( "Can't access socket." );
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
...@@ -6,52 +6,40 @@ ...@@ -6,52 +6,40 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
function Communicator( aServerAddress ) { function Transmitter( aClient ) {
var mReceiveBuffer = ""; var mClient = aClient;
var mCurrentMessage = [];
var mSocket; this.nextTransition = function() {
mClient.sendMessage( "transition_next\n\n" );
// PUBLIC }
this.sendMessage = function( aMessage ) {
mSocket.send( aMessage ); this.previousTransition = function() {
} mClient.sendMessage( "transition_previous\n\n" );
}
// PRIVATE
function processMessage( aMessage ) { this.gotoSlide = function( aSlide ) {
console.log( "Received message " + aMessage ); mClient.sendMessage( "goto_slide\n" + aSlide + "\n\n" );
} }
function dataReceived( aEvent ) { this.blankScreen = function() {
mReceiveBuffer += aEvent.data; mClient.sendMessage( "presentation_blank_screen\n\n" );
var i;
while ( ( i = mReceiveBuffer.indexOf( '\n' ) ) != -1 ) {
var aLine = mReceiveBuffer.substring( 0, i );
mReceiveBuffer = mReceiveBuffer.substring( i+1 );
if ( aLine.length > 0 ) {
mCurrentMessage.push( aLine );
} else {
processMessage( mCurrentMessage );
mCurrentMessage = [];
}
aLine = "";
}
}
// CONSTRUCTOR
if( navigator.mozTCPSocket ) {
mSocket = navigator.mozTCPSocket.open( "localhost", 1599 );
mSocket.onopen = function( aEvent ) {
console.log( "Received onopen" );
mSocket.send( "LO_SERVER_CLIENT_PAIR\nFirefox OS\n1234\n\n" );
}
mSocket.onerror = function( aEvent ) {
console.log( "Received error: " + aEvent.data );
}
mSocket.ondata = dataReceived;
} else {
console.log( "Can't access socket." );
} }
this.blankScreen = function( aColor ) {
mClient.sendMessage( "presentation_blank_screen\n" + aColor + "\n\n" );
}
this.resume = function() {
mClient.sendMessage( "presentation_resume\n\n" );
}
this.startPresentation = function() {
mClient.sendMessage( "presentation_start\n\n" );
}
this.stopPresentation = function() {
mClient.sendMessage( "presentation_stop\n\n" );
}
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment