From 7584404d3161b6e821e918c3e9637c96a9a5ec32 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 4 Jul 2023 20:41:40 +0200 Subject: [PATCH] Fix cast build (#17162) --- cast/src/media/entrypoint.ts | 10 +++++----- cast/src/receiver/cast_context.ts | 4 ++-- cast/src/receiver/cast_framework.ts | 3 +++ cast/src/receiver/entrypoint.ts | 30 ++++++++++++++--------------- 4 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 cast/src/receiver/cast_framework.ts diff --git a/cast/src/media/entrypoint.ts b/cast/src/media/entrypoint.ts index b1f7d75cf8..ac8e150382 100644 --- a/cast/src/media/entrypoint.ts +++ b/cast/src/media/entrypoint.ts @@ -1,21 +1,21 @@ -import { cast } from "chromecast-caf-receiver"; +import { framework } from "../receiver/cast_framework"; -const castContext = cast.framework.CastReceiverContext.getInstance(); +const castContext = framework.CastReceiverContext.getInstance(); const playerManager = castContext.getPlayerManager(); playerManager.setMessageInterceptor( - cast.framework.messages.MessageType.LOAD, + framework.messages.MessageType.LOAD, (loadRequestData) => { const media = loadRequestData.media; // Special handling if it came from Google Assistant if (media.entity) { media.contentId = media.entity; - media.streamType = cast.framework.messages.StreamType.LIVE; + media.streamType = framework.messages.StreamType.LIVE; media.contentType = "application/vnd.apple.mpegurl"; // @ts-ignore media.hlsVideoSegmentFormat = - cast.framework.messages.HlsVideoSegmentFormat.FMP4; + framework.messages.HlsVideoSegmentFormat.FMP4; } return loadRequestData; } diff --git a/cast/src/receiver/cast_context.ts b/cast/src/receiver/cast_context.ts index 18d79e5edb..4f5df7d8f6 100644 --- a/cast/src/receiver/cast_context.ts +++ b/cast/src/receiver/cast_context.ts @@ -1,3 +1,3 @@ -import { cast } from "chromecast-caf-receiver"; +import { framework } from "./cast_framework"; -export const castContext = cast.framework.CastReceiverContext.getInstance(); +export const castContext = framework.CastReceiverContext.getInstance(); diff --git a/cast/src/receiver/cast_framework.ts b/cast/src/receiver/cast_framework.ts new file mode 100644 index 0000000000..19167e836b --- /dev/null +++ b/cast/src/receiver/cast_framework.ts @@ -0,0 +1,3 @@ +import type { cast as ReceiverCast } from "chromecast-caf-receiver"; + +export const framework = (cast as unknown as typeof ReceiverCast).framework; diff --git a/cast/src/receiver/entrypoint.ts b/cast/src/receiver/entrypoint.ts index cb8684b414..ee45ba55dc 100644 --- a/cast/src/receiver/entrypoint.ts +++ b/cast/src/receiver/entrypoint.ts @@ -1,4 +1,4 @@ -import { cast } from "chromecast-caf-receiver"; +import { framework } from "./cast_framework"; import { CAST_NS } from "../../../src/cast/const"; import { HassMessage } from "../../../src/cast/receiver_messages"; import "../../../src/resources/custom-card-support"; @@ -34,14 +34,14 @@ const setTouchControlsVisibility = (visible: boolean) => { let timeOut: number | undefined; const playDummyMedia = (viewTitle?: string) => { - const loadRequestData = new cast.framework.messages.LoadRequestData(); + const loadRequestData = new framework.messages.LoadRequestData(); loadRequestData.autoplay = true; - loadRequestData.media = new cast.framework.messages.MediaInformation(); + loadRequestData.media = new framework.messages.MediaInformation(); loadRequestData.media.contentId = "https://cast.home-assistant.io/images/google-nest-hub.png"; loadRequestData.media.contentType = "image/jpeg"; - loadRequestData.media.streamType = cast.framework.messages.StreamType.NONE; - const metadata = new cast.framework.messages.GenericMediaMetadata(); + loadRequestData.media.streamType = framework.messages.StreamType.NONE; + const metadata = new framework.messages.GenericMediaMetadata(); metadata.title = viewTitle; loadRequestData.media.metadata = metadata; @@ -86,10 +86,10 @@ const showMediaPlayer = () => { } }; -const options = new cast.framework.CastReceiverOptions(); +const options = new framework.CastReceiverOptions(); options.disableIdleTimeout = true; options.customNamespaces = { - [CAST_NS]: cast.framework.system.MessageType.JSON, + [CAST_NS]: framework.system.MessageType.JSON, }; castContext.addCustomMessageListener( @@ -98,8 +98,7 @@ castContext.addCustomMessageListener( (ev: ReceivedMessage) => { // We received a show Lovelace command, stop media from playing, hide media player and show Lovelace controller if ( - playerManager.getPlayerState() !== - cast.framework.messages.PlayerState.IDLE + playerManager.getPlayerState() !== framework.messages.PlayerState.IDLE ) { playerManager.stop(); } else { @@ -114,7 +113,7 @@ castContext.addCustomMessageListener( const playerManager = castContext.getPlayerManager(); playerManager.setMessageInterceptor( - cast.framework.messages.MessageType.LOAD, + framework.messages.MessageType.LOAD, (loadRequestData) => { if ( loadRequestData.media.contentId === @@ -128,25 +127,24 @@ playerManager.setMessageInterceptor( // Special handling if it came from Google Assistant if (media.entity) { media.contentId = media.entity; - media.streamType = cast.framework.messages.StreamType.LIVE; + media.streamType = framework.messages.StreamType.LIVE; media.contentType = "application/vnd.apple.mpegurl"; // @ts-ignore media.hlsVideoSegmentFormat = - cast.framework.messages.HlsVideoSegmentFormat.FMP4; + framework.messages.HlsVideoSegmentFormat.FMP4; } return loadRequestData; } ); playerManager.addEventListener( - cast.framework.events.EventType.MEDIA_STATUS, + framework.events.EventType.MEDIA_STATUS, (event) => { if ( - event.mediaStatus?.playerState === - cast.framework.messages.PlayerState.IDLE && + event.mediaStatus?.playerState === framework.messages.PlayerState.IDLE && event.mediaStatus?.idleReason && event.mediaStatus?.idleReason !== - cast.framework.messages.IdleReason.INTERRUPTED + framework.messages.IdleReason.INTERRUPTED ) { // media finished or stopped, return to default Lovelace showLovelaceController();