39 lines
1.2 KiB
TypeScript
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);
|
|
}
|
|
}
|