File: Music-mplayer

package info (click to toggle)
fvwm-crystal 3.0.5.dfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 16,268 kB
  • ctags: 607
  • sloc: sh: 2,065; python: 875; cs: 648; makefile: 218
file content (330 lines) | stat: -rw-r--r-- 11,774 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# Support for MPlayer media player
# Written by: Dominique Michel <dominique.michel@citycable.ch>

# We must start mplayer in slave mode and send command via a pipe
# Create the pipe if it doesn't exist:
Piperead 'echo SetEnv USERDIR `id -un`'
Test (!F /home/$[USERDIR]/.mplayer/pipe) PipeRead 'mkfifo /home/$[USERDIR]/.mplayer/pipe'

# MPlayer normal speed
SetEnv speed "1"

# Decimal point in use
PipeRead 'echo SetEnv dec_point `locale decimal_point`'

# Where are stored MPlayer playlists and movies
SetEnv MPlayerPlaylists "/home/$[USERDIR]/Alsaplayer-playlists"
# The 2 following variables are used by FvwmMenuDirectory; be aware at it doesn't follow symlinks but it follow sub-directories.
#SetEnv fvwm_video_path "/mnt/usbdisk/dom/movies"
SetEnv fvwm_video_path "/home/$[USERDIR]/movies"
SetEnv fvwm_dvd_path "/media/hdc"

# Command line for FvwmMenuDirectory media browser
SetEnv fvwm_video_exec "fvwm-crystal.mplayer-wrapper file $USERDIR"

#-------------------------
# 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] Music-VolumeUp
key XF86AudioMute A C Music-VolumeDown
key XF86AudioPlay A $[Mod0] Music-FrameStep
key XF86AudioPlay A $[Mod1] Music-Speed normal mplayer
key XF86AudioPlay A C Music-Pause
# key XF86AudioStop A $[Mod0] Music-Stop
key XF86AudioStop A C Music-Pause
key XF86AudioStop A $[Mod1] Music-Speed normal mplayer
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

DestroyFunc Music-Kill
AddToFunc Music-Kill
+ I Exec exec echo "quit" > /home/$[USERDIR]/.mplayer/pipe

# OSD menu
DestroyFunc Music-GUI
AddToFunc Music-GUI
+ I Exec exec echo "menu up" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-Pause
AddToFunc Music-Pause
+ I Exec exec echo "pause" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-PlayPause
AddToFunc Music-PlayPause
+ I Exec exec echo "frame_step" > /home/$[USERDIR]/.mplayer/pipe

# next in playlist
DestroyFunc Music-Next
AddToFunc Music-Next
+ I Exec exec echo "pt_step 1" > /home/$[USERDIR]/.mplayer/pipe

# prev in playlist
DestroyFunc Music-Prev
AddToFunc Music-Prev
+ I Exec exec echo "pt_step -1" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-Volume
AddToFunc Music-Volume
+ I Exec exec echo "volume $0 1" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-VolumeUp
AddToFunc Music-VolumeUp
+ I Exec exec echo "volume 10 0" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-VolumeDown
AddToFunc Music-VolumeDown
+ I Exec exec echo "volume -10 0" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-Speed
AddToFunc Music-Speed
+ I PipeRead 'echo SetEnv speed `$[FVWM_SYSTEMDIR]/scripts/speed_value $0 mplayer`'
+ I Exec exec echo "speed_set $[speed]" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-Speed-Up
AddToFunc Music-Speed-Up
+ I PipeRead 'echo SetEnv speed `$[FVWM_SYSTEMDIR]/scripts/speed_value +1comma mplayer`'
+ I Exec exec echo "speed_set $[speed]" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-Speed-Down
AddToFunc Music-Speed-Down
+ I PipeRead 'echo SetEnv speed `$[FVWM_SYSTEMDIR]/scripts/speed_value -1comma mplayer`'
+ I Exec exec echo "speed_set $[speed]" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-Jump
AddToFunc Music-Jump
+ I Exec exec echo "seek $0 1" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Music-Seek
AddToFunc Music-Seek
+ I Exec exec echo "seek $0 0" > /home/$[USERDIR]/.mplayer/pipe

DestroyFunc Load-DVD
AddToFunc Load-DVD
+ I Exec exec fvwm-crystal.mplayer-wrapper dvd $[USERDIR]

