From 6b3bca32186a59cc3632d3f6eb7f329b739e75b0 Mon Sep 17 00:00:00 2001 From: "Andrzej J.R. Hunt" Date: Thu, 11 Apr 2013 18:17:30 +0100 Subject: [PATCH] Basic Firefox OS Impress Remote. Change-Id: Icb62af55a9d117627794852971a20542db51424c --- firefoxos/sdremote/index.html | 29 ++++++++++++++ firefoxos/sdremote/js/transmitter.js | 57 ++++++++++++++++++++++++++++ firefoxos/sdremote/manifest.webapp | 26 +++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 firefoxos/sdremote/index.html create mode 100644 firefoxos/sdremote/js/transmitter.js create mode 100644 firefoxos/sdremote/manifest.webapp diff --git a/firefoxos/sdremote/index.html b/firefoxos/sdremote/index.html new file mode 100644 index 000000000000..4d07d6eac458 --- /dev/null +++ b/firefoxos/sdremote/index.html @@ -0,0 +1,29 @@ + + + + + SDRemote Firefox OS Demo + + + + + + + + +

Current slide: ---

+ + diff --git a/firefoxos/sdremote/js/transmitter.js b/firefoxos/sdremote/js/transmitter.js new file mode 100644 index 000000000000..b22b2706b364 --- /dev/null +++ b/firefoxos/sdremote/js/transmitter.js @@ -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: */ \ No newline at end of file diff --git a/firefoxos/sdremote/manifest.webapp b/firefoxos/sdremote/manifest.webapp new file mode 100644 index 000000000000..a63e399a776b --- /dev/null +++ b/firefoxos/sdremote/manifest.webapp @@ -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." + } + } +} \ No newline at end of file