Files
Bridge-Multi/src-shared/Settings.ts
2024-12-22 18:35:43 -06:00

63 lines
2.2 KiB
TypeScript

import { Difficulty, Instrument } from 'scan-chart'
import { ThemeColors } from './interfaces/theme.interface'
export const themes = [
'business',
'dark',
'dim',
'night',
'sunset',
'synthwave',
'aqua',
'emerald',
'lemonade',
'nord',
'valentine',
'winter',
'aren',
'froogs',
] as const
/**
* Represents Bridge's user settings.
*/
export interface Settings {
downloadVideos: boolean // If background videos should be downloaded
theme: typeof themes[number] // The name of the currently enabled UI theme
customTheme: ThemeColors | null // The colors of a custom theme
customThemePath: string | null // The last folder that contained the `customTheme`'s file
libraryPath: string | undefined // The path to the user's library
issueScanPath: string | undefined // The path to use when scanning for issues
spreadsheetOutputPath: string | undefined // The path to use when saving generated issues
chartFolderName: string // The relative path and name of the chart that is saved in `libraryPath`
isSng: boolean // If the chart should be downloaded as a .sng file or as a chart folder
isCompactTable: boolean // If the search result table should have reduced padding
visibleColumns: string[] // The search result columns to include
zoomFactor: number // How much the display should be zoomed
instrument: Instrument | null // The instrument selected by default, or `null` for "Any Instrument"
difficulty: Difficulty | null // The difficulty selected by default, or `null` for "Any Difficulty"
volume: number // The volume of the chart preview (0-100)
}
/**
* Bridge's default user settings.
*/
export const defaultSettings: Settings = {
downloadVideos: true,
theme: 'dark',
customTheme: null,
customThemePath: null,
libraryPath: undefined,
issueScanPath: undefined,
spreadsheetOutputPath: undefined,
chartFolderName: '{artist} - {name} ({charter})',
isSng: false,
isCompactTable: false,
visibleColumns: ['artist', 'album', 'genre', 'year'],
zoomFactor: 1,
instrument: 'guitar',
difficulty: null,
volume: 50,
}