playercast
Version:
Cast to media player and control playback remotely
50 lines (38 loc) • 839 B
JavaScript
const CecController = require('cec-controller');
var resolved = false;
module.exports = () =>
{
return new Promise((resolve, reject) =>
{
const osdName = 'Playercast';
var events = new CecController({ osdString: osdName });
const onReady = (ctl) =>
{
if(resolved) return;
resolved = true;
if(!ctl.hasOwnProperty('dev0'))
return resolve(null);
var hdmi = null;
for(var key in ctl)
{
if(typeof ctl[key] !== 'object')
continue;
if(ctl[key].osdString === osdName)
{
var port = ctl[key].address.split('.')[0];
hdmi = (isNaN(port)) ? null : port;
break;
}
}
resolve({ events, ctl, hdmi });
}
const onError = (err) =>
{
if(resolved) return;
resolved = true;
resolve(null);
}
events.on('ready', onReady);
events.on('error', onError);
});
}