]> git.phdru.name Git - dotfiles.git/commitdiff
.mc: Load songs from a playlist one by one
authorOleg Broytman <phd@phdru.name>
Mon, 9 Nov 2020 14:43:56 +0000 (17:43 +0300)
committerOleg Broytman <phd@phdru.name>
Mon, 9 Nov 2020 17:31:27 +0000 (20:31 +0300)
Work around problems with filesystem encodings.

.mc/mc.ext
.mc/menu

index 7f3b9cdb0ae659bc907a8958bb57fb421dc4a84a..d2444d3bd372968a75e09fd4a8629877793f4dea 100644 (file)
@@ -93,7 +93,7 @@ type/^XML *(1\.0 *)?document
 #   View=%view{ascii} unzip -v %f
 #
 include/audio
-   Open=[ "`audtool --get-volume`" -eq 0 ] && (audacious & sleep 3); audtool --playlist-clear --playlist-addurl %f --playback-play
+   Open=[ "`audtool --get-volume`" -eq 0 ] && (audacious & sleep 3); audtool --playlist-clear; case %f in *.m3u) while read song; do audtool --playlist-addurl "$song"; done < %f ;; *) audtool --playlist-addurl %f ;; esac; audtool --playback-play
    #Open=mplayer %f &
    #Open=deadbeef %f &
    View=%view{ascii} %f
index e0a3bd511a7d4f6ecbb0c9089719ecb11e906ce3..acb6b51acf4fbb5c7ef7d181a6f71c405c7e95ce 100644 (file)
--- a/.mc/menu
+++ b/.mc/menu
@@ -124,7 +124,12 @@ I  View icon, JPEG-2000, TIFF, WebP image
 a  Add the audiofile(s) or playlist(s)
    if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi
    for f in %s; do
-      audtool --playlist-addurl "$f"
+      case "$f" in
+         *.m3u) while read song; do
+            audtool --playlist-addurl "$song"
+         done < "$f" ;;
+         *) audtool --playlist-addurl "$f" ;;
+      esac
    done
    #deadbeef --queue %s &
 
@@ -134,7 +139,12 @@ p  Load the audiofile(s) or playlist(s)
    if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi
    audtool --playlist-clear
    for f in %s; do
-      audtool --playlist-addurl "$f"
+      case "$f" in
+         *.m3u) while read song; do
+            audtool --playlist-addurl "$song"
+         done < "$f" ;;
+         *) audtool --playlist-addurl "$f" ;;
+      esac
    done
    #deadbeef --queue %s &
 
@@ -143,7 +153,12 @@ P  Play the audiofile(s) or playlist(s)
    if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi
    audtool --playlist-clear
    for f in %s; do
-      audtool --playlist-addurl "$f"
+      case "$f" in
+         *.m3u) while read song; do
+            audtool --playlist-addurl "$song"
+         done < "$f" ;;
+         *) audtool --playlist-addurl "$f" ;;
+      esac
    done
    exec audtool --playback-play
    #mplayer -playlist %f &
@@ -154,7 +169,9 @@ R  Play the playlist in random order
    "$HOME"/admin/prog/audio-cdr-video/audio/shuffle-playlist.py %f random-playlist-tmp.m3u
    if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi
    audtool --playlist-clear
-   audtool --playlist-addurl random-playlist-tmp.m3u
+   while read song; do
+      audtool --playlist-addurl "$song"
+   done < random-playlist-tmp.m3u
    audtool --playback-play
    #mplayer -playlist random-playlist-tmp.m3u &
    #deadbeef --queue random-playlist-tmp.m3u & deadbeef --play