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}
+