summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej J.R. Hunt <andrzej@ahunt.org>2013-04-11 18:17:30 +0100
committerAndrzej J.R. Hunt <andrzej@ahunt.org>2013-04-11 18:17:30 +0100
commit6b3bca32186a59cc3632d3f6eb7f329b739e75b0 (patch)
tree9c8e6dabfe9bea7d4347c7905b097c0e0926ec71
parent763011690b18cdf47cb23125c98a5bfa5d17b2d6 (diff)
Basic Firefox OS Impress Remote.
Change-Id: Icb62af55a9d117627794852971a20542db51424c
-rw-r--r--firefoxos/sdremote/index.html29
-rw-r--r--firefoxos/sdremote/js/transmitter.js57
-rw-r--r--firefoxos/sdremote/manifest.webapp26
3 files changed, 112 insertions, 0 deletions
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 @@
+<!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>
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