Basic Firefox OS Impress Remote.

Change-Id: Icb62af55a9d117627794852971a20542db51424c
This commit is contained in:
Andrzej J.R. Hunt 2013-04-11 18:17:30 +01:00
parent 763011690b
commit 6b3bca3218
3 changed files with 112 additions and 0 deletions

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<!--
* 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/.
*
-->
<html>
<head>
<title>SDRemote Firefox OS Demo</title>
<!--<meta name="viewport" content="width=device-width" />-->
<script>
function init() {
console.info("Hello world");
}
var mCommunicator;
</script>
<script src="js/transmitter.js"></script>
</head>
<body onLoad="init();">
<button id="open_comm" onclick="mCommunicator = new Communicator('127.0.0.1');">Press to Connect (localhost)</button>
<button id="transition_next" onclick="if (mCommunicator) mCommunicator.sendMessage('transition_next\n\n');">transition_next</button>
<p>Current slide: <span id="current slide">---</span></p>
</body>
</html>

View file

@ -0,0 +1,57 @@
/* -*- 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 Communicator( 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: */

View file

@ -0,0 +1,26 @@
{
"name": "Impress Remote",
"description": "Remote control for LibreOffice Impress slideshows.",
"launch_path": "/index.html",
"developer": {
"name": "The Document Foundation",
"url": "http://www.libreoffice.org"
},
"icons": {
"16": "/img/icon16.png",
"32": "/img/icon32.png",
"48": "/img/icon48.png",
"64": "/img/icon64.png",
"128": "/img/icon128.png"
},
"default_locale": "en",
"type": "certified",
"permissions": {
"tcp-socket": {
"description": "Required to connect to LO server using wifi."
},
"bluetooth": {
"description": "Required to connect to LO server using bluetooth."
}
}
}