diff options
Diffstat (limited to 'misc/ext.d/sound.sh')
-rwxr-xr-x | misc/ext.d/sound.sh | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/misc/ext.d/sound.sh b/misc/ext.d/sound.sh new file mode 100755 index 0000000..60a3cdd --- /dev/null +++ b/misc/ext.d/sound.sh @@ -0,0 +1,106 @@ +#!/bin/sh + +# $1 - action +# $2 - type of file + +action=$1 +filetype=$2 + +[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" + +do_view_action() { + filetype=$1 + + case "${filetype}" in + common) + mediainfo "${MC_EXT_FILENAME}" + ;; + + mp3) + mpg123 -vtn1 "${MC_EXT_FILENAME}" 2>&1 | \ + sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p' + ;; + ogg) + ogginfo "${MC_EXT_FILENAME}" + ;; + opus) + opusinfo "${MC_EXT_FILENAME}" + ;; + wma) + mplayer -quiet -slave -frames 0 -vo null -ao null -identify "${MC_EXT_FILENAME}" 2>/dev/null | \ + tail +13 || file "${MC_EXT_FILENAME}" + ;; + *) + cat "${MC_EXT_FILENAME}" + ;; + esac +} + +do_open_action() { + filetype=$1 + + case "${filetype}" in + common) + if [ -n "$DISPLAY" ]; then + (audacious "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) + else + play "${MC_EXT_FILENAME}" + fi + ;; + mod) + mikmod "${MC_EXT_FILENAME}" + #tracker "${MC_EXT_FILENAME}" + ;; + wav22) + vplay -s 22 "${MC_EXT_FILENAME}" + ;; + mp3) + if [ -n "$DISPLAY" ]; then + (audacious "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) + else + mpg123 "${MC_EXT_FILENAME}" + fi + ;; + ogg) + if [ -n "$DISPLAY" ]; then + (audacious "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) + else + ogg123 "${MC_EXT_FILENAME}" + fi + ;; + opus) + if [ -n "$DISPLAY" ]; then + (audacious "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) + else + play "${MC_EXT_FILENAME}" + fi + ;; + midi) + timidity "${MC_EXT_FILENAME}" + ;; + wma) + mplayer -vo null "${MC_EXT_FILENAME}" + ;; + playlist) + if [ -n "$DISPLAY" ]; then + (audacious -p "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) + else + mplayer -vo null -playlist "${MC_EXT_FILENAME}" + fi + ;; + *) + ;; + esac +} + +case "${action}" in +view) + do_view_action "${filetype}" + ;; +open) + ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ + do_open_action "${filetype}" + ;; +*) + ;; +esac |