# Configure file for MozPlugger
# Version: Jan 20, 2013
#
# This file is part of mozplugger a fork of plugger, for list of developers 
# see the README file.
#
# Commands which are not installed on your system will not be used.
#
# NOTE!! After changing this file, mozplugger-update must be executed.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.


### m4 macros ###

changequote([,])

### Helpers

### MPlayer

#define(MP_CMD,[mplayer -quiet -nojoystick -nofs -zoom -osdlevel 0 $1 </dev/null])
define(MP_CMD,[mpv -really-quiet $1 </dev/null])

#define(MP_EMBED,[embed noisy ignore_errors: MP_CMD(-xy $width -wid $window $1)])
define(MP_EMBED,[embed noisy ignore_errors: MP_CMD(--autofit=$width -wid $window $1)])

#define(MP_NOEMBED,[noembed noisy ignore_errors maxaspect swallow(MPlayer): MP_CMD($1)])
define(MP_NOEMBED,[noembed noisy ignore_errors maxaspect swallow(mpv): MP_CMD($1)])

# If you want a small controls in top left corner of embedded window when using
# mplayer then uncomment the first and comment the second below 

#define(MP_VIDEO_STREAM,[controls stream MP_EMBED($1 "$file")
#	stream MP_NOEMBED($1 "$file")])

define(MP_VIDEO_STREAM,[stream MP_EMBED($1 "$file")
	stream MP_NOEMBED($1 "$file")])

define(MP_VIDEO_PLAYLIST, [fmatch($1) MP_EMBED(-playlist "$file")
	                   fmatch($1) MP_NOEMBED(-playlist "$file")])
# Special case for Quicktime
define(MP_LINKS,[stream links noisy ignore_errors: MP_CMD($1)])

#define(MP_AUDIO,[mplayer -quiet -nojoystick $1 </dev/null])
define(MP_AUDIO,[mpv -really-quiet $1 </dev/null])

#define(MP_AUDIO_STREAM,[controls stream noisy ignore_errors: mplayer -quiet -nojoystick $1 "$file" </dev/null])
define(MP_AUDIO_STREAM,[controls stream noisy ignore_errors: mpv -really-quiet $1 "$file" </dev/null])

### Totem

define(TM_CMD,[totem $1</dev/null])

define(TM_EMBED,[embed noisy ignore_errors fill swallow(Totem): TM_CMD(--toggle-controls $1)])

define(TM_NOEMBED,[nokill noembed noisy ignore_errors: TM_CMD($1)])


define(TM_VIDEO_STREAM,[stream TM_EMBED("$file")
	stream TM_NOEMBED("$file")])

# Special case for Quicktime
define(TM_LINKS,[stream links nokill noembed noisy ignore_errors: TM_CMD($1)])

define(TM_AUDIO_STREAM,[controls stream noisy ignore_errors: TM_CMD("$file")])

### OpenOffice
# Note the single dash in front of the view command!
define([OO],[swallow(VCLSalFrame) fill: ooffice2.0 -nologo -norestore -view "$file"
	swallow(VCLSalFrame) fill: ooffice -nologo -norestore -view "$file"
	swallow(libreoffice) fill: libreoffice --nologo --norestore --view "$file"
	swallow(VCLSalFrame) fill: soffice --nologo --norestore -view "$file"])

### GV
define(GV_OPTS,[--safer --quiet --antialias -geometry +9000+9000])
define(GV_FLAGS,[repeat noisy swallow(gv) fill])
define(GV,[GV_FLAGS(): gv GV_OPTS() "$file"])

### Video ###

video/mpeg:mpeg,mpg,mpe:MPEG animation
video/x-mpeg:mpeg,mpg,mpe:MPEG animation
video/x-mpeg2:mpv2,mp2ve:MPEG2 animation
	MP_VIDEO_STREAM()
	TM_VIDEO_STREAM()
        nokill noisy: xine -pq "$file"
	loop: mtvp -l -W$window "$file"
	: mtvp -W$window "$file"
	loop: xanim +Av100 -Zr +W$window +q +f "$file"
	: xanim +Av100 -Zr +W$window +q +Ze +f "$file"

video/mp4:mp4:MPEG4 animation
video/msvideo:avi:AVI animation
video/x-msvideo:avi:AVI animation
video/fli:fli,flc:FLI animation
video/x-fli:fli,flc:FLI animation
	MP_VIDEO_STREAM()
	TM_VIDEO_STREAM()
        nokill noisy: xine -pq "$file"

