matrix-react-sdk
Version:
SDK for matrix.org using React
100 lines (84 loc) • 11 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _SettingsStore = _interopRequireDefault(require("./settings/SettingsStore"));
var _SettingLevel = require("./settings/SettingLevel");
var _matrix = require("matrix-js-sdk/src/matrix");
/*
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var _default = {
hasAnyLabeledDevices: async function () {
const devices = await navigator.mediaDevices.enumerateDevices();
return devices.some(d => !!d.label);
},
getDevices: function () {
// Only needed for Electron atm, though should work in modern browsers
// once permission has been granted to the webapp
return navigator.mediaDevices.enumerateDevices().then(function (devices) {
const audiooutput = [];
const audioinput = [];
const videoinput = [];
devices.forEach(device => {
switch (device.kind) {
case 'audiooutput':
audiooutput.push(device);
break;
case 'audioinput':
audioinput.push(device);
break;
case 'videoinput':
videoinput.push(device);
break;
}
}); // console.log("Loaded WebRTC Devices", mediaDevices);
return {
audiooutput,
audioinput,
videoinput
};
}, error => {
console.log('Unable to refresh WebRTC Devices: ', error);
});
},
loadDevices: function () {
const audioDeviceId = _SettingsStore.default.getValue("webrtc_audioinput");
const videoDeviceId = _SettingsStore.default.getValue("webrtc_videoinput");
(0, _matrix.setMatrixCallAudioInput)(audioDeviceId);
(0, _matrix.setMatrixCallVideoInput)(videoDeviceId);
},
setAudioOutput: function (deviceId) {
_SettingsStore.default.setValue("webrtc_audiooutput", null, _SettingLevel.SettingLevel.DEVICE, deviceId);
},
setAudioInput: function (deviceId) {
_SettingsStore.default.setValue("webrtc_audioinput", null, _SettingLevel.SettingLevel.DEVICE, deviceId);
(0, _matrix.setMatrixCallAudioInput)(deviceId);
},
setVideoInput: function (deviceId) {
_SettingsStore.default.setValue("webrtc_videoinput", null, _SettingLevel.SettingLevel.DEVICE, deviceId);
(0, _matrix.setMatrixCallVideoInput)(deviceId);
},
getAudioOutput: function () {
return _SettingsStore.default.getValueAt(_SettingLevel.SettingLevel.DEVICE, "webrtc_audiooutput");
},
getAudioInput: function () {
return _SettingsStore.default.getValueAt(_SettingLevel.SettingLevel.DEVICE, "webrtc_audioinput");
},
getVideoInput: function () {
return _SettingsStore.default.getValueAt(_SettingLevel.SettingLevel.DEVICE, "webrtc_videoinput");
}
};
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9DYWxsTWVkaWFIYW5kbGVyLmpzIl0sIm5hbWVzIjpbImhhc0FueUxhYmVsZWREZXZpY2VzIiwiZGV2aWNlcyIsIm5hdmlnYXRvciIsIm1lZGlhRGV2aWNlcyIsImVudW1lcmF0ZURldmljZXMiLCJzb21lIiwiZCIsImxhYmVsIiwiZ2V0RGV2aWNlcyIsInRoZW4iLCJhdWRpb291dHB1dCIsImF1ZGlvaW5wdXQiLCJ2aWRlb2lucHV0IiwiZm9yRWFjaCIsImRldmljZSIsImtpbmQiLCJwdXNoIiwiZXJyb3IiLCJjb25zb2xlIiwibG9nIiwibG9hZERldmljZXMiLCJhdWRpb0RldmljZUlkIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwidmlkZW9EZXZpY2VJZCIsInNldEF1ZGlvT3V0cHV0IiwiZGV2aWNlSWQiLCJzZXRWYWx1ZSIsIlNldHRpbmdMZXZlbCIsIkRFVklDRSIsInNldEF1ZGlvSW5wdXQiLCJzZXRWaWRlb0lucHV0IiwiZ2V0QXVkaW9PdXRwdXQiLCJnZXRWYWx1ZUF0IiwiZ2V0QXVkaW9JbnB1dCIsImdldFZpZGVvSW5wdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWdCQTs7QUFDQTs7QUFDQTs7QUFsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO2VBTWU7QUFDWEEsRUFBQUEsb0JBQW9CLEVBQUUsa0JBQWlCO0FBQ25DLFVBQU1DLE9BQU8sR0FBRyxNQUFNQyxTQUFTLENBQUNDLFlBQVYsQ0FBdUJDLGdCQUF2QixFQUF0QjtBQUNBLFdBQU9ILE9BQU8sQ0FBQ0ksSUFBUixDQUFhQyxDQUFDLElBQUksQ0FBQyxDQUFDQSxDQUFDLENBQUNDLEtBQXRCLENBQVA7QUFDSCxHQUpVO0FBTVhDLEVBQUFBLFVBQVUsRUFBRSxZQUFXO0FBQ25CO0FBQ0E7QUFDQSxXQUFPTixTQUFTLENBQUNDLFlBQVYsQ0FBdUJDLGdCQUF2QixHQUEwQ0ssSUFBMUMsQ0FBK0MsVUFBU1IsT0FBVCxFQUFrQjtBQUNwRSxZQUFNUyxXQUFXLEdBQUcsRUFBcEI7QUFDQSxZQUFNQyxVQUFVLEdBQUcsRUFBbkI7QUFDQSxZQUFNQyxVQUFVLEdBQUcsRUFBbkI7QUFFQVgsTUFBQUEsT0FBTyxDQUFDWSxPQUFSLENBQWlCQyxNQUFELElBQVk7QUFDeEIsZ0JBQVFBLE1BQU0sQ0FBQ0MsSUFBZjtBQUNJLGVBQUssYUFBTDtBQUFvQkwsWUFBQUEsV0FBVyxDQUFDTSxJQUFaLENBQWlCRixNQUFqQjtBQUEwQjs7QUFDOUMsZUFBSyxZQUFMO0FBQW1CSCxZQUFBQSxVQUFVLENBQUNLLElBQVgsQ0FBZ0JGLE1BQWhCO0FBQXlCOztBQUM1QyxlQUFLLFlBQUw7QUFBbUJGLFlBQUFBLFVBQVUsQ0FBQ0ksSUFBWCxDQUFnQkYsTUFBaEI7QUFBeUI7QUFIaEQ7QUFLSCxPQU5ELEVBTG9FLENBYXBFOztBQUNBLGFBQU87QUFDSEosUUFBQUEsV0FERztBQUVIQyxRQUFBQSxVQUZHO0FBR0hDLFFBQUFBO0FBSEcsT0FBUDtBQUtILEtBbkJNLEVBbUJISyxLQUFELElBQVc7QUFBRUMsTUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksb0NBQVosRUFBa0RGLEtBQWxEO0FBQTJELEtBbkJwRSxDQUFQO0FBb0JILEdBN0JVO0FBK0JYRyxFQUFBQSxXQUFXLEVBQUUsWUFBVztBQUNwQixVQUFNQyxhQUFhLEdBQUdDLHVCQUFjQyxRQUFkLENBQXVCLG1CQUF2QixDQUF0Qjs7QUFDQSxVQUFNQyxhQUFhLEdBQUdGLHVCQUFjQyxRQUFkLENBQXVCLG1CQUF2QixDQUF0Qjs7QUFFQSx5Q0FBd0JGLGFBQXhCO0FBQ0EseUNBQXdCRyxhQUF4QjtBQUNILEdBckNVO0FBdUNYQyxFQUFBQSxjQUFjLEVBQUUsVUFBU0MsUUFBVCxFQUFtQjtBQUMvQkosMkJBQWNLLFFBQWQsQ0FBdUIsb0JBQXZCLEVBQTZDLElBQTdDLEVBQW1EQywyQkFBYUMsTUFBaEUsRUFBd0VILFFBQXhFO0FBQ0gsR0F6Q1U7QUEyQ1hJLEVBQUFBLGFBQWEsRUFBRSxVQUFTSixRQUFULEVBQW1CO0FBQzlCSiwyQkFBY0ssUUFBZCxDQUF1QixtQkFBdkIsRUFBNEMsSUFBNUMsRUFBa0RDLDJCQUFhQyxNQUEvRCxFQUF1RUgsUUFBdkU7O0FBQ0EseUNBQXdCQSxRQUF4QjtBQUNILEdBOUNVO0FBZ0RYSyxFQUFBQSxhQUFhLEVBQUUsVUFBU0wsUUFBVCxFQUFtQjtBQUM5QkosMkJBQWNLLFFBQWQsQ0FBdUIsbUJBQXZCLEVBQTRDLElBQTVDLEVBQWtEQywyQkFBYUMsTUFBL0QsRUFBdUVILFFBQXZFOztBQUNBLHlDQUF3QkEsUUFBeEI7QUFDSCxHQW5EVTtBQXFEWE0sRUFBQUEsY0FBYyxFQUFFLFlBQVc7QUFDdkIsV0FBT1YsdUJBQWNXLFVBQWQsQ0FBeUJMLDJCQUFhQyxNQUF0QyxFQUE4QyxvQkFBOUMsQ0FBUDtBQUNILEdBdkRVO0FBeURYSyxFQUFBQSxhQUFhLEVBQUUsWUFBVztBQUN0QixXQUFPWix1QkFBY1csVUFBZCxDQUF5QkwsMkJBQWFDLE1BQXRDLEVBQThDLG1CQUE5QyxDQUFQO0FBQ0gsR0EzRFU7QUE2RFhNLEVBQUFBLGFBQWEsRUFBRSxZQUFXO0FBQ3RCLFdBQU9iLHVCQUFjVyxVQUFkLENBQXlCTCwyQkFBYUMsTUFBdEMsRUFBOEMsbUJBQTlDLENBQVA7QUFDSDtBQS9EVSxDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBDb3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCBTZXR0aW5nc1N0b3JlIGZyb20gXCIuL3NldHRpbmdzL1NldHRpbmdzU3RvcmVcIjtcbmltcG9ydCB7U2V0dGluZ0xldmVsfSBmcm9tIFwiLi9zZXR0aW5ncy9TZXR0aW5nTGV2ZWxcIjtcbmltcG9ydCB7c2V0TWF0cml4Q2FsbEF1ZGlvSW5wdXQsIHNldE1hdHJpeENhbGxWaWRlb0lucHV0fSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBoYXNBbnlMYWJlbGVkRGV2aWNlczogYXN5bmMgZnVuY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTtcbiAgICAgICAgcmV0dXJuIGRldmljZXMuc29tZShkID0+ICEhZC5sYWJlbCk7XG4gICAgfSxcblxuICAgIGdldERldmljZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBPbmx5IG5lZWRlZCBmb3IgRWxlY3Ryb24gYXRtLCB0aG91Z2ggc2hvdWxkIHdvcmsgaW4gbW9kZXJuIGJyb3dzZXJzXG4gICAgICAgIC8vIG9uY2UgcGVybWlzc2lvbiBoYXMgYmVlbiBncmFudGVkIHRvIHRoZSB3ZWJhcHBcbiAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpLnRoZW4oZnVuY3Rpb24oZGV2aWNlcykge1xuICAgICAgICAgICAgY29uc3QgYXVkaW9vdXRwdXQgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGF1ZGlvaW5wdXQgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IHZpZGVvaW5wdXQgPSBbXTtcblxuICAgICAgICAgICAgZGV2aWNlcy5mb3JFYWNoKChkZXZpY2UpID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRldmljZS5raW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2F1ZGlvb3V0cHV0JzogYXVkaW9vdXRwdXQucHVzaChkZXZpY2UpOyBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYXVkaW9pbnB1dCc6IGF1ZGlvaW5wdXQucHVzaChkZXZpY2UpOyBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndmlkZW9pbnB1dCc6IHZpZGVvaW5wdXQucHVzaChkZXZpY2UpOyBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJMb2FkZWQgV2ViUlRDIERldmljZXNcIiwgbWVkaWFEZXZpY2VzKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYXVkaW9vdXRwdXQsXG4gICAgICAgICAgICAgICAgYXVkaW9pbnB1dCxcbiAgICAgICAgICAgICAgICB2aWRlb2lucHV0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7IGNvbnNvbGUubG9nKCdVbmFibGUgdG8gcmVmcmVzaCBXZWJSVEMgRGV2aWNlczogJywgZXJyb3IpOyB9KTtcbiAgICB9LFxuXG4gICAgbG9hZERldmljZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICBjb25zdCBhdWRpb0RldmljZUlkID0gU2V0dGluZ3NTdG9yZS5nZXRWYWx1ZShcIndlYnJ0Y19hdWRpb2lucHV0XCIpO1xuICAgICAgICBjb25zdCB2aWRlb0RldmljZUlkID0gU2V0dGluZ3NTdG9yZS5nZXRWYWx1ZShcIndlYnJ0Y192aWRlb2lucHV0XCIpO1xuXG4gICAgICAgIHNldE1hdHJpeENhbGxBdWRpb0lucHV0KGF1ZGlvRGV2aWNlSWQpO1xuICAgICAgICBzZXRNYXRyaXhDYWxsVmlkZW9JbnB1dCh2aWRlb0RldmljZUlkKTtcbiAgICB9LFxuXG4gICAgc2V0QXVkaW9PdXRwdXQ6IGZ1bmN0aW9uKGRldmljZUlkKSB7XG4gICAgICAgIFNldHRpbmdzU3RvcmUuc2V0VmFsdWUoXCJ3ZWJydGNfYXVkaW9vdXRwdXRcIiwgbnVsbCwgU2V0dGluZ0xldmVsLkRFVklDRSwgZGV2aWNlSWQpO1xuICAgIH0sXG5cbiAgICBzZXRBdWRpb0lucHV0OiBmdW5jdGlvbihkZXZpY2VJZCkge1xuICAgICAgICBTZXR0aW5nc1N0b3JlLnNldFZhbHVlKFwid2VicnRjX2F1ZGlvaW5wdXRcIiwgbnVsbCwgU2V0dGluZ0xldmVsLkRFVklDRSwgZGV2aWNlSWQpO1xuICAgICAgICBzZXRNYXRyaXhDYWxsQXVkaW9JbnB1dChkZXZpY2VJZCk7XG4gICAgfSxcblxuICAgIHNldFZpZGVvSW5wdXQ6IGZ1bmN0aW9uKGRldmljZUlkKSB7XG4gICAgICAgIFNldHRpbmdzU3RvcmUuc2V0VmFsdWUoXCJ3ZWJydGNfdmlkZW9pbnB1dFwiLCBudWxsLCBTZXR0aW5nTGV2ZWwuREVWSUNFLCBkZXZpY2VJZCk7XG4gICAgICAgIHNldE1hdHJpeENhbGxWaWRlb0lucHV0KGRldmljZUlkKTtcbiAgICB9LFxuXG4gICAgZ2V0QXVkaW9PdXRwdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU2V0dGluZ3NTdG9yZS5nZXRWYWx1ZUF0KFNldHRpbmdMZXZlbC5ERVZJQ0UsIFwid2VicnRjX2F1ZGlvb3V0cHV0XCIpO1xuICAgIH0sXG5cbiAgICBnZXRBdWRpb0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNldHRpbmdzU3RvcmUuZ2V0VmFsdWVBdChTZXR0aW5nTGV2ZWwuREVWSUNFLCBcIndlYnJ0Y19hdWRpb2lucHV0XCIpO1xuICAgIH0sXG5cbiAgICBnZXRWaWRlb0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNldHRpbmdzU3RvcmUuZ2V0VmFsdWVBdChTZXR0aW5nTGV2ZWwuREVWSUNFLCBcIndlYnJ0Y192aWRlb2lucHV0XCIpO1xuICAgIH0sXG59O1xuIl19