summaryrefslogtreecommitdiff
path: root/libs/ardour/location.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-04-22 00:20:57 +0000
committerCarl Hetherington <carl@carlh.net>2010-04-22 00:20:57 +0000
commitbc8a459dbec431db5489ef8826572616970062ca (patch)
treeb334d7476debd9f184d82cffc7b40f4b108945c9 /libs/ardour/location.cc
parentb32efee4b3baaf306273a085416fbb79167a1858 (diff)
Clean up some location handling bits; should fix update of editor summary when session start/end is moved.
git-svn-id: svn://localhost/ardour2/branches/3.0@6948 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/location.cc')
-rw-r--r--libs/ardour/location.cc80
1 files changed, 24 insertions, 56 deletions
diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc
index d3fc3b0d41..6aa2f8faed 100644
--- a/libs/ardour/location.cc
+++ b/libs/ardour/location.cc
@@ -89,32 +89,27 @@ Location::set_start (nframes64_t s)
return -1;
}
+ if (((is_auto_punch() || is_auto_loop()) && s >= _end) || s > _end) {
+ return -1;
+ }
+
if (is_mark()) {
if (_start != s) {
-
_start = s;
_end = s;
-
- start_changed(this); /* EMIT SIGNAL */
- end_changed(this); /* EMIT SIGNAL */
-
+ start_changed (this); /* EMIT SIGNAL */
+ end_changed (this); /* EMIT SIGNAL */
}
return 0;
}
- if (is_session_range()) {
- start_changed (this); /* EMIT SIGNAL */
- Session::StartTimeChanged (); /* EMIT SIGNAL */
- AudioFileSource::set_header_position_offset (s);
- }
-
- if (((is_auto_punch() || is_auto_loop()) && s >= _end) || s > _end) {
- return -1;
- }
-
if (s != _start) {
_start = s;
- start_changed(this); /* EMIT SIGNAL */
+ start_changed (this); /* EMIT SIGNAL */
+ if (is_session_range ()) {
+ Session::StartTimeChanged (); /* EMIT SIGNAL */
+ AudioFileSource::set_header_position_offset (s);
+ }
}
return 0;
@@ -127,56 +122,37 @@ Location::set_end (nframes64_t e)
return -1;
}
+ if (((is_auto_punch() || is_auto_loop()) && e <= _start) || e < _start) {
+ return -1;
+ }
+
if (is_mark()) {
if (_start != e) {
_start = e;
_end = e;
- start_changed(this); /* EMIT SIGNAL */
- end_changed(this); /* EMIT SIGNAL */
+ start_changed (this); /* EMIT SIGNAL */
+ end_changed (this); /* EMIT SIGNAL */
}
return 0;
}
- if (is_session_range()) {
+ if (e != _end) {
_end = e;
- end_changed (this); /* EMIT SIGNAL */
- Session::EndTimeChanged (); /* EMIT SIGNAL */
- }
+ end_changed(this); /* EMIT SIGNAL */
- if (((is_auto_punch() || is_auto_loop()) && e <= _start) || e < _start) {
- return -1;
+ if (is_session_range()) {
+ Session::EndTimeChanged (); /* EMIT SIGNAL */
+ }
}
- if (e != _end) {
- _end = e;
- end_changed(this); /* EMIT SIGNAL */
- }
return 0;
}
int
Location::set (nframes64_t start, nframes64_t end)
{
- if (_locked) {
- return -1;
- }
-
- if (is_mark() && start != end) {
- return -1;
- } else if (((is_auto_punch() || is_auto_loop()) && start >= end) || (start > end)) {
- return -1;
- }
-
- if (_start != start) {
- _start = start;
- start_changed(this); /* EMIT SIGNAL */
- }
-
- if (_end != end) {
- _end = end;
- end_changed(this); /* EMIT SIGNAL */
- }
- return 0;
+ set_start (start);
+ set_end (end);
}
int
@@ -221,14 +197,6 @@ Location::set_cd (bool yn, void *src)
}
void
-Location::set_is_session_range (bool yn, void *src)
-{
- if (set_flag_internal (yn, IsSessionRange)) {
- FlagsChanged (this, src); /* EMIT SIGNAL */
- }
-}
-
-void
Location::set_is_range_marker (bool yn, void *src)
{
if (set_flag_internal (yn, IsRangeMarker)) {