From: <dom...@us...> - 2011-01-29 21:05:33
|
Revision: 71 http://fvwm-crystal.svn.sourceforge.net/fvwm-crystal/?rev=71&view=rev Author: dominique_libre Date: 2011-01-29 21:05:24 +0000 (Sat, 29 Jan 2011) Log Message: ----------- updated the media players for use with components/Music Modified Paths: -------------- ChangeLog fvwm/components/functions/Music-alsaplayer fvwm/components/functions/Music-audacious fvwm/components/functions/Music-cdcd fvwm/components/functions/Music-cmus fvwm/components/functions/Music-mocp fvwm/components/functions/Music-mpd fvwm/components/functions/Music-mplayer fvwm/components/functions/Music-quodlibet fvwm/components/functions/Music-xmms fvwm/components/functions/Music-xmms2 Modified: ChangeLog =================================================================== --- ChangeLog 2011-01-29 21:01:50 UTC (rev 70) +++ ChangeLog 2011-01-29 21:05:24 UTC (rev 71) @@ -17,6 +17,7 @@ * Added functions to make panels and buttons * Mixer: cleanup * components/Music: common code to all the players + * updated the media players for use with components/Music Samedi 1 janvier 2011 Dominique Michel * Wimdow-Raise-Move-Lover witll focus on a non overlapped window Modified: fvwm/components/functions/Music-alsaplayer =================================================================== --- fvwm/components/functions/Music-alsaplayer 2011-01-29 21:01:50 UTC (rev 70) +++ fvwm/components/functions/Music-alsaplayer 2011-01-29 21:05:24 UTC (rev 71) @@ -1,49 +1,58 @@ -# Support for Alsaplayer music player -# Written by: Dominique Michel <dom...@ci...> +# Support for Alsaplayer in Fvwm-Crystal +# Written by: Dominique Michel <dom...@so...> -# Alsaplayer normal speed -SetEnv speed "1" +############################### +# Media control writing style # +############################### +# Some recipes do have a media button, the other do have a menu. +# Recipes with media button: Amiga, Corner, Default, Default with ACPI, Dock +# The bindings of the media buttons into the recipes are: +# Button 1: (Mouse 1) Menu /Player # Main player menu +# (Mouse 2) Music-GUI # show/hide the player +# (Mouse 3) Music-QJackGUI # show/hide QJackCtl +# (Mouse 4) Mixer-Volume-Up # main volume up +# (Mouse 5) Mixer-Volume-Down # main volume down +# Button 2: (Mouse 1) Menu /Playlist-button # playlist menu +# (Mouse 2) Menu /Playback # playback menu +# (Mouse 3) Menu /Mixer # main mixer menu +# (Mouse 4) Music-Next # next media +# (Mouse 5) Music-Prev # previous media +# Button 3: (Mouse 1) Music-Pause # pause +# (Mouse 2) Music-PlayPause # play/pause +# (Mouse 3) Menu /Music/Volume # player volume menu +# (Mouse 4) Music-Speed-Up # speed up +# (Mouse 5) Music-Speed-Down # speed down +# Button 4: (Mouse 1) Menu /Speed # speed control menu +# (Mouse 4) Button-Seek-+ # seek forward +# (Mouse 5) Button-Seek-- # seek backward +# +# Recipes with media menu: Clean, Clean Vertical, Light, Wing-Commander +# The media menu for those recipes is: Popup /Music +# Popup /Music can reuse the finctions/menu defined for the bouton or use their own. +#################################################################################### -# Decimal point in use -PipeRead 'echo SetEnv dec_point `locale decimal_point`' +####################################### +## Initialisations, shared functions ## +####################################### +Include components/functions/Music -# Where are stored Alsaplayer playlists -Piperead 'echo SetEnv Alsaplayer_Playlists "/home/`id -un`/Alsaplayer-playlists"' -# Some commands for playlist operation -#SetEnv Load_Pl_Command "exec alsaplayer -e" -#SetEnv Remove_Pl_Command "rm -f" +############################### +## First button ## +## Player controls and prefs ## +############################### +## mouse 1 Menu /Player +####################### +# Recreate the playlists : in Music -# Styles for Alsaplayer windows -Style AlsaPlayer NoIcon, Sticky, WindowListSkip, StaysOnTop -Style alsaplayer NoIcon, Sticky, WindowListSkip, StaysOnTop - -#------------------------- -# Multimedia keys keybinding, see -# http:///gentoo-wiki.com/HOWTO_Use_Multimedia_Keys -# to setup xmodmap - -Key XF86AudioLowerVolume A C Music-Speed-Down -Key XF86AudioRaiseVolume A C Music-Speed-Up -Key XF86AudioMute A $[Mod0] Exec exec alsaplayer --volume 0 -key XF86AudioMute A C Exec exec alsaplayer --volume 1 -key XF86AudioPlay A $[Mod0] Music-PlayPause -key XF86AudioPlay A $[Mod1] Music-Speed normal -key XF86AudioPlay A C Music-Pause -key XF86AudioStop A $[Mod0] Music-Stop -key XF86AudioStop A C Music-Pause -key XF86AudioStop A $[Mod1] Music-Play -Key XF86AudioNext A $[Mod] Music-Next -Key XF86AudioPrev A $[Mod] Music-Prev -Key XF86AudioMedia A $[Mod] Music-GUI - - -# --------------------------------------------------------------------------- -# Basic control functions - DestroyFunc Music-Start AddToFunc Music-Start + I Exec exec $0 +DestroyMenu /Music/Start +AddToMenu /Music/Start ++ "Alsa" Music-Start "alsaplayer -o alsa -s alsa" ++ "Jack" Music-Start "alsaplayer -o jack -F 48000 -s Alsaplayer" + DestroyFunc Music-Kill AddToFunc Music-Kill + I Exec exec alsaplayer --quit @@ -52,26 +61,94 @@ AddToFunc Music-GUI + I All (alsaplayer) Iconify toggle -DestroyFunc Music-QJackGUI -AddToFunc Music-QJackGUI -+ I All (qjackctl) Iconify toggle +# Player-generator (All) +DestroyFunc Player-generator +AddToFunc Player-generator ++ I DestroyMenu recreate /Player ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Recreate the Playlists]' Music-RecreatePlaylist ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Music player]' Popup /Preferences/MusicPlayer ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start QJackCtl]' Exec exec qjackctl ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start Alsaplayer]' Popup /Music/Start ++ I AddToMenu /Player '$[gt.Stop player]' Music-Kill ++ I AddToMenu /Player '$[gt.Show/Hide player]' Music-GUI -DestroyFunc Music-Stop -AddToFunc Music-Stop -+ I Exec exec alsaplayer --stop +## mouse 2 Music-GUI : allready here +## mouse 3 Music-QJackGUI : in Music +## +## mouse 4 Mixer-Volume-Up +## mouse 5 Mixer-Volume-Down +## are in components/Mixer -DestroyFunc Music-Play -AddToFunc Music-Play -+ I Exec exec alsaplayer --start +#################### +## Second button ### +## Player controls and main vol ## +################################## +## mouse 1 Menu /Playlist-button +################################ +DestroyFunc FuncFvwmMenuAudioDirectory +AddToFunc FuncFvwmMenuAudioDirectory ++ I PipeRead 'case "$0" in \ + "$[AudioPlaylists]"*) myexec="alsaplayer -e";; \ + "$[NonManagedPlaylists]"*) myexec="alsaplayer -e";; \ + esac; \ + test -f "$0"/.icontitle.png && mytitle="$0"/.icontitle.png; \ + test -f "$0"/.media.png && mypng="$0"/.media.png; \ + fvwm-menu-directory --icon-title "${mytitle:-22x22/categories/directory.png}" \ + --icon-file "${mypng:-22x22/categories/Audio.png}" \ + --dir "$0" --exec-title "-" --exec-file "^${myexec}" \ + --func-name "FuncFvwmMenuAudioDirectory"' -DestroyFunc Music-Pause -AddToFunc Music-Pause -+ I Exec exec alsaplayer --speed 0 +DestroyMenu /Music/LoadPlaylist +AddToMenu /Music/LoadPlaylist ++ '$[gt.Choose playlist to load]' Nop ++ MissingSubmenuFunction FuncFvwmMenuAudioDirectory ++ '%22x22/categories/video_movies_view.png%$[gt.Browse Medias]' Popup $[AudioPlaylists] ++ '%22x22/categories/video_movies_view.png%$[gt.Browse Medias]' Popup $[NonManagedPlaylists] -DestroyFunc Music-PlayPause -AddToFunc Music-PlayPause -+ I Exec exec alsaplayer --speed $[speed] > /dev/null +DestroyFunc Music-ClearPlaylist +AddToFunc Music-ClearPlaylist ++ I Exec exec alsaplayer --clear +DestroyFunc FuncFvwmMenuRemovePlaylistDirectory +AddToFunc FuncFvwmMenuRemovePlaylistDirectory ++ I PipeRead 'case "$0" in \ + "$[NonManagedPlaylists]"*) myexec="rm -f";; \ + esac; \ + test -f "$0"/.icontitle.png && mytitle="$0"/.icontitle.png; \ + test -f "$0"/.media.png && mypng="$0"/.media.png; \ + fvwm-menu-directory --icon-title "${mytitle:-22x22/categories/directory.png}" \ + --icon-file "${mypng:-22x22/categories/Audio.png}" \ + --dir "$0" --exec-title "-" --exec-file "^${myexec}" \ + --func-name "FuncFvwmMenuRemovePlaylistDirectory"' + +DestroyMenu /Music/RemovePlaylist +AddToMenu /Music/RemovePlaylist ++ '$[gt.Choose playlist to remove]' Nop ++ MissingSubmenuFunction FuncFvwmMenuRemovePlaylistDirectory ++ '%22x22/categories/video_movies_view.png%$[gt.Browse Medias]' Popup $[NonManagedPlaylists] + +DestroyFunc Playlist-generator-button +AddToFunc Playlist-generator-button ++ I DestroyMenu recreate /Playlist-button ++ I AddToMenu /Playlist-button '$[gt.Playlists operations]' Nop +## The following line will screw up the menu. One time on two, it work well, +## the other time /Music/LoadPlaylist and /Music/RemovePlaylist get shifted. +## As workaround, I added a title in this menu... How much time to find it! +## Damn, it doesn't work with /music! the whole menu get screwed with this. +## At least, it work from the button. I don't have any fix for /Music at that time. ++ I AddToMenu /Playlist-button '$[gt.Remove playlist]' Popup /Music/RemovePlaylist +## ++ I AddToMenu /Playlist-button '$[gt.Clear playlist]' Music-ClearPlaylist ++ I AddToMenu /Playlist-button '$[gt.Load playlist]' Popup /Music/LoadPlaylist + +DestroyMenu /Playlist-button +AddToMenu /Playlist-button ++ DynamicPopupAction Function Playlist-generator-button + +## mouse 2 Menu /Playback +######################### DestroyFunc Music-Next AddToFunc Music-Next + I Exec exec alsaplayer --next @@ -80,125 +157,53 @@ AddToFunc Music-Prev + I Exec exec alsaplayer --prev -DestroyFunc Music-VolumeFr -AddToFunc Music-VolumeFr -+ I Exec exec alsaplayer --volume $0 +DestroyFunc Music-SongChange +AddToFunc Music-SongChange ++ I Exec exec alsaplayer --jump $0 -DestroyFunc Music-VolumeEn -AddToFunc Music-VolumeEn -+ I Exec exec alsaplayer --volume $0 +DestroyMenu /Music/SongChange +AddToMenu /Music/SongChange ++ " 1" Music-SongChange '1' ++ " 2" Music-SongChange '2' ++ " 3" Music-SongChange '3' ++ " 4" Music-SongChange '4' ++ " 5" Music-SongChange '5' ++ " 6" Music-SongChange '6' ++ " 7" Music-SongChange '7' ++ " 8" Music-SongChange '8' ++ " 9" Music-SongChange '9' ++ "10" Music-SongChange '10' ++ "11" Music-SongChange '11' ++ "12" Music-SongChange '12' ++ "13" Music-SongChange '13' ++ "14" Music-SongChange '14' ++ "15" Music-SongChange '15' ++ "16" Music-SongChange '16' ++ "17" Music-SongChange '17' ++ "18" Music-SongChange '18' ++ "19" Music-SongChange '19' ++ "20" Music-SongChange '20' -DestroyFunc Music-Speed -AddToFunc Music-Speed -+ I PipeRead 'echo SetEnv speed `$[FVWM_USERDIR]/scripts/speed_value $0`' -+ I Exec exec alsaplayer --speed $[speed] > /dev/null +DestroyFunc Music-Stop +AddToFunc Music-Stop ++ I Exec exec alsaplayer --stop -DestroyFunc Music-Speed-Up -AddToFunc Music-Speed-Up -+ I PipeRead 'echo SetEnv speed `$[FVWM_USERDIR]/scripts/speed_value +1comma`' -+ I Exec exec alsaplayer --speed $[speed] > /dev/null +DestroyFunc Music-Play +AddToFunc Music-Play ++ I Exec exec alsaplayer --start -DestroyFunc Music-Speed-Down -AddToFunc Music-Speed-Down -+ I PipeRead 'echo SetEnv speed `$[FVWM_USERDIR]/scripts/speed_value -1comma`' +DestroyFunc Music-Pause +AddToFunc Music-Pause ++ I Exec exec alsaplayer --speed 0 + +DestroyFunc Music-PlayPause +AddToFunc Music-PlayPause + I Exec exec alsaplayer --speed $[speed] > /dev/null -DestroyFunc Music-SongChange -AddToFunc Music-SongChange -+ I Exec exec alsaplayer --jump $0 - DestroyFunc Music-Jump AddToFunc Music-Jump + I Exec exec alsaplayer --seek $0 -DestroyFunc Music-Seek -AddToFunc Music-Seek -+ I Exec exec alsaplayer --relative $0 - -#------------------------------------------------------------------ -# Basic menus - -DestroyMenu /Music/Start -AddToMenu /Music/Start -+ "Alsa" Music-Start "alsaplayer -o alsa -s alsa" -+ "Jack" Music-Start "alsaplayer -o jack -F 48000 -s Alsaplayer" - -DestroyMenu /Music/Volume -AddToMenu /Music/Volume -+ '$[gt.Player volume]' -+ "" Nop -Test (EnvMatch dec_point ",") + " 0 db%" Music-VolumeFr '1,0' -Test (EnvMatch dec_point ",") + "-3 db%" Music-VolumeFr '0,707' -Test (EnvMatch dec_point ",") + "-6 db%" Music-VolumeFr '0,5' -Test (EnvMatch dec_point ",") + "-12 dB%" Music-VolumeFr '0,25' -Test (EnvMatch dec_point ",") + "-18 db%" Music-VolumeFr '0,125' -Test (EnvMatch dec_point ",") + "-24 db%" Music-VolumeFr '0,0625' -Test (EnvMatch dec_point ",") + "-30 db%" Music-VolumeFr '0,03125' -Test (EnvMatch dec_point ",") + "-36 db%" Music-VolumeFr '0,015625' -Test (EnvMatch dec_point ",") + " 0%" Music-VolumeFr '0,0' -Test (EnvMatch dec_point ".") + " 0 db%" Music-VolumeEn '1.0' -Test (EnvMatch dec_point ".") + "-3 db%" Music-VolumeEn '0.707' -Test (EnvMatch dec_point ".") + "-6 db%" Music-VolumeEn '0.5' -Test (EnvMatch dec_point ".") + "-12 dB%" Music-VolumeEn '0.25' -Test (EnvMatch dec_point ".") + "-18 db%" Music-VolumeEn '0.125' -Test (EnvMatch dec_point ".") + "-24 db%" Music-VolumeEn '0.0625' -Test (EnvMatch dec_point ".") + "-30 db%" Music-VolumeEn '0.03125' -Test (EnvMatch dec_point ".") + "-36 db%" Music-VolumeEn '0.015625' -Test (EnvMatch dec_point ".") + " 0%" Music-VolumeEn '0.0' - -DestroyMenu /Speed -AddToMenu /Speed -+ '$[gt.Speed control]' -+ "" Nop -+ "Max%" Music-Speed 'max' -+ "+ 1 octave%" Music-Speed '+1octave' -+ '$[gt.+1 seventh]' Music-Speed '+1septieme' -+ '$[gt.+1 sixth]' Music-Speed '+1sixte' -+ '$[gt.+1 fifth]' Music-Speed '+1quinte' -+ '$[gt.+1 fourth]' Music-Speed '+1quarte' -+ '$[gt.+1 third]' Music-Speed '+1tierce' -+ '$[gt.+1 tone]' Music-Speed '+1ton' -+ '$[gt.+1/2 tone]' Music-Speed '+1/2ton' -+ "" Nop -+ '$[gt.-1/2 tone]' Music-Speed '-1/2ton' -+ '$[gt.-1 tone]' Music-Speed '-1ton' -+ '$[gt.-1 third]' Music-Speed '-1tierce' -+ '$[gt.-1 fourth]' Music-Speed '-1quarte' -+ '$[gt.-1 fifth]' Music-Speed '-1quinte' -+ '$[gt.-1 sixth]' Music-Speed '-1sixte' -+ '$[gt.-1 seventh]' Music-Speed '-1septieme' -+ "-1 octave%" Music-Speed '-1octave' -+ '$[gt.Max back]' Music-Speed 'min' -+ "" Nop -+ '$[gt.Normal backward]' Music-Speed 'back' -+ "Pause%" Music-Speed 'pause' -+ "+ 1 comma%" Music-Speed '+1comma' -+ "Normal%" Music-Speed 'normal' -+ "-1 comma%" Music-Speed '-1comma' - -DestroyMenu /Music/SongChange -AddToMenu /Music/SongChange -+ " 1%" Music-SongChange '1' -+ " 2%" Music-SongChange '2' -+ " 3%" Music-SongChange '3' -+ " 4%" Music-SongChange '4' -+ " 5%" Music-SongChange '5' -+ " 6%" Music-SongChange '6' -+ " 7%" Music-SongChange '7' -+ " 8%" Music-SongChange '8' -+ " 9%" Music-SongChange '9' -+ "10%" Music-SongChange '10' -+ "11%" Music-SongChange '11' -+ "12%" Music-SongChange '12' -+ "13%" Music-SongChange '13' -+ "14%" Music-SongChange '14' -+ "15%" Music-SongChange '15' -+ "16%" Music-SongChange '16' -+ "17%" Music-SongChange '17' -+ "18%" Music-SongChange '18' -+ "19%" Music-SongChange '19' -+ "20%" Music-SongChange '20' - DestroyMenu /Music/Jump AddToMenu /Music/Jump + " 15 min" Music-Jump '900' @@ -209,7 +214,12 @@ + "1 min 30" Music-Jump '90' + " 1 min" Music-Jump '60' + " 30 sec" Music-Jump '30' ++ " 10 sec" Music-Jump '10' +DestroyFunc Music-Seek +AddToFunc Music-Seek ++ I Exec exec alsaplayer --relative $0 + DestroyMenu /Music/Seek AddToMenu /Music/Seek + " 10 min" Music-Seek '600' @@ -218,14 +228,11 @@ + " 2 min" Music-Seek '120' + "1 min 30" Music-Seek '90' + " 1 min" Music-Seek '60' -+ " 45 sec" Music-Seek '45' + " 30 sec" Music-Seek '30' -+ " 20 sec" Music-Seek '20' + " 10 sec" Music-Seek '10' ++ "" Nop + "-10 sec" Music-Seek '-10' -+ "-20 sec" Music-Seek '-20' + "-30 sec" Music-Seek '-30' -+ "-45 sec" Music-Seek '-45' + " -1 min" Music-Seek '-60' + "-1 min 30" Music-Seek '-90' + " -2 min" Music-Seek '-120' @@ -233,107 +240,146 @@ + " -5 min" Music-Seek '-300' + "-10 min" Music-Seek '-600' -# --------------------------------------------------------------------------- -# Playlist functions and menus +DestroyFunc Playback-generator +AddToFunc Playback-generator ++ I DestroyMenu recreate /Playback ++ I AddToMenu /Playback '$[gt.Next]' Music-Next ++ I AddToMenu /Playback '$[gt.Prev]' Music-Prev ++ I AddToMenu /Playback '$[gt.Song change]' Popup /Music/SongChange ++ I AddToMenu /Playback "" Nop ++ I AddToMenu /Playback '$[gt.Stop playback]' Music-Stop ++ I AddToMenu /Playback '$[gt.Play]' Music-Play ++ I AddToMenu /Playback '$[gt.Pause]' Music-Pause ++ I AddToMenu /Playback '$[gt.Play/Pause]' Music-PlayPause ++ I AddToMenu /Playback '$[gt.Jump]' Popup /Music/Jump ++ I AddToMenu /Playback '$[gt.Seek]' Popup /Music/Seek -DestroyFunc Music-LoadPlaylist-generator -AddToFunc Music-LoadPlaylist-generator -+ I DestroyMenu recreate /Music/LoadPlaylist -+ I AddToMenu /Music/LoadPlaylist -+ I PipeRead 'for i in $[Alsaplayer_Playlists]/*.m3u $[Alsaplayer_Playlists]/*.pls; do \ - name=$(basename "$i"); \ - sname=${name%%.m3u}; \ - sname=${sname%%.pls}; \ - echo \"AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec alsaplayer -e \'$i\'\"; done' +## mouse 3 Menu /Mixer : in components/Mixer +## mouse 4 Music-Next : allready here +## mouse 4 Music-Prev : allready here -#DestroyFunc Music-RemovePlaylist-generator -#AddToFunc Music-RemovePlaylist-generator -#+ I DestroyMenu recreate /Music/RemovePlaylist -#+ I AddToMenu /Music/RemovePlaylist -#+ I PipeRead 'for i in $[Alsaplayer_Playlists]/*.m3u $[Alsaplayer_Playlists]/*.pls; do \ -# name=$(basename "$i"); \ -# sname=${name%%.m3u}; \ -# sname=${sname%%.pls}; \ -# echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done' +#################### +## Third button ### +## Player controls and vol ## +############################# +## mouse 1 Music-Pause : allready here +## mouse 2 Music-PlayPause : allready here +## mouse 3 Menu /Music/Volume +############################# -DestroyFunc Music-ClearPlaylist -AddToFunc Music-ClearPlaylist -+ I Exec exec alsaplayer --clear +DestroyFunc Music-VolumeFr +AddToFunc Music-VolumeFr ++ I Exec exec alsaplayer --volume $0 -DestroyMenu /Music/LoadPlaylist -AddToMenu /Music/LoadPlaylist -+ DynamicPopupAction Function Music-LoadPlaylist-generator +DestroyFunc Music-VolumeEn +AddToFunc Music-VolumeEn ++ I Exec exec alsaplayer --volume $0 -#DestroyMenu /Music/RemovePlaylist -#AddToMenu /Music/RemovePlaylist -#+ DynamicPopupAction Function Music-RemovePlaylist-generator +DestroyMenu /Music/Volume +AddToMenu /Music/Volume ++ '$[gt.Player volume]' Nop ++ "" Nop +Test (EnvMatch dec_point ",") + " 0 dB" Music-VolumeFr '1,0' +Test (EnvMatch dec_point ",") + "-3 dB" Music-VolumeFr '0,707' +Test (EnvMatch dec_point ",") + "-6 dB" Music-VolumeFr '0,5' +Test (EnvMatch dec_point ",") + "-12 dB" Music-VolumeFr '0,25' +Test (EnvMatch dec_point ",") + "-18 dB" Music-VolumeFr '0,125' +Test (EnvMatch dec_point ",") + "-24 dB" Music-VolumeFr '0,0625' +Test (EnvMatch dec_point ",") + "-30 dB" Music-VolumeFr '0,03125' +Test (EnvMatch dec_point ",") + "-36 dB" Music-VolumeFr '0,015625' +Test (EnvMatch dec_point ",") + " 0" Music-VolumeFr '0,0' +Test (EnvMatch dec_point ".") + " 0 dB" Music-VolumeEn '1.0' +Test (EnvMatch dec_point ".") + "-3 dB" Music-VolumeEn '0.707' +Test (EnvMatch dec_point ".") + "-6 dB" Music-VolumeEn '0.5' +Test (EnvMatch dec_point ".") + "-12 dB" Music-VolumeEn '0.25' +Test (EnvMatch dec_point ".") + "-18 dB" Music-VolumeEn '0.125' +Test (EnvMatch dec_point ".") + "-24 dB" Music-VolumeEn '0.0625' +Test (EnvMatch dec_point ".") + "-30 dB" Music-VolumeEn '0.03125' +Test (EnvMatch dec_point ".") + "-36 dB" Music-VolumeEn '0.015625' +Test (EnvMatch dec_point ".") + " 0" Music-VolumeEn '0.0' -DestroyMenu /Playback -AddToMenu /Playback -+ DynamicPopupAction Function /Playback-generator +## mouse 4 Music-Speed-Up +## mouse 5 Music-Speed-Down +########################### +DestroyFunc Music-Speed-Up +AddToFunc Music-Speed-Up ++ I PipeRead 'echo SetEnv speed `$[FVWM_SYSTEMDIR]/scripts/speed_value +1comma`' ++ I Exec exec alsaplayer --speed $[speed] > /dev/null -DestroyMenu /Playlist -AddToMenu /Playlist -+ DynamicPopupAction Function /Playlist-generator +DestroyFunc Music-Speed-Down +AddToFunc Music-Speed-Down ++ I PipeRead 'echo SetEnv speed `$[FVWM_SYSTEMDIR]/scripts/speed_value -1comma`' ++ I Exec exec alsaplayer --speed $[speed] > /dev/null -DestroyMenu /Playlist-bot -AddToMenu /Playlist-bot -+ DynamicPopupAction Function /Playlist-generator-bot +################## +## Last button ### +## speed controls ## +#################### +## mouse 1 Menu /Speed +###################### +DestroyFunc Music-Speed +AddToFunc Music-Speed ++ I PipeRead 'echo SetEnv speed `$[FVWM_SYSTEMDIR]/scripts/speed_value $0`' ++ I Exec exec alsaplayer --speed $[speed] > /dev/null -DestroyMenu /Player -AddToMenu /Player -+ DynamicPopupAction Function /Player-generator +DestroyMenu /Speed +AddToMenu /Speed ++ '$[gt.Speed control]' ++ "" Nop ++ "Max" Music-Speed 'max' ++ "+ 1 octave" Music-Speed '+1octave' ++ '$[gt.+1 seventh]' Music-Speed '+1septieme' ++ '$[gt.+1 sixth]' Music-Speed '+1sixte' ++ '$[gt.+1 fifth]' Music-Speed '+1quinte' ++ '$[gt.+1 fourth]' Music-Speed '+1quarte' ++ '$[gt.+1 third]' Music-Speed '+1tierce' ++ '$[gt.+1 tone]' Music-Speed '+1ton' ++ '$[gt.+1/2 tone]' Music-Speed '+1/2ton' ++ "" Nop ++ '$[gt.-1/2 tone]' Music-Speed '-1/2ton' ++ '$[gt.-1 tone]' Music-Speed '-1ton' ++ '$[gt.-1 third]' Music-Speed '-1tierce' ++ '$[gt.-1 fourth]' Music-Speed '-1quarte' ++ '$[gt.-1 fifth]' Music-Speed '-1quinte' ++ '$[gt.-1 sixth]' Music-Speed '-1sixte' ++ '$[gt.-1 seventh]' Music-Speed '-1septieme' ++ "-1 octave" Music-Speed '-1octave' ++ '$[gt.Max back]' Music-Speed 'min' ++ "" Nop ++ '$[gt.Normal backward]' Music-Speed 'back' ++ "Pause" Music-Speed 'pause' ++ "+ 1 comma" Music-Speed '+1comma' ++ "Normal" Music-Speed 'normal' ++ "-1 comma" Music-Speed '-1comma' -#----------------------------------------------------------------------------------- -# Main functions and menus +## mouse 4 Button-Seek-+ +## mouse 5 Button-Seek-- +DestroyFunc Button-Seek-+ +AddToFunc Button-Seek-+ ++ I Music-Seek '15' -DestroyFunc /Playback-generator -AddToFunc /Playback-generator -+ I DestroyMenu recreate /Playback -+ I AddToMenu /Playback '$[gt.Stop playback]' Music-Stop -+ I AddToMenu /Playback '$[gt.Play]' Music-Play -+ I AddToMenu /Playback '$[gt.Pause]' Music-Pause -+ I AddToMenu /Playback '$[gt.Play/Pause]' Music-PlayPause -+ I AddToMenu /Playback "" Nop -+ I AddToMenu /Playback '$[gt.Next]' Music-Next -+ I AddToMenu /Playback '$[gt.Prev]' Music-Prev -+ I AddToMenu /Playback '$[gt.Song change]' Popup /Music/SongChange -+ I AddToMenu /Playback '$[gt.Jump]' Popup /Music/Jump -+ I AddToMenu /Playback '$[gt.Seek]' Popup /Music/Seek +DestroyFunc Button-Seek-- +AddToFunc Button-Seek-- ++ I Music-Seek '-15' -DestroyFunc /Playlist-generator -AddToFunc /Playlist-generator -+ I DestroyMenu recreate /Playlist -+ I AddToMenu /Playlist '$[gt.Clear playlist]' Music-ClearPlaylist -+ I AddToMenu /Playlist '$[gt.Load playlist]' Popup /Music/LoadPlaylist -#+ I AddToMenu /Playlist '$[gt.Remove playlist]' Popup /Music/RemovePlaylist - -DestroyFunc /Playlist-generator-bot -AddToFunc /Playlist-generator-bot -+ I DestroyMenu recreate /Playlist-bot -+ I AddToMenu /Playlist-bot '$[gt.Load playlist]' Popup /Music/LoadPlaylist -+ I AddToMenu /Playlist-bot '$[gt.Clear playlist]' Music-ClearPlaylist - -DestroyFunc /Player-generator -AddToFunc /Player-generator -+ I DestroyMenu recreate /Player -+ I AddToMenu /Player '$[gt.Start player]' Popup /Music/Start -+ I AddToMenu /Player '$[gt.Stop player]' Music-Kill -+ I AddToMenu /Player '$[gt.Show/hide player]' Music-GUI - +############### +# Music menus # +############### # Recipe without audio buttons use the following: -DestroyMenu /Music -AddToMenu /Music -+ DynamicPopupAction Function /Music-generator +# Popup /Music -DestroyFunc /Music-generator -AddToFunc /Music-generator +DestroyFunc Music-generator +AddToFunc Music-generator + I DestroyMenu recreate /Music + I AddToMenu /Music '$[gt.Player]' Popup /Player -+ I AddToMenu /Music '$[gt.show/hide GUI]' Music-GUI ++ I AddToMenu /Music '$[gt.Show/Hide Alsaplayer]' Music-GUI + I AddToMenu /Music '$[gt.Playback]' Popup /Playback -+ I AddToMenu /Music '$[gt.Control]' Popup /Music/Volume ++ I AddToMenu /Music '$[gt.Player volume]' Popup /Music/Volume + I AddToMenu /Music '$[gt.Speed]' Popup /Speed -+ I AddToMenu /Music '$[gt.show/hide QJackCtl]' Music-QJackGUI +## The following line will screw up the menu. One time on two, it work well, +## the other time /Music/LoadPlaylist and /Music/RemovePlaylist get shifted. +#+ I AddToMenu /Music '$[gt.Playlists]' Popup /Playlist-button ++ I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist ++ I AddToMenu /Music '$[gt.Show/Hide QJackCtl]' Music-QJackGUI # vim:ft=fvwm Modified: fvwm/components/functions/Music-audacious =================================================================== --- fvwm/components/functions/Music-audacious 2011-01-29 21:01:50 UTC (rev 70) +++ fvwm/components/functions/Music-audacious 2011-01-29 21:05:24 UTC (rev 71) @@ -1,112 +1,73 @@ -# Support for Audacious music player +# Support for Audacious in Fvwm-Crystal # Written by: Rafael Antonio Porras Samaniego <sp...@di...> +# Modifications, debugging and improvments by Dominique Michel +# <dom...@so...> -# Where are stored Audacious playlists -SetEnv Audacious_Playlists "$[FVWM_USERDIR]/playlists" +# Initialisations, shared functions +Include components/functions/Music -# Styles for Audacious windows -Style audacious StaysOnTop -Style audacious StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip -Style playlist StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip -Style equalizer StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip +################### +## First button ### +## Player controls and prefs ## +############################### +## mouse 1 Menu /Player +####################### +#DestroyFunc Music-Start +#AddToFunc Music-Start +#+ I Exec exec $0 -# If there is no selected mixer, load the default -CheckPreferences DefaultMixer "Include components/functions/Mixer-audacious" +#DestroyMenu /Music/Start +#AddToMenu /Music/Start +#+ '$[gt.Start Audacious]' Music-Start "audacious" -# Main functions and menus -DestroyMenu /Music -AddToMenu /Music -+ DynamicPopupAction Function /Music-generator +DestroyFunc Music-GUI +AddToFunc Music-GUI ++ I All (audacious) Iconify toggle -DestroyFunc /Music-generator -AddToFunc /Music-generator -+ I DestroyMenu recreate /Music -+ I AddToMenu /Music '$[gt.Load playlist]' Popup /Music/LoadPlaylist -+ I AddToMenu /Music '$[gt.Save playlist...]' Music-SavePlaylist -+ I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist -+ I AddToMenu /Music '$[gt.Remove current song]' Music-RemoveSong -+ I AddToMenu /Music '$[gt.Remove playlist]' Popup /Music/RemovePlaylist -+ I AddToMenu /Music "" Nop -+ I PipeRead 'audtool get-volume | sed -e "s:[ \t]::g" | sed -e "s:^.\\+$:AddToMenu\ /Music \'$[gt.Volume] \(&%%\)\' Popup /Mixer:"' +DestroyFunc Player-generator +AddToFunc Player-generator ++ I DestroyMenu recreate /Player ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Recreate the Playlists]' Music-RecreatePlaylist ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Music player]' Popup /Preferences/MusicPlayer ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start QJackCtl]' Exec exec qjackctl ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start Audacious]' Exec exec audacious ++ I AddToMenu /Player '$[gt.Stop Audacious]' Exec exec killall -9 audacious ++ I AddToMenu /Player '$[gt.Show/Hide player]' Music-GUI -+ I AddToMenu /Music '$[gt.Toggle random]' Music-ToggleRandom -+ I AddToMenu /Music '$[gt.Toggle repeat]' Exec exec audtool playlist-repeat-toggle -+ I AddToMenu /Music "" Nop -+ I AddToMenu /Music '$[gt.Stop playback]' Music-Stop -+ I AddToMenu /Music '$[gt.Show/hide player]' Music-GUI -+ I AddToMenu /Music '$[gt.Play/Pause]' Music-PlayPause +## mouse 2 Music-GUI : allready here +## mouse 3 Music-QJackGUI : in Music +## +## mouse 4 Mixer-Volume-Up +## mouse 5 Mixer-Volume-Down +## are in components/Mixer -# --------------------------------------------------------------------------- -# Basic control functions -DestroyFunc Music-Play -AddToFunc Music-Play -+ I Exec exec audtool playback-play - -DestroyFunc Music-Pause -AddToFunc Music-Pause -+ I Exec exec audtool playback-pause - -DestroyFunc Music-Stop -AddToFunc Music-Stop -+ I Exec exec audtool playback-stop - -DestroyFunc Music-PlayPause -AddToFunc Music-PlayPause -+ I Exec exec audacious -t - -DestroyFunc Music-Next -AddToFunc Music-Next -+ I Exec exec audtool playlist-advance - -DestroyFunc Music-Prev -AddToFunc Music-Prev -+ I Exec exec audtool playlist-reverse - -DestroyFunc Music-Forward -AddToFunc Music-Forward -+ I Nop - -DestroyFunc Music-Backward -AddToFunc Music-Backward -+ I Nop - -DestroyFunc Music-ToggleRandom -AddToFunc Music-ToggleRandom -+ I Exec exec audtool playlist-shuffle-toggle - +# Modifications, debugging and improvments by Dominique Michel +# <dom...@so...> +#################### +## Second button ### +## Player controls and main vol ## +################################## +## mouse 1 Menu /Playlist-button +################################ DestroyFunc Music-RemoveSong AddToFunc Music-RemoveSong + I Exec exec audtool playlist-delete `audtool playlist-position` -DestroyFunc Music-GUI -AddToFunc Music-GUI -+ I All (audacious) Iconify toggle - -DestroyFunc Music-Find -AddToFunc Music-Find -+ I Nop - -# --------------------------------------------------------------------------- -# Playlist functions - -DestroyMenu /Music/LoadPlaylist -AddToMenu /Music/LoadPlaylist -+ DynamicPopupAction Function /Music/LoadPlaylist-generator - -DestroyFunc /Music/LoadPlaylist-generator -AddToFunc /Music/LoadPlaylist-generator -+ I DestroyMenu recreate /Music/LoadPlaylist -+ I AddToMenu /Music/LoadPlaylist -+ I PipeRead 'for i in $[Audacious_Playlists]/*.m3u $[Audacious_Playlists]/*.pls; do \ +DestroyFunc Music-RemovePlaylist-generator +AddToFunc Music-RemovePlaylist-generator ++ I DestroyMenu recreate /Music/RemovePlaylist ++ I AddToMenu /Music/RemovePlaylist ++ I PipeRead 'for i in $[NonManagedPlaylists]/*.{m3u,pls}; do \ name=$(basename "$i"); \ sname=${name%%.m3u}; \ sname=${sname%%.pls}; \ - echo \"AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec audacious \'$i\'\"; done' + echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done' -DestroyFunc Music-SavePlaylist -AddToFunc Music-SavePlaylist -+ I Exec exec mkdir -p $[Audacious_Playlists] -+ I Module FvwmForm Music-SavePlaylist-Dialog +DestroyMenu /Music/RemovePlaylist +AddToMenu /Music/RemovePlaylist ++ DynamicPopupAction Function Music-RemovePlaylist-generator All (Music-SavePlaylist-Dialog) Close DestroyModuleConfig Music-SavePlaylist-Dialog: * @@ -119,29 +80,152 @@ *Music-SavePlaylist-Dialog: Button quit " $[gt.Cancel] " ^[ *Music-SavePlaylist-Dialog: Command Nop *Music-SavePlaylist-Dialog: Button quit " $[gt.Save] " ^M -*Music-SavePlaylist-Dialog: Command PipeRead 'numero=1; echo "#EXTM3U" > $[Audacious_Playlists]/$(PlaylistName).m3u; while [ $numero -le `audtool playlist-length` ]; do \ - echo "#EXTINF:-1,"`audtool playlist-song $numero` >> $[Audacious_Playlists]/$(PlaylistName).m3u; \ - audtool playlist-song-filename $numero >> $[Audacious_Playlists]/$(PlaylistName).m3u; \ +*Music-SavePlaylist-Dialog: Command PipeRead 'numero=1; echo "#EXTM3U" > $[NonManagedPlaylists]/$(PlaylistName).m3u; while [ $numero -le `audtool playlist-length` ]; do \ + echo "#EXTINF:-1,"`audtool playlist-song $numero` >> $[NonManagedPlaylists]/$(PlaylistName).m3u; \ + audtool playlist-song-filename $numero >> $[NonManagedPlaylists]/$(PlaylistName).m3u; \ numero=`expr $numero + 1`; \ done' *Music-SavePlaylist-Dialog: Line center +DestroyFunc Music-SavePlaylist +AddToFunc Music-SavePlaylist ++ I Exec exec mkdir -p $[NonManagedPlaylists] ++ I Module FvwmForm Music-SavePlaylist-Dialog + +DestroyFunc FuncFvwmMenuAudioDirectory +AddToFunc FuncFvwmMenuAudioDirectory ++ I PipeRead 'case "$0" in \ + "$[AudioPlaylists]"*) myexec="audacious";; \ + "$[NonManagedPlaylists]"*) myexec="audacious";; \ + esac; \ + test -f "$0"/.icontitle.png && mytitle="$0"/.icontitle.png; \ + test -f "$0"/.media.png && mypng="$0"/.media.png; \ + fvwm-menu-directory --icon-title "${mytitle:-22x22/categories/directory.png}" \ + --icon-file "${mypng:-22x22/categories/Audio.png}" \ + --func="FuncFvwmMenuAudioDirectory" \ + --exec-file "^${myexec}" --dir "$0" \ + --exec-t="-"' + +DestroyMenu /Music/LoadPlaylist +AddToMenu /Music/LoadPlaylist ++ MissingSubmenuFunction FuncFvwmMenuAudioDirectory ++ '%22x22/categories/video_movies_view.png%$[gt.Browse Medias]' Popup $[AudioPlaylists] ++ '%22x22/categories/video_movies_view.png%$[gt.Browse Medias]' Popup $[NonManagedPlaylists] + DestroyFunc Music-ClearPlaylist AddToFunc Music-ClearPlaylist + I Exec exec audtool playlist-clear -DestroyMenu /Music/RemovePlaylist -AddToMenu /Music/RemovePlaylist -+ DynamicPopupAction Function /Music/RemovePlaylist-generator +DestroyFunc Playlist-generator-button +AddToFunc Playlist-generator-button ++ I DestroyMenu recreate /Playlist-button ++ I AddToMenu /Playlist-button '$[gt.Remove current song]' Music-RemoveSong ++ I AddToMenu /Playlist-button '$[gt.Remove playlist]' Popup /Music/RemovePlaylist ++ I AddToMenu /Playlist-button '$[gt.Save playlist...]' Music-SavePlaylist ++ I AddToMenu /Playlist-button "" Nop ++ I AddToMenu /Playlist-button '$[gt.Load playlist]' Popup /Music/LoadPlaylist ++ I AddToMenu /Playlist-button '$[gt.Clear playlist]' Music-ClearPlaylist -DestroyFunc /Music/RemovePlaylist-generator -AddToFunc /Music/RemovePlaylist-generator -+ I DestroyMenu recreate /Music/RemovePlaylist -+ I AddToMenu /Music/RemovePlaylist -+ I PipeRead 'for i in $[Audacious_Playlists]/*.m3u $[Audacious_Playlists]/*.pls; do \ - name=$(basename "$i"); \ - sname=${name%%.m3u}; \ - sname=${sname%%.pls}; \ - echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done' +DestroyMenu /Playlist-button +AddToMenu /Playlist-button ++ DynamicPopupAction Function Playlist-generator-button +## mouse 2 Menu /Playback +######################### +DestroyFunc Music-Next +AddToFunc Music-Next ++ I Exec exec audtool playlist-advance + +DestroyFunc Music-Prev +AddToFunc Music-Prev ++ I Exec exec audtool playlist-reverse + +DestroyFunc Music-Stop +AddToFunc Music-Stop ++ I Exec exec audtool playback-stop + +DestroyFunc Music-Play +AddToFunc Music-Play ++ I Exec exec audtool playback-play + +DestroyFunc Music-Pause +AddToFunc Music-Pause ++ I Exec exec audtool playback-pause + +DestroyFunc Music-PlayPause +AddToFunc Music-PlayPause ++ I Exec exec audacious -t + +DestroyFunc Music-ToggleRandom +AddToFunc Music-ToggleRandom ++ I Exec exec audtool playlist-shuffle-toggle + +DestroyFunc Playback-generator +AddToFunc Playback-generator ++ I DestroyMenu recreate /Playback ++ I AddToMenu /Playback '$[gt.Next]' Music-Next ++ I AddToMenu /Playback '$[gt.Prev]' Music-Prev ++ I AddToMenu /Playback "" Nop ++ I AddToMenu /Playback '$[gt.Stop playback]' Music-Stop ++ I AddToMenu /Playback '$[gt.Play]' Music-Play ++ I AddToMenu /Playback '$[gt.Pause]' Music-Pause ++ I AddToMenu /Playback '$[gt.Play/Pause]' Music-PlayPause ++ I AddToMenu /Playback '$[gt.Toggle random]' Music-ToggleRandom ++ I AddToMenu /Playback '$[gt.Toggle repeat]' Exec exec audtool playlist-repeat-toggle + +## mouse 3 Menu /Mixer : in components/Mixer +## mouse 4 Music-Next : allready here +## mouse 4 Music-Prev : allready here + +#################### +## Third button ### +## Player controls and vol ## +############################# +## mouse 1 Music-Pause : allready here +## mouse 2 Music-PlayPause : allready here +## mouse 3 Menu /Music/Volume +############################# +DestroyFunc Music-Volume +AddToFunc Music-Volume ++ I Exec exec audtool set-volume $0 + +DestroyMenu /Music/Volume +AddToMenu /Music/Volume ++ '$[gt.Player volume]' ++ "" Nop ++ " 0 dB" Music-Volume '100' ++ "-3 dB" Music-Volume '71' ++ "-6 dB" Music-Volume '50' ++ "-12 dB" Music-Volume '25' ++ "-18 dB" Music-Volume '12' ++ "-24 dB" Music-Volume '6' ++ "-30 dB" Music-Volume '3' ++ " 0" Music-Volume '0' + +############### +# Music menus # +############### +# Recipe without audio buttons use the following: +# Popup /Music +DestroyFunc Music-generator +AddToFunc Music-generator ++ I DestroyMenu recreate /Music ++ I AddToMenu /Music '$[gt.Load playlist]' Popup /Music/LoadPlaylist ++ I AddToMenu /Music '$[gt.Save playlist...]' Music-SavePlaylist ++ I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist ++ I AddToMenu /Music '$[gt.Remove current song]' Music-RemoveSong ++ I AddToMenu /Music '$[gt.Remove playlist]' Popup /Music/RemovePlaylist ++ I AddToMenu /Music "" Nop ++ I PipeRead 'audtool get-volume | sed -e "s:[ \t]::g" | sed -e "s:^.\\+$:AddToMenu\ /Music \'$[gt.Volume] \(&%%\)\' Popup /Mixer:"' ++ I AddToMenu /Music '$[gt.Toggle random]' Music-ToggleRandom ++ I AddToMenu /Music '$[gt.Toggle repeat]' Exec exec audtool playlist-repeat-toggle ++ I AddToMenu /Music "" Nop ++ I AddToMenu /Music '$[gt.Stop playback]' Music-Stop ++ I AddToMenu /Music '$[gt.Show/Hide player]' Music-GUI ++ I AddToMenu /Music '$[gt.Play/Pause]' Music-PlayPause + +DestroyMenu /Music +AddToMenu /Music ++ DynamicPopupAction Function Music-generator + # vim:ft=fvwm Modified: fvwm/components/functions/Music-cdcd =================================================================== --- fvwm/components/functions/Music-cdcd 2011-01-29 21:01:50 UTC (rev 70) +++ fvwm/components/functions/Music-cdcd 2011-01-29 21:05:24 UTC (rev 71) @@ -1,30 +1,71 @@ -# Support for CDCD CDAudio player +# Support for CDCD CDAudio player into Fvwm-Crystal # Written by: Maciej Delmanowski <ha...@po...> # sed commands by: Grzegorz Niew\xEAg\xB3owski <ho...@do...> +# Modifications, debugging and improvments by Dominique Michel +# <dom...@so...> # Overview: # This is a set of function for controlling the CDCD CD Audio player # (http://libcdaudio.sourceforge.net/). +# Initialisations, shared functions +Include components/functions/Music -# If there is no selected mixer, load the default -CheckPreferences DefaultMixer "Include components/functions/Mixer-cdcd" - -# --------------------------------------------------------------------------- -# Main menu -DestroyMenu /Music -AddToMenu /Music -+ '$[gt.Volume]' Popup /Mixer -+ "" Nop -+ '$[gt.Stop playback]' Music-Stop -+ '$[gt.Show/hide player]' Music-GUI -+ '$[gt.Play/Pause]' Music-PlayPause - -# --------------------------------------------------------------------------- -# Basic control functions +################### +## First button ### +## Player controls and prefs ## +############################### +## mouse 1 Menu /Player +####################### DestroyFunc Music-cdcd +AddToFunc Music-cdcd + I Exec exec cdcd $0 > /dev/null +DestroyFunc Music-GUI +AddToFunc Music-GUI ++ I All (cdcd) Close ++ I TestRc (NoMatch) None (cdcd) AT cdcd cdcd + +# Player-generator (All) +DestroyFunc Player-generator +AddToFunc Player-generator ++ I DestroyMenu recreate /Player ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Recreate the Playlists]' Music-RecreatePlaylist ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Music player]' Popup /Preferences/MusicPlayer ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start QJackCtl]' Exec exec qjackctl ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start CDCD]' Music-cdcd play ++ I AddToMenu /Player '$[gt.Stop player]' Music-cdcd quit ++ I AddToMenu /Player '$[gt.Show/Hide player]' Music-GUI + +## mouse 2 Music-GUI : allready here +## mouse 3 Music-QJackGUI : in Music +## +## mouse 4 Mixer-Volume-Up +## mouse 5 Mixer-Volume-Down +## are in components/Mixer + +#################### +## Second button ### +## Player controls and main vol ## +################################## +## mouse 1 Menu /Playlist-button +################################ +## mouse 2 Menu /Playback +######################### +DestroyFunc Music-Next +AddToFunc Music-Next ++ I Music-cdcd next + +DestroyFunc Music-Prev +AddToFunc Music-Prev ++ I Music-cdcd prev + +DestroyFunc Music-Stop +AddToFunc Music-Stop ++ I Music-cdcd stop + DestroyFunc Music-Play AddToFunc Music-Play + I Music-cdcd play @@ -33,22 +74,10 @@ AddToFunc Music-Pause + I Music-cdcd toggle -DestroyFunc Music-Stop -AddToFunc Music-Stop -+ I Music-cdcd stop - DestroyFunc Music-PlayPause AddToFunc Music-PlayPause + I Music-cdcd toggle -DestroyFunc Music-Next -AddToFunc Music-Next -+ I Music-cdcd next - -DestroyFunc Music-Prev -AddToFunc Music-Prev -+ I Music-cdcd prev - DestroyFunc Music-Forward AddToFunc Music-Forward + I Music-cdcd ff @@ -57,17 +86,32 @@ AddToFunc Music-Backward + I Muisc-cdcd rew -DestroyFunc Music-GUI -AddToFunc Music-GUI -+ I All (cdcd) Close -+ I TestRc (NoMatch) None (cdcd) A cdcd +DestroyFunc Playback-generator +AddToFunc Playback-generator ++ I DestroyMenu recreate /Playback ++ I AddToMenu /Playback '$[gt.Next]' Music-Next ++ I AddToMenu /Playback '$[gt.Prev]' Music-Prev ++ I AddToMenu /Playback "" Nop ++ I AddToMenu /Playback '$[gt.Stop playback]' Music-Stop ++ I AddToMenu /Playback '$[gt.Play]' Music-Play ++ I AddToMenu /Playback '$[gt.Pause]' Music-Pause ++ I AddToMenu /Playback '$[gt.Play/Pause]' Music-PlayPause ++ I AddToMenu /Playback '$[gt.Forward]' Music-Forward ++ I AddToMenu /Playback '$[gt.Backward]' Music-Backward -DestroyFunc Music-Find -#AddToFunc Music-Find -#+ I Nop +## mouse 3 Menu /Mixer : in components/Mixer +## mouse 4 Music-Next : allready here +## mouse 4 Music-Prev : allready here -DestroyFunc Music-ToggleRandom -#AddToFunc Music-ToggleRandom -#i+ I Nop +# --------------------------------------------------------------------------- +# Main menu +DestroyMenu /Music +AddToMenu /Music ++ '$[gt.Volume]' Popup /Mixer ++ "" Nop ++ '$[gt.Stop playback]' Music-Stop ++ '$[gt.Show/Hide player]' Music-GUI ++ '$[gt.Play/Pause]' Music-PlayPause + # vim:ft=fvwm Modified: fvwm/components/functions/Music-cmus =================================================================== --- fvwm/components/functions/Music-cmus 2011-01-29 21:01:50 UTC (rev 70) +++ fvwm/components/functions/Music-cmus 2011-01-29 21:05:24 UTC (rev 71) @@ -1,28 +1,69 @@ # Support for C* Music Player # Written by: Maciej Delmanowski <ha...@po...> +# Modifications, debugging and improvments by Dominique Michel +# <dom...@so...> # Overview: # This is a set of function for controlling the C* Music Player # (http://onion.dynserv.net/~timo/cmus.html). It is done using the # 'cmus-remote' command-line frontend. +# Initialisations, shared functions +Include components/functions/Music -# If there is no selected mixer, load the default -CheckPreferences DefaultMixer "Include components/functions/Mixer-cmus" +################### +## First button ### +## Player controls and prefs ## +############################### +## mouse 1 Menu /Player +####################### +DestroyFunc Music-GUI +AddToFunc Music-GUI ++ I All (cmus) Iconify toggle -# --------------------------------------------------------------------------- -# Main menu -DestroyMenu /Music -AddToMenu /Music -+ '$[gt.Volume]' Popup /Mixer -+ '$[gt.Toggle random]' Music-ToggleRandom -+ '$[gt.Toggle repeat]' Exec mpc repeat -+ "" Nop -+ '$[gt.Stop playback]' Music-Stop -+ '$[gt.Play/Pause]' Music-PlayPause +# Player-generator (All) +DestroyFunc Player-generator +AddToFunc Player-generator ++ I DestroyMenu recreate /Player ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Recreate the Playlists]' Music-RecreatePlaylist ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Music player]' Popup /Preferences/MusicPlayer ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start QJackCtl]' Exec exec qjackctl ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start C* Music Player]' AT cmus cmus ++ I AddToMenu /Player '$[gt.Stop player]' Exec exec killall -9 cmus -# --------------------------------------------------------------------------- -# Basic control functions +## mouse 2 Music-GUI : allready here +## mouse 3 Music-QJackGUI : in Music +## +## mouse 4 Mixer-Volume-Up +## mouse 5 Mixer-Volume-Down +## are in components/Mixer + +#################### +## Second button ### +## Player controls and main vol ## +################################## +## mouse 1 Menu /Playlist-button +################################ +## mouse 2 Menu /Playback +######################### +DestroyFunc Music-Next +AddToFunc Music-Next ++ I Exec cmus-remote --next > /dev/null + +DestroyFunc Music-Prev +AddToFunc Music-Prev ++ I Exec cmus-remote --prev > /dev/null + +DestroyFunc Music-ToggleRandom +AddToFunc Music-ToggleRandom ++ I Exec cmus-remote --shuffle > /dev/null + +DestroyFunc Music-Stop +AddToFunc Music-Stop ++ I Exec cmus-remote --stop > /dev/null + DestroyFunc Music-Play AddToFunc Music-Play + I Exec cmus-remote --play > /dev/null @@ -31,22 +72,10 @@ AddToFunc Music-Pause + I Exec cmus-remote --pause > /dev/null -DestroyFunc Music-Stop -AddToFunc Music-Stop -+ I Exec cmus-remote --stop > /dev/null - DestroyFunc Music-PlayPause AddToFunc Music-PlayPause + I Exec cmus-remote --pause > /dev/null -DestroyFunc Music-Next -AddToFunc Music-Next -+ I Exec cmus-remote --next > /dev/null - -DestroyFunc Music-Prev -AddToFunc Music-Prev -+ I Exec cmus-remote --prev > /dev/null - DestroyFunc Music-Forward AddToFunc Music-Forward + I Exec cmus-remote --shuffle > /dev/null; cmus-remote --next > /dev/null; cmus-remote --shuffle > /dev/null @@ -55,16 +84,29 @@ AddToFunc Music-Backward + I Exec cmus-remote --shuffle > /dev/null; cmus-remote --prev > /dev/null; cmus-remote --shuffle > /dev/null -DestroyFunc Music-ToggleRandom -AddToFunc Music-ToggleRandom -+ I Exec cmus-remote --shuffle > /dev/null +DestroyFunc Playback-generator +AddToFunc Playback-generator ++ I DestroyMenu recreate /Playback ++ I AddToMenu /Playback '$[gt.Next]' Music-Next ++ I AddToMenu /Playback '$[gt.Prev]' Music-Prev ++ I AddToMenu /Playback '$[gt.Toggle random]' Music-ToggleRandom ++ I AddToMenu /Playback "" Nop ++ I AddToMenu /Playback '$[gt.Stop playback]' Music-Stop ++ I AddToMenu /Playback '$[gt.Play]' Music-Play ++ I AddToMenu /Playback '$[gt.Pause]' Music-Pause ++ I AddToMenu /Playback '$[gt.Play/Pause]' Music-PlayPause ++ I AddToMenu /Playback '$[gt.Forward]' Music-Forward ++ I AddToMenu /Playback '$[gt.Backward]' Music-Backward -DestroyFunc Music-GUI -AddToFunc Music-GUI -+ I Nop +# --------------------------------------------------------------------------- +# Main menu +DestroyMenu /Music +AddToMenu /Music ++ '$[gt.Volume]' Popup /Mixer ++ '$[gt.Toggle random]' Music-ToggleRandom ++ '$[gt.Toggle repeat]' Exec mpc repeat ++ "" Nop ++ '$[gt.Stop playback]' Music-Stop ++ '$[gt.Play/Pause]' Music-PlayPause -DestroyFunc Music-Find -AddToFunc Music-Find -+ I Nop - # vim:ft=fvwm Modified: fvwm/components/functions/Music-mocp =================================================================== --- fvwm/components/functions/Music-mocp 2011-01-29 21:01:50 UTC (rev 70) +++ fvwm/components/functions/Music-mocp 2011-01-29 21:05:24 UTC (rev 71) @@ -1,43 +1,96 @@ # Support for 'Music On Console' music player # Written by: Maciej Delmanowski <ha...@po...> # Modded by: rysiul <tu...@o2...> +# Modifications, debugging and improvments by Dominique Michel +# <dom...@so...> -# Where are stored XMMS playlists -SetEnv XMMS_Playlists "$[FVWM_USERDIR]/playlists" +# Initialisations, shared functions +Include components/functions/Music -# Main functions and menus -DestroyMenu /Music -AddToMenu /Music -+ DynamicPopupAction Function /Music-generator +################### +## First button ### +## Player controls and prefs ## +############################### +## mouse 1 Menu /Player +####################### +DestroyFunc Music-GUI +AddToFunc Music-GUI ++ I All (mocp) Close ++ I TestRc (NoMatch) None (mocp) AT mocp mocp -DestroyFunc /Music-generator -AddToFunc /Music-generator -+ I DestroyMenu recreate /Music -+ I AddToMenu /Music '$[gt.Load playlist]' Popup /Music/LoadPlaylist -+ I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist -+ I AddToMenu /Music '$[gt.Remove playlist]' Popup /Music/RemovePlaylist -+ I AddToMenu /Music "" Nop -+ I AddToMenu /Music '$[gt.Stop playback]' Music-Stop -+ I AddToMenu /Music '$[gt.Play/Pause]' Music-PlayPause +# Player-generator (All) +DestroyFunc Player-generator +AddToFunc Player-generator ++ I DestroyMenu recreate /Player ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Recreate the Playlists]' Music-RecreatePlaylist ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Music player]' Popup /Preferences/MusicPlayer ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start QJackCtl]' Exec exec qjackctl ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start Music On Console]' AT mocp mocp ++ I AddToMenu /Player '$[gt.Stop player]' Exec exec killall -9 mocp ++ I AddToMenu /Player '$[gt.Show/Hide player]' Music-GUI -# --------------------------------------------------------------------------- -# Basic control functions -DestroyFunc Music-Play -AddToFunc Music-Play -+ I Exec exec mocp --sync --play +## mouse 2 Music-GUI : allready here +## mouse 3 Music-QJackGUI : in Music +## +## mouse 4 Mixer-Volume-Up +## mouse 5 Mixer-Volume-Down +## are in components/Mixer -DestroyFunc Music-Pause -AddToFunc Music-Pause -+ I Exec exec mocp --sync --pause +#################### +## Second button ### +## Player controls and main vol ## +################################## +## mouse 1 Menu /Playlist-button +################################ +DestroyFunc FuncFvwmMenuAudioDirectory +AddToFunc FuncFvwmMenuAudioDirectory ++ I PipeRead 'case "$0" in \ + "$[AudioPlaylists]"*) myexec="mocp --sync --append";; \ + "$[NonManagedPlaylists]"*) myexec="mocp --sync --append";; \ + esac; \ + test -f "$0"/.icontitle.png && mytitle="$0"/.icontitle.png; \ + test -f "$0"/.media.png && mypng="$0"/.media.png; \ + fvwm-menu-directory --icon-title "${mytitle:-22x22/categories/directory.png}" \ + --icon-file "${mypng:-22x22/categories/Audio.png}" \ + --func="FuncFvwmMenuAudioDirectory" \ + --exec-file "^${myexec}" --dir "$0" \ + --exec-t="-"' -DestroyFunc Music-Stop -AddToFunc Music-Stop -+ I Exec exec mocp --sync --stop +DestroyMenu /Music/LoadPlaylist +AddToMenu /Music/LoadPlaylist ++ MissingSubmenuFunction FuncFvwmMenuAudioDirectory ++ '%22x22/categories/video_movies_view.png%$[gt.Browse Medias]' Popup $[AudioPlaylists] ++ '%22x22/categories/video_movies_view.png%$[gt.Browse Medias]' Popup $[NonManagedPlaylists] -DestroyFunc Music-PlayPause -AddToFunc Music-PlayPause -+ I Exec exec mocp --sync --toggle-pause +DestroyFunc Music-ClearPlaylist +AddToFunc Music-ClearPlaylist ++ I Exec exec mocp --sync --clear +DestroyFunc Music-RemovePlaylist-generator +AddToFunc Music-RemovePlaylist-generator ++ I DestroyMenu recreate /Music/RemovePlaylist ++ I AddToMenu /Music/RemovePlaylist ++ I PipeRead 'for i in $[NonManagedPlaylists]/*.{m3u,pls}; do name=$(basename "$i"); sname=${name%%.m3u}; sname=${sname%%.pls}; echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done' + +DestroyMenu /Music/RemovePlaylist +AddToMenu /Music/RemovePlaylist ++ DynamicPopupAction Function Music-RemovePlaylist-generator + +DestroyFunc Playlist-generator-button +AddToFunc Playlist-generator-button ++ I DestroyMenu recreate /Playlist-button ++ I AddToMenu /Playlist-button '$[gt.Load playlist]' Popup /Music/LoadPlaylist ++ I AddToMenu /Playlist-button '$[gt.Clear playlist]' Music-ClearPlaylist ++ I AddToMenu /Playlist-button '$[gt.Remove playlist]' Popup /Music/RemovePlaylist + +DestroyMenu /Playlist-button +AddToMenu /Playlist-button ++ DynamicPopupAction Function Playlist-generator-button + +## mouse 2 Menu /Playback +######################### DestroyFunc Music-Next AddToFunc Music-Next + I Exec exec mocp --sync --next @@ -46,41 +99,51 @@ AddToFunc Music-Prev + I Exec exec mocp --sync --previous +DestroyFunc Music-Stop +AddToFunc Music-Stop ++ I Exec exec mocp --sync --stop -# --------------------------------------------------------------------------- -# Playlist functions +DestroyFunc Music-Play +AddToFunc Music-Play ++ I Exec exec mocp --sync --play -DestroyMenu /Music/LoadPlaylist -AddToMenu /Music/LoadPlaylist -+ DynamicPopupAction Function /Music/LoadPlaylist-generator +DestroyFunc Music-Pause +AddToFunc Music-Pause ++ I Exec exec mocp --sync --pause -DestroyFunc /Music/LoadPlaylist-generator -AddToFunc /Music/LoadPlaylist-generator -+ I DestroyMenu recreate /Music/LoadPlaylist -+ I AddToMenu /Music/LoadPlaylist -+ I PipeRead 'for i in $[XMMS_Playlists]/*.m3u $[XMMS_Playlists]/*.pls; do \ - name=$(basename "$i"); \ - sname=${name%%.m3u}; \ - sname=${sname%%.pls}; \ - echo \"AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec mocp --sync --append \'$i\'\"; done' +DestroyFunc Music-PlayPause +AddToFunc Music-PlayPause ++ I Exec exec mocp --sync --toggle-pause +DestroyFunc Playback-generator +AddToFunc Playback-generator ++ I DestroyMenu recreate /Playback ++ I AddToMenu /Playback '$[gt.Next]' Music-Next ++ I AddToMenu /Playback '$[gt.Prev]' Music-Prev ++ I AddToMenu /Playback "" Nop ++ I AddToMenu /Playback '$[gt.Stop playback]' Music-Stop ++ I AddToMenu /Playback '$[gt.Play]' Music-Play ++ I AddToMenu /Playback '$[gt.Pause]' Music-Pause ++ I AddToMenu /Playback '$[gt.Play/Pause]' Music-PlayPause -DestroyFunc Music-ClearPlaylist -AddToFunc Music-ClearPlaylist -+ I Exec exec mocp --sync --clear +## mouse 3 Menu /Mixer : in components/Mixer +## mouse 4 Music-Next : allready here +## mouse 4 Music-Prev : allready here -DestroyMenu /Music/RemovePlaylist -AddToMenu /Music/RemovePlaylist -+ DynamicPopupAction Function /Music/RemovePlaylist-generator +######################## +# Main functions and menus +DestroyMenu /Music +AddToMenu /Music ++ DynamicPopupAction Function Music-generator -DestroyFunc /Music/RemovePlaylist-generator -AddToFunc /Music/RemovePlaylist-generator -+ I DestroyMenu recreate /Music/RemovePlaylist -+ I AddToMenu /Music/RemovePlaylist -+ I PipeRead 'for i in $[XMMS_Playlists]/*.m3u $[XMMS_Playlists]/*.pls; do \ - name=$(basename "$i"); \ - sname=${name%%.m3u}; \ - sname=${sname%%.pls}; \ - echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done' +DestroyFunc Music-generator +AddToFunc Music-generator ++ I DestroyMenu recreate /Music ++ I AddToMenu /Music '$[gt.Load playlist]' Popup /Music/LoadPlaylist ++ I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist ++ I AddToMenu /Music '$[gt.Remove playlist]' Popup /Music/RemovePlaylist ++ I AddToMenu /Music "" Nop ++ I AddToMenu /Music '$[gt.Stop playback]' Music-Stop ++ I AddToMenu /Music '$[gt.Play/Pause]' Music-PlayPause # vim:ft=fvwm Modified: fvwm/components/functions/Music-mpd =================================================================== --- fvwm/components/functions/Music-mpd 2011-01-29 21:01:50 UTC (rev 70) +++ fvwm/components/functions/Music-mpd 2011-01-29 21:05:24 UTC (rev 71) @@ -1,61 +1,142 @@ # Support for MPD music player # Written by: Maciej Delmanowski <ha...@po...> # sed commands by: Grzegorz Niew�owski <ho...@do...> +# Modifications, debugging and improvments by Dominique Michel +# <dom...@so...> # Overview: # This is a set of function for controlling the Music Player Daemon # (http://www.musicpd.org/). It is done using the 'mpc' command-line frontend. +# Initialisations, shared functions +Include components/functions/Music -# If there is no selected mixer, load the default -CheckPreferences DefaultMixer "Include components/functions/Mixer-mpd" +############# +# Variables # +############# +# mpd know where the playlists are. See 'man mpd.conf' +################### +## First button ### +## Player controls and prefs ## +############################### +## mouse 1 Menu /Player +####################### +# Show or hile a Gnome mpd frontend +DestroyFunc Music-GUI +AddToFunc Music-GUI ++ I All (gmpc) Close ++ I TestRc (NoMatch) None (gmpc) X gmpc -# --------------------------------------------------------------------------- -# Main menu -DestroyMenu /Music -AddToMenu /Music -+ DynamicPopupAction Function /Music-generator +DestroyFunc Player-generator +AddToFunc Player-generator ++ I DestroyMenu recreate /Player ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Recreate the Playlists]' Music-RecreatePlaylist ++ I AddToMenu /Player '%22x22/fvwm-crystal/audio-x-generic.png%$[gt.Music player]' Popup /Preferences/MusicPlayer ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start QJackCtl]' Exec exec qjackctl ++ I AddToMenu /Player "" Nop ++ I AddToMenu /Player '$[gt.Start Music Player Daemon]' Exec exec mpd ++ I AddToMenu /Player '$[gt.Stop player]' Exec exec killall -9 mpd ++ I AddToMenu /Player '$[gt.Show/Hide GMPC]' Music-GUI -DestroyFunc /Music-generator -AddToFunc /Music-generator -+ I DestroyMenu recreate /Music -+ I PipeRead 'mpc | head -n 1 | sed -e "s;volume:\d*.*;$[gt.Player is stopped];" | sed -e "s:^.*$:AddToMenu /Music \'&\' :"' -+ I AddToMenu /Music "" Nop -+ I AddToMenu /Music '$[gt.Load playlist]' Popup /Music/LoadPlaylist -+ I AddToMenu /Music '$[gt.Save playlist...]' Music-SavePlaylist -+ I AddToMenu /Music '$[gt.Shuffle playlist]' Music-Shuffle -+ I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist -+ I AddToMenu /Music '$[gt.Update database]' Music-Update -+ I AddToMenu /Music '$[gt.Remove current song]' Music-RemoveSong -+ I AddToMenu /Music '$[gt.Remove playlist]' Popup /Music/RemovePlaylist -+ I AddToMenu /Music '$[gt.Playlist editor]' Script scripts/FvwmMPD/FvwmApplet-MpdPlEd +## mouse 2 Music-GUI : allready here +## mouse 3 Music-QJackGUI : in Music +## +## mouse 4 Mixer-Volume-Up +## mouse 5 Mixer-Volume-Down +## are in components/Mixer -+ I AddToMenu /Music "" Nop -+ I PipeRead 'mpc crossfade | sed -e "s/crossfade:\ //" | sed -e "s:^.\\+$:AddToMenu\ /Music \'$[gt.Crossfade] \(&\)\' Popup /Music/Crossfade:"' -+ I PipeRead 'mpc volume | sed -e "s/volume:\ //" | sed -e "s:%:%%:" | sed -e "s:[ \t]::g" | sed -e "s:^.\\+$:AddToMenu\ /Music \'$[gt.Volume] \(&\)\' Popup /Mixer:"' -+ I AddToMenu /Music '$[gt.Toggle random]' Music-ToggleRandom -+ I AddToMenu /Music '$[gt.Toggle repeat]' Exec mpc repeat -# Function below doesn't work for me (harnir), if it does for you, conatct me -# (ha...@po...). -+ I PipeRead 'mpc | sed -ne "s=.*repeat: \(on\|off\).*random: \(on\|off\).*=AddToMenu\ \/Music \'Toggle repeat (\1)\' Exec mpc repeat\nAddToMenu \/Music \'Toggle random (\2)\' Exec mpc random=gp"' -+ I AddToMenu /Music "" Nop -+ I AddToMenu /Music '$[gt.Stop playback]' Music-Stop -+ I AddToMenu /Music '$[gt.Show/hide player]' Music-GUI -+ I AddToMenu /Music '$[gt.Play/Pause]' Music-PlayPause +#################### +## Second button ### +## Player controls and main vol ## +################################## +## mouse 1 Menu /Playlist-button +################################ +DestroyFunc Music-LoadAll +AddToFunc Music-LoadAll ++ I Exec mpc ls | mpc add > /dev/null -DestroyMenu /Music/Crossfade -AddToMenu /Music/Crossfade -+ "0" Exec mpc crossfade 0 -+ "" Nop -+ "1" Exec mpc crossfade 1 -+ "2" Exec mpc crossfade 2 -+ "4" Exec mpc crossfade 4 -+ "6" Exec mpc crossfade 6 -+ "8" Exec mpc crossfade 8 -+ "10" Exec mpc crossfade 10 +DestroyFunc Music-LoadPlaylist-generator +AddToFunc Music-LoadPlaylist-generator ++ I DestroyMenu recreate /Music/LoadPlaylist ++ I PipeRead 'mpc lsplaylists | sed -e "s:^.*$:AddToMenu /Music/LoadPlaylist \'&\' Exec mpc load \'&\' \> /dev/null:"' ++ I AddToMenu /Music/LoadPlaylist "" Nop ++ I AddToMenu /Music/LoadPlaylist '$[gt.Everything]' Music-LoadAll -# --------------------------------------------------------------------------- -# Basic control functions +DestroyMenu /Music/LoadPlaylist +AddToMenu /Music/LoadPlaylist ++ DynamicPopupAction Function Music-LoadPlaylist-generator + +All (Music-SavePlaylist-Dialog) Cl... [truncated message content] |