VRFS-5627 - VUs get busted when hovering over remote participants who change tracks/leave/change track settings
This commit is contained in:
parent
f755e2b0a0
commit
6d2211cbb4
|
|
@ -648,7 +648,7 @@
|
|||
|
||||
]
|
||||
const displayLogMethod = [
|
||||
'SessionSetTrackVolumeData'
|
||||
// 'SessionSetTrackVolumeData'
|
||||
]
|
||||
|
||||
if(skipLogMethods.length > 0 && skipLogMethods.includes(prop)){
|
||||
|
|
|
|||
|
|
@ -76,6 +76,18 @@ ptrCount = 0
|
|||
if mixer && $.isArray(mixer)
|
||||
mixer = mixer[0]
|
||||
|
||||
# if the mixer still doesn't exist, there is a state problem; the mixer is gone.
|
||||
# This can happen in normal circumstances, where, if you have the VU open on a remote participant
|
||||
# and that remote person does a 'Resync' in the session, that recreates all their mixer info.
|
||||
# MAYBE we could fix this on the fly, but we don't have that information at hand (maybe we could see that tracks don't change between resync, and just 'update' the mixer' whereveer it's persisted for that track)
|
||||
# However, the easiest thing to do in this moment is to close the VU, since it's been invalidated
|
||||
# https://jamkazam.atlassian.net/browse/VRFS-5627marg
|
||||
if !mixer?
|
||||
console.warn("SessionTrackVolumeHover: mixer is gone, closing hover")
|
||||
$container = jQuery(this.getDOMNode()).closest('.react-holder')
|
||||
$container.data('bt').btOff()
|
||||
return `<div></div>`
|
||||
|
||||
volume_left = mixer.volume_left
|
||||
|
||||
classes = classNames({
|
||||
|
|
|
|||
|
|
@ -793,18 +793,33 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
let originalVolume = this.getOriginalVolume(mixers, gainType);
|
||||
if (controlGroup != null) {
|
||||
mixers = [mixers[0]];
|
||||
for (let mixer of mixers) {
|
||||
for (let m of mixers) {
|
||||
let broadcast = !(data.dragging);
|
||||
mixer = this.fillTrackVolumeObject(mixer.id, mixer.mode, broadcast);
|
||||
let mixer = this.fillTrackVolumeObject(m.id, m.mode, broadcast);
|
||||
if (mixer == null) {
|
||||
console.error("MixerHelper: faderChanged: mixer is null, skipping", m, gainType, controlGroup);
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
//console.log("MixerHelper: faderChanged: mixer is not null, proceeding", m, gainType, controlGroup);
|
||||
}
|
||||
let relative = gainType === 'music' && (mixer.name === CategoryGroupIds.UserMedia || mixer.name === CategoryGroupIds.MediaTrack);
|
||||
await this.setMixerVolume(mixer, data.percentage, relative, originalVolume, controlGroup);
|
||||
mixer = this.getMixer(mixer.id, mixer.mode);
|
||||
mixer.volume_left = context.trackVolumeObject.volL;
|
||||
}
|
||||
} else {
|
||||
for (let mixer of mixers) {
|
||||
for (let m of mixers) {
|
||||
let broadcast = !(data.dragging);
|
||||
mixer = this.fillTrackVolumeObject(mixer.id, mixer.mode, broadcast);
|
||||
let mixer = this.fillTrackVolumeObject(m.id, m.mode, broadcast);
|
||||
if (mixer == null) {
|
||||
console.error("MixerHelper: faderChanged: mixer is null, skipping", m, gainType, controlGroup);
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
//console.log("MixerHelper: faderChanged: mixer is not null, proceeding", m, gainType, controlGroup);
|
||||
}
|
||||
|
||||
let relative = gainType === 'music' && (mixer.name === CategoryGroupIds.UserMedia || mixer.name === CategoryGroupIds.MediaTrack);
|
||||
await this.setMixerVolume(mixer, data.percentage, relative, originalVolume);
|
||||
mixer = this.getMixer(mixer.id, mixer.mode);
|
||||
|
|
@ -1011,6 +1026,10 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
_broadcast = broadcast
|
||||
|
||||
mixer = @getMixer(mixerId, mode)
|
||||
if(mixer == null)
|
||||
console.error("MixerHelper: fillTrackVolumeObject: unable to find mixer with ID: #{mixerId}, mode: #{mode}")
|
||||
return null
|
||||
|
||||
context.trackVolumeObject.id = mixer.id
|
||||
context.trackVolumeObject._id = mixer._id
|
||||
context.trackVolumeObject.groupID = mixer.group_id
|
||||
|
|
|
|||
|
|
@ -92,6 +92,13 @@ $session-screen-divider: 1190px;
|
|||
}
|
||||
}
|
||||
|
||||
.session-track + .session-track {
|
||||
margin-left: 5px;
|
||||
@include session-small {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.track-controls {
|
||||
@include session-small {
|
||||
margin-top: 8px;
|
||||
|
|
|
|||
Loading…
Reference in New Issue