mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-30 07:42:23 +02:00
Pass WebSocket data without additional signal connection
This commit is contained in:
@@ -251,6 +251,21 @@ class ClapperPlayer extends PlayerBase
|
|||||||
this[action]();
|
this[action]();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
receiveWs(action, value)
|
||||||
|
{
|
||||||
|
switch(action) {
|
||||||
|
case 'toggle_play':
|
||||||
|
case 'play':
|
||||||
|
case 'pause':
|
||||||
|
case 'set_media':
|
||||||
|
this[action](value);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
super.receiveWs(action, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_setHideCursorTimeout()
|
_setHideCursorTimeout()
|
||||||
{
|
{
|
||||||
this._clearTimeout('hideCursor');
|
this._clearTimeout('hideCursor');
|
||||||
@@ -642,21 +657,6 @@ class ClapperPlayer extends PlayerBase
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWsData(server, action, value)
|
|
||||||
{
|
|
||||||
switch(action) {
|
|
||||||
case 'toggle_play':
|
|
||||||
case 'play':
|
|
||||||
case 'pause':
|
|
||||||
case 'set_media':
|
|
||||||
this[action](value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
super._onWsData(server, action, value);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
_onCloseRequest(window)
|
_onCloseRequest(window)
|
||||||
{
|
{
|
||||||
this._performCloseCleanup(window);
|
this._performCloseCleanup(window);
|
||||||
|
@@ -69,7 +69,6 @@ class ClapperPlayerBase extends GstPlayer.Player
|
|||||||
this.visualization_enabled = false;
|
this.visualization_enabled = false;
|
||||||
|
|
||||||
this.webserver = null;
|
this.webserver = null;
|
||||||
this.websocketSignal = null;
|
|
||||||
|
|
||||||
this.set_all_plugins_ranks();
|
this.set_all_plugins_ranks();
|
||||||
this.set_initial_config();
|
this.set_initial_config();
|
||||||
@@ -189,7 +188,7 @@ class ClapperPlayerBase extends GstPlayer.Player
|
|||||||
this.webserver.sendMessage({ action, value });
|
this.webserver.sendMessage({ action, value });
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWsData(server, action, value)
|
receiveWs(action, value)
|
||||||
{
|
{
|
||||||
debug(`unhandled WebSocket action: ${action}`);
|
debug(`unhandled WebSocket action: ${action}`);
|
||||||
}
|
}
|
||||||
@@ -300,16 +299,9 @@ class ClapperPlayerBase extends GstPlayer.Player
|
|||||||
this.webserver = new WebServer(settings.get_int('webserver-port'));
|
this.webserver = new WebServer(settings.get_int('webserver-port'));
|
||||||
|
|
||||||
this.webserver.startListening();
|
this.webserver.startListening();
|
||||||
|
this.webserver.passMsgData = this.receiveWs.bind(this);
|
||||||
if(!this.websocketSignal) {
|
|
||||||
this.websocketSignal = this.webserver.connect(
|
|
||||||
'websocket-data', this._onWsData.bind(this)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(this.webserver) {
|
else if(this.webserver) {
|
||||||
this.webserver.disconnect(this.websocketSignal);
|
|
||||||
this.websocketSignal = null;
|
|
||||||
this.webserver.stopListening();
|
this.webserver.stopListening();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@@ -4,17 +4,8 @@ const Debug = imports.clapper_src.debug;
|
|||||||
|
|
||||||
let { debug } = Debug;
|
let { debug } = Debug;
|
||||||
|
|
||||||
var WebServer = GObject.registerClass({
|
var WebServer = GObject.registerClass(
|
||||||
Signals: {
|
class ClapperWebServer extends Soup.Server
|
||||||
'websocket-data': {
|
|
||||||
flags: GObject.SignalFlags.RUN_FIRST,
|
|
||||||
param_types: [
|
|
||||||
GObject.TYPE_STRING,
|
|
||||||
GObject.TYPE_INT || GObject.TYPE_STRING
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, class ClapperWebServer extends Soup.Server
|
|
||||||
{
|
{
|
||||||
_init(port)
|
_init(port)
|
||||||
{
|
{
|
||||||
@@ -96,6 +87,10 @@ var WebServer = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
passMsgData(action, value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
_closeCleanup()
|
_closeCleanup()
|
||||||
{
|
{
|
||||||
while(this.wsConns.length) {
|
while(this.wsConns.length) {
|
||||||
@@ -140,7 +135,7 @@ var WebServer = GObject.registerClass({
|
|||||||
if(!parsedMsg || !parsedMsg.action)
|
if(!parsedMsg || !parsedMsg.action)
|
||||||
return debug('no "action" in parsed WebSocket message');
|
return debug('no "action" in parsed WebSocket message');
|
||||||
|
|
||||||
this.emit('websocket-data', parsedMsg.action, parsedMsg.value || 0);
|
this.passMsgData(parsedMsg.action, parsedMsg.value || 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWsClosed(connection)
|
_onWsClosed(connection)
|
||||||
|
Reference in New Issue
Block a user