summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/movable.h15
-rw-r--r--libs/ardour/ardour/region.h6
-rw-r--r--libs/ardour/ardour/trimmable.h36
3 files changed, 57 insertions, 0 deletions
diff --git a/libs/ardour/ardour/movable.h b/libs/ardour/ardour/movable.h
new file mode 100644
index 0000000000..26b6125888
--- /dev/null
+++ b/libs/ardour/ardour/movable.h
@@ -0,0 +1,15 @@
+#ifndef __libardour_movable_h__
+#define __libardour_movable_h__
+
+namespace ARDOUR {
+
+class Movable {
+ public:
+ Movable() {}
+
+ bool locked () const { return false; }
+};
+
+}
+
+#endif /* __libardour_movable_h__ */
diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h
index 0ae325d124..ef86dce4b2 100644
--- a/libs/ardour/ardour/region.h
+++ b/libs/ardour/ardour/region.h
@@ -31,8 +31,10 @@
#include "ardour/ardour.h"
#include "ardour/data_type.h"
#include "ardour/automatable.h"
+#include "ardour/movable.h"
#include "ardour/readable.h"
#include "ardour/session_object.h"
+#include "ardour/trimmable.h"
class XMLNode;
@@ -81,6 +83,8 @@ class Region
: public SessionObject
, public boost::enable_shared_from_this<Region>
, public Readable
+ , public Trimmable
+ , public Movable
{
public:
typedef std::vector<boost::shared_ptr<Source> > SourceList;
@@ -147,6 +151,8 @@ class Region
bool sync_marked() const { return _sync_marked; }
bool external() const { return _external; }
bool import() const { return _import; }
+
+ Trimmable::CanTrim can_trim() const;
PositionLockStyle position_lock_style() const { return _position_lock_style; }
void set_position_lock_style (PositionLockStyle ps);
diff --git a/libs/ardour/ardour/trimmable.h b/libs/ardour/ardour/trimmable.h
new file mode 100644
index 0000000000..e053a2deed
--- /dev/null
+++ b/libs/ardour/ardour/trimmable.h
@@ -0,0 +1,36 @@
+#ifndef __libardour_trimmable_h__
+#define __libardour_trimmable_h__
+
+namespace ARDOUR {
+
+class Trimmable {
+ public:
+ Trimmable() {}
+ virtual ~Trimmable() {}
+
+ enum CanTrim {
+ FrontTrimEarlier,
+ FrontTrimLater,
+ EndTrimEarlier,
+ EndTrimLater,
+ TopTrimUp,
+ TopTrimDown,
+ BottomTrimUp,
+ BottomTrimDown
+ } ;
+
+ virtual CanTrim can_trim() const {
+ return CanTrim (FrontTrimEarlier |
+ FrontTrimLater |
+ EndTrimEarlier |
+ EndTrimLater |
+ TopTrimUp |
+ TopTrimDown |
+ BottomTrimUp |
+ BottomTrimDown);
+ }
+};
+
+}
+
+#endif /* __libardour_trimmable_h__ */