diff --git a/dist/better-xcloud.lite.user.js b/dist/better-xcloud.lite.user.js index 1bdf8ab..bb537b8 100755 --- a/dist/better-xcloud.lite.user.js +++ b/dist/better-xcloud.lite.user.js @@ -141,7 +141,7 @@ function deepClone(obj) { } var BxEvent; ((BxEvent) => { - BxEvent.JUMP_BACK_IN_READY = "bx-jump-back-in-ready", BxEvent.POPSTATE = "bx-popstate", BxEvent.STREAM_SESSION_READY = "bx-stream-session-ready", BxEvent.CUSTOM_TOUCH_LAYOUTS_LOADED = "bx-custom-touch-layouts-loaded", BxEvent.TOUCH_LAYOUT_MANAGER_READY = "bx-touch-layout-manager-ready", BxEvent.REMOTE_PLAY_READY = "bx-remote-play-ready", BxEvent.REMOTE_PLAY_FAILED = "bx-remote-play-failed", BxEvent.GAME_BAR_ACTION_ACTIVATED = "bx-game-bar-action-activated", BxEvent.MICROPHONE_STATE_CHANGED = "bx-microphone-state-changed", BxEvent.SPEAKER_STATE_CHANGED = "bx-speaker-state-changed", BxEvent.VIDEO_VISIBILITY_CHANGED = "bx-video-visibility-changed", BxEvent.CAPTURE_SCREENSHOT = "bx-capture-screenshot", BxEvent.POINTER_LOCK_REQUESTED = "bx-pointer-lock-requested", BxEvent.POINTER_LOCK_EXITED = "bx-pointer-lock-exited", BxEvent.NAVIGATION_FOCUS_CHANGED = "bx-nav-focus-changed", BxEvent.XCLOUD_GUIDE_MENU_SHOWN = "bx-xcloud-guide-menu-shown", BxEvent.XCLOUD_POLLING_MODE_CHANGED = "bx-xcloud-polling-mode-changed", BxEvent.XCLOUD_RENDERING_COMPONENT = "bx-xcloud-rendering-component", BxEvent.XCLOUD_ROUTER_HISTORY_READY = "bx-xcloud-router-history-ready"; + BxEvent.POPSTATE = "bx-popstate", BxEvent.STREAM_SESSION_READY = "bx-stream-session-ready", BxEvent.CUSTOM_TOUCH_LAYOUTS_LOADED = "bx-custom-touch-layouts-loaded", BxEvent.TOUCH_LAYOUT_MANAGER_READY = "bx-touch-layout-manager-ready", BxEvent.REMOTE_PLAY_READY = "bx-remote-play-ready", BxEvent.REMOTE_PLAY_FAILED = "bx-remote-play-failed", BxEvent.CAPTURE_SCREENSHOT = "bx-capture-screenshot", BxEvent.POINTER_LOCK_REQUESTED = "bx-pointer-lock-requested", BxEvent.POINTER_LOCK_EXITED = "bx-pointer-lock-exited", BxEvent.NAVIGATION_FOCUS_CHANGED = "bx-nav-focus-changed", BxEvent.XCLOUD_GUIDE_MENU_SHOWN = "bx-xcloud-guide-menu-shown", BxEvent.XCLOUD_POLLING_MODE_CHANGED = "bx-xcloud-polling-mode-changed", BxEvent.XCLOUD_RENDERING_COMPONENT = "bx-xcloud-rendering-component", BxEvent.XCLOUD_ROUTER_HISTORY_READY = "bx-xcloud-router-history-ready"; function dispatch(target, eventName, data) { if (!target) return; if (!eventName) { @@ -2018,8 +2018,8 @@ class SoundShortcut { let status; if (targetValue === 0) status = t("muted"); else status = targetValue + "%"; - SoundShortcut.setGainNodeVolume(targetValue), Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEvent.dispatch(window, BxEvent.SPEAKER_STATE_CHANGED, { - speakerState: targetValue === 0 ? 1 : 0 + SoundShortcut.setGainNodeVolume(targetValue), Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEventBus.Stream.emit("speaker.state.changed", { + state: targetValue === 0 ? 1 : 0 }); return; } @@ -2027,8 +2027,8 @@ class SoundShortcut { if ($media) { $media.muted = !$media.muted; let status = $media.muted ? t("muted") : t("unmuted"); - Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEvent.dispatch(window, BxEvent.SPEAKER_STATE_CHANGED, { - speakerState: $media.muted ? 1 : 0 + Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEventBus.Stream.emit("speaker.state.changed", { + state: $media.muted ? 1 : 0 }); } } diff --git a/dist/better-xcloud.user.js b/dist/better-xcloud.user.js index 08225d7..af4166f 100755 --- a/dist/better-xcloud.user.js +++ b/dist/better-xcloud.user.js @@ -143,7 +143,7 @@ function deepClone(obj) { } var BxEvent; ((BxEvent) => { - BxEvent.JUMP_BACK_IN_READY = "bx-jump-back-in-ready", BxEvent.POPSTATE = "bx-popstate", BxEvent.STREAM_SESSION_READY = "bx-stream-session-ready", BxEvent.CUSTOM_TOUCH_LAYOUTS_LOADED = "bx-custom-touch-layouts-loaded", BxEvent.TOUCH_LAYOUT_MANAGER_READY = "bx-touch-layout-manager-ready", BxEvent.REMOTE_PLAY_READY = "bx-remote-play-ready", BxEvent.REMOTE_PLAY_FAILED = "bx-remote-play-failed", BxEvent.GAME_BAR_ACTION_ACTIVATED = "bx-game-bar-action-activated", BxEvent.MICROPHONE_STATE_CHANGED = "bx-microphone-state-changed", BxEvent.SPEAKER_STATE_CHANGED = "bx-speaker-state-changed", BxEvent.VIDEO_VISIBILITY_CHANGED = "bx-video-visibility-changed", BxEvent.CAPTURE_SCREENSHOT = "bx-capture-screenshot", BxEvent.POINTER_LOCK_REQUESTED = "bx-pointer-lock-requested", BxEvent.POINTER_LOCK_EXITED = "bx-pointer-lock-exited", BxEvent.NAVIGATION_FOCUS_CHANGED = "bx-nav-focus-changed", BxEvent.XCLOUD_GUIDE_MENU_SHOWN = "bx-xcloud-guide-menu-shown", BxEvent.XCLOUD_POLLING_MODE_CHANGED = "bx-xcloud-polling-mode-changed", BxEvent.XCLOUD_RENDERING_COMPONENT = "bx-xcloud-rendering-component", BxEvent.XCLOUD_ROUTER_HISTORY_READY = "bx-xcloud-router-history-ready"; + BxEvent.POPSTATE = "bx-popstate", BxEvent.STREAM_SESSION_READY = "bx-stream-session-ready", BxEvent.CUSTOM_TOUCH_LAYOUTS_LOADED = "bx-custom-touch-layouts-loaded", BxEvent.TOUCH_LAYOUT_MANAGER_READY = "bx-touch-layout-manager-ready", BxEvent.REMOTE_PLAY_READY = "bx-remote-play-ready", BxEvent.REMOTE_PLAY_FAILED = "bx-remote-play-failed", BxEvent.CAPTURE_SCREENSHOT = "bx-capture-screenshot", BxEvent.POINTER_LOCK_REQUESTED = "bx-pointer-lock-requested", BxEvent.POINTER_LOCK_EXITED = "bx-pointer-lock-exited", BxEvent.NAVIGATION_FOCUS_CHANGED = "bx-nav-focus-changed", BxEvent.XCLOUD_GUIDE_MENU_SHOWN = "bx-xcloud-guide-menu-shown", BxEvent.XCLOUD_POLLING_MODE_CHANGED = "bx-xcloud-polling-mode-changed", BxEvent.XCLOUD_RENDERING_COMPONENT = "bx-xcloud-rendering-component", BxEvent.XCLOUD_ROUTER_HISTORY_READY = "bx-xcloud-router-history-ready"; function dispatch(target, eventName, data) { if (!target) return; if (!eventName) { @@ -2122,8 +2122,8 @@ class SoundShortcut { let status; if (targetValue === 0) status = t("muted"); else status = targetValue + "%"; - SoundShortcut.setGainNodeVolume(targetValue), Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEvent.dispatch(window, BxEvent.SPEAKER_STATE_CHANGED, { - speakerState: targetValue === 0 ? 1 : 0 + SoundShortcut.setGainNodeVolume(targetValue), Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEventBus.Stream.emit("speaker.state.changed", { + state: targetValue === 0 ? 1 : 0 }); return; } @@ -2131,8 +2131,8 @@ class SoundShortcut { if ($media) { $media.muted = !$media.muted; let status = $media.muted ? t("muted") : t("unmuted"); - Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEvent.dispatch(window, BxEvent.SPEAKER_STATE_CHANGED, { - speakerState: $media.muted ? 1 : 0 + Toast.show(`${t("stream")} ❯ ${t("volume")}`, status, { instant: !0 }), BxEventBus.Stream.emit("speaker.state.changed", { + state: $media.muted ? 1 : 0 }); } } @@ -4033,9 +4033,7 @@ var expose_stream_session_default = `window.BX_EXPOSED.streamSession = this; const orgSetMicrophoneState = this.setMicrophoneState.bind(this); this.setMicrophoneState = state => { orgSetMicrophoneState(state); -const evt = new Event(BxEvent.MICROPHONE_STATE_CHANGED); -evt.microphoneState = state; -window.dispatchEvent(evt); +window.BxEventBus.Stream.emit('microphone.state.changed', { state }); }; window.dispatchEvent(new Event(BxEvent.STREAM_SESSION_READY)); let updateDimensionsStr = this.updateDimensions.toString(); @@ -6800,12 +6798,12 @@ class RendererShortcut { static toggleVisibility() { let $mediaContainer = document.querySelector('#game-stream div[data-testid="media-container"]'); if (!$mediaContainer) { - BxEvent.dispatch(window, BxEvent.VIDEO_VISIBILITY_CHANGED, { isShowing: !0 }); + BxEventBus.Stream.emit("video.visibility.changed", { isVisible: !0 }); return; } $mediaContainer.classList.toggle("bx-gone"); - let isShowing = !$mediaContainer.classList.contains("bx-gone"); - limitVideoPlayerFps(isShowing ? getPref("video.maxFps") : 0), BxEvent.dispatch(window, BxEvent.VIDEO_VISIBILITY_CHANGED, { isShowing }); + let isVisible = !$mediaContainer.classList.contains("bx-gone"); + limitVideoPlayerFps(isVisible ? getPref("video.maxFps") : 0), BxEventBus.Stream.emit("video.visibility.changed", { isVisible }); } } class TrueAchievements { @@ -8598,7 +8596,7 @@ class BaseGameBarAction { constructor() {} reset() {} onClick(e) { - BxEvent.dispatch(window, BxEvent.GAME_BAR_ACTION_ACTIVATED); + BxEventBus.Stream.emit("gameBar.activated", {}); } render() { return this.$content; @@ -8660,8 +8658,8 @@ class MicrophoneAction extends BaseGameBarAction { icon: BxIcon.MICROPHONE_MUTED, onClick: this.onClick }); - this.$content = CE("div", {}, $btnMuted, $btnDefault), window.addEventListener(BxEvent.MICROPHONE_STATE_CHANGED, (e) => { - let enabled = e.microphoneState === "Enabled"; + this.$content = CE("div", {}, $btnMuted, $btnDefault), BxEventBus.Stream.on("microphone.state.changed", (payload) => { + let enabled = payload.state === "Enabled"; this.$content.dataset.activated = enabled.toString(), this.$content.classList.remove("bx-gone"); }); } @@ -8702,8 +8700,8 @@ class SpeakerAction extends BaseGameBarAction { onClick: this.onClick, classes: ["bx-activated"] }); - this.$content = CE("div", {}, $btnEnable, $btnMuted), window.addEventListener(BxEvent.SPEAKER_STATE_CHANGED, (e) => { - let enabled = e.speakerState === 0; + this.$content = CE("div", {}, $btnEnable, $btnMuted), BxEventBus.Stream.on("speaker.state.changed", (payload) => { + let enabled = payload.state === 0; this.$content.dataset.activated = (!enabled).toString(); }); } @@ -8728,9 +8726,8 @@ class RendererAction extends BaseGameBarAction { onClick: this.onClick, classes: ["bx-activated"] }); - this.$content = CE("div", {}, $btnDefault, $btnActivated), window.addEventListener(BxEvent.VIDEO_VISIBILITY_CHANGED, (e) => { - let isShowing = e.isShowing; - this.$content.dataset.activated = (!isShowing).toString(); + this.$content = CE("div", {}, $btnDefault, $btnActivated), BxEventBus.Stream.on("video.visibility.changed", (payload) => { + this.$content.dataset.activated = (!payload.isVisible).toString(); }); } onClick = (e) => { @@ -8770,7 +8767,7 @@ class GameBar { $gameBar.addEventListener("click", (e) => { if (e.target !== $gameBar) return; $container.classList.contains("bx-show") ? this.hideBar() : this.showBar(); - }), window.addEventListener(BxEvent.GAME_BAR_ACTION_ACTIVATED, this.hideBar), $container.addEventListener("pointerover", this.clearHideTimeout), $container.addEventListener("pointerout", this.beginHideTimeout), $container.addEventListener("transitionend", (e) => { + }), BxEventBus.Stream.on("gameBar.activated", this.hideBar), $container.addEventListener("pointerover", this.clearHideTimeout), $container.addEventListener("pointerout", this.beginHideTimeout), $container.addEventListener("transitionend", (e) => { $container.classList.replace("bx-hide", "bx-offscreen"); }), document.documentElement.appendChild($gameBar), this.$gameBar = $gameBar, this.$container = $container, position !== "off" && window.addEventListener(BxEvent.XCLOUD_POLLING_MODE_CHANGED, ((e) => { if (STATES.isPlaying) window.BX_STREAM_SETTINGS.xCloudPollingMode !== "none" ? this.disable() : this.enable(); diff --git a/src/modules/game-bar/base-action.ts b/src/modules/game-bar/base-action.ts index aee6ae6..32edb5c 100755 --- a/src/modules/game-bar/base-action.ts +++ b/src/modules/game-bar/base-action.ts @@ -1,4 +1,4 @@ -import { BxEvent } from "@/utils/bx-event"; +import { BxEventBus } from "@/utils/bx-event-bus"; export abstract class BaseGameBarAction { abstract $content: HTMLElement; @@ -7,7 +7,7 @@ export abstract class BaseGameBarAction { reset() {} onClick(e: Event) { - BxEvent.dispatch(window, BxEvent.GAME_BAR_ACTION_ACTIVATED); + BxEventBus.Stream.emit('gameBar.activated', {}); }; render(): HTMLElement { diff --git a/src/modules/game-bar/game-bar.ts b/src/modules/game-bar/game-bar.ts index b1a0785..870dd6e 100755 --- a/src/modules/game-bar/game-bar.ts +++ b/src/modules/game-bar/game-bar.ts @@ -13,6 +13,7 @@ import { SpeakerAction } from "./speaker-action"; import { RendererAction } from "./renderer-action"; import { BxLogger } from "@/utils/bx-logger"; import { GameBarPosition, TouchControllerMode } from "@/enums/pref-values"; +import { BxEventBus } from "@/utils/bx-event-bus"; export class GameBar { @@ -81,7 +82,7 @@ export class GameBar { }); // Hide game bar after clicking on an action - window.addEventListener(BxEvent.GAME_BAR_ACTION_ACTIVATED, this.hideBar); + BxEventBus.Stream.on('gameBar.activated', this.hideBar); $container.addEventListener('pointerover', this.clearHideTimeout); $container.addEventListener('pointerout', this.beginHideTimeout); diff --git a/src/modules/game-bar/microphone-action.ts b/src/modules/game-bar/microphone-action.ts index 5cf92ea..d79c8e6 100755 --- a/src/modules/game-bar/microphone-action.ts +++ b/src/modules/game-bar/microphone-action.ts @@ -1,8 +1,8 @@ -import { BxEvent } from "@utils/bx-event"; import { BxIcon } from "@utils/bx-icon"; import { createButton, ButtonStyle, CE } from "@utils/html"; import { BaseGameBarAction } from "./base-action"; import { MicrophoneShortcut, MicrophoneState } from "../shortcuts/microphone-shortcut"; +import { BxEventBus } from "@/utils/bx-event-bus"; export class MicrophoneAction extends BaseGameBarAction { @@ -26,9 +26,8 @@ export class MicrophoneAction extends BaseGameBarAction { this.$content = CE('div', {}, $btnMuted, $btnDefault); - window.addEventListener(BxEvent.MICROPHONE_STATE_CHANGED, e => { - const microphoneState = (e as any).microphoneState; - const enabled = microphoneState === MicrophoneState.ENABLED; + BxEventBus.Stream.on('microphone.state.changed', payload => { + const enabled = payload.state === MicrophoneState.ENABLED; this.$content.dataset.activated = enabled.toString(); // Show the button in Game Bar if the mic is enabled diff --git a/src/modules/game-bar/renderer-action.ts b/src/modules/game-bar/renderer-action.ts index c21b064..347a8e6 100755 --- a/src/modules/game-bar/renderer-action.ts +++ b/src/modules/game-bar/renderer-action.ts @@ -2,7 +2,7 @@ import { BxIcon } from "@utils/bx-icon"; import { createButton, ButtonStyle, CE } from "@utils/html"; import { BaseGameBarAction } from "./base-action"; import { RendererShortcut } from "../shortcuts/renderer-shortcut"; -import { BxEvent } from "@/utils/bx-event"; +import { BxEventBus } from "@/utils/bx-event-bus"; export class RendererAction extends BaseGameBarAction { @@ -26,9 +26,8 @@ export class RendererAction extends BaseGameBarAction { this.$content = CE('div', {}, $btnDefault, $btnActivated); - window.addEventListener(BxEvent.VIDEO_VISIBILITY_CHANGED, e => { - const isShowing = (e as any).isShowing; - this.$content.dataset.activated = (!isShowing).toString(); + BxEventBus.Stream.on('video.visibility.changed', payload => { + this.$content.dataset.activated = (!payload.isVisible).toString(); }); } diff --git a/src/modules/game-bar/speaker-action.ts b/src/modules/game-bar/speaker-action.ts index 320ecce..9df59bc 100755 --- a/src/modules/game-bar/speaker-action.ts +++ b/src/modules/game-bar/speaker-action.ts @@ -1,8 +1,8 @@ -import { BxEvent } from "@utils/bx-event"; import { BxIcon } from "@utils/bx-icon"; import { createButton, ButtonStyle, CE } from "@utils/html"; import { BaseGameBarAction } from "./base-action"; import { SoundShortcut, SpeakerState } from "../shortcuts/sound-shortcut"; +import { BxEventBus } from "@/utils/bx-event-bus"; export class SpeakerAction extends BaseGameBarAction { @@ -26,10 +26,8 @@ export class SpeakerAction extends BaseGameBarAction { this.$content = CE('div', {}, $btnEnable, $btnMuted); - window.addEventListener(BxEvent.SPEAKER_STATE_CHANGED, e => { - const speakerState = (e as any).speakerState; - const enabled = speakerState === SpeakerState.ENABLED; - + BxEventBus.Stream.on('speaker.state.changed', payload => { + const enabled = payload.state === SpeakerState.ENABLED; this.$content.dataset.activated = (!enabled).toString(); }); } diff --git a/src/modules/patcher/patches/expose-stream-session.js b/src/modules/patcher/patches/expose-stream-session.js index 7ccbb8e..ea595eb 100755 --- a/src/modules/patcher/patches/expose-stream-session.js +++ b/src/modules/patcher/patches/expose-stream-session.js @@ -3,11 +3,7 @@ window.BX_EXPOSED.streamSession = this; const orgSetMicrophoneState = this.setMicrophoneState.bind(this); this.setMicrophoneState = state => { orgSetMicrophoneState(state); - - const evt = new Event(BxEvent.MICROPHONE_STATE_CHANGED); - evt.microphoneState = state; - - window.dispatchEvent(evt); + window.BxEventBus.Stream.emit('microphone.state.changed', { state }); }; window.dispatchEvent(new Event(BxEvent.STREAM_SESSION_READY)); diff --git a/src/modules/shortcuts/renderer-shortcut.ts b/src/modules/shortcuts/renderer-shortcut.ts index 95f6552..dc80fa6 100755 --- a/src/modules/shortcuts/renderer-shortcut.ts +++ b/src/modules/shortcuts/renderer-shortcut.ts @@ -1,21 +1,21 @@ import { PrefKey } from "@/enums/pref-keys"; import { getPref } from "@/utils/settings-storages/global-settings-storage"; import { limitVideoPlayerFps } from "../stream/stream-settings-utils"; -import { BxEvent } from "@/utils/bx-event"; +import { BxEventBus } from "@/utils/bx-event-bus"; export class RendererShortcut { static toggleVisibility() { const $mediaContainer = document.querySelector('#game-stream div[data-testid="media-container"]'); if (!$mediaContainer) { - BxEvent.dispatch(window, BxEvent.VIDEO_VISIBILITY_CHANGED, { isShowing: true }); + BxEventBus.Stream.emit('video.visibility.changed', { isVisible: true }); return; } $mediaContainer.classList.toggle('bx-gone'); - const isShowing = !$mediaContainer.classList.contains('bx-gone'); + const isVisible = !$mediaContainer.classList.contains('bx-gone'); // Switch FPS - limitVideoPlayerFps(isShowing ? getPref(PrefKey.VIDEO_MAX_FPS) : 0); - BxEvent.dispatch(window, BxEvent.VIDEO_VISIBILITY_CHANGED, { isShowing }); + limitVideoPlayerFps(isVisible ? getPref(PrefKey.VIDEO_MAX_FPS) : 0); + BxEventBus.Stream.emit('video.visibility.changed', { isVisible }); } } diff --git a/src/modules/shortcuts/sound-shortcut.ts b/src/modules/shortcuts/sound-shortcut.ts index 75d3564..dc0e3ef 100755 --- a/src/modules/shortcuts/sound-shortcut.ts +++ b/src/modules/shortcuts/sound-shortcut.ts @@ -4,7 +4,7 @@ import { Toast } from "@utils/toast"; import { ceilToNearest, floorToNearest } from "@/utils/utils"; import { PrefKey } from "@/enums/pref-keys"; import { getPref, setPref } from "@/utils/settings-storages/global-settings-storage"; -import { BxEvent } from "@/utils/bx-event"; +import { BxEventBus } from "@/utils/bx-event-bus"; export enum SpeakerState { ENABLED, @@ -71,8 +71,8 @@ export class SoundShortcut { SoundShortcut.setGainNodeVolume(targetValue); Toast.show(`${t('stream')} ❯ ${t('volume')}`, status, { instant: true }); - BxEvent.dispatch(window, BxEvent.SPEAKER_STATE_CHANGED, { - speakerState: targetValue === 0 ? SpeakerState.MUTED : SpeakerState.ENABLED, + BxEventBus.Stream.emit('speaker.state.changed', { + state: targetValue === 0 ? SpeakerState.MUTED : SpeakerState.ENABLED, }); return; } @@ -84,9 +84,9 @@ export class SoundShortcut { const status = $media.muted ? t('muted') : t('unmuted'); Toast.show(`${t('stream')} ❯ ${t('volume')}`, status, { instant: true }); - BxEvent.dispatch(window, BxEvent.SPEAKER_STATE_CHANGED, { - speakerState: $media.muted ? SpeakerState.MUTED : SpeakerState.ENABLED, - }) + BxEventBus.Stream.emit('speaker.state.changed', { + state: $media.muted ? SpeakerState.MUTED : SpeakerState.ENABLED, + }); } } } diff --git a/src/utils/bx-event-bus.ts b/src/utils/bx-event-bus.ts index f0d53d9..e6fa5df 100644 --- a/src/utils/bx-event-bus.ts +++ b/src/utils/bx-event-bus.ts @@ -2,6 +2,8 @@ import type { PrefKey, StorageKey } from "@/enums/pref-keys"; import { BX_FLAGS } from "./bx-flags"; import { BxLogger } from "./bx-logger"; import { AppInterface } from "./global"; +import type { MicrophoneState } from "@/modules/shortcuts/microphone-shortcut"; +import type { SpeakerState } from "@/modules/shortcuts/sound-shortcut"; type EventCallback = (payload: T) => void; @@ -38,6 +40,12 @@ type StreamEvents = { 'state.stopped': {}; 'state.error': {}; + 'gameBar.activated': {}, + 'speaker.state.changed': { state: SpeakerState }, + 'video.visibility.changed': { isVisible: boolean }, + // Inside patch + 'microphone.state.changed': { state: MicrophoneState }, + dataChannelCreated: { dataChannel: RTCDataChannel }; }; diff --git a/src/utils/bx-event.ts b/src/utils/bx-event.ts index 8b7129a..00b6b80 100755 --- a/src/utils/bx-event.ts +++ b/src/utils/bx-event.ts @@ -4,28 +4,26 @@ import { BX_FLAGS } from "./bx-flags"; export namespace BxEvent { - export const JUMP_BACK_IN_READY = 'bx-jump-back-in-ready'; export const POPSTATE = 'bx-popstate'; // export const STREAM_EVENT_TARGET_READY = 'bx-stream-event-target-ready'; + // Inside patch export const STREAM_SESSION_READY = 'bx-stream-session-ready'; export const CUSTOM_TOUCH_LAYOUTS_LOADED = 'bx-custom-touch-layouts-loaded'; export const TOUCH_LAYOUT_MANAGER_READY = 'bx-touch-layout-manager-ready'; + // Inside app export const REMOTE_PLAY_READY = 'bx-remote-play-ready'; export const REMOTE_PLAY_FAILED = 'bx-remote-play-failed'; - export const GAME_BAR_ACTION_ACTIVATED = 'bx-game-bar-action-activated'; - export const MICROPHONE_STATE_CHANGED = 'bx-microphone-state-changed'; - export const SPEAKER_STATE_CHANGED = 'bx-speaker-state-changed'; - export const VIDEO_VISIBILITY_CHANGED = 'bx-video-visibility-changed'; - + // Inside patch export const CAPTURE_SCREENSHOT = 'bx-capture-screenshot'; export const POINTER_LOCK_REQUESTED = 'bx-pointer-lock-requested'; export const POINTER_LOCK_EXITED = 'bx-pointer-lock-exited'; + // Inside patch export const NAVIGATION_FOCUS_CHANGED = 'bx-nav-focus-changed'; export const XCLOUD_GUIDE_MENU_SHOWN = 'bx-xcloud-guide-menu-shown'; @@ -47,7 +45,6 @@ export namespace BxEvent { } const event = new Event(eventName); - if (data) { for (const key in data) { (event as any)[key] = data[key];