arecord parameter

This commit is contained in:
2021-02-06 09:41:20 +00:00
parent 197b2890e8
commit d910a3d93f

127
sumsel.sh
View File

@@ -1,6 +1,6 @@
#!/bin/bash
VERSION="0.2"
VERSION="0.3"
LOCK_DIR=/var/lock
@@ -41,6 +41,8 @@ usage() {
}
mode=''
lock_mode=''
while getopts ":hsrcC:v" options;
do
case "${options}" in
@@ -70,23 +72,17 @@ do
esac
done
check_var_exists() {
local var_name=$1
if [[ ! -v ${var_name} ]]; then
echo "${var_name} not set"
exit 1
fi
}
set_lockfile() {
local BASENAME=$(basename "$0")
local LOCK_FILE="${LOCK_DIR}/${BASENAME}"
local RANDOM_FILE=$(mktemp --tmpdir=${LOCK_DIR})
echo $$ > ${RANDOM_FILE}
mv -n ${RANDOM_FILE} ${LOCK_FILE}
local basename=$(basename "$0")
if [ ! -z ${1+x} ]; then
basename="${basename}_$1"
fi
local lock_file="${LOCK_DIR}/${basename}"
local random_file=$(mktemp --tmpdir=${LOCK_DIR})
echo $$ > ${random_file}
mv -n ${random_file} ${lock_file}
if [ -e ${RANDOM_FILE} ]; then
if [ -e ${random_file} ]; then
false
else
true
@@ -94,10 +90,32 @@ set_lockfile() {
}
del_lockfile() {
local BASENAME=$(basename "$0")
local LOCK_FILE="${LOCK_DIR}/${BASENAME}"
local basename=$(basename "$0")
if [ ! -z ${1+x} ]; then
basename="${basename}_$1"
fi
local lock_file="${LOCK_DIR}/${basename}"
rm ${LOCK_FILE}
rm ${lock_file}
}
cleanup() {
del_lockfile ${lock_mode}
exit 1
}
check_var_exists() {
local var_name=$1
if [[ ! -v ${var_name} ]]; then
echo "${var_name} not set"
cleanup
fi
}
ctrl_c() {
echo "** Trapped CTRL-C" 1>&2;
cleanup
}
simulate() {
@@ -109,14 +127,15 @@ simulate() {
local dst_fn=""
mkdir -p ${REC_DIR}
echo "Press [CTRL+C] to stop.."
echo "Press [CTRL+C] to stop.." 1>&2;
trap ctrl_c INT
while :
do
sleep 1
counter=$[$counter +1]
dst_fn="${REC_DIR}/${REC_PREFIX}-${counter}.wav"
cp ${SIM_EXAMPLE_FILE} ${dst_fn}
done
do
sleep ${REC_FILE_TIME}
counter=$[$counter +1]
dst_fn="${REC_DIR}/${REC_PREFIX}-${counter}.wav"
cp ${SIM_EXAMPLE_FILE} ${dst_fn}
done
}
record() {
@@ -126,6 +145,7 @@ record() {
check_var_exists "REC_DIR"
mkdir -p ${REC_DIR}
trap ctrl_c INT
arecord --format=cd --device=${REC_DEVICE} --max-file-time=${REC_FILE_TIME} --use-strftime ${REC_DIR}/${REC_PREFIX}%Y%m%d%H%M%v.wav
}
@@ -135,45 +155,48 @@ convert() {
check_var_exists "UPL_SUFFIX"
check_var_exists "REMOTE_DIR"
if set_lockfile; then
mkdir -p ${REC_DIR}
mkdir -p ${UPL_DIR}
mkdir -p ${REC_DIR}
mkdir -p ${UPL_DIR}
#Alle WAV Files ausser das letzte File.
#Das letzte File wird gerade recorded und wird beim naechsten Durchlauf verarbeitet
local FILES=$(ls -tr ${REC_DIR} |head -n -1)
#Alle WAV Files ausser das letzte File.
#Das letzte File wird gerade recorded und wird beim naechsten Durchlauf verarbeitet
local FILES=$(ls -tr ${REC_DIR} |head -n -1)
for F in ${FILES}
do
#Ermittle ctime des WAV Files
local CTIME=$(date -r "${REC_DIR}/${F}" +"%Y%m%d%H%M%S")
ffmpeg -i "${REC_DIR}/${F}" -acodec mp3 "${UPL_DIR}/${CTIME}_${UPL_SUFFIX}.mp3"
rm "${REC_DIR}/${F}"
done
for F in ${FILES}
do
#Ermittle ctime des WAV Files
local CTIME=$(date -r "${REC_DIR}/${F}" +"%Y%m%d%H%M%S")
ffmpeg -i "${REC_DIR}/${F}" -acodec mp3 "${UPL_DIR}/${CTIME}_${UPL_SUFFIX}.mp3"
rm "${REC_DIR}/${F}"
done
rsync -avzh --remove-source-files ${UPL_DIR} ${REMOTE_DIR}
del_lockfile
else
echo "LOCK error"
exit 1
fi
rsync -avzh --remove-source-files ${UPL_DIR} ${REMOTE_DIR}
}
case ${mode} in
s) #Simulation
simulate
exit 0
lock_mode=record
func=simulate
;;
r) #Aufnahme
record
exit 0
lock_mode=record
func=record
;;
c) #Konvertierung
convert
exit 0
lock_mode=convert
func=convert
;;
*)
echo "mode not set"
echo "mode not set" 1>&2;
exit 1
;;
esac
if set_lockfile ${lock_mode}; then
${func}
del_lockfile ${lock_mode}
else
echo "LOCK error" 1>&2;
exit 1
fi