libardour support for timespan realtime export
[ardour.git] / libs / ardour / ardour / trimmable.h
1 /*
2     Copyright (C) 2012 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 #ifndef __libardour_trimmable_h__
21 #define __libardour_trimmable_h__
22
23 namespace ARDOUR {
24
25 class LIBARDOUR_API Trimmable {
26   public:
27         Trimmable() {}
28         virtual ~Trimmable() {}
29
30         enum CanTrim {
31                 FrontTrimEarlier = 0x1,
32                 FrontTrimLater = 0x2,
33                 EndTrimEarlier = 0x4,
34                 EndTrimLater = 0x8,
35                 TopTrimUp = 0x10,
36                 TopTrimDown = 0x20,
37                 BottomTrimUp = 0x40,
38                 BottomTrimDown = 0x80
39         } ;
40
41         virtual CanTrim can_trim() const {
42                 return CanTrim (FrontTrimEarlier |
43                                 FrontTrimLater |
44                                 EndTrimEarlier |
45                                 EndTrimLater |
46                                 TopTrimUp |
47                                 TopTrimDown |
48                                 BottomTrimUp |
49                                 BottomTrimDown);
50         }
51 };
52
53 }
54
55 #endif /* __libardour_trimmable_h__ */