propresenter-parser
Version:
Parses ProPresenter 4, 5, and 6 files to extract the data, and can build ProPresenter 5 and 6 files
86 lines (85 loc) • 2.23 kB
TypeScript
import { IProElementOutline, IProElementPosition, IProElementShadow, IRgbColor } from '../shared.model';
export interface IPro6Song {
properties: IPro6Properties;
slideGroups: IPro6SlideGroup[];
arrangements: IPro6Arrangement[];
}
export interface IPro6Properties {
CCLIArtistCredits: string;
CCLIAuthor: string;
CCLICopyrightYear: string | number;
CCLIDisplay: boolean;
CCLIPublisher: string;
CCLISongNumber: string | number;
CCLISongTitle: string;
backgroundColor: IRgbColor;
buildNumber: number;
category: string;
chordChartPath: string;
docType: number;
drawingBackgroundColor: boolean;
height: number;
lastDateUsed: Date;
notes: string;
os: number;
resourcesDirectory: string;
selectedArrangementID: string;
usedCount: number;
versionNumber: number;
width: number;
}
export interface IPro6SlideGroup {
groupLabel: string;
groupId: string;
groupColor: IRgbColor;
slides: IPro6Slide[];
}
export interface IPro6Slide {
backgroundColor: IRgbColor;
chordChartPath: string;
drawingBackgroundColor: boolean;
enabled: boolean;
highlightColor: IRgbColor | null;
hotKey: string;
id: string;
label: string;
notes: string;
textElements: IPro6SlideTextElement[];
}
export interface IPro6SlideTextElement {
adjustsHeightToFit: boolean;
bezelRadius: number;
displayDelay: number;
displayName: string;
drawingFill: boolean;
fillColor: IRgbColor;
fromTemplate: boolean;
id: string;
locked: boolean;
opacity: number;
persistent: number;
revealType: number;
rotation: number;
source: string;
typeID: number;
verticalAlignment: number;
fontName: string;
textColor: IRgbColor;
textSize: number;
plainText: string;
rtfData: string;
winFlowData: string;
winFontData: string;
outline: IProElementOutline;
position: IProElementPosition;
textShadow: IProElementShadow;
}
export interface IPro6Arrangement {
label: string;
color: IRgbColor;
groupOrder: IPro6ArrangementSlideGroup[];
}
export interface IPro6ArrangementSlideGroup {
groupLabel: string;
groupId: string;
}