# -*- coding: utf-8 -*-
"""Ejemplo 19: Conversion de formatos (Codificador)."""

import sys
from basskit.alto_nivel import inicializar, liberar
from basskit.alto_nivel.codificador import Codificador


def main():
	print("=== Codificador / Conversor de Audio ===\n")
	if len(sys.argv) < 3:
		print("Uso: python 19_codificador.py <entrada> <salida>")
		print()
		print("Formatos soportados: .mp3, .flac, .ogg, .opus")
		print("Ejemplos:")
		print("  python 19_codificador.py cancion.wav cancion.mp3")
		print("  python 19_codificador.py cancion.wav cancion.flac")
		print("  python 19_codificador.py cancion.mp3 cancion.ogg")
		return

	entrada = sys.argv[1]
	salida = sys.argv[2]

	inicializar()
	cod = Codificador()

	print(f"Entrada:  {entrada}")
	print(f"Salida:   {salida}")
	print("Convirtiendo...")

	try:
		ok = cod.convertir(entrada, salida)
		if ok:
			print(f"\nConversion exitosa: {salida}")
		else:
			print("\nError en la conversion.")
	except FileNotFoundError:
		print(f"\nError: Archivo no encontrado: {entrada}")
	except ValueError as e:
		print(f"\nError: {e}")
	except RuntimeError as e:
		print(f"\nError: {e}")

	liberar()
	print("Fin del ejemplo.")


if __name__ == "__main__":
	main()
