diff --git a/front-end/src/apps/audience-display/audio/index.ts b/front-end/src/apps/audience-display/audio/index.ts new file mode 100644 index 00000000..7bc47ad5 --- /dev/null +++ b/front-end/src/apps/audience-display/audio/index.ts @@ -0,0 +1,25 @@ +import MATCH_START from './match_start.wav'; +import MATCH_AUTO from './match_auto_end_warning.wav'; +import MATCH_TRANSITION from './match_auto_end.wav'; +import MATCH_TELE from './match_tele_start.wav'; +import MATCH_PRE_TELE from './match_tele_pre_start.wav'; +import MATCH_ENDGAME from './match_end_start.wav'; +import MATCH_END from './match_end.wav'; +import MATCH_ABORT from './match_estop.wav'; + +export { + MATCH_ABORT, + MATCH_AUTO, + MATCH_TRANSITION, + MATCH_END, + MATCH_ENDGAME, + MATCH_PRE_TELE, + MATCH_START, + MATCH_TELE +}; + +export function initAudio(url: any): any { + const audio = new Audio(url); + audio.volume = 0.5; + return audio; +} diff --git a/front-end/src/apps/audience-display/audio/match_auto_end.wav b/front-end/src/apps/audience-display/audio/match_auto_end.wav new file mode 100644 index 00000000..9e334b42 Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_auto_end.wav differ diff --git a/front-end/src/apps/audience-display/audio/match_auto_end_warning.wav b/front-end/src/apps/audience-display/audio/match_auto_end_warning.wav new file mode 100644 index 00000000..959f0a69 Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_auto_end_warning.wav differ diff --git a/front-end/src/apps/audience-display/audio/match_end.wav b/front-end/src/apps/audience-display/audio/match_end.wav new file mode 100644 index 00000000..8f092ed0 Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_end.wav differ diff --git a/front-end/src/apps/audience-display/audio/match_end_start.wav b/front-end/src/apps/audience-display/audio/match_end_start.wav new file mode 100644 index 00000000..0243e6c5 Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_end_start.wav differ diff --git a/front-end/src/apps/audience-display/audio/match_estop.wav b/front-end/src/apps/audience-display/audio/match_estop.wav new file mode 100644 index 00000000..6c88bd1c Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_estop.wav differ diff --git a/front-end/src/apps/audience-display/audio/match_start.wav b/front-end/src/apps/audience-display/audio/match_start.wav new file mode 100644 index 00000000..359e4ef4 Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_start.wav differ diff --git a/front-end/src/apps/audience-display/audio/match_tele_pre_start.wav b/front-end/src/apps/audience-display/audio/match_tele_pre_start.wav new file mode 100644 index 00000000..6f7995fa Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_tele_pre_start.wav differ diff --git a/front-end/src/apps/audience-display/audio/match_tele_start.wav b/front-end/src/apps/audience-display/audio/match_tele_start.wav new file mode 100644 index 00000000..c18d73cf Binary files /dev/null and b/front-end/src/apps/audience-display/audio/match_tele_start.wav differ diff --git a/front-end/src/apps/audience-display/displays/ad-default.tsx b/front-end/src/apps/audience-display/displays/ad-default.tsx new file mode 100644 index 00000000..9f99035d --- /dev/null +++ b/front-end/src/apps/audience-display/displays/ad-default.tsx @@ -0,0 +1,9 @@ +import { FC } from 'react'; +import { DisplayProps } from 'src/apps/audience-display/displays'; + +/** + * Classic audience display that handles all scenarios. + */ +export const AudDisplayDefault: FC = () => { + return null; +}; diff --git a/front-end/src/apps/audience-display/displays/ad-stream.tsx b/front-end/src/apps/audience-display/displays/ad-stream.tsx new file mode 100644 index 00000000..4c4ce1c2 --- /dev/null +++ b/front-end/src/apps/audience-display/displays/ad-stream.tsx @@ -0,0 +1,9 @@ +import { FC } from 'react'; +import { DisplayProps } from 'src/apps/audience-display/displays'; + +/** + * Timer audience display that displays only the match timer and nothing else. + */ +export const AudDisplayStream: FC = () => { + return null; +}; diff --git a/front-end/src/apps/audience-display/displays/ad-timer.tsx b/front-end/src/apps/audience-display/displays/ad-timer.tsx new file mode 100644 index 00000000..ec9aa13c --- /dev/null +++ b/front-end/src/apps/audience-display/displays/ad-timer.tsx @@ -0,0 +1,9 @@ +import { FC } from 'react'; +import { DisplayProps } from 'src/apps/audience-display/displays'; + +/** + * Timer audience display that displays only the match timer and nothing else. + */ +export const AudDisplayTimer: FC = () => { + return null; +}; diff --git a/front-end/src/apps/audience-display/displays/index.ts b/front-end/src/apps/audience-display/displays/index.ts deleted file mode 100644 index e6bef28d..00000000 --- a/front-end/src/apps/audience-display/displays/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { FC } from 'react'; - -interface Props { - id: number; - eventKey: string | null | undefined; - mode?: string; -} - -const Displays: FC = () => { - return null; -}; - -export default Displays; diff --git a/front-end/src/apps/audience-display/displays/index.tsx b/front-end/src/apps/audience-display/displays/index.tsx new file mode 100644 index 00000000..de16eb82 --- /dev/null +++ b/front-end/src/apps/audience-display/displays/index.tsx @@ -0,0 +1,30 @@ +import { DisplayModes } from '@toa-lib/models'; +import { FC } from 'react'; +import { AudDisplayDefault } from './ad-default'; +import { AudDisplayTimer } from './ad-timer'; +import { AudDisplayStream } from './ad-stream'; + +export interface DisplayProps { + id: number; +} + +interface Props { + id: number; + eventKey: string | null | undefined; + mode?: DisplayModes; +} + +const Displays: FC = ({ id, mode = DisplayModes.DEFAULT }) => { + switch (mode) { + case DisplayModes.DEFAULT: + return ; + case DisplayModes.TIMER_ONLY: + return ; + case DisplayModes.STREAM: + return ; + default: + return ; + } +}; + +export default Displays; diff --git a/lib/models/src/base/Audience.ts b/lib/models/src/base/Audience.ts index 91978d2d..6c88a415 100644 --- a/lib/models/src/base/Audience.ts +++ b/lib/models/src/base/Audience.ts @@ -6,3 +6,9 @@ export enum Displays { RANKINGS = 4, BLANK = 5 } + +export enum DisplayModes { + DEFAULT = 'default', + TIMER_ONLY = 'timer-only', + STREAM = 'stream' +}