#!/bin/bash

# Copyright © 2012-2026 ScriptFanix
# 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 3 of the License.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# A copy of the GNU General Public License v3 is includded in the LICENSE file
# at the root of the project.

checkCopy() {
	# Returns true only when the source file is compatible enough with the
	# destination profile that it can be copied instead of re-encoded.
	# All three conditions must hold simultaneously.
	(
		# If the destination doesn't restrict sample rate, any rate is
		# acceptable. Otherwise the source rate must match exactly.
		[ -z "${destinationfrequency[$destination]}" ]		\
		|| (( ${rate:-0} == ${destinationfrequency[$destination]} ))
	) && (
		# If the destination doesn't restrict channel count, any number
		# is acceptable. Otherwise the source channel count must match
		# exactly.
		[ -z "${destinationchannels[$destination]}" ]		\
		|| (( ${channels:-0} == ${destinationchannels[$destination]} ))
	) && (
		# Bitrate check: accept if source exactly matches the target
		# quality setting, OR if a maximum bps ceiling is configured
		# and the source bitrate is at or below it.
		# Default of 1000 kbps when bitrate is unknown forces a
		# re-encode
		(( ${bitrate:-1000} == ${destinationquality[$destination]} ))	\
		|| (
			[ -n "${destinationmaxbps[$destination]}" ]	\
			&& ((
				${bitrate:-1000}
				<= ${destinationmaxbps[$destination]:-0}
			))
		)
	)
}
