Basic Firefox OS Impress Remote.
Change-Id: Icb62af55a9d117627794852971a20542db51424c
This commit is contained in:
parent
763011690b
commit
6b3bca3218
3 changed files with 112 additions and 0 deletions
29
firefoxos/sdremote/index.html
Normal file
29
firefoxos/sdremote/index.html
Normal 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>
|
57
firefoxos/sdremote/js/transmitter.js
Normal file
57
firefoxos/sdremote/js/transmitter.js
Normal 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: */
|
26
firefoxos/sdremote/manifest.webapp
Normal file
26
firefoxos/sdremote/manifest.webapp
Normal 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."
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue