Skip to content

Commit

Permalink
feat: pass name to comm file when spectating
Browse files Browse the repository at this point in the history
  • Loading branch information
NikhilNarayana committed Jun 6, 2022
1 parent 47af735 commit eac6190
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
3 changes: 2 additions & 1 deletion src/broadcast/spectate.worker.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,11 @@ export async function createSpectateWorker(dolphinManager: DolphinManager): Prom
const errorMessage = err instanceof Error ? err.message : err;
void ipc_spectateErrorOccurredEvent.main!.trigger({ errorMessage });
});
worker.getSpectateDetailsObservable().subscribe(({ playbackId, filePath }) => {
worker.getSpectateDetailsObservable().subscribe(({ playbackId, filePath, broadcasterName }) => {
const replayComm: ReplayCommunication = {
mode: "mirror",
replay: filePath,
gameStation: broadcasterName,
};
dolphinManager.launchPlaybackDolphin(playbackId, replayComm).catch(log.error);
});
Expand Down
10 changes: 5 additions & 5 deletions src/broadcast/spectate.worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ interface Methods {
getLogObservable(): Observable<string>;
getErrorObservable(): Observable<Error | string>;
getBroadcastListObservable(): Observable<BroadcasterItem[]>;
getSpectateDetailsObservable(): Observable<{ playbackId: string; filePath: string }>;
getSpectateDetailsObservable(): Observable<{ playbackId: string; filePath: string; broadcasterName: string }>;
getReconnectObservable(): Observable<Record<never, never>>;
}

Expand All @@ -30,7 +30,7 @@ const spectateManager = new SpectateManager();
const logSubject = new Subject<string>();
const errorSubject = new Subject<Error | string>();
const broadcastListSubject = new Subject<BroadcasterItem[]>();
const spectateDetailsSubject = new Subject<{ playbackId: string; filePath: string }>();
const spectateDetailsSubject = new Subject<{ playbackId: string; filePath: string; broadcasterName: string }>();
const reconnectSubject = new Subject<Record<never, never>>();

// Forward the events to the renderer
Expand All @@ -46,8 +46,8 @@ spectateManager.on(SpectateEvent.ERROR, async (err: Error | string) => {
errorSubject.next(err);
});

spectateManager.on(SpectateEvent.NEW_FILE, async (playbackId: string, filePath: string) => {
spectateDetailsSubject.next({ playbackId, filePath });
spectateManager.on(SpectateEvent.NEW_FILE, async (playbackId: string, filePath: string, broadcasterName: string) => {
spectateDetailsSubject.next({ playbackId, filePath, broadcasterName });
});

spectateManager.on(SpectateEvent.RECONNECT, async () => {
Expand Down Expand Up @@ -87,7 +87,7 @@ const methods: WorkerSpec = {
getBroadcastListObservable(): Observable<BroadcasterItem[]> {
return Observable.from(broadcastListSubject);
},
getSpectateDetailsObservable(): Observable<{ playbackId: string; filePath: string }> {
getSpectateDetailsObservable(): Observable<{ playbackId: string; filePath: string; broadcasterName: string }> {
return Observable.from(spectateDetailsSubject);
},
getReconnectObservable(): Observable<Record<never, never>> {
Expand Down
11 changes: 7 additions & 4 deletions src/broadcast/spectateManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,15 @@ const generatePlaybackId = (broadcastId: string) => `spectate-${broadcastId}`;
*/
export class SpectateManager extends EventEmitter {
private broadcastInfo: Record<string, BroadcastInfo> = {};
private broadcastList: Record<string, BroadcasterItem> = {};
private wsConnection: connection | null = null;

constructor() {
super();
}

private async _playFile(filePath: string, playbackId: string) {
this.emit(SpectateEvent.NEW_FILE, playbackId, filePath);
private async _playFile(filePath: string, playbackId: string, broadcasterName: string) {
this.emit(SpectateEvent.NEW_FILE, playbackId, filePath, broadcasterName);
}

private _handleEvents(obj: { type: string; broadcastId: string; cursor: string; events: any[] }) {
Expand Down Expand Up @@ -158,6 +159,7 @@ export class SpectateManager extends EventEmitter {
case "list-broadcasts-resp": {
const broadcasts: BroadcasterItem[] = obj.broadcasts ?? [];
this.emit(SpectateEvent.BROADCAST_LIST_UPDATE, broadcasts);
broadcasts.forEach((broadcast) => (this.broadcastList[broadcast.id] = broadcast));
break;
}
case "events": {
Expand Down Expand Up @@ -248,8 +250,9 @@ export class SpectateManager extends EventEmitter {
folderPath: targetPath,
});

const broadcasterName = this.broadcastList[broadcastId].name;
slpFileWriter.on(SlpFileWriterEvent.NEW_FILE, (currFilePath) => {
this._playFile(currFilePath, dolphinPlaybackId).catch(console.warn);
this._playFile(currFilePath, dolphinPlaybackId, broadcasterName).catch(console.warn);
});

this.broadcastInfo[broadcastId] = {
Expand All @@ -270,7 +273,7 @@ export class SpectateManager extends EventEmitter {
// Play an empty file such that we just launch into the waiting for game screen, this is
// used to clear out any previous file that we were reading for. The file will get updated
// by the fileWriter
this._playFile("", dolphinPlaybackId).catch(console.warn);
this._playFile("", dolphinPlaybackId, broadcasterName).catch(console.warn);
}

public handleClosedDolphin(playbackId: string) {
Expand Down

0 comments on commit eac6190

Please sign in to comment.