From: <dom...@us...> - 2011-01-29 21:01:56
|
Revision: 70 http://fvwm-crystal.svn.sourceforge.net/fvwm-crystal/?rev=70&view=rev Author: dominique_libre Date: 2011-01-29 21:01:50 +0000 (Sat, 29 Jan 2011) Log Message: ----------- components/Music: common code to all the players Modified Paths: -------------- ChangeLog Added Paths: ----------- fvwm/components/functions/Music Modified: ChangeLog =================================================================== --- ChangeLog 2011-01-29 20:59:38 UTC (rev 69) +++ ChangeLog 2011-01-29 21:01:50 UTC (rev 70) @@ -16,6 +16,7 @@ * Icon-Mwm: support for font preference * Added functions to make panels and buttons * Mixer: cleanup + * components/Music: common code to all the players Samedi 1 janvier 2011 Dominique Michel * Wimdow-Raise-Move-Lover witll focus on a non overlapped window Added: fvwm/components/functions/Music =================================================================== --- fvwm/components/functions/Music (rev 0) +++ fvwm/components/functions/Music 2011-01-29 21:01:50 UTC (rev 70) @@ -0,0 +1,351 @@ +# Support for audio players in Fvwm-Crystal: +# initialisations and some shared functions +# Written by: Dominique Michel <dom...@so...> +# +# This file must be included at the top of the music player control files. +# Include components/functions/MediaButtons +# +# 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 are: +# +# n button n button fumction comment +# 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 /Music/Volume # player volume 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-Play # play +# (Mouse 2) Music-Pause # pause +# (Mouse 3) Menu /Playback # playback 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) Music-Seek-+ # seek forward +# (Mouse 5) Music-Seek-- # seek backward +# NOTE : the actual bindings are fixed into the recipes. +# +# Recipes with media menu: Clean, Clean Vertical, Light, Wing-Commander +# The media menu is: Popup /Music +# +# If you try to launch both /Playlist-button and /Music in one recipe, +# the menu /Music will get scruved. Auto-generated menus are very sensitive. +# The only think to do is to not use both the media button and /Music into +# the recipes, and wait and see if some future fvwm release will fix this. +# For me, but I can be wrong on this, the way than fvwm-menu-directory use +# to generate the menu when --reuse --name are not enabled seam to easily +# confuse fvwm. +# +# TODO : - Move the media button here (Idea: one function per button) +# - Find something to do with mouse 2 and 3 on button 4 +############################################################################# + +## Amixer and Mplayer are selected as default mixer and player if the user ## +## didn't changed it. We keep them or the user settings. ## + + ########################################################################### +# The playlists was previously in different places. They are now in 3 places: +# ~/PlaylistsAudio for the playlists of audio files, +# ~/PlaylistsVideo for the playlists of movie files and +# ~/Playlists/Audio for "by the user managed" audio playlists +# ~/Playlists/Video for "by the user managed" video playlists +# +# 'Recreate the playlist' will manage ~/PlaylistsAudio and ~/PlaylistsVideo +# in a very simple way: delete all and recreate all. +# +# Todo: function AddFavorite (add a playlist from ~/PlaylistsAudio and +# ~/PlaylistsVideo to the "by the user managed" playlists +# +# WARNING: I cannot test xmms anymore because it compile but just don't run for me. +# In consequence, xmms support will be removed with the next release. +############################################################################### + +########### +## Mixer ## +########### +Include components/functions/Mixer + +############### +## Variables ## +############### +## Where are stored the playlists, needed in all cases (<=recereate playlists) +Piperead 'echo SetEnv AudioPlaylists "/home/`id -un`/PlaylistsAudio"' +Piperead 'echo SetEnv VideoPlaylists "/home/`id -un`/PlaylistsVideo"' +Piperead 'echo SetEnv UserManagedAudioPlaylists "/home/`id -un`/Playlists/Audio"' +Piperead 'echo SetEnv UserManagedVideoPlaylists "/home/`id -un`/Playlists/Video"' +## speed control ## (alsaplayer, mplayer) +# player normal speed (We want normal speed) +UnSetEnv speed +Test (EnvMatch MusicPlayer alsaplayer) SetEnv speed "1" +Test (EnvMatch MusicPlayer mplayer) SetEnv speed "1" +# Decimal point in use +UnSetEnv dec_point +Test (EnvMatch MusicPlayer alsaplayer) PipeRead 'echo SetEnv dec_point `locale decimal_point`' +Test (EnvMatch MusicPlayer mplayer) PipeRead 'echo SetEnv dec_point `locale decimal_point`' +## We don't want player specific variables lying around +# mplayer +UnSetEnv USERDIR +UnSetEnv fvwm_video_path +UnSetEnv fvwm_video_path2 +UnSetEnv fvwm_video_path3 +UnSetEnv fvwm_video_path4 +UnSetEnv fvwm_dvd_path +UnSetEnv fvwm_video_exec +# xmms2 +UnSetEnv fvwm_audio_exec + +## Styles for media players windows +################################### +Style Alsaplayer NoActiveIconOverride, NoIcon, Sticky, WindowListSkip, StaysOnTop +Style alsaplayer UseStyle Alsaplayer + +Style Audacious StaysOnTop +Style Audacious StartIconic, NoActiveIconOverride, NoIcon, !Title, Sticky, WindowListSkip +Style playlist StartIconic, NoIcon, !Title, Sticky, WindowListSkip +Style equalizer UseStyle playlist + +Style beep-media-player !Title + +# Cmus (NoIcon doesn't work -> ToDo: use FvwmIdent) +Style cmus NoActiveIconOverride, NoIcon, Sticky, WindowListSkip, StaysOnTop +# Mocp (NoIcon doesn't work -> ToDo: use FvwmIdent) +Style mocp NoActiveIconOverride, NoIcon, Sticky, WindowListSkip, StaysOnTop + +Style MPlayer !Title, !Borders, GnomeIgnoreHints, EWMHIgnoreStackingOrderHints +Style "MPlayer - Video" Title, Borders, GnomeIgnoreHints, EWMHIgnoreStackingOrderHints +Style XDRadio NoIcon, Sticky, WindowListSkip + +Style quodlibet StaysOnTop, NoIcon, Sticky, WindowListSkip + +Style xmms StaysOnTop +Style XMMS_Player StartIconic, NoIcon, !Title, Sticky, WindowListSkip +Style XMMS_Playlist UseStyle XMMS_Player +Style XMMS_Equalizer UseStyle XMMS_Player + +Style qjackctl NoActiveIconOverride, NoIcon, Sticky, WindowListSkip + +############################################################ +### We don't want player specific functions lying around ### +### otherwise, we put here the functions that doesn't ### +### change between the players. ### +############################################################ + +############################### +## First button ## +## Player controls and prefs ## +############################### +## mouse 1 Menu /Player +####################### +# Recreate the playlists (all) +DestroyFunc Music-RecreatePlaylist +AddToFunc Music-RecreatePlaylist ++ I Exec FvwmCommand 'A $[FVWM_USERDIR]/scripts/make_all_playlists $@' + +# wrapper for cdcd +DestroyFunc Music-cdcd + +# start the player(s) (alsaplayer, mplayer) +DestroyFunc Music-Start +DestroyMenu /Music/Start + +# player quit (alsaplayer, mplayer) +DestroyFunc Music-Kill + +# show/hyde the player GUI/menu (alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer, +# quodlibet, xmms) +DestroyFunc Music-GUI + +# Button menu (alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer, quodlibet, xmms) +DestroyFunc Player-generator +# Button menu (all) +DestroyMenu /Player +AddToMenu /Player ++ DynamicPopupAction Function Player-generator + +## mouse 2 Music-GUI : allready here +## mouse 3 Music-QJackGUI (all) +######################### +DestroyFunc Music-QJackGUI +AddToFunc Music-QJackGUI ++ I All (qjackctl) Iconify toggle ++ I TestRc (NoMatch) Test (x qjackctl) Exec pidof qjackctl || exec qjackctl + +## 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 +################################ +# Load all the songs (mpd) +DestroyFunc Music-LoadAll + +# Play DVD (mplayer) +DestroyFunc Load-DVD + +# Show current playlist (xmms2) +DestroyFunc Music-CurrentPlaylist-generator +DestroyMenu /Music/CurrentPlaylist + +# Load movie playlist (mplayer) +DestroyFunc FuncFvwmMenuMovieDirectory +DestroyMenu /Music/LoadMovie + +# Load playlist (alsaplayer, audacious, mocp, mplayer) +DestroyFunc FuncFvwmMenuAudioDirectory +# Load playlist (mpd, xmms, xmms2) +DestroyFunc Music-LoadPlaylist-generator +# Load playlist (alsaplayer, audacious, mocp, mpd, mplayer, xmms, xmms2) +DestroyMenu /Music/LoadPlaylist + +# Clear playlist (alsaplayer, audacious, mocp, mpd, xmms, xmms2) +DestroyFunc Music-ClearPlaylist + +# Remove song (audacious, mpd, xmms, xmms2) +DestroyFunc Music-RemoveSong + +# Remove playlist (alsaplayer, audacious, mocp, mpd, mplayer, xmms, xmms2) +DestroyFunc Music-RemovePlaylist-generator +DestroyFunc FuncFvwmMenuRemovePlaylistDirectory (alsaplayer) +DestroyMenu /Music/RemovePlaylist + +# Save playlist dialog (audacious, mpdm, xmms, xmms2) +All (Music-SavePlaylist-Dialog) Close +DestroyModuleConfig Music-SavePlaylist-Dialog: * +DestroyFunc Music-SavePlaylist + +# Add playlist (xmms2) +DestroyFunc FuncFvwmMenuPlaylistDirectory +DestroyMenu /Music/LoadPlaylist + +# Update the database (mpd) +DestroyFunc Music-Update + +# button menu (alsaplayer, audacious, mocp, mpd, mplayer, xmms, xmms2) +DestroyFunc Playlist-generator-button +DestroyMenu /Playlist-button + +## mouse 2 Menu /Playback +######################### +# alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer, quodlibet, xmms, xmms2 +DestroyFunc Music-Next + +# alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer, quodlibet, xmms, xmms2 +DestroyFunc Music-Prev + +# alsaplayer +DestroyFunc Music-SongChange +DestroyMenu /Music/SongChange + +# alsaplayer, audacious, cdcd, cmus, mocp, mpd, quodlibet, xmms, xmms2 +DestroyFunc Music-Stop + +# alsaplayer, audacious, cdcd, cmus, mocp, mpd, quodlibet, xmms, xmms2 +DestroyFunc Music-Play + +# alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer, quodlibet, xmms, xmms2 +DestroyFunc Music-Pause + +# alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer (button 3), quodlibet, xmms +DestroyFunc Music-PlayPause + +# cdcd, cmus, mpd, quodlibet, xmms +DestroyFunc Music-Forward + +# cdcd, cmus, mpd, quodlibet, xmms +DestroyFunc Music-Backward + +# audacious, cmus, mpd, quodlibet, xmms +DestroyFunc Music-ToggleRandom + +# alsaplayer, mplayer +DestroyFunc Music-Jump +DestroyMenu /Music/Jump + +# alsaplayer, mplayer +DestroyFunc Music-Seek +DestroyMenu /Music/Seek + +# mpd +DestroyMenu /Music/Crossfade + +# mpd, xmms2 +DestroyFunc Music-Shuffle + +# xmms +DestroyFunc Music-Find + +# button menu (alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer, mocp, mpd, mplayer, +# quodlibet, xmms2) +DestroyFunc Playback-generator +# button menu (all) +DestroyMenu /Playback +AddToMenu /Playback ++ DynamicPopupAction Function Playback-generator + +## 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 +############################# +# alsaplayer +DestroyFunc Music-VolumeFr +DestroyFunc Music-VolumeEn +# audacious, mplayer +DestroyFunc Music-Volume + +# button menu (alsaplayer, mplayer) +DestroyMenu /Music/Volume + +## mouse 4 Music-Speed-Up +## mouse 5 Music-Speed-Down +########################### +# alsaplayer, mplayer +DestroyFunc Music-Speed-Up +DestroyFunc Music-Speed-Down + +################## +## Last button ### +## speed controls ## +#################### +## mouse 1 Menu /Speed +###################### +# alsaplayer, mplayer +DestroyFunc Music-Speed +# button menu (alsaplayer, mplayer) +DestroyMenu /Speed + +## mouse 4 Button-Seek-+ +## mouse 5 Button-Seek-- +######################## +# alsaplayer +DestroyFunc Button-Seek-+ +DestroyFunc Button-Seek-- + +############### +# Music menus # +############### +# main music menu (alsaplayer, audacious, mocp) +DestroyFunc Music-generator + +DestroyMenu /Music +AddToMenu /Music ++ DynamicPopupAction Function Music-generator + + +# vim:ft=fvwm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |