#!/bin/bash encodeFile::opus() { opusencopts=(${ionice}opusenc --quiet) opusencopts+=(--bitrate ${destinationquality[$destination]}) [ -n "${destinationloss["$destination"]}" ] \ && opusencopts+=(--expect-loss "${destinationloss["$destination"]}") [ -n "$albumartist" ] && opusencopts+=(--comment "ALBUMARTIST=$albumartist") [ -n "$album" ] && opusencopts+=(--comment "ALBUM=$album") [ -n "$artist" ] && opusencopts+=(--artist "$artist") [ -n "$composer" ] && opusencopts+=(--comment "COMPOSER=$composer") [ -n "$disc" ] && opusencopts+=(--comment "DISCNUMBER=$disc") [ -n "$genre" ] && opusencopts+=(--comment "GENRE=$genre") [ -n "$performer" ] && opusencopts+=(--comment "PERFORMER=$performer") [ -n "$title" ] && opusencopts+=(--title "$title") [ -n "$track" ] && opusencopts+=(--comment "TRACKNUMBER=${track%/*}") [ -n "${track#*/}" ] && opusencopts+=(--comment "TRACKTOTAL=${track#*/}") [ -n "$year" ] && opusencopts+=(--comment "DATE=$year") opusencopts+=("$tempdir/$tmpfile".wav "$destdir/$destfile.opus") encodetaskid=$( Insert tasks <<-EOInsert key ${fileid}opusenc$destination requires ${soxtaskid:-$decodetaskid} fileid $destfileid filename $destdir/$destfile.opus $( for key in ${!opusencopts[@]} do cleanedopts="${opusencopts[key]//\&/\\\&}" cleanedopts="${cleanedopts//\[/\\[}" cleanedopts="${cleanedopts//\]/\\]}" cleanedopts="${cleanedopts//\{/\\{}" cleanedopts="${cleanedopts//\}/\\\}}" echo "cmd_arg$key $cleanedopts" done ) cleanup $tempdir/$tmpfile.wav source_file $fileid status 0 rename_pattern ${destinationrenamepath[$destination]}/${destinationrename[$destination]} fat32compat ${destinationfat32compat["$destination"]} ascii ${destinationascii["$destination"]} EOInsert ) parent_required=$( Select tasks required_by \ <<<"id = ${soxtaskid:-$decodetaskid}" ) Update tasks required_by $((++parent_required)) \ <<<"id = ${soxtaskid:-$decodetaskid}" progressSpin soxtaskid='' }