#!/bin/bash # --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # Please add additional copyright information _after_ the line containing # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by # the ./scripts/Create-CopyPatch script. Do not edit this copyright text! # # ROCK Linux: rock-src/target/lvp/x86/release_skeleton/scripts/create_lvpxml # ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf # # 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. A copy of the GNU General Public # License can be found at Documentation/COPYING. # # Many people helped and are helping developing ROCK Linux. Please # have a look at http://www.rocklinux.org/ and the Documentation/TEAM # file for details. # # --- ROCK-COPYRIGHT-NOTE-END --- usage_create_lvpxml() { echo -n } create_thumbnail() { tmp="`mktemp`" rm -f $tmp file="$1" item=$2 time=$3 mplayer -nosound -vo png -ss $time -frames 2 "livesystem/$file" >/dev/null 2>&1 orig="00000002.png" [ ! -f "${orig}" ] && orig="00000001.png" [ ! -f "${orig}" ] && return 1 convert -resize '128x128!' ${orig} SGI:$tmp convert -depth 8 -size 128x128 SGI:$tmp gray:$tmp.tmp convert -depth 8 -size 128x128 gray:$tmp.tmp SGI:$tmp.gray mv $tmp $item.color.rgb mv $tmp.gray $item.gray.rgb rm -f $tmp* rm -f 000* return 0 } process_create_lvpxml() { unset files unset title unset titleold time="00:02:00" offset=0 for x in ${!file_*} ; do [ -z "${files}" ] || files="${files}\n" files="${files}${x}" # note: we're not dereferencing the variables here to keep the order the user specified done files=`echo -e ${files} | sort` rm -f ${lvpxml} touch ${lvpxml} echo "Creating lvp.xml file" echo "" >${lvpxml} item=0 for file in ${files} ; do eval "file=\${${file}}" # dereference the variable to get the real file title=${file##*/} title=${title%% -*} if [ "${title}" != "${titleold}" ] ; then titleold=${title} echo "Found possible new title \"${title}\"" confirm "Do you want to start a new headline?" if [ ${?} -eq 0 ] ; then [ ${offset} -gt 0 ] && offset=$(( ${offset} + 2 )) [ $(( ${item} % 4 )) -gt 0 ] && item=$(( ${item} + ( 4 - ( ${item} % 4 ) ) )) lvp_read tmp "${title}" Please enter new title [${title}]: [ -z "${tmp}" ] || title="${tmp}" cat >> ${lvpxml} <<-EOF ${title} EOF offset=$(( ${offset} + 10 )) fi fi echo "File is ${file##*/}" lvp_read tmp "${time}" Time to get thumbnail from [${time}]: [ -n "${tmp}" ] && time="${tmp}" echo -n "Creating thumbnail ... " if create_thumbnail "$file" $item "$time" ; then mv $item.color.rgb livesystem/${file%/*}/ mv $item.gray.rgb livesystem/${file%/*}/ echo "done" else echo "failed" echo "Using traditional display." fi button_text=${file%.*} button_text=${button_text##*- } lvp_read tmp "${button_text}" Enter button text for ${file} [${button_text}]: [ -z "${tmp}" ] || button_text=${tmp} if [ -e livesystem/${file%/*}/$item.color.rgb ] ; then cat >> ${lvpxml} <<-EOF /usr/bin/mplayer -fs -zoom -alang en ${mplayer_param} '${file}' ${button_text} EOF else cat >> ${lvpxml} <<-EOF /usr/bin/mplayer -fs -zoom ${mplayer_param} '${file}' ${button_text} EOF fi #a little "special" for multi-language anime if [ "${file##*.}" == "mkv" -o "${file##*.}" == "ogm" ] && [ "${LVP_USE_MULTI_LANGUAGE}" == "1" ] ; then echo "This looks like a multi-languaged file." confirm "Do you want to add a small button with a second language?" if [ ${?} -eq 0 ] ; then lvp_read alang "ja" Audio language [ja]: lvp_read slang "en" Sub language [en]: lvp_read sub "ja" Button text [ja]: cat >> ${lvpxml} <<-EOF /usr/bin/mplayer -alang ${alang} -slang ${slang} -fs -zoom ${mplayer_param} '${file}' ${sub} EOF fi fi item=$(( ${item} + 1 )) done echo "" >> ${lvpxml} echo "done creating lvp.xml file" echo "Please check that the file is correct!" if [ ! -z ${DISPLAY} ] ; then echo "Trying to show menu now on ${DISPLAY}" lvp=`which lvp` [ -z "${lvp}" ] && lvp="livesystem/usr/bin/lvp" if ! test -x ${lvp} ; then echo "Can't execute ${lvp}... this doesn't look good..." else ${lvp} ${lvpxml} fi fi }