Files
advanced-camera-card/src/view/media-classifier.ts
T

39 lines
1.2 KiB
TypeScript

import {
ViewMedia,
FrigateEventViewMedia,
FrigateRecordingViewMedia,
RecordingViewMedia,
EventViewMedia,
} from './media';
export class ViewMediaClassifier {
public static isFrigateMedia(
media: ViewMedia,
): media is FrigateEventViewMedia | FrigateRecordingViewMedia {
return this.isFrigateEvent(media) || this.isFrigateRecording(media);
}
public static isFrigateEvent(media: ViewMedia): media is FrigateEventViewMedia {
return media instanceof FrigateEventViewMedia;
}
public static isFrigateRecording(
media: ViewMedia,
): media is FrigateRecordingViewMedia {
return media instanceof FrigateRecordingViewMedia;
}
public static isEvent(media: ViewMedia): media is EventViewMedia {
return this.isClip(media) || this.isSnapshot(media);
}
public static isRecording(media: ViewMedia): media is RecordingViewMedia {
return media.getMediaType() === 'recording';
}
public static isClip(media: ViewMedia): boolean {
return media.getMediaType() === 'clip';
}
public static isSnapshot(media: ViewMedia): boolean {
return media.getMediaType() === 'snapshot';
}
public static isVideo(media: ViewMedia): boolean {
return this.isClip(media) || this.isRecording(media);
}
}