#------------------------------------------------------------------
# Basic menus

# Start Mplayer, "-ao jack," tell mplayer to first try jack, and if not found, it will try the other sound servers. 
DestroyMenu /Player
AddToMenu /Player
+ '$[gt.Start MPlayer]' Music-Start "mplayer -ao jack, -menu -fs -fixed-vo -slave -idle -input file=/home/$[USERDIR]/.mplayer/pipe"
+ '$[gt.Stop MPlayer]' Music-Kill
# + '$[gt.Show/hide player]' Music-GUI

DestroyMenu /Music/Volume
AddToMenu /Music/Volume
+ "MPlayer volume" Nop
+ " 0 db%" Music-Volume "100"
+ "-3 db%" Music-Volume "70.7"
+ "-6 db%" Music-Volume "50"
+ "-12 dB%" Music-Volume "25"
+ "-18 db%" Music-Volume "12.5"
+ "-24 db%" Music-Volume "6.25"
+ "-30 db%" Music-Volume "3.125"
+ "-36 db%" Music-Volume "1.5625"
+ " 0%" Music-Volume "0"

# speed_set <0.01 to 100>
DestroyMenu /Speed
AddToMenu /Speed
+ '$[gt.Speed control]' Nop
+ "" Nop
+ "Max%" Music-Speed 'maxmplayer mplayer'
+ "+ 6 octave%" Music-Speed '+6octave mplayer'
+ "+ 5 octave%" Music-Speed '+5octave mplayer'
+ "+ 4 octave%" Music-Speed '+4octave mplayer'
+ "+ 3 octave%" Music-Speed '+3octave mplayer'
+ "+ 2 octave%" Music-Speed '+2octave mplayer'
+ "+ 1 octave%" Music-Speed '+1octave mplayer'
+ '$[gt.+1 seventh]' Music-Speed '+1septieme mplayer'
+ '$[gt.+1 sixth]' Music-Speed '+1sixte mplayer'
+ '$[gt.+1 fifth]' Music-Speed '+1quinte mplayer'
+ '$[gt.+1 fourth]' Music-Speed '+1quarte mplayer'
+ '$[gt.+1 third]' Music-Speed '+1tierce mplayer'
+ '$[gt.+1 tone]' Music-Speed '+1ton mplayer'
+ '$[gt.+1/2 tone]' Music-Speed '+1/2ton mplayer'
+ "" Nop
+ '$[gt.-1/2 tone]' Music-Speed '-1/2ton mplayer'
+ '$[gt.-1 tone]' Music-Speed '-1ton mplayer'
+ '$[gt.-1 third]' Music-Speed '-1tierce mplayer'
+ '$[gt.-1 fourth]' Music-Speed '-1quarte mplayer'
+ '$[gt.-1 fifth]' Music-Speed '-1quinte mplayer'
+ '$[gt.-1 sixth]' Music-Speed '-1sixte mplayer'
+ '$[gt.-1 seventh]' Music-Speed '-1septieme mplayer'
+ "-1 octave%" Music-Speed '-1octave mplayer'
+ "-2 octave%" Music-Speed '-2octave mplayer'
+ "-3 octave%" Music-Speed '-3octave mplayer'
+ "-4 octave%" Music-Speed '-4octave mplayer'
+ "-5 octave%" Music-Speed '-5octave mplayer'
+ "-6 octave%" Music-Speed '-6octave mplayer'
+ "Min%" Music-Speed 'minmplayer mplayer'
+ "" Nop
+ "Normal%" Music-Speed 'normal mplayer'
+ "+ 1 comma%" Music-Speed '+1comma mplayer'
+ "Pause%" Music-Pause
+ "-1 comma%" Music-Speed '-1comma mplayer'

DestroyMenu /Music/Jump
AddToMenu /Music/Jump
+ " 99 %" Music-Jump '99'
+ " 80 %" Music-Jump '80'
+ " 60 %" Music-Jump '60'
+ " 40 %" Music-Jump '40'
+ " 20 %" Music-Jump '20'
+ " 10 %" Music-Jump '10'
+ "  5 %" Music-Jump '5'
+ "  2 %" Music-Jump '2'
+ "  1 %" Music-Jump '1'
+ "Start" Music-Jump '0'

