🚨 cleanup

This commit is contained in:
2024-07-15 22:09:03 +00:00
parent 41bdd55358
commit 9ed2f70701
8 changed files with 19 additions and 167 deletions

View File

@@ -56,14 +56,13 @@ export class ChromecastSender implements Sender {
this.dataChannel.addEventListener('message', (event) => {
console.log('data channel message', event.data);
});
window['webrtcPeer'] = this.webrtcPeer;
window['dataChannel'] = this.dataChannel;
const offer = await this.webrtcPeer.createOffer();
await this.webrtcPeer.setLocalDescription(offer);
// @ts-ignore
this.sendMessage({ type: 'RTC_OFFER', offer });
this.webrtcPeer.onicecandidate = (event: any) => {
if (event.candidate) {
// @ts-ignore
this.sendMessage({ type: 'RTC_ICE', candidate: event.candidate });
// @ts-ignore
console.log('sending ice candidate', event.candidate);
@@ -159,7 +158,7 @@ export class ChromecastSender implements Sender {
export class ChromecastReceiver extends EventTarget implements Receiver {
private webrtcPeer?: RTCPeerConnection
private dataChannel: RTCDataChannel;
private dataChannel?: RTCDataChannel;
constructor() {
super();
@@ -189,7 +188,7 @@ export class ChromecastReceiver extends EventTarget implements Receiver {
this.dispatchEvent(new CustomEvent(msg.type, {detail: msg}));
this.dispatchEvent(new CustomEvent('all', {detail: msg}));
// log('data channel message', event.data);
this.dataChannel.send(JSON.stringify({ type: 'ACK', data: 'Hello, sender!' }));
this.dataChannel?.send(JSON.stringify({ type: 'ACK', data: 'Hello, sender!' }));
} catch (err) {
log('data channel error', err);
}
@@ -210,15 +209,16 @@ export class ChromecastReceiver extends EventTarget implements Receiver {
private initializeCastApi() {
try {
// @ts-ignore
const context = cast.framework.CastReceiverContext.getInstance();
// @ts-ignore
const options = new cast.framework.CastReceiverOptions();
const playerManager = context.getPlayerManager();
context.addCustomMessageListener(CHANNEL, (event) => {
context.addCustomMessageListener(CHANNEL, (event: any) => {
const msg = event.data;
log('msg', event.data.type);
if (msg.type === 'RTC_OFFER') {
this.initializeWebRTC(msg.offer, (data) => context.sendCustomMessage(CHANNEL, event.senderId, data));
this.initializeWebRTC(msg.offer, (data: any) => context.sendCustomMessage(CHANNEL, event.senderId, data));
} else if (msg.type === 'RTC_ICE') {
this.webrtcPeer?.addIceCandidate(msg.candidate);
} else {
@@ -233,6 +233,7 @@ export class ChromecastReceiver extends EventTarget implements Receiver {
options.maxInactivity = 3600; // Development only
context.start(options);
} catch (err) {
// @ts-ignore
log('initializeCastApi error', err.stack);
}
}

View File

@@ -54,7 +54,7 @@ export class FileManager {
}
}
private extractMetaFromFileName(name: string): { width: number, height: number } {
private extractMetaFromFileName(name: string): { width: number, height: number } | undefined {
const czepeku = new RegExp(/\[([0-9]+)x([0-9]+)\]/);
const czepekuMatches = name?.match(czepeku);
if (czepekuMatches) {

View File

@@ -1,13 +1,9 @@
import { InjectionKey } from "vue";
import type { FileManager } from "./FileManager";
import type { CastSender } from "./CastSender.ts_";
import type { CastReceiver } from "./CastReceiver.ts_";
import { Receiver, Sender } from "./CommunicationChannel";
export const FileManagerSymbol = Symbol("FileManager") as InjectionKey<FileManager>;
export const CastSenderSymbol = Symbol("CastSender") as InjectionKey<CastSender>;
export const CastReceiverSymbol = Symbol("CastReceiver") as InjectionKey<CastReceiver>;
export const CastTypeSymbol = Symbol("CastType") as InjectionKey<"sender" | "receiver">;
export const SenderSymbol = Symbol('Sender') as InjectionKey<Sender>;
export const ReceiverSymbol = Symbol('Receiver') as InjectionKey<Receiver>;