From: <dom...@us...> - 2015-02-11 17:13:53
|
Revision: 680 http://sourceforge.net/p/fvwm-crystal/code/680 Author: dominique_libre Date: 2015-02-11 17:13:45 +0000 (Wed, 11 Feb 2015) Log Message: ----------- + functions/Music-alsaplayerdaemon: add support for AlsaPlayer in daemon mode. functions/Media, functions/Music, functions/Mixer, functions/Preferences-Menu: add AP daemon mode support. Modified Paths: -------------- ChangeLog fvwm/components/functions/Media fvwm/components/functions/Mixer fvwm/components/functions/Music fvwm/components/functions/Preferences-Menu Added Paths: ----------- fvwm/components/functions/Music-alsaplayerdaemon Modified: ChangeLog =================================================================== --- ChangeLog 2015-02-11 16:41:52 UTC (rev 679) +++ ChangeLog 2015-02-11 17:13:45 UTC (rev 680) @@ -2,6 +2,8 @@ mercredi 11 février 2015 function/Exec-Accelerator: gnome-terminal support is broken due to a bug into gnome-terminal. ++ functions/Music-alsaplayerdaemon: add support for AlsaPlayer in daemon mode. + functions/Media, functions/Music, functions/Mixer, functions/Preferences-Menu: add AP daemon mode support. mardi 10 février 2015 bindings/Misc-Keybindings*: changed BlankScreen to Alt+B; added pref test for the XDG application menu. Modified: fvwm/components/functions/Media =================================================================== --- fvwm/components/functions/Media 2015-02-11 16:41:52 UTC (rev 679) +++ fvwm/components/functions/Media 2015-02-11 17:13:45 UTC (rev 680) @@ -71,7 +71,8 @@ InfoStoreAdd speed 1 # Decimal point in use (alsaplayer) {{{2 -PipeRead 'if [ "$[infostore.MusicPlayer]" = "alsaplayer" ]; then echo "InfoStoreAdd dec_point `locale decimal_point`"; else echo "InfoStoreRemove dec_point"; fi' +PipeRead 'if [ "$[infostore.MusicPlayer]" = "alsaplayer" ] || [ "$[infostore.MusicPlayer]" = "alsaplayerdaemon" ]; \ + then echo "InfoStoreAdd dec_point `locale decimal_point`"; else echo "InfoStoreRemove dec_point"; fi' # We must start mplayer in slave mode and send the commands via a pipe # Create the pipe if it doesn't exist: Modified: fvwm/components/functions/Mixer =================================================================== --- fvwm/components/functions/Mixer 2015-02-11 16:41:52 UTC (rev 679) +++ fvwm/components/functions/Mixer 2015-02-11 17:13:45 UTC (rev 680) @@ -141,7 +141,7 @@ + I PipeRead 'if [ $[infostore.MusicPlayer] = xmms2 ]; then \\ exec xmms2 toggle > /dev/null; fi' # the other players -+ I PipeRead 'if [ $[infostore.MusicPlayer] = alsaplayer ]; then \\ ++ I PipeRead 'if [ $[infostore.MusicPlayer] = alsaplayer ] || [ $[infostore.MusicPlayer] = alsaplayerdaemon ]; then \\ if [ $[infostore.MixerMuteAP] = 0 ]; then echo "InfoStoreAdd MixerMuteAP 1"; exec alsaplayer --speed 0; else echo "InfoStoreAdd MixerMuteAP 0"; exec alsaplayer --speed $[infostore.speed]; fi; fi' + I PipeRead 'if [ $[infostore.MusicPlayer] = mocp ]; then \\ exec mocp --sync --toggle-pause; fi' Modified: fvwm/components/functions/Music =================================================================== --- fvwm/components/functions/Music 2015-02-11 16:41:52 UTC (rev 679) +++ fvwm/components/functions/Music 2015-02-11 17:13:45 UTC (rev 680) @@ -77,7 +77,8 @@ # Decimal point in use (alsaplayer) {{{2 InfoStoreRemove dec_point -PipeRead 'if [ $[infostore.MusicPlayer] = alsaplayer ]; then echo "InfoStoreAdd dec_point `locale decimal_point`"; fi' +PipeRead 'if [ $[infostore.MusicPlayer] = alsaplayer ] || [ $[infostore.MusicPlayer] = alsaplayerdaemon ]; \ + then echo "InfoStoreAdd dec_point `locale decimal_point`"; else echo "InfoStoreRemove dec_point"; fi' # xmms2 InfoStoreRemove fvwm_audio_exec Added: fvwm/components/functions/Music-alsaplayerdaemon =================================================================== --- fvwm/components/functions/Music-alsaplayerdaemon (rev 0) +++ fvwm/components/functions/Music-alsaplayerdaemon 2015-02-11 17:13:45 UTC (rev 680) @@ -0,0 +1,283 @@ +# Support for Alsaplayer in daemon mode for Fvwm-Crystal +# Written by: Dominique Michel <dom...@us...> 2015 +# See ChangeLog for details + +# Initialisations, shared functions {{{1 +Include components/functions/Music + +# Alsaplayer normal speed +InfoStoreAdd speed 1 + +# First button {{{1 +# Player controls and prefs +# mouse 1 Menu /Player {{{2 +# Recreate the playlists : in Music +AddToFunc Music-Start ++ I Exec exec $0 + +AddToMenu /Music/Start ++ "Alsa" Music-Start "alsaplayer -i daemon -s alsaplayer -o alsa -s alsa" ++ "Jack" Music-Start "alsaplayer -i daemon -s alsaplayer -o jack -F 48000 -s Alsaplayer" + +AddToFunc Music-Kill ++ I Exec exec alsaplayer --quit + +AddToFunc Music-GUI ++ I Music-Tooltip +#+ I All (alsaplayer) Iconify toggle + +# Player-generator (All) +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 daemon]' Popup /Music/Start ++ I AddToMenu /Player '$[gt.Stop player]' Music-Kill ++ I AddToMenu /Player '$[gt.Show/Hide player]' Music-GUI + +# mouse 2 Music-GUI : allready here {{{2 +# mouse 3 Music-QJackGUI : in Music +# mouse 4 Mixer-Volume-Up +# mouse 5 Mixer-Volume-Down +# are in components/Mixer + +# Second button {{{1 +# Player controls and main vol +# mouse 1 Menu /Playlist-button {{{2 + +# /Music/LoadPlaylist +AddToFunc FuncFvwmMenuAudioDirectory ++ I PipeRead 'case \"$0\" in \ + "$[infostore.AudioPlaylists]"*) myexec="alsaplayer -e";; \ + "$[infostore.UserManagedAudioPlaylists]"*) 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"' + +AddToFunc Music-ClearPlaylist ++ I Exec exec alsaplayer --clear + +AddToFunc Playlist-generator-button ++ I DestroyMenu recreate /Playlist-button ++ I AddToMenu /Playlist-button '$[gt.Remove playlist]' Popup /Music/RemovePlaylist ++ I AddToMenu /Playlist-button '$[gt.Playlist copy]' Popup /Music/CopyPlaylist ++ I AddToMenu /Playlist-button '$[gt.Clear playlist]' Music-ClearPlaylist ++ I AddToMenu /Playlist-button '$[gt.Load playlist]' Popup /Music/LoadPlaylist + +AddToMenu /Playlist-button ++ DynamicPopupAction Function Playlist-generator-button + +# mouse 2 Menu /Playback {{{2 +AddToFunc Music-Next ++ I Exec exec alsaplayer --next + +AddToFunc Music-Prev ++ I Exec exec alsaplayer --prev + +AddToFunc Music-SongChange ++ I Exec exec alsaplayer --jump $0 + +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' ++ "19" Music-SongChange '19' ++ "20" Music-SongChange '20' + +AddToFunc Music-Stop ++ I Exec exec alsaplayer --stop + +AddToFunc Music-Play ++ I Exec exec alsaplayer --start + +AddToFunc Music-Pause ++ I Exec exec alsaplayer --speed 0 + +AddToFunc Music-PlayPause ++ I Exec exec alsaplayer --speed $[infostore.speed] > /dev/null + +AddToFunc Music-Jump ++ I Exec exec alsaplayer --seek $0 + +AddToMenu /Music/Jump ++ " 15 min" Music-Jump '900' ++ " 10 min" Music-Jump '600' ++ " 5 min" Music-Jump '300' ++ " 3 min" Music-Jump '180' ++ " 2 min" Music-Jump '120' ++ "1 min 30" Music-Jump '90' ++ " 1 min" Music-Jump '60' ++ " 30 sec" Music-Jump '30' ++ " 10 sec" Music-Jump '10' + +AddToFunc Music-Seek ++ I Exec exec alsaplayer --relative $0 + +AddToMenu /Music/Seek ++ " 10 min" Music-Seek '600' ++ " 5 min" Music-Seek '300' ++ " 3 min" Music-Seek '180' ++ " 2 min" Music-Seek '120' ++ "1 min 30" Music-Seek '90' ++ " 1 min" Music-Seek '60' ++ " 30 sec" Music-Seek '30' ++ " 10 sec" Music-Seek '10' ++ "" Nop ++ "-10 sec" Music-Seek '-10' ++ "-30 sec" Music-Seek '-30' ++ " -1 min" Music-Seek '-60' ++ "-1 min 30" Music-Seek '-90' ++ " -2 min" Music-Seek '-120' ++ " -3 min" Music-Seek '-180' ++ " -5 min" Music-Seek '-300' ++ "-10 min" Music-Seek '-600' + +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 + +# mouse 3 Menu /Mixer : in components/Mixer {{{2 +# mouse 4 Music-Next : allready here +# mouse 4 Music-Prev : allready here + +# Third button {{{1 +# Player controls and vol +# mouse 1 Music-Pause : allready here {{{2 +# mouse 2 Music-PlayPause : allready here +# mouse 3 Menu /Music/Volume + +AddToFunc Music-VolumeFr ++ I Exec exec alsaplayer --volume $0 + +AddToFunc Music-VolumeEn ++ I Exec exec alsaplayer --volume $0 + +DestroyMenu /Music/Volume +AddToMenu /Music/Volume ++ '$[gt.Player volume]' Nop ++ "" Nop +PipeRead 'if [ $[infostore.dec_point] = "," ] ; then \\ + echo "+ \\" 0 dB\\" Music-VolumeFr 1,0"; \\ + echo "+ \\"-3 dB\\" Music-VolumeFr \'0,707\'"; \\ + echo "+ \\"-6 dB\\" Music-VolumeFr \'0,5\'"; \\ + echo "+ \\"-12 dB\\" Music-VolumeFr \'0,25\'"; \\ + echo "+ \\"-18 dB\\" Music-VolumeFr \'0,125\'"; \\ + echo "+ \\"-24 dB\\" Music-VolumeFr \'0,0625\'"; \\ + echo "+ \\"-30 dB\\" Music-VolumeFr \'0,03125\'"; \\ + echo "+ \\"-36 dB\\" Music-VolumeFr \'0,015625\'"; \\ + echo "+ \\" 0\\" Music-VolumeFr \'0,0\'"; \\ + else \\ + echo "+ \\" 0 dB\\" Music-VolumeEn 1.0"; \\ + echo "+ \\"-3 dB\\" Music-VolumeEn \'0.707\'"; \\ + echo "+ \\"-6 dB\\" Music-VolumeEn \'0.5\'"; \\ + echo "+ \\"-12 dB\\" Music-VolumeEn \'0.25\'"; \\ + echo "+ \\"-18 dB\\" Music-VolumeEn \'0.125\'"; \\ + echo "+ \\"-24 dB\\" Music-VolumeEn \'0.0625\'"; \\ + echo "+ \\"-30 dB\\" Music-VolumeEn \'0.03125\'"; \\ + echo "+ \\"-36 dB\\" Music-VolumeEn \'0.015625\'"; \\ + echo "+ \\" 0\\" Music-VolumeEn \'0.0\'"; fi' + +# mouse 4 Music-Speed-Up {{{2 +# mouse 5 Music-Speed-Down +AddToFunc Music-Speed-Up ++ I PipeRead 'alsaplayer --speed $($[FVWM_SYSTEMDIR]/scripts/speed_value +1comma alsaplayer $[infostore.speed]) > /dev/null; echo InfoStoreAdd speed `$[FVWM_SYSTEMDIR]/scripts/speed_value +1comma alsaplayer $[infostore.speed]`' + +AddToFunc Music-Speed-Down ++ I PipeRead 'alsaplayer --speed $($[FVWM_SYSTEMDIR]/scripts/speed_value -1comma alsaplayer $[infostore.speed]) > /dev/null ; echo InfoStoreAdd speed `$[FVWM_SYSTEMDIR]/scripts/speed_value -1comma alsaplayer $[infostore.speed]`' + +# Last button {{{1 +# speed controls +# mouse 1 Menu /Speed {{{2 +AddToFunc Music-Speed ++ I PipeRead 'alsaplayer --speed $($[FVWM_SYSTEMDIR]/scripts/speed_value $0 alsaplayer $[infostore.speed]) > /dev/null; echo InfoStoreAdd speed `$[FVWM_SYSTEMDIR]/scripts/speed_value $0 alsaplayer $[infostore.speed]`' + +DestroyMenu /Speed +AddToMenu /Speed ++ '$[gt.Speed control]' ++ "" Nop ++ "$[gt.Max]" Music-Speed 'max' ++ "$[gt.+ 1 &octave]" Music-Speed '+1octave' ++ '$[gt.+ 1 s&eventh]' Music-Speed '+1septieme' ++ '$[gt.+ 1 &sixth]' Music-Speed '+1sixte' ++ '$[gt.+ 1 &fifth]' Music-Speed '+1quinte' ++ '$[gt.+ 1 f&ourth]' Music-Speed '+1quarte' ++ '$[gt.+ 1 t&hird]' 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 t&hird]' Music-Speed '-1tierce' ++ '$[gt.- 1 f&ourth]' Music-Speed '-1quarte' ++ '$[gt.- 1 &fifth]' Music-Speed '-1quinte' ++ '$[gt.- 1 &sixth]' Music-Speed '-1sixte' ++ '$[gt.- 1 s&eventh]' Music-Speed '-1septieme' ++ "$[gt.- 1 &octave]" Music-Speed '-1octave' ++ '$[gt.Max back]' Music-Speed 'min' ++ "" Nop ++ '$[gt.Normal &backward]' Music-Speed 'back' ++ "$[gt.Pause]" Music-Speed 'pause' ++ "$[gt.+ 1 &comma]" Music-Speed '+1comma' ++ "$[gt.Normal]" Music-Speed 'normal' ++ "$[gt.- 1 &comma]" Music-Speed '-1comma' + +## mouse 4 Button-Seek-+ {{{2 +## mouse 5 Button-Seek-- +AddToFunc Button-Seek-+ ++ I Music-Seek '15' + +AddToFunc Button-Seek-- ++ I Music-Seek '-15' + +# Music menus {{{1 +# Recipe without audio buttons use the following: +# Popup /Music {{{2 +AddToFunc Music-generator ++ I DestroyMenu recreate /Music ++ I AddToMenu /Music '$[gt.Player]' Popup /Player ++ I AddToMenu /Music '$[gt.Show/Hide Alsaplayer]' Music-Tooltip +#+ I AddToMenu /Music '$[gt.Show/Hide Alsaplayer]' Music-GUI ++ I AddToMenu /Music '$[gt.Playback]' Popup /Playback ++ I AddToMenu /Music '$[gt.Player volume]' Popup /Music/Volume ++ I AddToMenu /Music '$[gt.Speed]' Popup /Speed ++ I AddToMenu /Music '$[gt.Playlists]' Popup /Playlist-button ++ I AddToMenu /Music '$[gt.Show/Hide QJackCtl]' Music-QJackGUI + +# Tooltip {{{1 +AddToFunc Tittle-Tooltip ++ I PipeRead 'currentsong=`alsaplayer --status|grep title|sed -e "s/title: //"`; echo "InfoStoreAdd CurrentSong \\"${currentsong}\\""' ++ I PipeRead 'echo "Fvwm-Tooltip CurrentSong \\"Current song:\\" \\"$[infostore.CurrentSong]\\" +800-450 20 750"' + +AddToFunc Music-Tooltip ++ I PipeRead 'echo "Tittle-Tooltip"; echo "Deschedule $[schedule.last]"; echo "Schedule 3000 Kill-FvwmTooltip CurrentSong"' + +# vim:ft=fvwm Modified: fvwm/components/functions/Preferences-Menu =================================================================== --- fvwm/components/functions/Preferences-Menu 2015-02-11 16:41:52 UTC (rev 679) +++ fvwm/components/functions/Preferences-Menu 2015-02-11 17:13:45 UTC (rev 680) @@ -456,6 +456,7 @@ DestroyMenu /Preferences/MusicPlayer AddToMenu /Preferences/MusicPlayer Test (x alsaplayer) + '%22x22/apps/alsaplayer.png%Alsaplayer' SelectMusicPlayer alsaplayer +Test (x alsaplayer) + '%22x22/apps/alsaplayer.png%Alsaplayer daemon' SelectMusicPlayer alsaplayerdaemon Test (x mpc) + '%22x22/apps/gmpc.png%MPD' SelectMusicPlayer mpd Test (x quodlibet) + '%22x22/apps/quodlibet.png%Quod Libet' SelectMusicPlayer quodlibet Test (x xmms-shell) + '%22x22/apps/xmms.png%XMMS' SelectMusicPlayer xmms @@ -469,7 +470,8 @@ DestroyFunc SelectMusicPlayer AddToFunc SelectMusicPlayer -+ I FindCommand MusicPlayer $0 alsaplayer mpd quodlibet audacious xmms xmm2 cmus mocp cdcd mplayer mplayer2 +#+ I FindCommand MusicPlayer $0 alsaplayer alsaplayerdaemon mpd quodlibet audacious xmms xmm2 cmus mocp cdcd mplayer mplayer2 ++ I InfoStoreAdd MusicPlayer $0 + I Include components/functions/Music-$[infostore.MusicPlayer] + I SavePreferences DefaultMusicPlayer "InfoStoreAdd MusicPlayer $[infostore.MusicPlayer]" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |