diff --git a/app/config.js b/app/config.js index 23b8fec..aec321d 100644 --- a/app/config.js +++ b/app/config.js @@ -11,6 +11,17 @@ window.mumbleWebConfig = { 'username': true, 'password': true }, + // Default values for user settings + // You can see your current value by typing `localStorage.getItem('mumble.$setting')` in the web console. + 'settings': { + 'voiceMode': 'vad', // one of 'cont' (Continuous), 'ptt' (Push-to-Talk), 'vad' (Voice Activity Detection) + 'pttKey': 'ctrl + shift', + 'vadLevel': 0.3, + 'toolbarVertical': false, + 'showAvatars': 'always', // one of 'always', 'own_channel', 'linked_channel', 'minimal_only', 'never' + 'audioBitrate': 40000, // bits per second + 'samplesPerPacket': 960 + }, // Default values (can be changed by passing a query parameter of the same name) 'defaults': { // Connect Dialog diff --git a/app/index.js b/app/index.js index e25c748..7f03484 100644 --- a/app/index.js +++ b/app/index.js @@ -167,7 +167,7 @@ class SettingsDialog { if (this._testVad) { this._testVad.end() } - let dummySettings = new Settings() + let dummySettings = new Settings({}) this.applyTo(dummySettings) this._testVad = new VADVoiceHandler(null, dummySettings) this._testVad.on('started_talking', () => this.testVadActive(true)) @@ -236,15 +236,15 @@ class SettingsDialog { } class Settings { - constructor () { + constructor (defaults) { const load = key => window.localStorage.getItem('mumble.' + key) - this.voiceMode = load('voiceMode') || 'vad' - this.pttKey = load('pttKey') || 'ctrl + shift' - this.vadLevel = load('vadLevel') || 0.3 - this.toolbarVertical = load('toolbarVertical') || false - this.showAvatars = ko.observable(load('showAvatars') || 'always') - this.audioBitrate = Number(load('audioBitrate')) || 40000 - this.samplesPerPacket = Number(load('samplesPerPacket')) || 960 + this.voiceMode = load('voiceMode') || defaults.voiceMode + this.pttKey = load('pttKey') || defaults.pttKey + this.vadLevel = load('vadLevel') || defaults.vadLevel + this.toolbarVertical = load('toolbarVertical') || defaults.toolbarVertical + this.showAvatars = ko.observable(load('showAvatars') || defaults.showAvatars) + this.audioBitrate = Number(load('audioBitrate')) || defaults.audioBitrate + this.samplesPerPacket = Number(load('samplesPerPacket')) || defaults.samplesPerPacket } save () { @@ -262,7 +262,7 @@ class Settings { class GlobalBindings { constructor (config) { this.config = config - this.settings = new Settings() + this.settings = new Settings(config.settings) this.connector = new WorkerBasedMumbleConnector() this.client = null this.userContextMenu = new ContextMenu()