video/x-theora:ogg:OGG stream with video
video/theora:ogg:OGG stream with video
video/ogg:ogg:OGG stream with video
video/x-ogg:ogm,ogv:OGG stream with video
	MP_VIDEO_STREAM()
	TM_VIDEO_STREAM()

video/dl:dl:DL animation
video/x-dl:dl:DL animation
video/sgi-movie:movie,movi,mv:SGI animation
video/x-sgi-movie:movie,movi,mv:SGI animation
video/anim:iff,anim5,anim3,anim7:IFF animation
video/x-anim:iff,anim5,anim3,anim7:IFF animation
	loop: xanim +Av100 -Zr +W$window +q +f "$file"
	: xanim +Av100 -Zr +W$window +q +Ze +f "$file"


### Audio ###

audio/mid:midi,mid:MIDI audio file
audio/x-mid:midi,mid:MIDI audio file
audio/midi:midi,mid:MIDI audio file
audio/x-midi:midi,mid:MIDI audio file
	controls noisy stream: timidity -Od "$file"
	controls: playmidi "$file"

audio/mod:mod:Soundracker audio Module
audio/x-mod:mod:Soundracker audio Module
	controls loop noisy: mikmod -q --interpolate "$file"
	controls noisy: mikmod -q --interpolate "$file"
	controls loop noisy: xmp -l --nocmd "$file"
	controls noisy: xmp --nocmd "$file"

audio/mp3:mp3:MPEG audio
audio/x-mp3:mp3:MPEG audio
audio/mpeg2:mp2:MPEG audio
audio/x-mpeg2:mp2:MPEG audio
audio/mpeg3:mp3:MPEG audio
audio/x-mpeg3:mp3:MPEG audio
audio/mpeg:mpa,abs,mpega:MPEG audio
audio/x-mpeg:mpa,abs,mpega:MPEG audio
	MP_AUDIO_STREAM()
	TM_AUDIO_STREAM()
	controls: mpg321 -q "$file"
	controls: mpg123 -q "$file"
	controls: splay -t 200 "$file"
	controls: amp -b 200 -q "$file"
	controls: maplay "$file"
	controls: mpeg3play "$file"
	nokill noisy : xmms -e -p "$file"
	repeat noisy swallow(alsaplayer): alsaplayer -q "$file"

audio/mpeg-url:m3u:MPEG music resource locator
audio/x-mpeg-url:m3u:MPEG music resource locator
audio/mpegurl:m3u:MPEG music resource locator
audio/x-mpegurl:m3u:MPEG music resource locator
audio/x-scpls:pls:Shoutcast Playlists
#	controls: mpg321 -q -@ "$file"
	nokill noisy : xmms -e -p "$file"

audio/x-ogg:ogg:OGG audio
application/x-ogg:ogg:OGG audio
application/ogg:ogg:OGG audio
	MP_AUDIO_STREAM()
	TM_AUDIO_STREAM()
	controls stream noisy: ogg123 -q -b 128 "$file"
	nokill noisy : xmms -e -p "$file"

audio/flac:flac:FLAC audio
audio/x-flac:flac:FLAC audio
application/x-flac:flac:FLAC audio
	MP_AUDIO_STREAM()
	nokill noisy : xmms -e -p "$file"

audio/x-sidtune:sid,psid:Commodore 64 Audio
audio/sidtune:sid,psid:Commodore 64 Audio
audio/psid:psid,sid:Commodore 64 Audio
audio/x-psid:psid,sid:Commodore 64 Audio
	controls noisy: sidplay -16 -f44100 -a "$file"

audio/basic:au,snd:Basic audio file
audio/x-basic:au,snd:Basic audio file
	controls: play "$file"
	controls: sox "$file" -t .au - > /dev/audio

### Documents ###

image/sun-raster:rs:SUN raster image
image/x-sun-raster:rs:SUN raster image
image/x-rgb:rgb:RGB Image
image/x-portable-pixmap:ppm:PPM Image
image/x-portable-graymap:pgm:PGM Image
image/x-portable-bitmap:pbm:PBM Image
image/x-portable-anymap:pnm:PBM Image
image/tiff:tiff,tif:TIFF image
image/x-tiff:tiff,tif:TIFF image
	exits: display -window $window -backdrop "$file"
	repeat noisy swallow(gqview) fill: gqview -t "$file"
	swallow(:) maxaspect: xv -ima -igeom +9000+9000 -geometry +9000+9000 "$file"
	repeat swallow(Sdtimage) fill: sdtimage "$file"
	swallow(*qiv:) fill maxaspect: qiv -n "$file"

