Base del merge a tres bandas: git 0.9.5 de epsylon, esta rama y el src de la
APK oficial 1.3.1 (la variante movil: OASIS_MOBILE, regex sin \p{}, audio y
video de Android). Corre en el mismo nodejs-mobile 18.20.4 que ya usabamos.
Se conserva de la rama: Karvan, identidades y multicuenta, topbar y barra
inferior, borrado de EXIF sin sharp, filtro hot del foro, RTC sin STUN y los
modulos apagados en movil (wallet, banking, torrents).
Se toma de upstream lo que ya hace de serie: respuesta citada en chats, ssb-lan
en movil, configuracion en ~/.ssb/oasis (sobrevive a reinstalar el backend).
El asistente de bienvenida deja elegir workflow tambien en movil.
30 lines
782 B
JavaScript
30 lines
782 B
JavaScript
const fs = require('fs');
|
|
const net = require('net');
|
|
const path = require('path');
|
|
const { jpegSplitter } = require('./phone_module');
|
|
|
|
const MARKER = path.join(__dirname, '..', '..', '.audio_bridge');
|
|
|
|
const bridgePort = () => {
|
|
try {
|
|
const port = Number(String(fs.readFileSync(MARKER, 'utf8')).trim());
|
|
return Number.isFinite(port) && port > 0 ? port : 0;
|
|
} catch (_) {
|
|
return 0;
|
|
}
|
|
};
|
|
|
|
module.exports = () => {
|
|
const port = bridgePort();
|
|
if (!port) return null;
|
|
return {
|
|
capture(onJpeg) {
|
|
const sock = net.connect(port, '127.0.0.1');
|
|
sock.on('error', () => {});
|
|
sock.setNoDelay(true);
|
|
sock.write('V');
|
|
sock.on('data', jpegSplitter(onJpeg));
|
|
return { stop() { try { sock.destroy(); } catch (_) {} } };
|
|
}
|
|
};
|
|
};
|