xref: /MusicFree/src/utils/qualities.ts (revision abaede579edff1edeaf6057cdefc4d0160223b4e)
1b7048bd1S猫头猫/**
2b7048bd1S猫头猫 * 音质相关的所有工具代码
3b7048bd1S猫头猫 */
4b7048bd1S猫头猫
5b7048bd1S猫头猫export const qualityKeys: IMusic.IQualityKey[] = [
6b7048bd1S猫头猫    'low',
7b7048bd1S猫头猫    'standard',
8b7048bd1S猫头猫    'high',
9b7048bd1S猫头猫    'super',
10b7048bd1S猫头猫];
11b7048bd1S猫头猫
12b7048bd1S猫头猫export const qualityText = {
13b7048bd1S猫头猫    low: '低音质',
14b7048bd1S猫头猫    standard: '标准音质',
15b7048bd1S猫头猫    high: '高音质',
16b7048bd1S猫头猫    super: '超高音质',
17b7048bd1S猫头猫};
18b7048bd1S猫头猫
19*abaede57S猫头猫/** 获取音质顺序 */
20*abaede57S猫头猫export function getQualityOrder(
21b7048bd1S猫头猫    qualityKey: IMusic.IQualityKey,
22b7048bd1S猫头猫    sort: 'asc' | 'desc',
23b7048bd1S猫头猫) {
24b7048bd1S猫头猫    const idx = qualityKeys.indexOf(qualityKey);
25b7048bd1S猫头猫    const left = qualityKeys.slice(0, idx);
26b7048bd1S猫头猫    const right = qualityKeys.slice(idx + 1);
27b7048bd1S猫头猫    if (sort === 'asc') {
28*abaede57S猫头猫        /** 优先高音质 */
29*abaede57S猫头猫        return [qualityKey, ...right, ...left.reverse()];
30*abaede57S猫头猫    } else {
31*abaede57S猫头猫        /** 优先低音质 */
32*abaede57S猫头猫        return [qualityKey, ...left.reverse(), ...right];
33b7048bd1S猫头猫    }
34b7048bd1S猫头猫}
35