image/x-xcf:xcf:Gimp Image
image/xcf:xcf:Gimp Image
application/x-gimp:xcf:Gimp Image
application/gimp:xcf:Gimp Image
application/photoshop:psd:PhotoShop Image
application/x-photoshop:psd:PhotoShop Image
	exits: display -window $window -backdrop "$file"

application/pdf:pdf:PDF file
application/x-pdf:pdf:PDF file
text/pdf:pdf:PDF file
text/x-pdf:pdf:PDF file
#        repeat swallow(acroread) fill : acroread -openInNewWindow /a "$fragment" "$file"
	repeat noisy swallow(kpdf) fill: kpdf "$file"
	repeat noisy swallow(Xpdf) fill: xpdf -g +9000+9000 "$file"
        repeat noisy swallow(epdfview) fill: epdfview "$file"
	GV()
	links noisy : okular "$file"
	links noisy exits: evince "$file"
        links exits: acroread /a "$fragment" "$file"
# We don't swallow evince, acroread or okular as those apps done play ball when swallowed
# http://www.mozdev.org/bugs/show_bug.cgi?id=20686, 24322,

application/x-dvi:dvi:DVI file
        repeat swallow(kdvi) fill: kdvi "$file"
	repeat swallow(xdvi) fill: xdvi -safer -hush -geometry +9000+9000 "$file"

application/x-postscript:ps:PostScript file
application/postscript:ps:PostScript file
	GV()
	repeat noisy fill exits: evince "$file"

application/x-rtf:rtf:Rich Text Format
application/rtf:rtf:Rich Text Format
text/rtf:rtf:Rich Text Format
	OO()
	repeat noisy swallow(AbiWord) fill: abiword --nosplash --geometry +9000+9000 "$file"
	repeat noisy swallow(kword): kword "$file"
	repeat noisy swallow(Ted) fill: Ted "$file"

application/x-msword:doc,dot:Microsoft Word Document
application/msword:doc,dot:Microsoft Word Document
	OO()
	repeat noisy swallow(kword): kword "$file"
	repeat noisy swallow(AbiWord) fill: abiword --nosplash --geometry +9000+9000 "$file"

application/vnd.ms-excel:xls,xlb:Microsoft Excel Document
	OO()
	repeat swallow(Gnumeric) fill: gnumeric "$file"

# OpenOffice MimeTypes (http://framework.openoffice.org/documentation/mimetypes/mimetypes.html)
application/vnd.sun.xml.writer:sxw:OpenOffice Writer 6.0 documents
application/so7_vnd.sun.xml.writer:sxw:OpenOffice Writer 7.0 documents
application/vnd.sun.xml.writer.template:stw:OpenOffice Writer 6.0 templates
application/vnd.sun.xml.writer.global:sxg:OpenOffice Writer 6.0 global documents
application/vnd.stardivision.writer:sdw:StarWriter 5.x documents
application/vnd.stardivision.writer-global:sgl:StarWriter 5.x global documents
application/x-starwriter:sdw:StarWriter 4.x documents
application/vnd.sun.xml.calc:sxc:OpenOffice Calc 6.0 spreadsheets
application/so7_vnd.sun.xml.calc:sxc:OpenOffice Calc 7.0 spreadsheets
application/vnd.sun.xml.calc.template:stc:OpenOffice Calc 6.0 templates
application/vnd.stardivision.calc:sdc:StarCalc 5.x spreadsheets
application/x-starcalc:sdc:StarCalc 4.x spreadsheets
application/vnd.lotus-1-2-3: 123, wk1: Lotus 1-2-3 Document
application/vnd.sun.xml.draw:sxd:OpenOffice Draw 6.0 documents
application/so7_vnd.sun.xml.draw:sxc:StarOffice Draw 7.0 documents
application/vnd.sun.xml.draw.template:std:OpenOffice Draw 6.0 templates
application/vnd.stardivision.draw:sda:StarDraw 5.x documents
application/x-stardraw:sda:StarDraw 4.x documents
application/vnd.sun.xml.impress:sxi:OpenOffice Impress 6.0 presentations
application/so7_vnd.sun.xml.impress:sxi:StarOffice 7.0 Impress presentations
application/vnd.sun.xml.impress.template:sti:OpenOffice Impress 6.0 templates
application/vnd.stardivision.impress:sdd:StarImpress 5.x presentations
application/vnd.stardivision.impress-packed:sdp:StarImpress Packed 5.x files
application/x-starimpress:sdd:StarImpress 4.x presentations
application/vnd.ms-powerpoint:ppt:PowerPoint Slideshow
application/mspowerpoint:ppt,ppz,pps,pot:PowerPoint Slideshow
application/vnd.sun.xml.math:sxm:OpenOffice Math 6.0 documents
application/so7_vnd.sun.xml.math:sxm:StarOffice 7.0 Math documents
application/vnd.stardivision.math:smf:StarMath 5.x documents
application/x-starmath:smf:StarMath 4.x documents
application/vnd.oasis.opendocument.text:odt,ODT:OASIS OpenDocument Text
application/vnd.oasis.opendocument.spreadsheet:ods,ODS:OASIS OpenDocument SpreadSheet
application/vnd.oasis.opendocument.presentation:odp,ODP:OASIS OpenDocument Presentation
	OO()

