diff --git a/CHANGELOG.md b/CHANGELOG.md index 90e8753..e9d34fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog ## Next +- Add lyrics support - Add "Show in Playlist" context menu item - Remember queue on restart - Keep scroll position when opening play history diff --git a/src/App.svelte b/src/App.svelte index 9b09b30..725e103 100755 --- a/src/App.svelte +++ b/src/App.svelte @@ -5,12 +5,14 @@ import Player from './components/Player.svelte' import Sidebar from './components/Sidebar.svelte' import Queue from './components/Queue.svelte' + import Lyrics from './components/Lyrics.svelte' import TrackInfo, { track_info_state } from './components/TrackInfo.svelte' import PlaylistInfoModal from './components/PlaylistInfo.svelte' import { queue_visible } from './lib/queue' + import { lyrics_state } from '$lib/lyrics.svelte' import { ipc_listen, ipc_renderer } from '$lib/window' import { delete_track_list, get_track_list, import_tracks, type PlaylistInfo } from '$lib/data' - import { play_pause } from './lib/player' + import { play_pause, playing_track, time_record } from './lib/player' import DragGhost from './components/DragGhost.svelte' import ItunesImport from './components/ItunesImport.svelte' import { modal_count } from './components/Modal.svelte' @@ -57,15 +59,6 @@ ipc_renderer.removeListener('import', open_import_dialog) }) - function toggle_queue() { - $queue_visible = !$queue_visible - } - $: ipc_renderer.invoke('update:Show Queue', $queue_visible) - ipc_renderer.on('Show Queue', toggle_queue) - onDestroy(() => { - ipc_renderer.removeListener('Show Queue', toggle_queue) - }) - function toggle_visualizer() { show_visualizer = !show_visualizer } @@ -284,6 +277,14 @@ {#if $queue_visible} + {:else if lyrics_state.visible} + {/if} diff --git a/src/components/Lyrics.svelte b/src/components/Lyrics.svelte new file mode 100644 index 0000000..13ccec6 --- /dev/null +++ b/src/components/Lyrics.svelte @@ -0,0 +1,249 @@ + + + diff --git a/src/components/Player.svelte b/src/components/Player.svelte index c4353d4..e5b5d68 100644 --- a/src/components/Player.svelte +++ b/src/components/Player.svelte @@ -12,7 +12,8 @@ time_record, } from '../lib/player' import { get_duration } from '../lib/helpers' - import { queue_visible, toggle_queue_visibility, queue, shuffle, repeat } from '../lib/queue' + import { queue_visible, queue, shuffle, repeat } from '../lib/queue' + import { lyrics_state, toggle_lyrics_visibility } from '$lib/lyrics.svelte' import { get_track, is_dev } from '$lib/data' import { dragged } from '$lib/drag-drop' import * as dragGhost from './DragGhost.svelte' @@ -24,9 +25,28 @@ } from '$lib/menus' import { ipc_renderer } from '$lib/window' import { tracks_page_item_ids } from './TrackList.svelte' + import { onDestroy } from 'svelte' export let on_toggle_visualizer: () => void + function toggle_queue() { + $queue_visible = !$queue_visible + lyrics_state.visible = false + } + $: ipc_renderer.invoke('update:Show Queue', $queue_visible) + ipc_renderer.on('Show Queue', toggle_queue) + onDestroy(() => { + ipc_renderer.removeListener('Show Queue', toggle_queue) + }) + + function toggle_lyrics() { + toggle_lyrics_visibility() + } + ipc_renderer.on('Show Lyrics', toggle_lyrics) + onDestroy(() => { + ipc_renderer.removeListener('Show Lyrics', toggle_lyrics) + }) + async function playing_context_menu() { const playing = queue.getCurrent() if (playing) { @@ -306,12 +326,38 @@ {/if} +