DestroyMenu /Music/Seek
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'
+ " 45 sec" Music-Seek '45'
+ " 30 sec" Music-Seek '30'
+ " 20 sec" Music-Seek '20'
+ " 10 sec" Music-Seek '10'
+ "-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'
+ " -3 min" Music-Seek '-180'
+ " -5 min" Music-Seek '-300'
+ "-10 min" Music-Seek '-600'

# ---------------------------------------------------------------------------
# Playlist functions and menus

DestroyFunc Music-LoadPlaylist-generator
AddToFunc Music-LoadPlaylist-generator
+ I DestroyMenu recreate /Music/LoadPlaylist
+ I AddToMenu /Music/LoadPlaylist
+ I PipeRead 'for i in $[MPlayerPlaylists]/*.{m3u,pls}; do \
  name=$(basename "$i"); \
  sname=${name%%.m3u}; \
  sname=${sname%%.pls}; \
  echo "AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec fvwm-crystal.mplayer-wrapper list $USERDIR \'$i\'"; done'

# From Taviso's configuration
# 22x22/categories/Audio-Video.png will be used for all the files that doesn't have a .media.png inside their directory
# 22x22/categories/directory.png will be used for all the directories that doesn't have a .icontitle.png file
DestroyFunc FuncFvwmMenuDirectory
AddToFunc FuncFvwmMenuDirectory
+ I PipeRead 'case "$0" in \
	"$[fvwm_video_path]"*) myexec="$[fvwm_video_exec]";; \
	"$[fvwm_dvd_path]"*) myexec="$[fvwm_video_exec]";; \
    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-Video.png}" \
    --icon-dir 22x22/categories/directory.png --dir "$0" --exec-t="mc *" \
    --exec-file "^${myexec}"'

DestroyMenu /Music/LoadMovie
AddToMenu /Music/LoadMovie
+ MissingSubmenuFunction FuncFvwmMenuDirectory
+ '%video_movies_view.png%$[gt.Browse Medias]' Popup $[fvwm_video_path]
+ '%video_movies_view.png%$[gt.Browse DVD]' Popup $[fvwm_dvd_path]

#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'

#DestroyFunc Music-ClearPlaylist
#AddToFunc Music-ClearPlaylist
#+ I Exec exec alsaplayer --clear

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

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

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

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

DestroyMenu /Playlist-bot
AddToMenu /Playlist-bot
+ DynamicPopupAction Function /Playlist-generator-bot

#-----------------------------------------------------------------------------------
# Main functions and menus

DestroyFunc /Playback-generator
AddToFunc /Playback-generator
+ I DestroyMenu recreate /Playback
+ I AddToMenu /Playback '$[gt.Pause]' Music-Pause
+ I AddToMenu /Playback '$[gt.Frame step]' Music-FrameStep
+ I AddToMenu /Playback "" Nop
+ I AddToMenu /Playback '$[gt.Next]' Music-Next
+ I AddToMenu /Playback '$[gt.Prev]' Music-Prev
+ I AddToMenu /Playback '$[gt.Jump]' Popup /Music/Jump
+ I AddToMenu /Playback '$[gt.Seek]' Popup /Music/Seek

DestroyFunc /Playlist-generator
AddToFunc /Playlist-generator
+ I DestroyMenu recreate /Playlist
+ I AddToMenu /Playlist '$[gt.Play DVD]' Load-DVD
+ I AddToMenu /Playlist '$[gt.Load media file]' Popup /Music/LoadMovie
+ I AddToMenu /Playlist '$[gt.Load playlist]' Popup /Music/LoadPlaylist
#+ I AddToMenu /Playlist '$[gt.Clear playlist]' Music-ClearPlaylist
#+ 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.Load media file]' Popup /Music/LoadMovie
+ I AddToMenu /Playlist-bot '$[gt.Play DVD]' Load-DVD
#+ I AddToMenu /Playlist-bot '$[gt.Clear playlist]' Music-ClearPlaylist

# Recipe without audio buttons use the following:
DestroyMenu /Music
AddToMenu /Music
+ DynamicPopupAction Function /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.Playback]' Popup /Playback
+ I AddToMenu /Music '$[gt.Mixer]' Popup /Mixer
+ I AddToMenu /Music '$[gt.Speed]' Popup /Speed
+ I AddToMenu /Music '$[gt.show/hide QJackCtl]' Music-QJackGUI

# vim:ft=fvwm