chemical/x-pdb:pdb: Protein Data Bank file
model/x-pdb:pdb: Protein Data Bank file
	swallow(rasmol) fill: rasmol "$file"
        swallow(molecule) fill: /usr/X11R6/lib/xscreensaver/molecule -delay 20000 -geometry +9000+9000 -no-spin -molecule "$file"

application/bge:blend:Blender Game Engine
        swallow(%f): blenderplayer $file

# Quick time, some webpages use Javascript to check plugin name
[[QuickTime Plug-in 7.6.9 @7.6.9]]

application/x-quicktimeplayer:mov:Quicktime animation
image/x-macpaint:pntg,mov:Quicktime animation
video/quicktime:mov,qt:Quicktime animation
video/x-quicktime:mov,qt:Quicktime animation
	MP_VIDEO_STREAM()
        MP_LINKS("$file")
	TM_VIDEO_STREAM()
        TM_LINKS("$file")
	stream links : xine -pq "$file"
	nokill noisy: xine -pq "$file"

# Real player, some webpages use Javascript to check plugin name
[[RealPlayer 9 @9]]

audio/x-pn-realaudio-plugin:rpm:RealPlayer Plugin Metafile
audio/x-pn-realaudio:ra,rm,ram:Realaudio-plugin resource locator
audio/x-realaudio:ra,rm,ram:RealAudio file
application/vnd.rn-realmedia:rm:RealMedia file
application/smil:smi:RealPlayer
audio/vnd.rn-realaudio:ra,ram:RealAudio file
audio/vnd.rn-realvideo:rv:RealVideo file
	nokill stream: hxplay "$file"
        nokill stream: realplay "$file"

[[Windows Media Player Plug-in @10.1]]

application/x-mplayer2:*:Windows Media video
video/x-ms-asf:asf,asx:Windows Media video
video/x-ms-wm:wm:Windows Media video
video/x-ms-wmv:wmv:Windows Media video
video/x-ms-wvx:wvx:Windows Media video
video/x-ms-asf-plugin:*:Window Media video
        MP_VIDEO_PLAYLIST(%.asx)
	MP_VIDEO_STREAM()
	TM_VIDEO_STREAM()

application/asx:asx:Windows Media video
	MP_VIDEO_STREAM(-playlist)
	TM_VIDEO_STREAM()

audio/wav:wav:Microsoft wave file
audio/x-wav:wav:Microsoft wave file
audio/x-pn-wav:wav:Microsoft wave file
audio/x-pn-windows-acm:wav:Microsoft wave file
        controls: play "$file"
	controls: wavplay -q "$file"
	controls noisy: bplay "$file"
	controls: splay "$file"
	nokill noisy : xmms -e -p "$file"
 	repeat noisy swallow(alsaplayer): alsaplayer -q "$file"

audio/x-ms-wax:wax:Windows Media Audio
	MP_AUDIO_STREAM(-playlist-playlist))
	TM_AUDIO_STREAM()

audio/x-ms-wma:wma:Windows Media Audio
	MP_AUDIO_STREAM()
	TM_AUDIO_STREAM()


#[[Shockwave Flash @11,2,202,332]]
# 11.2 r202
#application/x-shockwave-flash:swf:Shockwave Flash
#application/futuresplash:spl:FutureSplash Player
#	MP_AUDIO_STREAM()

