import { CarPlay } from '../CarPlay' import { Template, TemplateConfig } from './Template' export interface NowPlayingTemplateConfig extends TemplateConfig { albumArtistButton?: boolean upNextTitle?: string upNextButton?: boolean // You should provide image set which renders as template, for auto switching along with appearance imageButton?: string playbackRateButton?: boolean onUpNextButtonTapped?: () => void onPlaybackRateButtonTapped?(): void onAlbumArtistButtonTapped?(): void onImageButtonTapped?(): void } export class NowPlayingTemplate extends Template { public get type(): string { return 'nowplaying' } constructor(public config: NowPlayingTemplateConfig) { super(config) CarPlay.emitter.addListener('upNextButtonTapped', () => { config.onUpNextButtonTapped?.() }) CarPlay.emitter.addListener('playbackRateButtonTapped', () => { config.onPlaybackRateButtonTapped?.() }) CarPlay.emitter.addListener('albumArtistButtonTapped', () => { config.onAlbumArtistButtonTapped?.() }) CarPlay.emitter.addListener('imageButtonTapped', () => { config.onImageButtonTapped?.() }) } public updateTemplate = (config: Partial) => { return CarPlay.bridge.updateNowPlayingTemplate(this.parseConfig(config)) } }