refactor: Convert protected methods to private (#2358)
This commit is contained in:
@@ -3,10 +3,10 @@ import { DateRange, MemoryRangeSet } from './range';
|
||||
import { RecordingSegment } from './types';
|
||||
|
||||
class MemoryRangedCache<Data> {
|
||||
protected _ranges: MemoryRangeSet = new MemoryRangeSet();
|
||||
protected _data: Data[] = [];
|
||||
protected _timeFunc: (data: Data) => number;
|
||||
protected _idFunc: (data: Data) => string;
|
||||
private _ranges: MemoryRangeSet = new MemoryRangeSet();
|
||||
private _data: Data[] = [];
|
||||
private _timeFunc: (data: Data) => number;
|
||||
private _idFunc: (data: Data) => string;
|
||||
|
||||
constructor(timeFunc: (data: Data) => number, idFunc: (data: Data) => string) {
|
||||
this._timeFunc = timeFunc;
|
||||
@@ -60,7 +60,7 @@ class MemoryRangedCache<Data> {
|
||||
}
|
||||
|
||||
export class RecordingSegmentsCache {
|
||||
protected _segments: Map<string, MemoryRangedCache<RecordingSegment>> = new Map();
|
||||
private _segments: Map<string, MemoryRangedCache<RecordingSegment>> = new Map();
|
||||
|
||||
public add(cameraID: string, range: DateRange, segments: RecordingSegment[]) {
|
||||
let cameraSegmentCache: MemoryRangedCache<RecordingSegment> | undefined =
|
||||
|
||||
@@ -28,7 +28,7 @@ export class Capabilities {
|
||||
}
|
||||
}
|
||||
|
||||
protected _disable(capability: CapabilityKey): void {
|
||||
private _disable(capability: CapabilityKey): void {
|
||||
delete this._capabilities[capability];
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ interface CameraManagerEngineFactoryOptions {
|
||||
}
|
||||
|
||||
export class CameraManagerEngineFactory {
|
||||
protected _entityRegistryManager: EntityRegistryManager;
|
||||
protected _deviceRegistryManager: DeviceRegistryManager;
|
||||
private _entityRegistryManager: EntityRegistryManager;
|
||||
private _deviceRegistryManager: DeviceRegistryManager;
|
||||
|
||||
constructor(
|
||||
entityRegistryManager: EntityRegistryManager,
|
||||
|
||||
@@ -106,7 +106,7 @@ export class FrigateCamera extends Camera {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected async _initializeConfig(
|
||||
private async _initializeConfig(
|
||||
hass: HomeAssistant,
|
||||
entityRegistryManager: EntityRegistryManager,
|
||||
): Promise<void> {
|
||||
@@ -193,7 +193,7 @@ export class FrigateCamera extends Camera {
|
||||
};
|
||||
}
|
||||
|
||||
protected _getFrigateCameraNameFromEntity(entity: Entity): string | null {
|
||||
private _getFrigateCameraNameFromEntity(entity: Entity): string | null {
|
||||
if (
|
||||
entity.platform === 'frigate' &&
|
||||
entity.unique_id &&
|
||||
@@ -244,7 +244,7 @@ export class FrigateCamera extends Camera {
|
||||
});
|
||||
}
|
||||
|
||||
protected _getJSMPEGEndpoint(): Endpoint | null {
|
||||
private _getJSMPEGEndpoint(): Endpoint | null {
|
||||
if (!this._config.frigate.camera_name) {
|
||||
return null;
|
||||
}
|
||||
@@ -301,7 +301,7 @@ export class FrigateCamera extends Camera {
|
||||
return { endpoint: cameraURL };
|
||||
}
|
||||
|
||||
protected async _getPTZCapabilities(
|
||||
private async _getPTZCapabilities(
|
||||
hass: HomeAssistant,
|
||||
cameraConfig: CameraConfig,
|
||||
): Promise<PTZCapabilities | null> {
|
||||
@@ -352,7 +352,7 @@ export class FrigateCamera extends Camera {
|
||||
* @param cameraConfig The camera config in question.
|
||||
* @returns The entity id of the motion sensor or null.
|
||||
*/
|
||||
protected _getMotionSensor(
|
||||
private _getMotionSensor(
|
||||
cameraConfig: CameraConfig,
|
||||
entities: Entity[],
|
||||
): string | null {
|
||||
@@ -376,7 +376,7 @@ export class FrigateCamera extends Camera {
|
||||
* @param cameraConfig The camera config in question.
|
||||
* @returns The entity id of the occupancy sensor or null.
|
||||
*/
|
||||
protected _getOccupancySensor(
|
||||
private _getOccupancySensor(
|
||||
cameraConfig: CameraConfig,
|
||||
entities: Entity[],
|
||||
): string[] | null {
|
||||
@@ -419,7 +419,7 @@ export class FrigateCamera extends Camera {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected async _subscribeToEvents(
|
||||
private async _subscribeToEvents(
|
||||
hass: HomeAssistant,
|
||||
frigateEventWatcher: FrigateWatcherSubscriptionInterface<FrigateEventChange>,
|
||||
): Promise<void> {
|
||||
@@ -441,7 +441,7 @@ export class FrigateCamera extends Camera {
|
||||
this._onDestroy(() => frigateEventWatcher.unsubscribe(request));
|
||||
}
|
||||
|
||||
protected _frigateEventHandler = (ev: FrigateEventChange): void => {
|
||||
private _frigateEventHandler = (ev: FrigateEventChange): void => {
|
||||
const snapshotChange =
|
||||
(!ev.before.has_snapshot && ev.after.has_snapshot) ||
|
||||
ev.before.snapshot?.frame_time !== ev.after.snapshot?.frame_time;
|
||||
@@ -487,7 +487,7 @@ export class FrigateCamera extends Camera {
|
||||
});
|
||||
};
|
||||
|
||||
protected async _subscribeToReviews(
|
||||
private async _subscribeToReviews(
|
||||
hass: HomeAssistant,
|
||||
frigateReviewWatcher: FrigateWatcherSubscriptionInterface<FrigateReviewChange>,
|
||||
): Promise<void> {
|
||||
@@ -512,7 +512,7 @@ export class FrigateCamera extends Camera {
|
||||
this._onDestroy(() => frigateReviewWatcher.unsubscribe(request));
|
||||
}
|
||||
|
||||
protected _frigateReviewHandler = (review: FrigateReviewChange): void => {
|
||||
private _frigateReviewHandler = (review: FrigateReviewChange): void => {
|
||||
const config = this.getConfig();
|
||||
const cameraID = this._config.id;
|
||||
|
||||
|
||||
@@ -120,14 +120,14 @@ export class FrigateCameraManagerEngine
|
||||
extends GenericCameraManagerEngine
|
||||
implements CameraManagerEngine
|
||||
{
|
||||
protected _entityRegistryManager: EntityRegistryManager;
|
||||
protected _frigateEventWatcher: FrigateEventWatcher;
|
||||
protected _frigateReviewWatcher: FrigateReviewWatcher;
|
||||
protected _recordingSegmentsCache: RecordingSegmentsCache;
|
||||
protected _requestCache: CameraManagerRequestCache;
|
||||
private _entityRegistryManager: EntityRegistryManager;
|
||||
private _frigateEventWatcher: FrigateEventWatcher;
|
||||
private _frigateReviewWatcher: FrigateReviewWatcher;
|
||||
private _recordingSegmentsCache: RecordingSegmentsCache;
|
||||
private _requestCache: CameraManagerRequestCache;
|
||||
|
||||
// Garbage collect segments at most once an hour.
|
||||
protected _throttledSegmentGarbageCollector = throttle(
|
||||
private _throttledSegmentGarbageCollector = throttle(
|
||||
this._garbageCollectSegments.bind(this),
|
||||
60 * 60 * 1000,
|
||||
{ leading: false, trailing: true },
|
||||
@@ -272,17 +272,17 @@ export class FrigateCameraManagerEngine
|
||||
* If all cameras have identical zones/labels config, creates a single batch query.
|
||||
* Otherwise fans out to per-camera queries.
|
||||
*/
|
||||
protected _generateBatchableQuery(
|
||||
private _generateBatchableQuery(
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
cameraIDs: Set<string>,
|
||||
query: PartialEventQuery & { type: QueryType.Event },
|
||||
): EventQuery[] | null;
|
||||
protected _generateBatchableQuery(
|
||||
private _generateBatchableQuery(
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
cameraIDs: Set<string>,
|
||||
query: PartialReviewQuery & { type: QueryType.Review },
|
||||
): ReviewQuery[] | null;
|
||||
protected _generateBatchableQuery(
|
||||
private _generateBatchableQuery(
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
cameraIDs: Set<string>,
|
||||
query: (PartialEventQuery | PartialReviewQuery) & {
|
||||
@@ -368,7 +368,7 @@ export class FrigateCameraManagerEngine
|
||||
);
|
||||
}
|
||||
|
||||
protected _buildInstanceToCameraIDMapFromQuery(
|
||||
private _buildInstanceToCameraIDMapFromQuery(
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
cameraIDs: Set<string>,
|
||||
): Map<string, Set<string>> {
|
||||
@@ -386,7 +386,7 @@ export class FrigateCameraManagerEngine
|
||||
return output;
|
||||
}
|
||||
|
||||
protected _getFrigateCameraNamesForCameraIDs(
|
||||
private _getFrigateCameraNamesForCameraIDs(
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
cameraIDs: Set<string>,
|
||||
): Set<string> {
|
||||
@@ -725,7 +725,7 @@ export class FrigateCameraManagerEngine
|
||||
return output.size ? output : null;
|
||||
}
|
||||
|
||||
protected _getCameraIDMatch(
|
||||
private _getCameraIDMatch(
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
query: CameraQuery,
|
||||
instanceID: string,
|
||||
@@ -927,7 +927,7 @@ export class FrigateCameraManagerEngine
|
||||
return null;
|
||||
}
|
||||
|
||||
protected _getQueryableCameraConfig(
|
||||
private _getQueryableCameraConfig(
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
cameraID: string,
|
||||
): CameraConfig | null {
|
||||
@@ -938,7 +938,7 @@ export class FrigateCameraManagerEngine
|
||||
return cameraConfig;
|
||||
}
|
||||
|
||||
protected _splitSubLabels(input: string): string[] {
|
||||
private _splitSubLabels(input: string): string[] {
|
||||
// A note on Frigate sub_labels: As of Frigate v0.12 sub_labels is a string
|
||||
// (not an array) per event, but may contain comma-separated values (e.g.
|
||||
// double-take (https://github.com/jakowenko/double-take) identifying two
|
||||
@@ -1058,7 +1058,7 @@ export class FrigateCameraManagerEngine
|
||||
* Garbage collect recording segments that no longer feature in the recordings
|
||||
* returned by the Frigate backend.
|
||||
*/
|
||||
protected async _garbageCollectSegments(
|
||||
private async _garbageCollectSegments(
|
||||
hass: HomeAssistant,
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
): Promise<void> {
|
||||
@@ -1113,7 +1113,7 @@ export class FrigateCameraManagerEngine
|
||||
* @param segments An array of segments dataset items. Must be sorted from oldest to youngest.
|
||||
* @returns
|
||||
*/
|
||||
protected _getSeekTimeInSegments(
|
||||
private _getSeekTimeInSegments(
|
||||
startTime: Date,
|
||||
targetTime: Date,
|
||||
segments: RecordingSegment[],
|
||||
|
||||
@@ -25,10 +25,10 @@ import {
|
||||
} from './util';
|
||||
|
||||
export class FrigateEventViewMedia extends ViewMedia implements EventViewMedia {
|
||||
protected _event: FrigateEvent;
|
||||
protected _contentID: string;
|
||||
protected _thumbnail: string;
|
||||
protected _subLabels: string[] | null;
|
||||
private _event: FrigateEvent;
|
||||
private _contentID: string;
|
||||
private _thumbnail: string;
|
||||
private _subLabels: string[] | null;
|
||||
|
||||
constructor(
|
||||
mediaType: ViewMediaType,
|
||||
@@ -107,10 +107,10 @@ export class FrigateEventViewMedia extends ViewMedia implements EventViewMedia {
|
||||
}
|
||||
|
||||
export class FrigateRecordingViewMedia extends ViewMedia implements RecordingViewMedia {
|
||||
protected _recording: FrigateRecording;
|
||||
protected _id: string;
|
||||
protected _contentID: string;
|
||||
protected _title: string;
|
||||
private _recording: FrigateRecording;
|
||||
private _id: string;
|
||||
private _contentID: string;
|
||||
private _title: string;
|
||||
|
||||
constructor(
|
||||
mediaType: ViewMediaType,
|
||||
@@ -156,10 +156,10 @@ export class FrigateRecordingViewMedia extends ViewMedia implements RecordingVie
|
||||
}
|
||||
|
||||
export class FrigateReviewViewMedia extends ViewMedia implements ReviewViewMedia {
|
||||
protected _review: FrigateReview;
|
||||
protected _contentID: string;
|
||||
protected _thumbnail: string | null;
|
||||
protected _title: string;
|
||||
private _review: FrigateReview;
|
||||
private _contentID: string;
|
||||
private _thumbnail: string | null;
|
||||
private _title: string;
|
||||
|
||||
constructor(
|
||||
cameraID: string,
|
||||
|
||||
@@ -129,10 +129,10 @@ interface ExtendedMediaQueryResult<T extends MediaQuery> {
|
||||
}
|
||||
|
||||
export class CameraManager {
|
||||
protected _api: CardCameraAPI;
|
||||
protected _engineFactory: CameraManagerEngineFactory;
|
||||
protected _store: CameraManagerStore;
|
||||
protected _requestLimit = new PQueue();
|
||||
private _api: CardCameraAPI;
|
||||
private _engineFactory: CameraManagerEngineFactory;
|
||||
private _store: CameraManagerStore;
|
||||
private _requestLimit = new PQueue();
|
||||
|
||||
constructor(
|
||||
api: CardCameraAPI,
|
||||
@@ -185,7 +185,7 @@ export class CameraManager {
|
||||
await this._store.reset();
|
||||
}
|
||||
|
||||
protected async _getEnginesForCameras(
|
||||
private async _getEnginesForCameras(
|
||||
camerasConfig: CameraConfig[],
|
||||
): Promise<Map<CameraConfig, CameraManagerEngine>> {
|
||||
const output: Map<CameraConfig, CameraManagerEngine> = new Map();
|
||||
@@ -228,7 +228,7 @@ export class CameraManager {
|
||||
return output;
|
||||
}
|
||||
|
||||
protected async _initializeCameras(camerasConfig: CameraConfig[]): Promise<void> {
|
||||
private async _initializeCameras(camerasConfig: CameraConfig[]): Promise<void> {
|
||||
const initializationStartTime = new Date();
|
||||
const hass = this._api.getHASSManager().getHASS();
|
||||
|
||||
@@ -364,7 +364,7 @@ export class CameraManager {
|
||||
});
|
||||
}
|
||||
|
||||
protected _generateDefaultQueries<PQT extends PartialCameraQuery>(
|
||||
private _generateDefaultQueries<PQT extends PartialCameraQuery>(
|
||||
cameraIDs: string | Set<string>,
|
||||
partialQuery: PQT,
|
||||
): PartialQueryConcreteType<PQT>[] | null {
|
||||
@@ -481,7 +481,7 @@ export class CameraManager {
|
||||
* properties (other than cameraIDs). This preserves multi-camera batching for
|
||||
* engines like Frigate that support querying multiple cameras at once.
|
||||
*/
|
||||
protected _mergeCompatibleQueries<T extends CameraQuery>(queries: T[]): T[] {
|
||||
private _mergeCompatibleQueries<T extends CameraQuery>(queries: T[]): T[] {
|
||||
if (queries.length <= 1) {
|
||||
return queries;
|
||||
}
|
||||
@@ -720,7 +720,7 @@ export class CameraManager {
|
||||
);
|
||||
}
|
||||
|
||||
protected async _handleQuery<QT extends CameraQuery>(
|
||||
private async _handleQuery<QT extends CameraQuery>(
|
||||
query: QT | QT[],
|
||||
engineOptions?: EngineOptions,
|
||||
): Promise<Map<QT, QueryReturnType<QT>>> {
|
||||
@@ -821,7 +821,7 @@ export class CameraManager {
|
||||
return results;
|
||||
}
|
||||
|
||||
protected _convertQueryResultsToMedia<QT extends CameraQuery>(
|
||||
private _convertQueryResultsToMedia<QT extends CameraQuery>(
|
||||
results: ResultsMap<QT>,
|
||||
): ViewMedia[] {
|
||||
const mediaArray: ViewMedia[] = [];
|
||||
|
||||
@@ -60,8 +60,8 @@ const MOTIONEYE_REPL_SUBSTITUTIONS: Record<string, string> = {
|
||||
const MOTIONEYE_REPL_REGEXP = new RegExp(/(%Y|%m|%d|%H|%M|%S)/g);
|
||||
|
||||
export class MotionEyeCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
||||
protected _directoryCache = new BrowseMediaCache<BrowseMediaMetadata>();
|
||||
protected _fileCache = new BrowseMediaCache<BrowseMediaMetadata>();
|
||||
private _directoryCache = new BrowseMediaCache<BrowseMediaMetadata>();
|
||||
private _fileCache = new BrowseMediaCache<BrowseMediaMetadata>();
|
||||
|
||||
public getEngineType(): Engine {
|
||||
return Engine.MotionEye;
|
||||
@@ -81,7 +81,7 @@ export class MotionEyeCameraManagerEngine extends BrowseMediaCameraManagerEngine
|
||||
});
|
||||
}
|
||||
|
||||
protected _convertMotionEyeTimeFormatToDateFNS(part: string): string {
|
||||
private _convertMotionEyeTimeFormatToDateFNS(part: string): string {
|
||||
return part.replace(
|
||||
MOTIONEYE_REPL_REGEXP,
|
||||
(_, key) => MOTIONEYE_REPL_SUBSTITUTIONS[key],
|
||||
@@ -89,7 +89,7 @@ export class MotionEyeCameraManagerEngine extends BrowseMediaCameraManagerEngine
|
||||
}
|
||||
|
||||
// Get metadata for a MotionEye media file.
|
||||
protected _motionEyeMetadataGeneratorFile(
|
||||
private _motionEyeMetadataGeneratorFile(
|
||||
cameraID: string,
|
||||
dateFormat: string | null,
|
||||
media: BrowseMedia,
|
||||
@@ -112,7 +112,7 @@ export class MotionEyeCameraManagerEngine extends BrowseMediaCameraManagerEngine
|
||||
}
|
||||
|
||||
// Get metadata for a MotionEye media directory.
|
||||
protected _motionEyeMetadataGeneratorDirectory(
|
||||
private _motionEyeMetadataGeneratorDirectory(
|
||||
cameraID: string,
|
||||
dateFormat: string | null,
|
||||
media: BrowseMedia,
|
||||
@@ -134,7 +134,7 @@ export class MotionEyeCameraManagerEngine extends BrowseMediaCameraManagerEngine
|
||||
}
|
||||
|
||||
// Get media directories that match a given criteria.
|
||||
protected async _getMatchingDirectories(
|
||||
private async _getMatchingDirectories(
|
||||
hass: HomeAssistant,
|
||||
store: CameraManagerReadOnlyConfigStore,
|
||||
cameraID: string,
|
||||
|
||||
@@ -15,7 +15,7 @@ interface MemoryRangeSetInterface<T> {
|
||||
}
|
||||
|
||||
export class MemoryRangeSet implements MemoryRangeSetInterface<DateRange> {
|
||||
protected _ranges: DateRange[];
|
||||
private _ranges: DateRange[];
|
||||
|
||||
constructor(ranges?: DateRange[]) {
|
||||
this._ranges = ranges ?? [];
|
||||
@@ -44,7 +44,7 @@ export interface ExpiringRange<T extends Date | number> extends Range<T> {
|
||||
export class ExpiringMemoryRangeSet
|
||||
implements MemoryRangeSetInterface<ExpiringRange<Date>>
|
||||
{
|
||||
protected _ranges: ExpiringRange<Date>[];
|
||||
private _ranges: ExpiringRange<Date>[];
|
||||
|
||||
constructor(ranges?: ExpiringRange<Date>[]) {
|
||||
this._ranges = ranges ?? [];
|
||||
@@ -63,7 +63,7 @@ export class ExpiringMemoryRangeSet
|
||||
this._expireOldRanges();
|
||||
}
|
||||
|
||||
protected _expireOldRanges(): void {
|
||||
private _expireOldRanges(): void {
|
||||
const now = new Date();
|
||||
this._ranges = this._ranges.filter((range) => now < range.expires);
|
||||
}
|
||||
|
||||
@@ -41,16 +41,16 @@ type PTZEntity = keyof PTZEntities;
|
||||
|
||||
export class ReolinkCamera extends EntityCamera {
|
||||
// The HostID identifying the camera or NVR.
|
||||
protected _reolinkHostID: string | null = null;
|
||||
private _reolinkHostID: string | null = null;
|
||||
|
||||
// For NVRs, the Camera UID.
|
||||
protected _reolinkCameraUID: string | null = null;
|
||||
private _reolinkCameraUID: string | null = null;
|
||||
|
||||
// The channel number as used by the Reolink integration.
|
||||
protected _reolinkChannel: number | null = null;
|
||||
private _reolinkChannel: number | null = null;
|
||||
|
||||
// Entities used for PTZ control.
|
||||
protected _ptzEntities: PTZEntities | null = null;
|
||||
private _ptzEntities: PTZEntities | null = null;
|
||||
|
||||
/**
|
||||
* Reolink cameras require additional options not present in the base class
|
||||
@@ -62,7 +62,7 @@ export class ReolinkCamera extends EntityCamera {
|
||||
return super.initialize(options);
|
||||
}
|
||||
|
||||
protected async _getChannelFromConfigurationURL(
|
||||
private async _getChannelFromConfigurationURL(
|
||||
hass: HomeAssistant,
|
||||
deviceRegistryManager: DeviceRegistryManager,
|
||||
): Promise<number | null> {
|
||||
@@ -84,7 +84,7 @@ export class ReolinkCamera extends EntityCamera {
|
||||
}
|
||||
}
|
||||
|
||||
protected async _initializeChannel(
|
||||
private async _initializeChannel(
|
||||
hass: HomeAssistant,
|
||||
deviceRegistryManager: DeviceRegistryManager,
|
||||
): Promise<void> {
|
||||
@@ -169,7 +169,7 @@ export class ReolinkCamera extends EntityCamera {
|
||||
};
|
||||
}
|
||||
|
||||
protected _entitiesToCapabilities(
|
||||
private _entitiesToCapabilities(
|
||||
hass: HomeAssistant,
|
||||
ptzEntities: PTZEntities,
|
||||
): PTZCapabilities | null {
|
||||
@@ -203,7 +203,7 @@ export class ReolinkCamera extends EntityCamera {
|
||||
return Object.keys(reolinkPTZCapabilities).length ? reolinkPTZCapabilities : null;
|
||||
}
|
||||
|
||||
protected async _getPTZEntities(
|
||||
private async _getPTZEntities(
|
||||
hass: HomeAssistant,
|
||||
entityRegistry: EntityRegistryManager,
|
||||
): Promise<PTZEntities | null> {
|
||||
@@ -264,7 +264,7 @@ export class ReolinkCamera extends EntityCamera {
|
||||
return this._reolinkChannel;
|
||||
}
|
||||
|
||||
protected _getPTZEntityUniqueIDPrefix(): string {
|
||||
private _getPTZEntityUniqueIDPrefix(): string {
|
||||
return `${this._reolinkHostID}_${this._reolinkCameraUID ?? this._reolinkChannel}_`;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,9 +53,9 @@ export class ReolinkQueryResultsClassifier {
|
||||
}
|
||||
|
||||
export class ReolinkCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
||||
protected _camerasCache = new BrowseMediaCache<BrowseMediaReolinkCameraMetadata>();
|
||||
protected _cache = new BrowseMediaCache<BrowseMediaMetadata>();
|
||||
protected _deviceRegistryManager: DeviceRegistryManager;
|
||||
private _camerasCache = new BrowseMediaCache<BrowseMediaReolinkCameraMetadata>();
|
||||
private _cache = new BrowseMediaCache<BrowseMediaMetadata>();
|
||||
private _deviceRegistryManager: DeviceRegistryManager;
|
||||
|
||||
public constructor(
|
||||
entityRegistryManager: EntityRegistryManager,
|
||||
@@ -81,7 +81,7 @@ export class ReolinkCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
||||
return Engine.Reolink;
|
||||
}
|
||||
|
||||
protected _reolinkFileMetadataGenerator(
|
||||
private _reolinkFileMetadataGenerator(
|
||||
cameraID: string,
|
||||
media: BrowseMedia,
|
||||
parent?: RichBrowseMedia<BrowseMediaMetadata>,
|
||||
@@ -133,7 +133,7 @@ export class ReolinkCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
||||
};
|
||||
}
|
||||
|
||||
protected _reolinkDirectoryMetadataGenerator(
|
||||
private _reolinkDirectoryMetadataGenerator(
|
||||
cameraID: string,
|
||||
media: BrowseMedia,
|
||||
): BrowseMediaMetadata | null {
|
||||
@@ -149,7 +149,7 @@ export class ReolinkCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
||||
: null;
|
||||
}
|
||||
|
||||
protected _reolinkCameraMetadataGenerator(
|
||||
private _reolinkCameraMetadataGenerator(
|
||||
media: BrowseMedia,
|
||||
): BrowseMediaReolinkCameraMetadata | null {
|
||||
// Example: "media-source://reolink/CAM|01J8XHYTNH77WE3C654K03KX1F|0"
|
||||
@@ -179,7 +179,7 @@ export class ReolinkCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
||||
});
|
||||
}
|
||||
|
||||
protected async _getMatchingDirectories(
|
||||
private async _getMatchingDirectories(
|
||||
hass: HomeAssistant,
|
||||
camera: ReolinkCamera,
|
||||
matchOptions?: {
|
||||
|
||||
@@ -38,8 +38,8 @@ export interface CameraManagerReadOnlyConfigStore {
|
||||
}
|
||||
|
||||
export class CameraManagerStore implements CameraManagerReadOnlyConfigStore {
|
||||
protected _cameras: Map<string, Camera> = new Map();
|
||||
protected _enginesByType: Map<Engine, CameraManagerEngine> = new Map();
|
||||
private _cameras: Map<string, Camera> = new Map();
|
||||
private _enginesByType: Map<Engine, CameraManagerEngine> = new Map();
|
||||
|
||||
public addCamera(camera: Camera): void {
|
||||
this._cameras.set(camera.getID(), camera);
|
||||
|
||||
@@ -17,7 +17,7 @@ interface PTZEntities {
|
||||
type PTZEntity = keyof PTZEntities;
|
||||
|
||||
export class TPLinkCamera extends EntityCamera {
|
||||
protected _ptzEntities: PTZEntities | null = null;
|
||||
private _ptzEntities: PTZEntities | null = null;
|
||||
|
||||
protected async _initialize(
|
||||
options: TPLinkCameraInitializationOptions,
|
||||
@@ -45,7 +45,7 @@ export class TPLinkCamera extends EntityCamera {
|
||||
};
|
||||
}
|
||||
|
||||
protected async _getPTZEntities(
|
||||
private async _getPTZEntities(
|
||||
hass: HomeAssistant,
|
||||
entityRegistry: EntityRegistryManager,
|
||||
): Promise<PTZEntities | null> {
|
||||
@@ -82,7 +82,7 @@ export class TPLinkCamera extends EntityCamera {
|
||||
return Object.keys(ptzEntities).length ? ptzEntities : null;
|
||||
}
|
||||
|
||||
protected _entitiesToCapabilities(ptzEntities: PTZEntities): PTZCapabilities {
|
||||
private _entitiesToCapabilities(ptzEntities: PTZEntities): PTZCapabilities {
|
||||
const tplinkPTZCapabilities: PTZCapabilities = {};
|
||||
// TPLink buttons perform relative movements (no stop button needed)
|
||||
for (const key of Object.keys(ptzEntities) as PTZEntity[]) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import { CameraEventCallback, CameraManagerCameraMetadata, Engine } from '../typ
|
||||
import { TPLinkCamera } from './camera';
|
||||
|
||||
export class TPLinkCameraManagerEngine extends GenericCameraManagerEngine {
|
||||
protected _entityRegistryManager: EntityRegistryManager;
|
||||
private _entityRegistryManager: EntityRegistryManager;
|
||||
|
||||
constructor(
|
||||
entityRegistryManager: EntityRegistryManager,
|
||||
|
||||
Reference in New Issue
Block a user