diff options
author | Robin Gareus <robin@gareus.org> | 2016-12-27 18:20:02 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-12-27 18:20:02 +0100 |
commit | 54a79639df0a72afaf26ed914901688ecdac8ed4 (patch) | |
tree | 364cb613631cc41ab656b7ef2f0af86b3f65ddad /libs/ardour/audiofilesource.cc | |
parent | 5bada6d5332937fca4071edc8f2b2f8c093e9af8 (diff) |
Allow gain factor for audio sources.
In preparation for archiving files as .flac (fixed point),
normalized with gain factor.
Diffstat (limited to 'libs/ardour/audiofilesource.cc')
-rw-r--r-- | libs/ardour/audiofilesource.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc index 3bf252af3d..2edd06282b 100644 --- a/libs/ardour/audiofilesource.cc +++ b/libs/ardour/audiofilesource.cc @@ -207,11 +207,14 @@ AudioFileSource::get_soundfile_info (const string& path, SoundFileInfo& _info, s XMLNode& AudioFileSource::get_state () { + LocaleGuard lg; XMLNode& root (AudioSource::get_state()); char buf[32]; snprintf (buf, sizeof (buf), "%u", _channel); root.add_property (X_("channel"), buf); - root.add_property (X_("origin"), _origin); + root.add_property (X_("origin"), _origin); + snprintf (buf, sizeof (buf), "%f", _gain); + root.add_property (X_("gain"), buf); return root; } @@ -283,6 +286,20 @@ AudioFileSource::setup_peakfile () } } +void +AudioFileSource::set_gain (float g, bool temporarily) +{ + if (_gain == g) { + return; + } + _gain = g; + if (temporarily) { + return; + } + close_peakfile(); + setup_peakfile (); +} + bool AudioFileSource::safe_audio_file_extension(const string& file) { |