diff --git a/src/modules/game-bar/action-microphone.ts b/src/modules/game-bar/action-microphone.ts index 01d1031..df5bbc7 100644 --- a/src/modules/game-bar/action-microphone.ts +++ b/src/modules/game-bar/action-microphone.ts @@ -55,17 +55,14 @@ export class MicrophoneAction extends BaseGameBarAction { this.reset(); - window.addEventListener(BxEvent.STREAM_EVENT_TARGET_READY, e => { - const eventTarget = window.BX_EXPOSED.eventTarget as EventTarget; - eventTarget.addEventListener(XcloudEvent.MICROPHONE_STATE_CHANGED, e => { - const state = window.BX_EXPOSED.streamSession.microphoneState as MicrophoneState; - const enabled = state === MicrophoneState.ENABLED; + window.addEventListener(BxEvent.MICROPHONE_STATE_CHANGED, e => { + const microphoneState = (e as any).microphoneState; + const enabled = microphoneState === MicrophoneState.ENABLED; - this.$content.setAttribute('data-enabled', enabled.toString()); + this.$content.setAttribute('data-enabled', enabled.toString()); - // Show the button in Game Bar if the mic is enabled - this.$content.classList.remove('bx-gone'); - }); + // Show the button in Game Bar if the mic is enabled + this.$content.classList.remove('bx-gone'); }); } diff --git a/src/modules/patcher.ts b/src/modules/patcher.ts index 538b14f..1537124 100644 --- a/src/modules/patcher.ts +++ b/src/modules/patcher.ts @@ -516,6 +516,7 @@ BxLogger.info('patchRemotePlayMkb', ${configsVar}); return str; }, + /* exposeEventTarget(str: string) { const text ='this._eventTarget=new EventTarget'; if (!str.includes(text)) { @@ -530,6 +531,7 @@ window.dispatchEvent(new Event('${BxEvent.STREAM_EVENT_TARGET_READY}')) str = str.replace(text, newCode); return str; }, + //*/ // Class with: connectAsync(), doConnectAsync(), setPlayClient() exposeStreamSession(str: string) { @@ -542,9 +544,13 @@ window.dispatchEvent(new Event('${BxEvent.STREAM_EVENT_TARGET_READY}')) window.BX_EXPOSED.streamSession = this; const orgSetMicrophoneState = this.setMicrophoneState.bind(this); -this.setMicrophoneState = (e) => { - console.log(e); - orgSetMicrophoneState(e); +this.setMicrophoneState = state => { + orgSetMicrophoneState(state); + + const evt = new Event('${BxEvent.MICROPHONE_STATE_CHANGED}'); + evt.microphoneState = state; + + window.dispatchEvent(evt); }; window.dispatchEvent(new Event('${BxEvent.STREAM_SESSION_READY}')) @@ -598,7 +604,7 @@ let PLAYING_PATCH_ORDERS: PatchArray = [ 'patchStreamHud', 'playVibration', - 'exposeEventTarget', + // 'exposeEventTarget', // Patch volume control for normal stream getPref(PrefKey.AUDIO_ENABLE_VOLUME_CONTROL) && !getPref(PrefKey.STREAM_COMBINE_SOURCES) && 'patchAudioMediaStream', diff --git a/src/utils/bx-event.ts b/src/utils/bx-event.ts index e0eca40..de5e10d 100644 --- a/src/utils/bx-event.ts +++ b/src/utils/bx-event.ts @@ -19,7 +19,7 @@ export enum BxEvent { STREAM_WEBRTC_CONNECTED = 'bx-stream-webrtc-connected', STREAM_WEBRTC_DISCONNECTED = 'bx-stream-webrtc-disconnected', - STREAM_EVENT_TARGET_READY = 'bx-stream-event-target-ready', + // STREAM_EVENT_TARGET_READY = 'bx-stream-event-target-ready', STREAM_SESSION_READY = 'bx-stream-session-ready', CUSTOM_TOUCH_LAYOUTS_LOADED = 'bx-custom-touch-layouts-loaded', @@ -33,6 +33,7 @@ export enum BxEvent { DATA_CHANNEL_CREATED = 'bx-data-channel-created', GAME_BAR_ACTION_ACTIVATED = 'bx-game-bar-action-activated', + MICROPHONE_STATE_CHANGED = 'bx-microphone-state-changed', } export enum XcloudEvent {