Commit 9ad548e1 authored by Jonas Herzig's avatar Jonas Herzig
Browse files

Show own talking state in UI

parent fd4f2ecc
...@@ -301,6 +301,10 @@ class GlobalBindings { ...@@ -301,6 +301,10 @@ class GlobalBindings {
if (!this.client) { if (!this.client) {
return return
} }
if (voiceHandler) {
voiceHandler.end()
voiceHandler = null
}
let mode = this.settings.voiceMode let mode = this.settings.voiceMode
if (mode === 'cont') { if (mode === 'cont') {
voiceHandler = new ContinuousVoiceHandler(this.client) voiceHandler = new ContinuousVoiceHandler(this.client)
...@@ -310,7 +314,18 @@ class GlobalBindings { ...@@ -310,7 +314,18 @@ class GlobalBindings {
} else { } else {
log('Unknown voice mode:', mode) log('Unknown voice mode:', mode)
return
} }
voiceHandler.on('started_talking', () => {
if (this.thisUser()) {
this.thisUser().talking('on')
}
})
voiceHandler.on('stopped_talking', () => {
if (this.thisUser()) {
this.thisUser().talking('off')
}
})
} }
this.messageBoxHint = ko.pureComputed(() => { this.messageBoxHint = ko.pureComputed(() => {
...@@ -525,6 +540,9 @@ var voiceHandler ...@@ -525,6 +540,9 @@ var voiceHandler
initVoice(data => { initVoice(data => {
if (!ui.client) { if (!ui.client) {
if (voiceHandler) {
voiceHandler.end()
}
voiceHandler = null voiceHandler = null
} else if (voiceHandler) { } else if (voiceHandler) {
voiceHandler.write(new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4)) voiceHandler.write(new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4))
......
...@@ -15,9 +15,23 @@ class VoiceHandler extends Writable { ...@@ -15,9 +15,23 @@ class VoiceHandler extends Writable {
_getOrCreateOutbound () { _getOrCreateOutbound () {
if (!this._outbound) { if (!this._outbound) {
this._outbound = this._client.createVoiceStream() this._outbound = this._client.createVoiceStream()
this.emit('started_talking')
} }
return this._outbound return this._outbound
} }
_stopOutbound () {
if (this._outbound) {
this.emit('stopped_talking')
this._outbound.end()
this._outbound = null
}
}
_final (callback) {
this._stopOutbound()
callback()
}
} }
export class ContinuousVoiceHandler extends VoiceHandler { export class ContinuousVoiceHandler extends VoiceHandler {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment