From c2a0bf2f452d0d64a8b1fbf88e4f7d91ed2901c7 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Mon, 28 Feb 2022 17:38:29 +0700 Subject: [PATCH] add metadata support --- src/main/base/castcontroller.js | 24 ++++++++++++++++++++++++ src/main/base/castreceiver.js | 8 +++++++- src/main/plugins/chromecast.ts | 4 ++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/base/castcontroller.js diff --git a/src/main/base/castcontroller.js b/src/main/base/castcontroller.js new file mode 100644 index 00000000..d6f3319d --- /dev/null +++ b/src/main/base/castcontroller.js @@ -0,0 +1,24 @@ +var util = require('util'); +var castv2Cli = require('castv2-client'); +var RequestResponseController = castv2Cli.RequestResponseController; + +function CiderCastController(client, sourceId, destinationId) { + RequestResponseController.call(this, client, sourceId, destinationId, 'urn:x-cast:com.ciderapp.customdata'); + this.once('close', onclose); + var self = this; + function onclose() { + self.stop(); + } +} + +util.inherits(CiderCastController, RequestResponseController); + +CiderCastController.prototype.sendIp = function(ip) { + // TODO: Implement Callback + let data = { + ip : ip + } + this.request(data); +}; + +module.exports = CiderCastController; \ No newline at end of file diff --git a/src/main/base/castreceiver.js b/src/main/base/castreceiver.js index 932ec2ce..05d06563 100644 --- a/src/main/base/castreceiver.js +++ b/src/main/base/castreceiver.js @@ -3,11 +3,13 @@ var util = require('util'); // var debug = require('debug')('castv2-client'); var Application = require('castv2-client').Application; var MediaController = require('castv2-client').MediaController; +var CiderCastController = require('./castcontroller'); function CiderReceiver(client, session) { Application.apply(this, arguments); this.media = this.createController(MediaController); + this.mediaReceiver = this.createController(CiderCastController); this.media.on('status', onstatus); @@ -18,7 +20,7 @@ function CiderReceiver(client, session) { } } - +// FE96A351 CiderReceiver.APP_ID = '27E1334F'; util.inherits(CiderReceiver, Application); @@ -67,4 +69,8 @@ CiderReceiver.prototype.queueUpdate = function(items, callback) { this.media.queueUpdate.apply(this.media, arguments); }; +CiderReceiver.prototype.sendIp = function(opts){ + this.mediaReceiver.sendIp.apply(this.mediaReceiver, arguments); +}; + module.exports = CiderReceiver; diff --git a/src/main/plugins/chromecast.ts b/src/main/plugins/chromecast.ts index bec3d02f..34e48c48 100644 --- a/src/main/plugins/chromecast.ts +++ b/src/main/plugins/chromecast.ts @@ -178,6 +178,10 @@ export default class ChromecastPlugin { client.stepInterval = status.volume.stepInterval; } }) + + // send websocket ip + + player.sendIp("ws://"+this.getIp()+":26369"); }); }