Skip to content

Commit

Permalink
Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
Mindgamesnl committed Dec 11, 2023
1 parent 9755d98 commit e08e8d3
Showing 8 changed files with 60 additions and 18 deletions.
2 changes: 1 addition & 1 deletion client/public/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"buildMajor":1,"buildMinor":125,"buildRevision":185,"buildTag":"dev","buildDate":"Mon Dec 11 2023","build":"1.125.185 dev"}
{"buildMajor":1,"buildMinor":125,"buildRevision":186,"buildTag":"dev","buildDate":"Mon Dec 11 2023","build":"1.125.186 dev"}
2 changes: 2 additions & 0 deletions client/src/client/services/socket/HandlerRegistry.jsx
Original file line number Diff line number Diff line change
@@ -14,6 +14,7 @@ import { HandleVoiceBlur } from './handlers/voice/HandleVoiceBlur';
import { handleSpeakerCreate } from './handlers/speakers/HandleSpeakerCreate';
import { HandleSpeakerDestroy } from './handlers/speakers/HandleSpeakerDestroy';
import { HandleVoiceModerationStatus } from './handlers/voice/HandleVoiceModerationStatus';
import { HandleVoiceDeafen } from './handlers/voice/HandleToggleDeafenCommand';

export class HandlerRegistry {
constructor(socket) {
@@ -42,6 +43,7 @@ export class HandlerRegistry {
registerClassHandler('ClientVoiceDropPayload', HandleVoiceDrop);
registerClassHandler('ClientVoiceUpdatePeerLocationsPayload', HandleVoicePeerMovement);
registerClassHandler('ClientVoiceChatToggleMicrophonePayload', HandleMicToggleRequest);
registerClassHandler('ClientVoiceChatToggleDeafenPayload', HandleVoiceDeafen);
registerClassHandler('ClientVoiceBlurUiPayload', HandleVoiceBlur);
registerClassHandler('ClientModerationStatusPayload', HandleVoiceModerationStatus);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { getGlobalState, setGlobalState } from '../../../../../state/store';
import { VoiceModule } from '../../../voice/VoiceModule';

export function HandleVoiceDeafen() {
const newState = !getGlobalState().settings.voicechatDeafened;
setGlobalState({ settings: { voicechatDeafened: newState }, voiceState: { deafenedBefore: true } });
VoiceModule.peerManager.setDeafened(newState);
}
19 changes: 19 additions & 0 deletions client/src/client/services/voice/peers/PeerManager.jsx
Original file line number Diff line number Diff line change
@@ -28,13 +28,32 @@ export class PeerManager {
this.setMute = this.setMute.bind(this);

let lastStateMuted = false;
let lastStateDeafened = false;

this.unsub = store.subscribe(() => {
const { settings } = store.getState();
if (settings.voicechatMuted !== lastStateMuted) {
lastStateMuted = settings.voicechatMuted;
this.setMute(lastStateMuted);
}

if (settings.voicechatDeafened !== lastStateDeafened) {
lastStateDeafened = settings.voicechatDeafened;
this.setDeafened(lastStateDeafened);
}
});
}

setDeafened(state) {
if (state) {
VoiceModule.pushSocketEvent(VoiceStatusChangeEvent.SELF_DEAFEN);
} else {
VoiceModule.pushSocketEvent(VoiceStatusChangeEvent.SELF_UNDEAFEN);
}

// apply to current streams
VoiceModule.peerMap.forEach((peer) => {
peer.stream.setMuteOverride(state);
});
}

17 changes: 1 addition & 16 deletions client/src/components/voice/VoiceSettings.jsx
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ import React from 'react';
import { connect } from 'react-redux';
import AdvancedVoiceSettings from './AdvancedVoiceSettings';
import { setGlobalState } from '../../state/store';
import { reRenderAllGainNodes, VoiceModule, VoiceStatusChangeEvent } from '../../client/services/voice/VoiceModule';
import { reRenderAllGainNodes } from '../../client/services/voice/VoiceModule';
import { Tooltip } from '../tooltip/tooltip';
import ExtraVoiceSettings from './ExtraVoiceSettings';
import { msg } from '../../client/OpenAudioAppContainer';
@@ -50,22 +50,7 @@ class VoiceSettings extends React.Component {

toggleDeafen() {
const deafened = !this.props.voicechatDeafened;

if (this.props.voiceState.deafenedBefore) {
// broadcast state update
if (deafened) {
VoiceModule.pushSocketEvent(VoiceStatusChangeEvent.SELF_DEAFEN);
} else {
VoiceModule.pushSocketEvent(VoiceStatusChangeEvent.SELF_UNDEAFEN);
}
}

setGlobalState({ settings: { voicechatDeafened: deafened }, voiceState: { deafenedBefore: true } });

// apply to current streams
VoiceModule.peerMap.forEach((peer) => {
peer.stream.setMuteOverride(deafened);
});
}

render() {
2 changes: 1 addition & 1 deletion client/src/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"buildMajor":1,"buildMinor":125,"buildRevision":185,"buildTag":"dev","buildDate":"Mon Dec 11 2023","build":"1.125.185 dev"}
{"buildMajor":1,"buildMinor":125,"buildRevision":186,"buildTag":"dev","buildDate":"Mon Dec 11 2023","build":"1.125.186 dev"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.craftmend.openaudiomc.generic.networking.packets.client.voice;

import com.craftmend.openaudiomc.generic.networking.abstracts.AbstractPacket;
import com.craftmend.openaudiomc.generic.networking.abstracts.PacketChannel;
import com.craftmend.openaudiomc.generic.networking.payloads.client.voice.ClientVoiceChatToggleMicrophonePayload;

public class PacketClientToggleMicrophone extends AbstractPacket {

public PacketClientToggleMicrophone(ClientVoiceChatToggleMicrophonePayload payload) {
super(
payload,
PacketChannel.CLIENT_OUT_TOGGLE_MIC,
null
);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.craftmend.openaudiomc.generic.networking.payloads.client.voice;

import com.craftmend.openaudiomc.generic.networking.abstracts.AbstractPacketPayload;
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class ClientVoiceChatToggleDeafenPayload extends AbstractPacketPayload {

}

0 comments on commit e08e8d3

Please sign in to comment.