e77aa7111ce206cd38b2c557c0f0d6153d848aef
[ardour.git] / libs / ardour / ardour / strip_silence.h
1 /*
2     Copyright (C) 2009 Paul Davis
3
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 */
19
20 #include "ardour/filter.h"
21
22 namespace ARDOUR {
23
24 /// A filter to strip silence from regions
25 class StripSilence : public Filter {
26
27 public:
28         StripSilence (Session &, double, nframes_t, nframes_t);
29
30         int run (boost::shared_ptr<ARDOUR::Region>, Progress* progress = 0);
31
32 private:
33         double _threshold; ///< silence threshold, in dBFS
34         nframes_t _minimum_length; ///< minimum length to be considered silence, in samples
35         nframes_t _fade_length; ///< fade in/out to use on trimmed regions, in samples
36 };
37
38 }