Skip to content

Instantly share code, notes, and snippets.

View modeswitch's full-sized avatar

Alan K modeswitch

  • Brainsights
  • Toronto
View GitHub Profile
@modeswitch
modeswitch / main.c
Created February 24, 2013 20:11
scan_example (ported)
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include "cmd_def.h"
@modeswitch
modeswitch / gist:9459595
Created March 10, 2014 04:42
FileSystem interface generation
var methods = [
'open',
'close',
'mkdir',
'rmdir',
'stat',
'fstat',
'link',
'unlink',
'read',
Filer Roadmap:
* ~~Support Brackets, and other applications~~
* Support for DropBox and other clouds
* Shared cross-domain storage and API
* DropBox clone that isn't in the cloud
* Proxy API for postMessage into an iframe
* JavaScript lib that you include which handles proxy communication
* HTML page that can be put in an iframe to give a common domain (filer.io)
* `<script src="https://filer.io/filesystem.js">` that 3rd parties can use to have a shared filesystem
diff --git a/services/cloudsync/CloudSync.js b/services/cloudsync/CloudSync.js
new file mode 100644
index 0000000..8bdff6b
--- /dev/null
+++ b/services/cloudsync/CloudSync.js
@@ -0,0 +1,71 @@
+/* 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/. */
+
Cu.import("resource://services-cloudsync/main.js");
let service = Cc["@mozilla.org/cloudsync/service;1"]
.getService(Components.interfaces.nsISupports)
.wrappedJSObject;
service.whenLoaded().then(() => {
// Cloudsync is ready, do work
CloudSync.Local.id; // local device id
Server running at http://0.0.0.0:9000/
/peer.html
/dist/wrtc.js
/peer.js
ws connected
WebRtc VoiceEngine codecs:
ISAC/16000/1 (103)
ISAC/32000/1 (104)
Warning(webrtcvoiceengine.cc:501): Unexpected codec: ISAC/48000/1 (105)
PCMU/8000/1 (0)
@modeswitch
modeswitch / gist:114c9bd55d800df242a2
Last active June 19, 2020 17:16
Building Node.js for Anddoid

Before you begin

Make sure you have adb installed and that it works. Test this by connecting your phone and running adb devices. In order to proceed past the build stage, your device must be rooted. The device I used is running Cyanogenmod with root enabled for both apps and adb.

Build

Fetch the Android NDK

You'll need to get the Android NDK. I used r8e, which you can get from here: http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86.tar.bz2. Make sure you get the x86 version, as the x86_64 version will not help you. Let's call the path where you unpack this NDK_PATH.

Importing the JS module

Cu.import("resource://gre/modules/CloudSync.jsm");
 
console.log(cloudSync); // Module is imported

cloudSync.local

var dgram = require('dgram');
var path = require('path');
var express = require('express');
var EventEmitter = require('events').EventEmitter;
var app = express();
var port = process.env.PORT = 9080;
var router = express.Router();
var socket = dgram.createSocket('udp4');
var scanEvents = new EventEmitter();
/* 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 test() {
let local = {};
Components.utils.import("resource://gre/modules/CloudSync.jsm", local);
Components.utils.import("resource:///modules/sessionstore/TabState.jsm", local);