vtv-player: add -r option and manpage. - vtv-tools - virtual terminal video tools DIR Log DIR Files DIR Refs DIR Tags DIR README DIR LICENSE --- DIR commit 316ac104daa62edf5d30bf8c8ee8729d29a305c0 DIR parent 02e71d857c5dc511e66c79877d77658e379243ab HTML Author: Troels Henriksen <athas@sigkill.dk> Date: Tue, 15 Aug 2023 00:28:22 +0200 vtv-player: add -r option and manpage. Diffstat: M bin/vtv-player | 20 ++++++++++++-------- A man/vtv-player.1 | 36 +++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 8 deletions(-) --- DIR diff --git a/bin/vtv-player b/bin/vtv-player @@ -8,25 +8,29 @@ trap 'clear; tput cvvis; exit 0' SIGINT +fps=20 -if [ $# -lt 1 ]; -then - echo "Usage: $0 ADDIR" >&2 +if [ "$1" = "-r" ]; then + fps=$2 + shift; shift; +fi + +if [ $# -ne 1 ]; then + echo "Usage: $0 FILE" >&2 exit 1 - year="$(date +%Y)" fi -adfile="$1" -frametime=0.05 +vtv="$1" +frametime=$(echo "scale =2; 1 / $fps" | bc) framelines=25 tput civis clear i=0 -nframes=$(echo "$(wc -l < "${adfile}")" / "$framelines" | bc) +nframes=$(echo "$(wc -l < "${vtv}")" / "$framelines" | bc) while true; do tput cup 0 0 - tail -n +$(echo "(1+${i} % ${nframes} * ${framelines})" | bc) "$adfile" | head -n $framelines + tail -n +$(echo "(1+${i} % ${nframes} * ${framelines})" | bc) "$vtv" | head -n $framelines i=$(($i + 1)) userinput="" DIR diff --git a/man/vtv-player.1 b/man/vtv-player.1 @@ -0,0 +1,36 @@ +.Dd August 14, 2023 +.Dt VTV-PLAYER 1 +.OS +. +.sh NAME +.Nm vtv-player +.Nd Play vtv files in console. +. +.Sh SYNOPSIS +.Nm +.Bk +.Op Fl r Ar fps +.Ar FILE +.Ek +. +.Sh DESCRIPTION +.Bd -filled +.Nm +plays a VTV file in the terminal. +. +.Sh OPTIONS +.Bl -tag -width Ds +.It Fl r Ar fps +Show this many frames per second. Defaults to 20. +.El +. +.Sh FORMAT +.Bd -filled +A VTV file consists of frames in sequence. A frame consists of 25 +lines, each terminated by a newline character. This means the number +of lines in a file must be divisible by 25. A line can contain +arbitrary terminal control codes (or just plain text). Playing a VTV +file is done by printing the frames to the console. +. +.Sh LICENSE +The vtv-tools are released under the GPLv3 or later.