mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-17 04:06:26 +01:00
Revert "fix indentation from previous commit and previous edits"
This reverts commit 449c9b675d.
This commit is contained in:
parent
400148b369
commit
2067163f7a
3 changed files with 204 additions and 199 deletions
|
|
@ -123,13 +123,13 @@ class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDest
|
||||||
changes to this object
|
changes to this object
|
||||||
*/
|
*/
|
||||||
|
|
||||||
PBD::Signal0<void> Changed;
|
PBD::Signal0<void> Changed;
|
||||||
void set_block_change_notifications (bool yn) {_block_change_notifications = yn;}
|
void set_block_change_notifications (bool yn) {_block_change_notifications = yn;}
|
||||||
|
|
||||||
PBD::Signal0<void> NameChanged;
|
PBD::Signal0<void> NameChanged;
|
||||||
PBD::Signal0<void> EndChanged;
|
PBD::Signal0<void> EndChanged;
|
||||||
PBD::Signal0<void> StartChanged;
|
PBD::Signal0<void> StartChanged;
|
||||||
PBD::Signal0<void> FlagsChanged;
|
PBD::Signal0<void> FlagsChanged;
|
||||||
PBD::Signal0<void> LockChanged;
|
PBD::Signal0<void> LockChanged;
|
||||||
PBD::Signal0<void> PositionLockStyleChanged;
|
PBD::Signal0<void> PositionLockStyleChanged;
|
||||||
|
|
||||||
|
|
@ -158,7 +158,7 @@ class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDest
|
||||||
PositionLockStyle _position_lock_style;
|
PositionLockStyle _position_lock_style;
|
||||||
boost::shared_ptr<SceneChange> _scene_change;
|
boost::shared_ptr<SceneChange> _scene_change;
|
||||||
|
|
||||||
bool _block_change_notifications; // required for group operations
|
bool _block_change_notifications; // required for group operations
|
||||||
|
|
||||||
void set_mark (bool yn);
|
void set_mark (bool yn);
|
||||||
bool set_flag_internal (bool yn, Flags flag);
|
bool set_flag_internal (bool yn, Flags flag);
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2000 Paul Davis
|
Copyright (C) 2000 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -58,7 +58,7 @@ Location::Location (Session& s)
|
||||||
, _flags (Flags (0))
|
, _flags (Flags (0))
|
||||||
, _locked (false)
|
, _locked (false)
|
||||||
, _position_lock_style (AudioTime)
|
, _position_lock_style (AudioTime)
|
||||||
, _block_change_notifications (false)
|
, _block_change_notifications (false)
|
||||||
{
|
{
|
||||||
assert (_start >= 0);
|
assert (_start >= 0);
|
||||||
assert (_end >= 0);
|
assert (_end >= 0);
|
||||||
|
|
@ -73,7 +73,8 @@ Location::Location (Session& s, framepos_t sample_start, framepos_t sample_end,
|
||||||
, _flags (bits)
|
, _flags (bits)
|
||||||
, _locked (false)
|
, _locked (false)
|
||||||
, _position_lock_style (s.config.get_glue_new_markers_to_bars_and_beats() ? MusicTime : AudioTime)
|
, _position_lock_style (s.config.get_glue_new_markers_to_bars_and_beats() ? MusicTime : AudioTime)
|
||||||
, _block_change_notifications (false)
|
, _block_change_notifications (false)
|
||||||
|
|
||||||
{
|
{
|
||||||
recompute_bbt_from_frames ();
|
recompute_bbt_from_frames ();
|
||||||
|
|
||||||
|
|
@ -91,7 +92,8 @@ Location::Location (const Location& other)
|
||||||
, _bbt_end (other._bbt_end)
|
, _bbt_end (other._bbt_end)
|
||||||
, _flags (other._flags)
|
, _flags (other._flags)
|
||||||
, _position_lock_style (other._position_lock_style)
|
, _position_lock_style (other._position_lock_style)
|
||||||
, _block_change_notifications (false)
|
, _block_change_notifications (false)
|
||||||
|
|
||||||
{
|
{
|
||||||
/* copy is not locked even if original was */
|
/* copy is not locked even if original was */
|
||||||
|
|
||||||
|
|
@ -169,10 +171,10 @@ Location::operator= (const Location& other)
|
||||||
void
|
void
|
||||||
Location::set_name (const std::string& str)
|
Location::set_name (const std::string& str)
|
||||||
{
|
{
|
||||||
_name = str;
|
_name = str;
|
||||||
|
|
||||||
name_changed (this); /* EMIT SIGNAL */
|
name_changed (this); /* EMIT SIGNAL */
|
||||||
NameChanged (); /* EMIT SIGNAL */
|
NameChanged (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set start position.
|
/** Set start position.
|
||||||
|
|
@ -224,11 +226,11 @@ Location::set_start (framepos_t s, bool force, bool allow_bbt_recompute)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
} else if (!force) {
|
} else if (!force) {
|
||||||
/* range locations must exceed a minimum duration */
|
/* range locations must exceed a minimum duration */
|
||||||
if (_end - s < Config->get_range_location_minimum()) {
|
if (_end - s < Config->get_range_location_minimum()) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s != _start) {
|
if (s != _start) {
|
||||||
|
|
||||||
|
|
@ -291,11 +293,11 @@ Location::set_end (framepos_t e, bool force, bool allow_bbt_recompute)
|
||||||
assert (_end >= 0);
|
assert (_end >= 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
} else if (!force) {
|
} else if (!force) {
|
||||||
/* range locations must exceed a minimum duration */
|
/* range locations must exceed a minimum duration */
|
||||||
if (e - _start < Config->get_range_location_minimum()) {
|
if (e - _start < Config->get_range_location_minimum()) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e != _end) {
|
if (e != _end) {
|
||||||
|
|
@ -332,8 +334,8 @@ Location::set (framepos_t s, framepos_t e, bool allow_bbt_recompute)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool start_change = false;
|
bool start_change = false;
|
||||||
bool end_change = false;
|
bool end_change = false;
|
||||||
|
|
||||||
if (is_mark()) {
|
if (is_mark()) {
|
||||||
|
|
||||||
|
|
@ -345,8 +347,8 @@ Location::set (framepos_t s, framepos_t e, bool allow_bbt_recompute)
|
||||||
recompute_bbt_from_frames ();
|
recompute_bbt_from_frames ();
|
||||||
}
|
}
|
||||||
|
|
||||||
start_change = true;
|
start_change = true;
|
||||||
end_change = true;
|
end_change = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert (_start >= 0);
|
assert (_start >= 0);
|
||||||
|
|
@ -354,67 +356,67 @@ Location::set (framepos_t s, framepos_t e, bool allow_bbt_recompute)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* range locations must exceed a minimum duration */
|
/* range locations must exceed a minimum duration */
|
||||||
if (e - s < Config->get_range_location_minimum()) {
|
if (e - s < Config->get_range_location_minimum()) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s != _start) {
|
if (s != _start) {
|
||||||
|
|
||||||
framepos_t const old = _start;
|
framepos_t const old = _start;
|
||||||
_start = s;
|
_start = s;
|
||||||
|
|
||||||
if (allow_bbt_recompute) {
|
if (allow_bbt_recompute) {
|
||||||
recompute_bbt_from_frames ();
|
recompute_bbt_from_frames ();
|
||||||
}
|
}
|
||||||
|
|
||||||
start_change = true;
|
start_change = true;
|
||||||
|
|
||||||
if (is_session_range ()) {
|
if (is_session_range ()) {
|
||||||
Session::StartTimeChanged (old); /* EMIT SIGNAL */
|
Session::StartTimeChanged (old); /* EMIT SIGNAL */
|
||||||
AudioFileSource::set_header_position_offset (s);
|
AudioFileSource::set_header_position_offset (s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (e != _end) {
|
if (e != _end) {
|
||||||
|
|
||||||
framepos_t const old = _end;
|
framepos_t const old = _end;
|
||||||
_end = e;
|
_end = e;
|
||||||
|
|
||||||
if (allow_bbt_recompute) {
|
if (allow_bbt_recompute) {
|
||||||
recompute_bbt_from_frames ();
|
recompute_bbt_from_frames ();
|
||||||
}
|
}
|
||||||
|
|
||||||
end_change = true;
|
end_change = true;
|
||||||
|
|
||||||
if (is_session_range()) {
|
if (is_session_range()) {
|
||||||
Session::EndTimeChanged (old); /* EMIT SIGNAL */
|
Session::EndTimeChanged (old); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assert (_end >= 0);
|
assert (_end >= 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (start_change) {
|
if (start_change) {
|
||||||
start_changed(this); /* EMIT SIGNAL */
|
start_changed(this); /* EMIT SIGNAL */
|
||||||
StartChanged(); /* EMIT SIGNAL */
|
StartChanged(); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end_change) {
|
if (end_change) {
|
||||||
end_changed(this); /* EMIT SIGNAL */
|
end_changed(this); /* EMIT SIGNAL */
|
||||||
EndChanged(); /* EMIT SIGNAL */
|
EndChanged(); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (start_change && end_change) {
|
if (start_change && end_change) {
|
||||||
changed (this);
|
changed (this);
|
||||||
|
|
||||||
if (!_block_change_notifications) {
|
if (!_block_change_notifications) {
|
||||||
Changed ();
|
Changed ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -433,11 +435,11 @@ Location::move_to (framepos_t pos)
|
||||||
_end = _start + length();
|
_end = _start + length();
|
||||||
recompute_bbt_from_frames ();
|
recompute_bbt_from_frames ();
|
||||||
|
|
||||||
changed (this); /* EMIT SIGNAL */
|
changed (this); /* EMIT SIGNAL */
|
||||||
|
|
||||||
if (!_block_change_notifications) {
|
if (!_block_change_notifications) {
|
||||||
Changed (); /* EMIT SIGNAL */
|
Changed (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assert (_start >= 0);
|
assert (_start >= 0);
|
||||||
|
|
@ -450,8 +452,8 @@ void
|
||||||
Location::set_hidden (bool yn, void*)
|
Location::set_hidden (bool yn, void*)
|
||||||
{
|
{
|
||||||
if (set_flag_internal (yn, IsHidden)) {
|
if (set_flag_internal (yn, IsHidden)) {
|
||||||
flags_changed (this); /* EMIT SIGNAL */
|
flags_changed (this); /* EMIT SIGNAL */
|
||||||
FlagsChanged ();
|
FlagsChanged ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -467,40 +469,40 @@ Location::set_cd (bool yn, void*)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (set_flag_internal (yn, IsCDMarker)) {
|
if (set_flag_internal (yn, IsCDMarker)) {
|
||||||
flags_changed (this); /* EMIT SIGNAL */
|
flags_changed (this); /* EMIT SIGNAL */
|
||||||
FlagsChanged ();
|
FlagsChanged ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Location::set_is_range_marker (bool yn, void*)
|
Location::set_is_range_marker (bool yn, void*)
|
||||||
{
|
{
|
||||||
if (set_flag_internal (yn, IsRangeMarker)) {
|
if (set_flag_internal (yn, IsRangeMarker)) {
|
||||||
flags_changed (this);
|
flags_changed (this);
|
||||||
FlagsChanged (); /* EMIT SIGNAL */
|
FlagsChanged (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Location::set_skip (bool yn)
|
Location::set_skip (bool yn)
|
||||||
{
|
{
|
||||||
if (is_range_marker() && length() > 0) {
|
if (is_range_marker() && length() > 0) {
|
||||||
if (set_flag_internal (yn, IsSkip)) {
|
if (set_flag_internal (yn, IsSkip)) {
|
||||||
flags_changed (this);
|
flags_changed (this);
|
||||||
FlagsChanged ();
|
FlagsChanged ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Location::set_skipping (bool yn)
|
Location::set_skipping (bool yn)
|
||||||
{
|
{
|
||||||
if (is_range_marker() && is_skip() && length() > 0) {
|
if (is_range_marker() && is_skip() && length() > 0) {
|
||||||
if (set_flag_internal (yn, IsSkipping)) {
|
if (set_flag_internal (yn, IsSkipping)) {
|
||||||
flags_changed (this);
|
flags_changed (this);
|
||||||
FlagsChanged ();
|
FlagsChanged ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -511,8 +513,8 @@ Location::set_auto_punch (bool yn, void*)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (set_flag_internal (yn, IsAutoPunch)) {
|
if (set_flag_internal (yn, IsAutoPunch)) {
|
||||||
flags_changed (this); /* EMIT SIGNAL */
|
flags_changed (this); /* EMIT SIGNAL */
|
||||||
FlagsChanged (); /* EMIT SIGNAL */
|
FlagsChanged (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -524,8 +526,8 @@ Location::set_auto_loop (bool yn, void*)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (set_flag_internal (yn, IsAutoLoop)) {
|
if (set_flag_internal (yn, IsAutoLoop)) {
|
||||||
flags_changed (this); /* EMIT SIGNAL */
|
flags_changed (this); /* EMIT SIGNAL */
|
||||||
FlagsChanged (); /* EMIT SIGNAL */
|
FlagsChanged (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -634,22 +636,22 @@ Location::set_state (const XMLNode& node, int version)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* can't use set_start() here, because _end
|
/* can't use set_start() here, because _end
|
||||||
may make the value of _start illegal.
|
may make the value of _start illegal.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sscanf (prop->value().c_str(), "%" PRId64, &_start);
|
sscanf (prop->value().c_str(), "%" PRId64, &_start);
|
||||||
|
|
||||||
if ((prop = node.property ("end")) == 0) {
|
if ((prop = node.property ("end")) == 0) {
|
||||||
error << _("XML node for Location has no end information") << endmsg;
|
error << _("XML node for Location has no end information") << endmsg;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sscanf (prop->value().c_str(), "%" PRId64, &_end);
|
sscanf (prop->value().c_str(), "%" PRId64, &_end);
|
||||||
|
|
||||||
if ((prop = node.property ("flags")) == 0) {
|
if ((prop = node.property ("flags")) == 0) {
|
||||||
error << _("XML node for Location has no flags information") << endmsg;
|
error << _("XML node for Location has no flags information") << endmsg;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
_flags = Flags (string_2_enum (prop->value(), _flags));
|
_flags = Flags (string_2_enum (prop->value(), _flags));
|
||||||
|
|
@ -662,26 +664,26 @@ Location::set_state (const XMLNode& node, int version)
|
||||||
|
|
||||||
for (cd_iter = cd_list.begin(); cd_iter != cd_list.end(); ++cd_iter) {
|
for (cd_iter = cd_list.begin(); cd_iter != cd_list.end(); ++cd_iter) {
|
||||||
|
|
||||||
cd_node = *cd_iter;
|
cd_node = *cd_iter;
|
||||||
|
|
||||||
if (cd_node->name() != "CD-Info") {
|
if (cd_node->name() != "CD-Info") {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((prop = cd_node->property ("name")) != 0) {
|
if ((prop = cd_node->property ("name")) != 0) {
|
||||||
cd_name = prop->value();
|
cd_name = prop->value();
|
||||||
} else {
|
} else {
|
||||||
throw failed_constructor ();
|
throw failed_constructor ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((prop = cd_node->property ("value")) != 0) {
|
if ((prop = cd_node->property ("value")) != 0) {
|
||||||
cd_value = prop->value();
|
cd_value = prop->value();
|
||||||
} else {
|
} else {
|
||||||
throw failed_constructor ();
|
throw failed_constructor ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
cd_info[cd_name] = cd_value;
|
cd_info[cd_name] = cd_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((prop = node.property ("position-lock-style")) != 0) {
|
if ((prop = node.property ("position-lock-style")) != 0) {
|
||||||
|
|
@ -696,11 +698,11 @@ Location::set_state (const XMLNode& node, int version)
|
||||||
|
|
||||||
recompute_bbt_from_frames ();
|
recompute_bbt_from_frames ();
|
||||||
|
|
||||||
changed (this); /* EMIT SIGNAL */
|
changed (this); /* EMIT SIGNAL */
|
||||||
|
|
||||||
if (!_block_change_notifications) {
|
if (!_block_change_notifications) {
|
||||||
Changed (); /* EMIT SIGNAL */
|
Changed (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
assert (_start >= 0);
|
assert (_start >= 0);
|
||||||
assert (_end >= 0);
|
assert (_end >= 0);
|
||||||
|
|
@ -800,7 +802,7 @@ Locations::set_current (Location *loc, bool want_lock)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
current_changed (current_location); /* EMIT SIGNAL */
|
current_changed (current_location); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -812,51 +814,51 @@ Locations::next_available_name(string& result,string base)
|
||||||
string::size_type l;
|
string::size_type l;
|
||||||
int suffix;
|
int suffix;
|
||||||
char buf[32];
|
char buf[32];
|
||||||
std::map<uint32_t,bool> taken;
|
std::map<uint32_t,bool> taken;
|
||||||
uint32_t n;
|
uint32_t n;
|
||||||
|
|
||||||
result = base;
|
result = base;
|
||||||
l = base.length();
|
l = base.length();
|
||||||
|
|
||||||
if (!base.empty()) {
|
if (!base.empty()) {
|
||||||
|
|
||||||
/* find all existing names that match "base", and store
|
/* find all existing names that match "base", and store
|
||||||
the numeric part of them (if any) in the map "taken"
|
the numeric part of them (if any) in the map "taken"
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for (i = locations.begin(); i != locations.end(); ++i) {
|
for (i = locations.begin(); i != locations.end(); ++i) {
|
||||||
|
|
||||||
const string& temp ((*i)->name());
|
const string& temp ((*i)->name());
|
||||||
|
|
||||||
if (!temp.find (base,0)) {
|
if (!temp.find (base,0)) {
|
||||||
|
|
||||||
if ((suffix = atoi (temp.substr(l,3))) != 0) {
|
if ((suffix = atoi (temp.substr(l,3))) != 0) {
|
||||||
taken.insert (make_pair (suffix,true));
|
taken.insert (make_pair (suffix,true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now search for an un-used suffix to add to "base". This
|
/* Now search for an un-used suffix to add to "base". This
|
||||||
will find "holes" in the numbering sequence when a location
|
will find "holes" in the numbering sequence when a location
|
||||||
was deleted.
|
was deleted.
|
||||||
|
|
||||||
This must start at 1, both for human-numbering reasons
|
This must start at 1, both for human-numbering reasons
|
||||||
and also because the call to atoi() above would return
|
and also because the call to atoi() above would return
|
||||||
zero if there is no recognizable numeric suffix, causing
|
zero if there is no recognizable numeric suffix, causing
|
||||||
"base 0" not to be inserted into the "taken" map.
|
"base 0" not to be inserted into the "taken" map.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
n = 1;
|
n = 1;
|
||||||
|
|
||||||
while (n < UINT32_MAX) {
|
while (n < UINT32_MAX) {
|
||||||
if (taken.find (n) == taken.end()) {
|
if (taken.find (n) == taken.end()) {
|
||||||
snprintf (buf, sizeof(buf), "%d", n);
|
snprintf (buf, sizeof(buf), "%d", n);
|
||||||
result += buf;
|
result += buf;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
++n;
|
++n;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -957,7 +959,7 @@ Locations::clear_ranges ()
|
||||||
current_location = 0;
|
current_location = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
changed ();
|
changed ();
|
||||||
current_changed (0); /* EMIT SIGNAL */
|
current_changed (0); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -978,7 +980,7 @@ Locations::add (Location *loc, bool make_current)
|
||||||
added (loc); /* EMIT SIGNAL */
|
added (loc); /* EMIT SIGNAL */
|
||||||
|
|
||||||
if (make_current) {
|
if (make_current) {
|
||||||
current_changed (current_location); /* EMIT SIGNAL */
|
current_changed (current_location); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loc->is_session_range()) {
|
if (loc->is_session_range()) {
|
||||||
|
|
@ -1020,7 +1022,7 @@ Locations::remove (Location *loc)
|
||||||
removed (loc); /* EMIT SIGNAL */
|
removed (loc); /* EMIT SIGNAL */
|
||||||
|
|
||||||
if (was_current) {
|
if (was_current) {
|
||||||
current_changed (0); /* EMIT SIGNAL */
|
current_changed (0); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1082,10 +1084,10 @@ Locations::set_state (const XMLNode& node, int version)
|
||||||
/* we can re-use an old Location object */
|
/* we can re-use an old Location object */
|
||||||
loc = *i;
|
loc = *i;
|
||||||
|
|
||||||
// changed locations will be updated by Locations::changed signal
|
// changed locations will be updated by Locations::changed signal
|
||||||
loc->set_block_change_notifications (true);
|
loc->set_block_change_notifications (true);
|
||||||
loc->set_state (**niter, version);
|
loc->set_state (**niter, version);
|
||||||
loc->set_block_change_notifications (false);
|
loc->set_block_change_notifications (false);
|
||||||
} else {
|
} else {
|
||||||
loc = new Location (_session, **niter);
|
loc = new Location (_session, **niter);
|
||||||
}
|
}
|
||||||
|
|
@ -1148,16 +1150,16 @@ typedef std::pair<framepos_t,Location*> LocationPair;
|
||||||
|
|
||||||
struct LocationStartEarlierComparison
|
struct LocationStartEarlierComparison
|
||||||
{
|
{
|
||||||
bool operator() (LocationPair a, LocationPair b) {
|
bool operator() (LocationPair a, LocationPair b) {
|
||||||
return a.first < b.first;
|
return a.first < b.first;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct LocationStartLaterComparison
|
struct LocationStartLaterComparison
|
||||||
{
|
{
|
||||||
bool operator() (LocationPair a, LocationPair b) {
|
bool operator() (LocationPair a, LocationPair b) {
|
||||||
return a.first > b.first;
|
return a.first > b.first;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
framepos_t
|
framepos_t
|
||||||
|
|
@ -1366,7 +1368,7 @@ Locations::auto_punch_location () const
|
||||||
return const_cast<Location*> (*i);
|
return const_cast<Location*> (*i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
|
|
@ -1385,12 +1387,12 @@ Locations::num_range_markers () const
|
||||||
Location *
|
Location *
|
||||||
Locations::get_location_by_id(PBD::ID id)
|
Locations::get_location_by_id(PBD::ID id)
|
||||||
{
|
{
|
||||||
LocationList::iterator it;
|
LocationList::iterator it;
|
||||||
for (it = locations.begin(); it != locations.end(); ++it)
|
for (it = locations.begin(); it != locations.end(); ++it)
|
||||||
if (id == (*it)->id())
|
if (id == (*it)->id())
|
||||||
return *it;
|
return *it;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -1476,20 +1476,23 @@ Session::locations_changed ()
|
||||||
void
|
void
|
||||||
Session::_locations_changed (const Locations::LocationList& locations)
|
Session::_locations_changed (const Locations::LocationList& locations)
|
||||||
{
|
{
|
||||||
/* There was some mass-change in the Locations object.
|
/* There was some mass-change in the Locations object.
|
||||||
|
|
||||||
We might be re-adding a location here but it doesn't actually matter
|
We might be re-adding a location here but it doesn't actually matter
|
||||||
for all the locations that the Session takes an interest in.
|
for all the locations that the Session takes an interest in.
|
||||||
*/
|
*/
|
||||||
|
loop_update_connections.drop_connections ();
|
||||||
{
|
mark_update_connections.drop_connections ();
|
||||||
PBD::Unwinder<bool> protect_ignore_skip_updates (_ignore_skips_updates, true);
|
skip_update_connections.drop_connections ();
|
||||||
for (Locations::LocationList::const_iterator i = locations.begin(); i != locations.end(); ++i) {
|
|
||||||
location_added (*i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
update_skips (NULL, false);
|
{
|
||||||
|
PBD::Unwinder<bool> protect_ignore_skip_updates (_ignore_skips_updates, true);
|
||||||
|
for (Locations::LocationList::const_iterator i = locations.begin(); i != locations.end(); ++i) {
|
||||||
|
location_added (*i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
update_skips (NULL, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue