pub struct GainOptions { /* private fields */ }Expand description
Options for applying gain adjustment to an MP3 file.
Use the builder pattern to configure how gain should be applied:
use mp3rgain::GainOptions;
use std::path::Path;
// Simple gain adjustment (+3 dB = 2 steps)
GainOptions::new(2).apply(Path::new("song.mp3")).unwrap();
// Gain in dB with undo support
GainOptions::from_db(4.5).undo(true).apply(Path::new("song.mp3")).unwrap();
// Wrapping mode with undo
GainOptions::new(5).wrap(true).undo(true).apply(Path::new("song.mp3")).unwrap();
// Channel-specific gain
use mp3rgain::Channel;
GainOptions::new(3).channel(Channel::Left).undo(true).apply(Path::new("song.mp3")).unwrap();Implementations§
Source§impl GainOptions
impl GainOptions
Sourcepub fn new(steps: i32) -> Self
pub fn new(steps: i32) -> Self
Create gain options from gain steps (1 step = 1.5 dB).
Positive values increase volume, negative values decrease it.
Sourcepub fn wrap(self, wrap: bool) -> Self
pub fn wrap(self, wrap: bool) -> Self
Use wrapping mode instead of saturating (values wrap around 0-255 range).
Default is saturating mode (values clamp to 0-255). Note: wrapping mode is ignored for channel-specific gain (always saturating).
Sourcepub fn channel(self, channel: Channel) -> Self
pub fn channel(self, channel: Channel) -> Self
Apply gain to a specific channel only (Left or Right).
Returns an error if the file is mono.
Sourcepub fn apply(&self, file_path: &Path) -> Result<usize>
pub fn apply(&self, file_path: &Path) -> Result<usize>
Apply the configured gain adjustment to the given MP3 file.
Returns the number of frames modified.
Sourcepub fn apply_to_path(&self, read_from: &Path, write_to: &Path) -> Result<usize>
pub fn apply_to_path(&self, read_from: &Path, write_to: &Path) -> Result<usize>
Apply the configured gain adjustment, reading from read_from and writing
to write_to. When the two paths are the same, this is equivalent to
[apply].
Used by the --temp-file (-t) path so that the modified audio is written
directly to the temp file without an intermediate full-file copy of the
original (issue #135).
Trait Implementations§
Source§impl Clone for GainOptions
impl Clone for GainOptions
Source§fn clone(&self) -> GainOptions
fn clone(&self) -> GainOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for GainOptions
impl RefUnwindSafe for GainOptions
impl Send for GainOptions
impl Sync for GainOptions
impl Unpin for GainOptions
impl UnsafeUnpin for GainOptions
impl UnwindSafe for GainOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more