iInitial import. - vtv-tools - virtual terminal video tools Err bitreich.org 70
1Log /scm/vtv-tools/log.gph bitreich.org 70
1Files /scm/vtv-tools/files.gph bitreich.org 70
1Refs /scm/vtv-tools/refs.gph bitreich.org 70
1Tags /scm/vtv-tools/tag bitreich.org 70
1README /scm/vtv-tools/file/README.md.gph bitreich.org 70
1LICENSE /scm/vtv-tools/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit a4a3d674601be3dc0a84e2bf111999eefa4d57b0 /scm/vtv-tools/commit/a4a3d674601be3dc0a84e2bf111999eefa4d57b0.gph bitreich.org 70
hAuthor: Troels Henriksen <athas@sigkill.dk> URL:mailto:athas@sigkill.dk bitreich.org 70
iDate: Sat, 12 Aug 2023 21:56:34 +0200 Err bitreich.org 70
i Err bitreich.org 70
iInitial import. Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i A Makefile | 11 +++++++++++ Err bitreich.org 70
i A README.md | 17 +++++++++++++++++ Err bitreich.org 70
i A bin/vtvplayer | 31 +++++++++++++++++++++++++++++++ Err bitreich.org 70
i Err bitreich.org 70
i3 files changed, 59 insertions(+), 0 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/Makefile b/Makefile /scm/vtv-tools/file/Makefile.gph bitreich.org 70
i@@ -0,0 +1,11 @@ Err bitreich.org 70
i+# paths Err bitreich.org 70
i+PREFIX ?= /usr/local Err bitreich.org 70
i+ Err bitreich.org 70
i+all: Err bitreich.org 70
i+ Err bitreich.org 70
i+install: all Err bitreich.org 70
i+ @echo \# Installing executable files to ${PREFIX}/bin Err bitreich.org 70
i+ @mkdir -p ${PREFIX}/bin/ Err bitreich.org 70
i+ install bin/* ${PREFIX}/bin/ Err bitreich.org 70
i+ Err bitreich.org 70
i+.PHONY: all install Err bitreich.org 70
1diff --git a/README.md b/README.md /scm/vtv-tools/file/README.md.gph bitreich.org 70
i@@ -0,0 +1,17 @@ Err bitreich.org 70
i+# Virtual Terminal Video tools Err bitreich.org 70
i+ Err bitreich.org 70
i+Tools for working with the VTV format. Err bitreich.org 70
i+ Err bitreich.org 70
i+## Currently available Err bitreich.org 70
i+ Err bitreich.org 70
i+* [`vtvplayer`](vtvplayer) Err bitreich.org 70
i+ Err bitreich.org 70
i+## Format specification Err bitreich.org 70
i+ Err bitreich.org 70
i+A frame consists of 25 lines, each terminated by a newline character. Err bitreich.org 70
i+A file consists of frames in sequence. This means the number of lines Err bitreich.org 70
i+in a file must be divisible by 25. A line can contain arbitrary Err bitreich.org 70
i+terminal control codes (or just plain text). Playing a .vtv file Err bitreich.org 70
i+consists of copying the frames to the screen, one after another. The Err bitreich.org 70
i+delay between each frame (i.e. the frame rate) is not part of the file Err bitreich.org 70
i+contents, but must be somehow known from elsewhere. Err bitreich.org 70
1diff --git a/bin/vtvplayer b/bin/vtvplayer /scm/vtv-tools/file/bin/vtvplayer.gph bitreich.org 70
i@@ -0,0 +1,31 @@ Err bitreich.org 70
i+#!/bin/sh Err bitreich.org 70
i+# Err bitreich.org 70
i+# Play a single vtv file in an infinite loop. Err bitreich.org 70
i+ Err bitreich.org 70
i+trap 'clear; tput cvvis; exit 0' SIGINT Err bitreich.org 70
i+ Err bitreich.org 70
i+ Err bitreich.org 70
i+if [ $# -lt 1 ]; Err bitreich.org 70
i+then Err bitreich.org 70
i+ echo "Usage: $0 ADDIR" >&2 Err bitreich.org 70
i+ exit 1 Err bitreich.org 70
i+ year="$(date +%Y)" Err bitreich.org 70
i+fi Err bitreich.org 70
i+ Err bitreich.org 70
i+adfile="$1" Err bitreich.org 70
i+frametime=0.05 Err bitreich.org 70
i+framelines=25 Err bitreich.org 70
i+ Err bitreich.org 70
i+tput civis Err bitreich.org 70
i+clear Err bitreich.org 70
i+i=0 Err bitreich.org 70
i+nframes=$(echo "$(wc -l < "${adfile}")" / "$framelines" | bc) Err bitreich.org 70
i+while true; do Err bitreich.org 70
i+ tput cup 0 0 Err bitreich.org 70
i+ tail -n +$(echo "(1+${i} % ${nframes} * ${framelines})" | bc) "$adfile" | head -n $framelines Err bitreich.org 70
i+ i=$(($i + 1)) Err bitreich.org 70
i+ Err bitreich.org 70
i+ userinput="" Err bitreich.org 70
i+ sleep $frametime Err bitreich.org 70
i+done Err bitreich.org 70
i+ Err bitreich.org 70
.
Response:
text/plain