diff --git a/src/controllers/atisLetter.ts b/src/controllers/atisLetter.ts index f04ba45..69358fc 100644 --- a/src/controllers/atisLetter.ts +++ b/src/controllers/atisLetter.ts @@ -5,6 +5,7 @@ import TitleBuilder from "@root/utils/titleBuilder"; import { stringOrUndefined } from "@root/utils/utils"; import { BaseController } from "./baseController"; import debounce from "debounce"; +import { ATIS_LETTER_CONTROLLER_TYPE } from "@utils/controllerTypes"; const defaultTemplatePath = "images/actions/atisLetter/template.svg"; @@ -13,7 +14,7 @@ const defaultTemplatePath = "images/actions/atisLetter/template.svg"; * state and Stream Deck action for an individual action in a profile. */ export class AtisLetterController extends BaseController { - type = "AtisLetterController"; + type = ATIS_LETTER_CONTROLLER_TYPE; private _autoClearTimeout?: NodeJS.Timeout; private _isUnavailable = false; @@ -279,12 +280,12 @@ export class AtisLetterController extends BaseController { } /* - * Typeguard for HotlineController. + * Typeguard for AtisLetterController. * @param action The action - * @returns True if the action is a HotlineController + * @returns True if the action is an AtisLetterController */ export function isAtisLetterController( action: Controller ): action is AtisLetterController { - return action.type === "AtisLetterController"; + return action.type === ATIS_LETTER_CONTROLLER_TYPE; } diff --git a/src/controllers/hotline.ts b/src/controllers/hotline.ts index 9ba1ca1..9507c5e 100644 --- a/src/controllers/hotline.ts +++ b/src/controllers/hotline.ts @@ -5,6 +5,7 @@ import TitleBuilder from "@root/utils/titleBuilder"; import { stringOrUndefined } from "@root/utils/utils"; import { BaseController } from "./baseController"; import debounce from "debounce"; +import { HOTLINE_CONTROLLER_TYPE } from "@utils/controllerTypes"; const defaultTemplatePath = "images/actions/hotline/template.svg"; @@ -13,7 +14,7 @@ const defaultTemplatePath = "images/actions/hotline/template.svg"; * state and Stream Deck action for an individual action in a profile. */ export class HotlineController extends BaseController { - type = "HotlineController"; + type = HOTLINE_CONTROLLER_TYPE; private _settings: HotlineSettings | null = null; @@ -453,5 +454,5 @@ export class HotlineController extends BaseController { export function isHotlineController( action: Controller ): action is HotlineController { - return action.type === "HotlineController"; + return action.type === HOTLINE_CONTROLLER_TYPE; } diff --git a/src/controllers/pushToTalk.ts b/src/controllers/pushToTalk.ts index bb3d5d0..0aff09b 100644 --- a/src/controllers/pushToTalk.ts +++ b/src/controllers/pushToTalk.ts @@ -5,6 +5,7 @@ import TitleBuilder from "@root/utils/titleBuilder"; import { stringOrUndefined } from "@root/utils/utils"; import { BaseController } from "./baseController"; import debounce from "debounce"; +import { PUSH_TO_TALK_CONTROLLER_TYPE } from "@utils/controllerTypes"; const defaultTemplatePath = "images/actions/pushToTalk/template.svg"; @@ -13,7 +14,7 @@ const defaultTemplatePath = "images/actions/pushToTalk/template.svg"; * state and Stream Deck action for an individual action in a profile. */ export class PushToTalkController extends BaseController { - type = "PushToTalkController"; + type = PUSH_TO_TALK_CONTROLLER_TYPE; private _settings: PushToTalkSettings | null = null; private _isTransmitting = false; @@ -176,5 +177,5 @@ export class PushToTalkController extends BaseController { export function isPushToTalkController( action: Controller ): action is PushToTalkController { - return action.type === "PushToTalkController"; + return action.type === PUSH_TO_TALK_CONTROLLER_TYPE; } diff --git a/src/controllers/stationStatus.ts b/src/controllers/stationStatus.ts index 837953e..5dab23b 100644 --- a/src/controllers/stationStatus.ts +++ b/src/controllers/stationStatus.ts @@ -7,6 +7,7 @@ import { LRUCache } from "lru-cache"; import { BaseController } from "./baseController"; import debounce from "debounce"; import mainLogger from "@utils/logger"; +import { STATION_STATUS_CONTROLLER_TYPE } from "@utils/controllerTypes"; // Valid values for the ListenTo property. This must match // the list of array property names that come from TrackAudio @@ -22,7 +23,7 @@ const defaultTemplatePath = "images/actions/stationStatus/template.svg"; * state and Stream Deck action for an individual action in a profile. */ export class StationStatusController extends BaseController { - type = "StationStatusController"; + type = STATION_STATUS_CONTROLLER_TYPE; private _frequency = 0; private _isAvailable: boolean | undefined = undefined; @@ -622,5 +623,5 @@ export class StationStatusController extends BaseController { export function isStationStatusController( action: Controller ): action is StationStatusController { - return action.type === "StationStatusController"; + return action.type === STATION_STATUS_CONTROLLER_TYPE; } diff --git a/src/controllers/stationVolume.ts b/src/controllers/stationVolume.ts index be8167d..b56784f 100644 --- a/src/controllers/stationVolume.ts +++ b/src/controllers/stationVolume.ts @@ -5,11 +5,12 @@ import { Controller } from "@interfaces/controller"; import { stringOrUndefined } from "@utils/utils"; import { handleAsyncException } from "@utils/handleAsyncException"; import debounce from "debounce"; +import { STATION_VOLUME_CONTROLLER_TYPE } from "@utils/controllerTypes"; const defaultTemplatePath = "images/actions/stationVolume/template.svg"; export class StationVolumeController extends BaseController { - type = "StationVolumeController"; + type = STATION_VOLUME_CONTROLLER_TYPE; declare action: DialAction; // This ensures action from the base class is always a DialAction @@ -302,5 +303,5 @@ export class StationVolumeController extends BaseController { export function isStationVolumeController( action: Controller ): action is StationVolumeController { - return action.type === "StationVolumeController"; + return action.type === STATION_VOLUME_CONTROLLER_TYPE; } diff --git a/src/controllers/trackAudioStatus.ts b/src/controllers/trackAudioStatus.ts index 003d037..52d7107 100644 --- a/src/controllers/trackAudioStatus.ts +++ b/src/controllers/trackAudioStatus.ts @@ -5,6 +5,7 @@ import TitleBuilder from "@root/utils/titleBuilder"; import { stringOrUndefined } from "@root/utils/utils"; import { BaseController } from "./baseController"; import debounce from "debounce"; +import { TRACKAUDIO_STATUS_CONTROLLER_TYPE } from "@utils/controllerTypes"; const defaultTemplatePath = "images/actions/trackAudioStatus/template.svg"; @@ -13,7 +14,7 @@ const defaultTemplatePath = "images/actions/trackAudioStatus/template.svg"; * state and Stream Deck action for an individual action in a profile. */ export class TrackAudioStatusController extends BaseController { - type = "TrackAudioStatusController"; + type = TRACKAUDIO_STATUS_CONTROLLER_TYPE; private _isConnected = false; private _isVoiceConnected = false; @@ -226,5 +227,5 @@ export class TrackAudioStatusController extends BaseController { export function isTrackAudioStatusController( action: Controller ): action is TrackAudioStatusController { - return action.type === "TrackAudioStatusController"; + return action.type === TRACKAUDIO_STATUS_CONTROLLER_TYPE; } diff --git a/src/utils/controllerTypes.ts b/src/utils/controllerTypes.ts new file mode 100644 index 0000000..dbcb3df --- /dev/null +++ b/src/utils/controllerTypes.ts @@ -0,0 +1,6 @@ +export const ATIS_LETTER_CONTROLLER_TYPE = "AtisLetterController"; +export const HOTLINE_CONTROLLER_TYPE = "HotlineController"; +export const PUSH_TO_TALK_CONTROLLER_TYPE = "PushToTalkController"; +export const STATION_STATUS_CONTROLLER_TYPE = "StationStatusController"; +export const STATION_VOLUME_CONTROLLER_TYPE = "StationVolumeController"; +export const TRACKAUDIO_STATUS_CONTROLLER_TYPE = "TrackAudioStatusController";