ardour
filter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2007 Paul Davis
3  Author: David Robillard
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 
19 */
20 
21 #ifndef __ardour_filter_h__
22 #define __ardour_filter_h__
23 
24 #include <vector>
25 
27 #include "ardour/types.h"
28 
29 namespace ARDOUR {
30 
31 class Region;
32 class Session;
33 class Progress;
34 
36 
37  public:
38  virtual ~Filter() {}
39 
40  virtual int run (boost::shared_ptr<ARDOUR::Region>, Progress* progress = 0) = 0;
41  std::vector<boost::shared_ptr<ARDOUR::Region> > results;
42 
43  protected:
44  Filter (ARDOUR::Session& s) : session(s) {}
45 
46  int make_new_sources (boost::shared_ptr<ARDOUR::Region>, ARDOUR::SourceList&, std::string suffix = "");
47  int finish (boost::shared_ptr<ARDOUR::Region>, ARDOUR::SourceList&, std::string region_name = "");
48 
50 };
51 
52 } /* namespace */
53 
54 #endif /* __ardour_filter_h__ */
virtual ~Filter()
Definition: filter.h:38
ARDOUR::Session & session
Definition: filter.h:49
Definition: amp.h:29
Filter(ARDOUR::Session &s)
Definition: filter.h:44
#define LIBARDOUR_API
std::vector< boost::shared_ptr< ARDOUR::Region > > results
Definition: filter.h:41
std::vector< boost::shared_ptr< Source > > SourceList
Definition: types.h:520