summaryrefslogtreecommitdiff
path: root/libs/ardour/audiofilesource.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-12-27 18:20:02 +0100
committerRobin Gareus <robin@gareus.org>2016-12-27 18:20:02 +0100
commit54a79639df0a72afaf26ed914901688ecdac8ed4 (patch)
tree364cb613631cc41ab656b7ef2f0af86b3f65ddad /libs/ardour/audiofilesource.cc
parent5bada6d5332937fca4071edc8f2b2f8c093e9af8 (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.cc19
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)
{