# Support for XMMS2
# Author: Michal Gorny <peres.fvxm@mailnull.com>
# Based on xmms2 command-line client, version 0.2 DrBombay

CheckPreferences DefaultMixer "Include components/functions/Mixer-xmms2"

DestroyMenu /Music
AddToMenu /Music
+ DynamicPopupAction Function /Music-generator

DestroyFunc /Music-generator
AddToFunc /Music-generator
+ I DestroyMenu recreate /Music
+ I PipeRead 'xmms2 current | sed -e "s:^ERROR.*$:$[gt.Player is stopped]:" | sed -e "s:^.*$:AddToMenu /Music \'\&\':"'
+ I AddToMenu /Music "" Nop
#+ I AddToMenu /Music '$[gt.Current playlist]'		Popup /Music/CurrentPlaylist
+ 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.Remove current song]'	Music-RemoveSong
+ I AddToMenu /Music '$[gt.Remove playlist]'		Popup /Music/RemovePlaylist

+ I AddToMenu /Music "" Nop
#+ I PipeRead 'xmms2 configlist | grep output\.volume | sed -e "s;output.volume = ;;" | sed -e "s;^.*$;AddToMenu /Music \'$[gt.Volume]: \&\' Popup /Mixer:;"'
+ I AddToMenu /Music '$[gt.Volume]'			Popup /Mixer
+ 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]'			Music-Play
+ I AddToMenu /Music '$[gt.Pause]'			Music-Pause



DestroyFunc Music-Play
AddToFunc Music-Play
+ I Exec xmms2 play

DestroyFunc Music-Pause
AddToFunc Music-Pause
+ I Exec xmms2 pause

DestroyFunc Music-Stop
AddToFunc Music-Stop
+ I Exec xmms2 stop

DestroyFunc Music-Next
AddToFunc Music-Next
+ I Exec xmms2 next

DestroyFunc Music-Prev
AddToFunc Music-Prev
+ I Exec xmms2 prev

DestroyFunc Music-Forward
AddToFunc Music-Forward
+ I Nop

DestroyFunc Music-Backward
AddToFunc Music-Backward
+ I Nop

DestroyFunc Music-ToggleRandom
AddToFunc Music-ToggleRandom
+ I Nop

DestroyFunc Music-RemoveSong
AddToFunc Music-RemoveSong
+ I Exec xmms2 next
+ I Exec xmms2 remove `xmms2 list | sed -e "s;^->\[;;" | sed -e "s;/.*;;"`

DestroyFunc Music-Shuffle
AddToFunc Music-Shuffle
+ I Exec xmms2 shuffle

DestroyFunc Music-GUI
AddToFunc Music-GUI
+ I All (gxmms2) Close
+ I TestRc (False) None (gxmms2) X gxmms2

DestroyFunc Music-Find
AddToFunc Music-Find
+ I Nop

DestroyFunc Music-Update
AddToFunc Music-Update
+ I Nop

DestroyMenu /Music/CurrentPlaylist
AddToMenu /Music/CurrentPlaylist
+ DynamicPopupAction Function /Music/CurrentPlaylist-generator

DestroyFunc /Music/CurrentPlaylist-generator
AddToFunc /Music/CurrentPlaylist-generator
+ I DestroyMenu recreate /Music/CurrentPlaylist
+ I PipeRead 'xmms2 list | head -n -2 | sed -e "s:^.*\[\(.*\)/.*\] \(.*\)$:AddToMenu /Music/CurrentPlaylist \'\2\' Exec xmms2 jump \'\1\':"'

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 PipeRead 'xmms2 mlib playlists_list | sed -e "s:^.*$:AddToMenu /Music/LoadPlaylist \'&\' Exec xmms2 mlib load_playlist \'&\':"'
+ I AddToMenu /Music/LoadPlaylist "" Nop
+ I AddToMenu /Music/LoadPlaylist '$[gt.Everything]' Music-LoadAll

DestroyFunc Music-SavePlaylist
AddToFunc Music-SavePlaylist
+ I Module FvwmForm Music-SavePlaylist-Dialog

All (Music-SavePlaylist-Dialog) Close
DestroyModuleConfig Music-SavePlaylist-Dialog: *
*Music-SavePlaylist-Dialog: Title "$[gt.Save playlist]"
*Music-SavePlaylist-Dialog: Text "$[gt.Name of the playlist]"
*Music-SavePlaylist-Dialog: Line center
*Music-SavePlaylist-Dialog: Input PlaylistName 40 ""
*Music-SavePlaylist-Dialog: Line center
*Music-SavePlaylist-Dialog: Line center
*Music-SavePlaylist-Dialog: Button quit " $[gt.Cancel] " ^[
*Music-SavePlaylist-Dialog: Command Nop
*Music-SavePlaylist-Dialog: Button quit " $[gt.Save] " ^M
*Music-SavePlaylist-Dialog: Command Exec xmms2 mlib save_playlist "$(PlaylistName)"
*Music-SavePlaylist-Dialog: Line center

DestroyFunc Music-LoadAll
AddToFunc Music-LoadAll
+ I Exec xmms2 mlib loadall

DestroyFunc Music-ClearPlaylist
AddToFunc Music-ClearPlaylist
+ I Exec xmms2 clear

DestroyMenu /Music/RemovePlaylist
AddToMenu /Music/RemovePlaylist
+ DynamicPopupAction Function /Music/RemovePlaylist-generator

DestroyFunc /Music/RemovePlaylist-generator
AddToFunc /Music/RemovePlaylist-generator
+ I DestroyMenu recreate /Music/RemovePlaylist
+ I PipeRead 'xmms2 mlib playlists_list | sed -e "s:^.*$:AddToMenu /Music/RemovePlaylist \'&\' Exec xmms2 mlib remove_playlist \'&\':"'

# vim:ft=fvwm
