123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /* global APP */
- const logger = require("jitsi-meet-logger").getLogger(__filename);
- import {REMOTE_CONTROL_EVENT_TYPE}
- from "../../service/remotecontrol/Constants";
-
- export default class RemoteControlParticipant {
- /**
- * Creates new instance.
- */
- constructor() {
- this.enabled = false;
- }
-
- /**
- * Enables / Disables the remote control
- * @param {boolean} enabled the new state.
- */
- enable(enabled) {
- this.enabled = enabled;
- }
-
- /**
- * Sends remote control event to other participant trough data channel.
- * @param {RemoteControlEvent} event the remote control event.
- * @param {Function} onDataChannelFail handler for data channel failure.
- */
- _sendRemoteControlEvent(to, event, onDataChannelFail = () => {}) {
- if(!this.enabled || !to) {
- logger.warn("Remote control: Skip sending remote control event."
- + " Params:", this.enable, to);
- return;
- }
- try{
- APP.conference.sendEndpointMessage(to,
- {type: REMOTE_CONTROL_EVENT_TYPE, event});
- } catch (e) {
- logger.error("Failed to send EndpointMessage via the datachannels",
- e);
- onDataChannelFail(e);
- }
- }
- }
|