From 11d428265b3f7f5541779ef2df24bfb17d7250aa Mon Sep 17 00:00:00 2001 From: jakka Date: Sat, 14 Jun 2025 00:22:23 +0300 Subject: added more file processing logic --- src/flac.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/flac.rs') diff --git a/src/flac.rs b/src/flac.rs index 16627e2..940e816 100644 --- a/src/flac.rs +++ b/src/flac.rs @@ -3,7 +3,11 @@ use flac_bound::{FlacEncoder, WriteWrapper}; use i24::i24; use md5::{Digest, Md5, Md5Core, digest::core_api::CoreWrapper}; use metaflac::{Block, Tag}; -use std::{ffi::OsStr, fs::File, path::Path}; +use std::{ + ffi::OsStr, + fs::File, + path::{Path, PathBuf}, +}; use symphonia::core::{ audio::{Audio, GenericAudioBufferRef}, codecs::audio::AudioDecoder, @@ -12,6 +16,8 @@ use symphonia::core::{ meta::MetadataOptions, }; +use crate::files; + pub const CURRENT_VENDOR: &str = "reference libFLAC 1.5.0 20250211"; struct StreamConfig { @@ -246,7 +252,7 @@ fn write_tags( Ok(()) } -pub fn encode_file(filename: impl AsRef) -> Result<()> { +fn encode_file(filename: impl AsRef) -> Result<()> { let file = Path::new(&filename); let tempname = &format!("{}.tmp", file.to_str().unwrap()); @@ -279,6 +285,14 @@ pub fn encode_file(filename: impl AsRef) -> Result<()> { Ok(()) } +pub fn handle_encode(file: PathBuf) -> Result<()> { + if let Err(error) = encode_file(&file) { + Err(anyhow!(files::FileError::new(file, error))) + } else { + Ok(()) + } +} + pub fn get_vendor(file: &Path) -> Result { let tag = Tag::read_from_path(file)?; Ok(tag.vorbis_comments().unwrap().vendor_string.clone()) -- cgit v1.3.1