mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-20 13:46:30 +01:00
NO-OP: <tab> after <space> fixes in libs
This commit is contained in:
parent
31815b5f26
commit
2f91bdfa53
63 changed files with 1013 additions and 1020 deletions
|
|
@ -62,5 +62,3 @@ private:
|
||||||
} /* namespace ARDOUR */
|
} /* namespace ARDOUR */
|
||||||
|
|
||||||
#endif /* __ardour_audio_playlist_h__ */
|
#endif /* __ardour_audio_playlist_h__ */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,10 @@ class LIBARDOUR_API IOProcessor : public Processor
|
||||||
IOProcessor (Session&, bool with_input, bool with_output,
|
IOProcessor (Session&, bool with_input, bool with_output,
|
||||||
const std::string& proc_name, const std::string io_name="",
|
const std::string& proc_name, const std::string io_name="",
|
||||||
ARDOUR::DataType default_type = DataType::AUDIO, bool sendish=false);
|
ARDOUR::DataType default_type = DataType::AUDIO, bool sendish=false);
|
||||||
|
|
||||||
IOProcessor (Session&, boost::shared_ptr<IO> input, boost::shared_ptr<IO> output,
|
IOProcessor (Session&, boost::shared_ptr<IO> input, boost::shared_ptr<IO> output,
|
||||||
const std::string& proc_name, ARDOUR::DataType default_type = DataType::AUDIO);
|
const std::string& proc_name, ARDOUR::DataType default_type = DataType::AUDIO);
|
||||||
|
|
||||||
virtual ~IOProcessor ();
|
virtual ~IOProcessor ();
|
||||||
|
|
||||||
bool set_name (const std::string& str);
|
bool set_name (const std::string& str);
|
||||||
|
|
|
||||||
|
|
@ -138,5 +138,3 @@ private:
|
||||||
} /* namespace ARDOUR */
|
} /* namespace ARDOUR */
|
||||||
|
|
||||||
#endif /* __ardour_midi_playlist_h__ */
|
#endif /* __ardour_midi_playlist_h__ */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -100,5 +100,3 @@ private:
|
||||||
} /* namespace ARDOUR */
|
} /* namespace ARDOUR */
|
||||||
|
|
||||||
#endif /* __ardour_note_fixer_h__ */
|
#endif /* __ardour_note_fixer_h__ */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -427,5 +427,3 @@ private:
|
||||||
} /* namespace ARDOUR */
|
} /* namespace ARDOUR */
|
||||||
|
|
||||||
#endif /* __ardour_playlist_h__ */
|
#endif /* __ardour_playlist_h__ */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,7 @@ class LIBARDOUR_API PresentationInfo : public PBD::Stateful
|
||||||
* - type will be set during ctor call
|
* - type will be set during ctor call
|
||||||
*
|
*
|
||||||
* - object created in response to user request
|
* - object created in response to user request
|
||||||
* - numeric order will be set by Session, before adding
|
* - numeric order will be set by Session, before adding to container.
|
||||||
* to container.
|
|
||||||
* - type set during ctor call
|
* - type set during ctor call
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -205,7 +205,7 @@ class LIBARDOUR_API TransportMaster : public PBD::Stateful {
|
||||||
* ARDOURs transport position to the slaves requested transport position.
|
* ARDOURs transport position to the slaves requested transport position.
|
||||||
* </li>
|
* </li>
|
||||||
* <li>TransportMaster::locked() should return true, otherwise Session::no_roll will be called</li>
|
* <li>TransportMaster::locked() should return true, otherwise Session::no_roll will be called</li>
|
||||||
* <li>TransportMaster::starting() should be false, otherwise the transport will not move until it becomes true</li> *
|
* <li>TransportMaster::starting() should be false, otherwise the transport will not move until it becomes true</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
* @param speed - The transport speed requested
|
* @param speed - The transport speed requested
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,10 @@
|
||||||
#ifndef _VESTIGE_H
|
#ifndef _VESTIGE_H
|
||||||
#define _VESTIGE_H
|
#define _VESTIGE_H
|
||||||
|
|
||||||
#define CCONST(a, b, c, d)( ( ( (int) a ) << 24 ) | \
|
#define CCONST(a, b, c, d) (( ((int) a) << 24 ) | \
|
||||||
( ( (int) b ) << 16 ) | \
|
( ((int) b) << 16 ) | \
|
||||||
( ( (int) c ) << 8 ) | \
|
( ((int) c) << 8 ) | \
|
||||||
( ( (int) d ) << 0 ) )
|
( ((int) d) << 0 ))
|
||||||
|
|
||||||
#define audioMasterAutomate 0
|
#define audioMasterAutomate 0
|
||||||
#define audioMasterVersion 1
|
#define audioMasterVersion 1
|
||||||
|
|
|
||||||
|
|
@ -46,5 +46,4 @@ private:
|
||||||
static float _g; // gain factor
|
static float _g; // gain factor
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -261,7 +261,7 @@ AudioRegion::AudioRegion (boost::shared_ptr<const AudioRegion> other)
|
||||||
: Region (other)
|
: Region (other)
|
||||||
, AUDIOREGION_COPY_STATE (other)
|
, AUDIOREGION_COPY_STATE (other)
|
||||||
/* As far as I can see, the _envelope's times are relative to region position, and have nothing
|
/* As far as I can see, the _envelope's times are relative to region position, and have nothing
|
||||||
to do with sources (and hence _start). So when we copy the envelope, we just use the supplied offset.
|
* to do with sources (and hence _start). So when we copy the envelope, we just use the supplied offset.
|
||||||
*/
|
*/
|
||||||
, _envelope (Properties::envelope, boost::shared_ptr<AutomationList> (new AutomationList (*other->_envelope.val(), 0, other->_length)))
|
, _envelope (Properties::envelope, boost::shared_ptr<AutomationList> (new AutomationList (*other->_envelope.val(), 0, other->_length)))
|
||||||
, _automatable (other->session())
|
, _automatable (other->session())
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,6 @@ ExportProfileManager::prepare_for_export ()
|
||||||
++format_it, ++filename_it) {
|
++format_it, ++filename_it) {
|
||||||
|
|
||||||
ExportFilenamePtr filename = (*filename_it)->filename;
|
ExportFilenamePtr filename = (*filename_it)->filename;
|
||||||
// filename->include_timespan = (ts_list->size() > 1); Disabled for now...
|
|
||||||
|
|
||||||
boost::shared_ptr<BroadcastInfo> b;
|
boost::shared_ptr<BroadcastInfo> b;
|
||||||
if ((*format_it)->format->has_broadcast_info()) {
|
if ((*format_it)->format->has_broadcast_info()) {
|
||||||
|
|
@ -943,8 +942,6 @@ ExportProfileManager::check_config (boost::shared_ptr<Warnings> warnings,
|
||||||
|
|
||||||
/* Check filenames */
|
/* Check filenames */
|
||||||
|
|
||||||
// filename->include_timespan = (timespans->size() > 1); Disabled for now...
|
|
||||||
|
|
||||||
std::list<string> paths;
|
std::list<string> paths;
|
||||||
build_filenames(paths, filename, timespans, channel_config, format);
|
build_filenames(paths, filename, timespans, channel_config, format);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1384,8 +1384,6 @@ IO::enable_connecting ()
|
||||||
void
|
void
|
||||||
IO::bundle_changed (Bundle::Change /*c*/)
|
IO::bundle_changed (Bundle::Change /*c*/)
|
||||||
{
|
{
|
||||||
/* XXX */
|
|
||||||
// connect_input_ports_to_bundle (_input_bundle, this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -637,7 +637,7 @@ PluginManager::ladspa_discover (string path)
|
||||||
{
|
{
|
||||||
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Checking for LADSPA plugin at %1\n", path));
|
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Checking for LADSPA plugin at %1\n", path));
|
||||||
|
|
||||||
Glib::Module module(path);
|
Glib::Module module (path);
|
||||||
const LADSPA_Descriptor *descriptor;
|
const LADSPA_Descriptor *descriptor;
|
||||||
LADSPA_Descriptor_Function dfunc;
|
LADSPA_Descriptor_Function dfunc;
|
||||||
void* func = 0;
|
void* func = 0;
|
||||||
|
|
@ -739,9 +739,6 @@ PluginManager::ladspa_discover (string path)
|
||||||
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Found LADSPA plugin, name: %1, Inputs: %2, Outputs: %3\n", info->name, info->n_inputs, info->n_outputs));
|
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Found LADSPA plugin, name: %1, Inputs: %2, Outputs: %3\n", info->name, info->n_inputs, info->n_outputs));
|
||||||
}
|
}
|
||||||
|
|
||||||
// GDB WILL NOT LIKE YOU IF YOU DO THIS
|
|
||||||
// dlclose (module);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -260,6 +260,7 @@ RCConfiguration::set_variables (const XMLNode& node)
|
||||||
if (var.set_from_node (node)) { \
|
if (var.set_from_node (node)) { \
|
||||||
ParameterChanged (name); \
|
ParameterChanged (name); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) \
|
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) \
|
||||||
if (var.set_from_node (node)) { \
|
if (var.set_from_node (node)) { \
|
||||||
ParameterChanged (name); \
|
ParameterChanged (name); \
|
||||||
|
|
|
||||||
|
|
@ -301,14 +301,14 @@ Region::Region (boost::shared_ptr<const Region> other)
|
||||||
_quarter_note = other->_quarter_note;
|
_quarter_note = other->_quarter_note;
|
||||||
|
|
||||||
/* sync pos is relative to start of file. our start-in-file is now zero,
|
/* sync pos is relative to start of file. our start-in-file is now zero,
|
||||||
so set our sync position to whatever the the difference between
|
* so set our sync position to whatever the the difference between
|
||||||
_start and _sync_pos was in the other region.
|
* _start and _sync_pos was in the other region.
|
||||||
|
*
|
||||||
result is that our new sync pos points to the same point in our source(s)
|
* result is that our new sync pos points to the same point in our source(s)
|
||||||
as the sync in the other region did in its source(s).
|
* as the sync in the other region did in its source(s).
|
||||||
|
*
|
||||||
since we start at zero in our source(s), it is not possible to use a sync point that
|
* since we start at zero in our source(s), it is not possible to use a sync point that
|
||||||
is before the start. reset it to _start if that was true in the other region.
|
* is before the start. reset it to _start if that was true in the other region.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (other->sync_marked()) {
|
if (other->sync_marked()) {
|
||||||
|
|
@ -329,10 +329,10 @@ Region::Region (boost::shared_ptr<const Region> other)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Create a new Region from part of an existing one.
|
/** Create a new Region from part of an existing one.
|
||||||
|
*
|
||||||
the start within \a other is given by \a offset
|
* the start within \a other is given by \a offset
|
||||||
(i.e. relative to the start of \a other's sources, the start is \a offset + \a other.start()
|
* (i.e. relative to the start of \a other's sources, the start is \a offset + \a other.start()
|
||||||
*/
|
*/
|
||||||
Region::Region (boost::shared_ptr<const Region> other, MusicSample offset)
|
Region::Region (boost::shared_ptr<const Region> other, MusicSample offset)
|
||||||
: SessionObject(other->session(), other->name())
|
: SessionObject(other->session(), other->name())
|
||||||
, _type (other->data_type())
|
, _type (other->data_type())
|
||||||
|
|
@ -369,8 +369,8 @@ Region::Region (boost::shared_ptr<const Region> other, MusicSample offset)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if the other region had a distinct sync point
|
/* if the other region had a distinct sync point
|
||||||
set, then continue to use it as best we can.
|
* set, then continue to use it as best we can.
|
||||||
otherwise, reset sync point back to start.
|
* otherwise, reset sync point back to start.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (other->sync_marked()) {
|
if (other->sync_marked()) {
|
||||||
|
|
@ -470,7 +470,7 @@ Region::set_length (samplecnt_t len, const int32_t sub_num)
|
||||||
if (_length != len && len != 0) {
|
if (_length != len && len != 0) {
|
||||||
|
|
||||||
/* check that the current _position wouldn't make the new
|
/* check that the current _position wouldn't make the new
|
||||||
length impossible.
|
* length impossible.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (max_samplepos - len < _position) {
|
if (max_samplepos - len < _position) {
|
||||||
|
|
@ -565,7 +565,7 @@ void
|
||||||
Region::special_set_position (samplepos_t pos)
|
Region::special_set_position (samplepos_t pos)
|
||||||
{
|
{
|
||||||
/* this is used when creating a whole file region as
|
/* this is used when creating a whole file region as
|
||||||
a way to store its "natural" or "captured" position.
|
* a way to store its "natural" or "captured" position.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_position = _position;
|
_position = _position;
|
||||||
|
|
@ -606,7 +606,7 @@ Region::update_after_tempo_map_change (bool send)
|
||||||
set_position_internal (pos, false, 0);
|
set_position_internal (pos, false, 0);
|
||||||
|
|
||||||
/* do this even if the position is the same. this helps out
|
/* do this even if the position is the same. this helps out
|
||||||
a GUI that has moved its representation already.
|
* a GUI that has moved its representation already.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (send) {
|
if (send) {
|
||||||
|
|
@ -622,7 +622,7 @@ Region::set_position (samplepos_t pos, int32_t sub_num)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* do this even if the position is the same. this helps out
|
/* do this even if the position is the same. this helps out
|
||||||
a GUI that has moved its representation already.
|
* a GUI that has moved its representation already.
|
||||||
*/
|
*/
|
||||||
PropertyChange p_and_l;
|
PropertyChange p_and_l;
|
||||||
|
|
||||||
|
|
@ -651,8 +651,8 @@ void
|
||||||
Region::set_position_internal (samplepos_t pos, bool allow_bbt_recompute, const int32_t sub_num)
|
Region::set_position_internal (samplepos_t pos, bool allow_bbt_recompute, const int32_t sub_num)
|
||||||
{
|
{
|
||||||
/* We emit a change of Properties::position even if the position hasn't changed
|
/* We emit a change of Properties::position even if the position hasn't changed
|
||||||
(see Region::set_position), so we must always set this up so that
|
* (see Region::set_position), so we must always set this up so that
|
||||||
e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
|
* e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
|
||||||
*/
|
*/
|
||||||
_last_position = _position;
|
_last_position = _position;
|
||||||
|
|
||||||
|
|
@ -667,9 +667,9 @@ Region::set_position_internal (samplepos_t pos, bool allow_bbt_recompute, const
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check that the new _position wouldn't make the current
|
/* check that the new _position wouldn't make the current
|
||||||
length impossible - if so, change the length.
|
* length impossible - if so, change the length.
|
||||||
|
*
|
||||||
XXX is this the right thing to do?
|
* XXX is this the right thing to do?
|
||||||
*/
|
*/
|
||||||
if (max_samplepos - _length < _position) {
|
if (max_samplepos - _length < _position) {
|
||||||
_last_length = _length;
|
_last_length = _length;
|
||||||
|
|
@ -686,7 +686,7 @@ Region::set_position_music (double qn)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* do this even if the position is the same. this helps out
|
/* do this even if the position is the same. this helps out
|
||||||
a GUI that has moved its representation already.
|
* a GUI that has moved its representation already.
|
||||||
*/
|
*/
|
||||||
PropertyChange p_and_l;
|
PropertyChange p_and_l;
|
||||||
|
|
||||||
|
|
@ -710,8 +710,8 @@ void
|
||||||
Region::set_position_music_internal (double qn)
|
Region::set_position_music_internal (double qn)
|
||||||
{
|
{
|
||||||
/* We emit a change of Properties::position even if the position hasn't changed
|
/* We emit a change of Properties::position even if the position hasn't changed
|
||||||
(see Region::set_position), so we must always set this up so that
|
* (see Region::set_position), so we must always set this up so that
|
||||||
e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
|
* e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
|
||||||
*/
|
*/
|
||||||
_last_position = _position;
|
_last_position = _position;
|
||||||
|
|
||||||
|
|
@ -720,9 +720,9 @@ Region::set_position_music_internal (double qn)
|
||||||
_quarter_note = qn;
|
_quarter_note = qn;
|
||||||
|
|
||||||
/* check that the new _position wouldn't make the current
|
/* check that the new _position wouldn't make the current
|
||||||
length impossible - if so, change the length.
|
* length impossible - if so, change the length.
|
||||||
|
*
|
||||||
XXX is this the right thing to do?
|
* XXX is this the right thing to do?
|
||||||
*/
|
*/
|
||||||
if (max_samplepos - _length < _position) {
|
if (max_samplepos - _length < _position) {
|
||||||
_last_length = _length;
|
_last_length = _length;
|
||||||
|
|
@ -747,9 +747,9 @@ Region::set_initial_position (samplepos_t pos)
|
||||||
_position = pos;
|
_position = pos;
|
||||||
|
|
||||||
/* check that the new _position wouldn't make the current
|
/* check that the new _position wouldn't make the current
|
||||||
length impossible - if so, change the length.
|
* length impossible - if so, change the length.
|
||||||
|
*
|
||||||
XXX is this the right thing to do?
|
* XXX is this the right thing to do?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (max_samplepos - _length < _position) {
|
if (max_samplepos - _length < _position) {
|
||||||
|
|
@ -764,7 +764,7 @@ Region::set_initial_position (samplepos_t pos)
|
||||||
|
|
||||||
|
|
||||||
/* do this even if the position is the same. this helps out
|
/* do this even if the position is the same. this helps out
|
||||||
a GUI that has moved its representation already.
|
* a GUI that has moved its representation already.
|
||||||
*/
|
*/
|
||||||
send_change (Properties::position);
|
send_change (Properties::position);
|
||||||
}
|
}
|
||||||
|
|
@ -824,8 +824,8 @@ Region::set_start (samplepos_t pos)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* This just sets the start, nothing else. It effectively shifts
|
/* This just sets the start, nothing else. It effectively shifts
|
||||||
the contents of the Region within the overall extent of the Source,
|
* the contents of the Region within the overall extent of the Source,
|
||||||
without changing the Region's position or length
|
* without changing the Region's position or length
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (_start != pos) {
|
if (_start != pos) {
|
||||||
|
|
@ -972,7 +972,6 @@ Region::modify_end (samplepos_t new_endpoint, bool reset_fade, const int32_t sub
|
||||||
/** @param new_endpoint New region end point, such that, for example,
|
/** @param new_endpoint New region end point, such that, for example,
|
||||||
* a region at 0 of length 10 has an endpoint of 9.
|
* a region at 0 of length 10 has an endpoint of 9.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void
|
void
|
||||||
Region::trim_end (samplepos_t new_endpoint, const int32_t sub_num)
|
Region::trim_end (samplepos_t new_endpoint, const int32_t sub_num)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1616,11 +1616,6 @@ Session::track_playlist_changed (boost::weak_ptr<Track> wp)
|
||||||
bool
|
bool
|
||||||
Session::record_enabling_legal () const
|
Session::record_enabling_legal () const
|
||||||
{
|
{
|
||||||
/* this used to be in here, but survey says.... we don't need to restrict it */
|
|
||||||
// if (record_status() == Recording) {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (Config->get_all_safe()) {
|
if (Config->get_all_safe()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -2010,9 +2005,9 @@ 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.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,7 @@ SessionConfiguration::set_variables (const XMLNode& node)
|
||||||
if (var.set_from_node (node)) { \
|
if (var.set_from_node (node)) { \
|
||||||
ParameterChanged (name); \
|
ParameterChanged (name); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) \
|
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) \
|
||||||
if (var.set_from_node (node)) { \
|
if (var.set_from_node (node)) { \
|
||||||
ParameterChanged (name); \
|
ParameterChanged (name); \
|
||||||
|
|
|
||||||
|
|
@ -554,7 +554,7 @@ Session::send_midi_time_code_for_cycle (samplepos_t start_sample, samplepos_t en
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const samplepos_t msg_time = rint(outbound_mtc_timecode_frame + (quarter_frame_duration * next_quarter_frame_to_send));
|
const samplepos_t msg_time = rint (outbound_mtc_timecode_frame + (quarter_frame_duration * next_quarter_frame_to_send));
|
||||||
|
|
||||||
// This message must fall within this block or something is broken
|
// This message must fall within this block or something is broken
|
||||||
assert (msg_time >= start_sample);
|
assert (msg_time >= start_sample);
|
||||||
|
|
@ -642,10 +642,9 @@ Session::mmc_step_timeout ()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/* *********************************************************************
|
||||||
OUTBOUND SYSTEM COMMON STUFF
|
* OUTBOUND SYSTEM COMMON STUFF
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Session::send_song_position_pointer (samplepos_t)
|
Session::send_song_position_pointer (samplepos_t)
|
||||||
|
|
|
||||||
|
|
@ -1426,10 +1426,10 @@ TempoMap::recompute_tempi (Metrics& metrics)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* tempos must be positioned correctly.
|
/* tempos must be positioned correctly.
|
||||||
the current approach is to use a meter's bbt time as its base position unit.
|
* the current approach is to use a meter's bbt time as its base position unit.
|
||||||
an audio-locked meter requires a recomputation of pulse and beat (but not bbt),
|
* an audio-locked meter requires a recomputation of pulse and beat (but not bbt),
|
||||||
while a music-locked meter requires recomputations of sample pulse and beat (but not bbt)
|
* while a music-locked meter requires recomputations of sample pulse and beat (but not bbt)
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
TempoMap::recompute_meters (Metrics& metrics)
|
TempoMap::recompute_meters (Metrics& metrics)
|
||||||
{
|
{
|
||||||
|
|
@ -3383,8 +3383,9 @@ TempoMap::gui_stretch_tempo (TempoSection* ts, const samplepos_t sample, const s
|
||||||
TempoSection* next_t = next_tempo_section_locked (future_map, ts_copy);
|
TempoSection* next_t = next_tempo_section_locked (future_map, ts_copy);
|
||||||
TempoSection* prev_to_ts_copy = previous_tempo_section_locked (future_map, ts_copy);
|
TempoSection* prev_to_ts_copy = previous_tempo_section_locked (future_map, ts_copy);
|
||||||
/* the change in samples is the result of changing the slope of at most 2 previous tempo sections.
|
/* the change in samples is the result of changing the slope of at most 2 previous tempo sections.
|
||||||
constant to constant is straightforward, as the tempo prev to ts_copy has constant slope.
|
* constant to constant is straightforward, as the tempo prev to ts_copy has constant slope.
|
||||||
*/ double contribution = 0.0;
|
*/
|
||||||
|
double contribution = 0.0;
|
||||||
if (next_t && prev_to_ts_copy && prev_to_ts_copy->type() == TempoSection::Ramp) {
|
if (next_t && prev_to_ts_copy && prev_to_ts_copy->type() == TempoSection::Ramp) {
|
||||||
contribution = (ts_copy->pulse() - prev_to_ts_copy->pulse()) / (double) (next_t->pulse() - prev_to_ts_copy->pulse());
|
contribution = (ts_copy->pulse() - prev_to_ts_copy->pulse()) / (double) (next_t->pulse() - prev_to_ts_copy->pulse());
|
||||||
}
|
}
|
||||||
|
|
@ -3951,13 +3952,16 @@ TempoMap::round_to_quarter_note_subdivision (samplepos_t fr, int sub_num, RoundM
|
||||||
ticks += ticks_one_subdivisions_worth - mod;
|
ticks += ticks_one_subdivisions_worth - mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
//NOTE: this code intentionally limits the rounding so we don't advance to the next beat.
|
/* NOTE: this code intentionally limits the rounding so we don't advance to the next beat.
|
||||||
// For the purposes of "jump-to-next-subdivision", we DO want to advance to the next beat.
|
* For the purposes of "jump-to-next-subdivision", we DO want to advance to the next beat.
|
||||||
// And since the "prev" direction DOES move beats, I assume this code is unintended.
|
* And since the "prev" direction DOES move beats, I assume this code is unintended.
|
||||||
// But I'm keeping it around, until we determine there are no terrible consequences.
|
* But I'm keeping it around, commened out, until we determine there are no terrible consequences.
|
||||||
// if (ticks >= BBT_Time::ticks_per_beat) {
|
*/
|
||||||
// ticks -= BBT_Time::ticks_per_beat;
|
#if 0
|
||||||
// }
|
if (ticks >= BBT_Time::ticks_per_beat) {
|
||||||
|
ticks -= BBT_Time::ticks_per_beat;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} else if (dir < 0) {
|
} else if (dir < 0) {
|
||||||
|
|
||||||
|
|
@ -4337,8 +4341,8 @@ TempoMap::next_tempo_section_locked (const Metrics& metrics, TempoSection* ts) c
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* don't use this to calculate length (the tempo is only correct for this sample).
|
/* don't use this to calculate length (the tempo is only correct for this sample).
|
||||||
do that stuff based on the beat_at_sample and sample_at_beat api
|
* do that stuff based on the beat_at_sample and sample_at_beat api
|
||||||
*/
|
*/
|
||||||
double
|
double
|
||||||
TempoMap::samples_per_quarter_note_at (const samplepos_t sample, const samplecnt_t sr) const
|
TempoMap::samples_per_quarter_note_at (const samplepos_t sample, const samplecnt_t sr) const
|
||||||
{
|
{
|
||||||
|
|
@ -4856,8 +4860,8 @@ TempoMap::samplepos_plus_bbt (samplepos_t pos, BBT_Time op) const
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Count the number of beats that are equivalent to distance when going forward,
|
/** Count the number of beats that are equivalent to distance when going forward,
|
||||||
starting at pos.
|
* starting at pos.
|
||||||
*/
|
*/
|
||||||
Temporal::Beats
|
Temporal::Beats
|
||||||
TempoMap::framewalk_to_qn (samplepos_t pos, samplecnt_t distance) const
|
TempoMap::framewalk_to_qn (samplepos_t pos, samplecnt_t distance) const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,6 @@ private:
|
||||||
|
|
||||||
std::ostream& operator<< (std::ostream& str, const Backtrace& bt) { return bt.print (str); }
|
std::ostream& operator<< (std::ostream& str, const Backtrace& bt) { return bt.print (str); }
|
||||||
|
|
||||||
|
|
||||||
Backtrace::Backtrace()
|
Backtrace::Backtrace()
|
||||||
{
|
{
|
||||||
#ifdef HAVE_EXECINFO
|
#ifdef HAVE_EXECINFO
|
||||||
|
|
@ -83,7 +82,6 @@ struct BTPair {
|
||||||
|
|
||||||
BTPair (Backtrace* bt) : ref (bt), rel (0) {}
|
BTPair (Backtrace* bt) : ref (bt), rel (0) {}
|
||||||
~BTPair () { }
|
~BTPair () { }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream& str, const BTPair& btp) {
|
std::ostream& operator<<(std::ostream& str, const BTPair& btp) {
|
||||||
|
|
@ -121,7 +119,8 @@ typedef std::map<volatile void const*,const char*> IPointerMap;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
static PointerMap* _sptrs;
|
static PointerMap* _sptrs;
|
||||||
PointerMap& sptrs() {
|
PointerMap& sptrs()
|
||||||
|
{
|
||||||
if (_sptrs == 0) {
|
if (_sptrs == 0) {
|
||||||
_sptrs = new PointerMap;
|
_sptrs = new PointerMap;
|
||||||
}
|
}
|
||||||
|
|
@ -129,7 +128,8 @@ PointerMap& sptrs() {
|
||||||
}
|
}
|
||||||
|
|
||||||
static IPointerMap* _interesting_pointers;
|
static IPointerMap* _interesting_pointers;
|
||||||
IPointerMap& interesting_pointers() {
|
IPointerMap& interesting_pointers()
|
||||||
|
{
|
||||||
if (_interesting_pointers == 0) {
|
if (_interesting_pointers == 0) {
|
||||||
_interesting_pointers = new IPointerMap;
|
_interesting_pointers = new IPointerMap;
|
||||||
}
|
}
|
||||||
|
|
@ -137,7 +137,8 @@ IPointerMap& interesting_pointers() {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Glib::Threads::Mutex* _the_lock;
|
static Glib::Threads::Mutex* _the_lock;
|
||||||
static Glib::Threads::Mutex& the_lock() {
|
static Glib::Threads::Mutex& the_lock()
|
||||||
|
{
|
||||||
if (_the_lock == 0) {
|
if (_the_lock == 0) {
|
||||||
_the_lock = new Glib::Threads::Mutex;
|
_the_lock = new Glib::Threads::Mutex;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -158,15 +158,16 @@ FPU::FPU ()
|
||||||
return;
|
return;
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* Get the CPU vendor just for kicks */
|
/* Get the CPU vendor just for kicks
|
||||||
|
*
|
||||||
// __cpuid with an InfoType argument of 0 returns the number of
|
* __cpuid with an InfoType argument of 0 returns the number of
|
||||||
// valid Ids in CPUInfo[0] and the CPU identification string in
|
* valid Ids in CPUInfo[0] and the CPU identification string in
|
||||||
// the other three array elements. The CPU identification string is
|
* the other three array elements. The CPU identification string is
|
||||||
// not in linear order. The code below arranges the information
|
* not in linear order. The code below arranges the information
|
||||||
// in a human readable form. The human readable order is CPUInfo[1] |
|
* in a human readable form. The human readable order is CPUInfo[1] |
|
||||||
// CPUInfo[3] | CPUInfo[2]. CPUInfo[2] and CPUInfo[3] are swapped
|
* CPUInfo[3] | CPUInfo[2]. CPUInfo[2] and CPUInfo[3] are swapped
|
||||||
// before using memcpy to copy these three array elements to cpu_string.
|
* before using memcpy to copy these three array elements to cpu_string.
|
||||||
|
*/
|
||||||
|
|
||||||
int cpu_info[4];
|
int cpu_info[4];
|
||||||
char cpu_string[48];
|
char cpu_string[48];
|
||||||
|
|
|
||||||
|
|
@ -42,11 +42,11 @@
|
||||||
|
|
||||||
namespace StringPrivate
|
namespace StringPrivate
|
||||||
{
|
{
|
||||||
// the actual composition class - using string::compose is cleaner, so we
|
// the actual composition class - using string::compose is cleaner, so we
|
||||||
// hide it here
|
// hide it here
|
||||||
class LIBPBD_API Composition
|
class LIBPBD_API Composition
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// initialize and prepare format string on the form "text %1 text %2 etc."
|
// initialize and prepare format string on the form "text %1 text %2 etc."
|
||||||
explicit Composition(std::string fmt);
|
explicit Composition(std::string fmt);
|
||||||
|
|
||||||
|
|
@ -61,7 +61,7 @@ namespace StringPrivate
|
||||||
// compose and return string
|
// compose and return string
|
||||||
std::string str() const;
|
std::string str() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::ostringstream os;
|
std::ostringstream os;
|
||||||
int arg_no;
|
int arg_no;
|
||||||
|
|
||||||
|
|
@ -76,11 +76,11 @@ namespace StringPrivate
|
||||||
// with positions for each of the various %?s
|
// with positions for each of the various %?s
|
||||||
typedef std::multimap<int, output_list::iterator> specification_map;
|
typedef std::multimap<int, output_list::iterator> specification_map;
|
||||||
specification_map specs;
|
specification_map specs;
|
||||||
};
|
};
|
||||||
|
|
||||||
// helper for converting spec string numbers
|
// helper for converting spec string numbers
|
||||||
inline int char_to_int(char c)
|
inline int char_to_int(char c)
|
||||||
{
|
{
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case '0': return 0;
|
case '0': return 0;
|
||||||
case '1': return 1;
|
case '1': return 1;
|
||||||
|
|
@ -94,10 +94,10 @@ namespace StringPrivate
|
||||||
case '9': return 9;
|
case '9': return 9;
|
||||||
default: return -1000;
|
default: return -1000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool is_number(int n)
|
inline bool is_number(int n)
|
||||||
{
|
{
|
||||||
switch (n) {
|
switch (n) {
|
||||||
case '0':
|
case '0':
|
||||||
case '1':
|
case '1':
|
||||||
|
|
@ -114,11 +114,10 @@ namespace StringPrivate
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// implementation of class Composition
|
||||||
// implementation of class Composition
|
template <typename T>
|
||||||
template <typename T>
|
|
||||||
inline Composition &Composition::arg(const T &obj)
|
inline Composition &Composition::arg(const T &obj)
|
||||||
{
|
{
|
||||||
os << obj;
|
os << obj;
|
||||||
|
|
@ -142,8 +141,8 @@ namespace StringPrivate
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Composition &Composition::arg(const std::string &str)
|
inline Composition &Composition::arg(const std::string &str)
|
||||||
{
|
{
|
||||||
/* specialization to ensure that empty strings show up
|
/* specialization to ensure that empty strings show up
|
||||||
* in the output
|
* in the output
|
||||||
*/
|
*/
|
||||||
|
|
@ -158,10 +157,10 @@ namespace StringPrivate
|
||||||
++arg_no;
|
++arg_no;
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Composition &Composition::arg(char const * const cstr)
|
inline Composition &Composition::arg(char const * const cstr)
|
||||||
{
|
{
|
||||||
/* specialization to ensure that empty C strings show up
|
/* specialization to ensure that empty C strings show up
|
||||||
* in the output
|
* in the output
|
||||||
*/
|
*/
|
||||||
|
|
@ -176,11 +175,11 @@ namespace StringPrivate
|
||||||
++arg_no;
|
++arg_no;
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Composition::Composition(std::string fmt)
|
inline Composition::Composition(std::string fmt)
|
||||||
: arg_no(1)
|
: arg_no(1)
|
||||||
{
|
{
|
||||||
std::string::size_type b = 0, i = 0;
|
std::string::size_type b = 0, i = 0;
|
||||||
|
|
||||||
// fill in output with the strings between the %1 %2 %3 etc. and
|
// fill in output with the strings between the %1 %2 %3 etc. and
|
||||||
|
|
@ -221,12 +220,13 @@ namespace StringPrivate
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i - b > 0) // add the rest of the string
|
if (i - b > 0) { // add the rest of the string
|
||||||
output.push_back(fmt.substr(b, i - b));
|
output.push_back(fmt.substr(b, i - b));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inline std::string Composition::str() const
|
inline std::string Composition::str() const
|
||||||
{
|
{
|
||||||
// assemble string
|
// assemble string
|
||||||
std::string str;
|
std::string str;
|
||||||
|
|
||||||
|
|
@ -235,201 +235,198 @@ namespace StringPrivate
|
||||||
str += *i;
|
str += *i;
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// now for the real thing(s)
|
// now for the real thing(s)
|
||||||
//namespace PBD
|
|
||||||
//{
|
// a series of functions which accept a format string on the form "text %1
|
||||||
// a series of functions which accept a format string on the form "text %1
|
// more %2 less %3" and a number of templated parameters and spits out the
|
||||||
// more %2 less %3" and a number of templated parameters and spits out the
|
// composited string
|
||||||
// composited string
|
template <typename T1>
|
||||||
template <typename T1>
|
inline std::string string_compose(const std::string &fmt, const T1 &o1)
|
||||||
inline std::string string_compose(const std::string &fmt, const T1 &o1)
|
{
|
||||||
{
|
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1);
|
c.arg(o1);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2>
|
template <typename T1, typename T2>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2)
|
const T1 &o1, const T2 &o2)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2);
|
c.arg(o1).arg(o2);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3>
|
template <typename T1, typename T2, typename T3>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3)
|
const T1 &o1, const T2 &o2, const T3 &o3)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3);
|
c.arg(o1).arg(o2).arg(o3);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4>
|
template <typename T1, typename T2, typename T3, typename T4>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4)
|
const T4 &o4)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4);
|
c.arg(o1).arg(o2).arg(o3).arg(o4);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5>
|
template <typename T1, typename T2, typename T3, typename T4, typename T5>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5)
|
const T4 &o4, const T5 &o5)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5);
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6>
|
typename T6>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6)
|
const T4 &o4, const T5 &o5, const T6 &o6)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6);
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7>
|
typename T6, typename T7>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7)
|
const T7 &o7)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7);
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8>
|
typename T6, typename T7, typename T8>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8)
|
const T7 &o7, const T8 &o8)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8);
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8, typename T9>
|
typename T6, typename T7, typename T8, typename T9>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8, const T9 &o9)
|
const T7 &o7, const T8 &o8, const T9 &o9)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9);
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8, typename T9, typename T10>
|
typename T6, typename T7, typename T8, typename T9, typename T10>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8, const T9 &o9,
|
const T7 &o7, const T8 &o8, const T9 &o9,
|
||||||
const T10 &o10)
|
const T10 &o10)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
||||||
.arg(o10);
|
.arg(o10);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8, typename T9, typename T10,
|
typename T6, typename T7, typename T8, typename T9, typename T10,
|
||||||
typename T11>
|
typename T11>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8, const T9 &o9,
|
const T7 &o7, const T8 &o8, const T9 &o9,
|
||||||
const T10 &o10, const T11 &o11)
|
const T10 &o10, const T11 &o11)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
||||||
.arg(o10).arg(o11);
|
.arg(o10).arg(o11);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8, typename T9, typename T10,
|
typename T6, typename T7, typename T8, typename T9, typename T10,
|
||||||
typename T11, typename T12>
|
typename T11, typename T12>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8, const T9 &o9,
|
const T7 &o7, const T8 &o8, const T9 &o9,
|
||||||
const T10 &o10, const T11 &o11, const T12 &o12)
|
const T10 &o10, const T11 &o11, const T12 &o12)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
||||||
.arg(o10).arg(o11).arg(o12);
|
.arg(o10).arg(o11).arg(o12);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8, typename T9, typename T10,
|
typename T6, typename T7, typename T8, typename T9, typename T10,
|
||||||
typename T11, typename T12, typename T13>
|
typename T11, typename T12, typename T13>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8, const T9 &o9,
|
const T7 &o7, const T8 &o8, const T9 &o9,
|
||||||
const T10 &o10, const T11 &o11, const T12 &o12,
|
const T10 &o10, const T11 &o11, const T12 &o12,
|
||||||
const T13 &o13)
|
const T13 &o13)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
||||||
.arg(o10).arg(o11).arg(o12).arg(o13);
|
.arg(o10).arg(o11).arg(o12).arg(o13);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8, typename T9, typename T10,
|
typename T6, typename T7, typename T8, typename T9, typename T10,
|
||||||
typename T11, typename T12, typename T13, typename T14>
|
typename T11, typename T12, typename T13, typename T14>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8, const T9 &o9,
|
const T7 &o7, const T8 &o8, const T9 &o9,
|
||||||
const T10 &o10, const T11 &o11, const T12 &o12,
|
const T10 &o10, const T11 &o11, const T12 &o12,
|
||||||
const T13 &o13, const T14 &o14)
|
const T13 &o13, const T14 &o14)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
||||||
.arg(o10).arg(o11).arg(o12).arg(o13).arg(o14);
|
.arg(o10).arg(o11).arg(o12).arg(o13).arg(o14);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
||||||
typename T6, typename T7, typename T8, typename T9, typename T10,
|
typename T6, typename T7, typename T8, typename T9, typename T10,
|
||||||
typename T11, typename T12, typename T13, typename T14,
|
typename T11, typename T12, typename T13, typename T14,
|
||||||
typename T15>
|
typename T15>
|
||||||
inline std::string string_compose(const std::string &fmt,
|
inline std::string string_compose(const std::string &fmt,
|
||||||
const T1 &o1, const T2 &o2, const T3 &o3,
|
const T1 &o1, const T2 &o2, const T3 &o3,
|
||||||
const T4 &o4, const T5 &o5, const T6 &o6,
|
const T4 &o4, const T5 &o5, const T6 &o6,
|
||||||
const T7 &o7, const T8 &o8, const T9 &o9,
|
const T7 &o7, const T8 &o8, const T9 &o9,
|
||||||
const T10 &o10, const T11 &o11, const T12 &o12,
|
const T10 &o10, const T11 &o11, const T12 &o12,
|
||||||
const T13 &o13, const T14 &o14, const T15 &o15)
|
const T13 &o13, const T14 &o14, const T15 &o15)
|
||||||
{
|
{
|
||||||
StringPrivate::Composition c(fmt);
|
StringPrivate::Composition c(fmt);
|
||||||
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9)
|
||||||
.arg(o10).arg(o11).arg(o12).arg(o13).arg(o14).arg(o15);
|
.arg(o10).arg(o11).arg(o12).arg(o13).arg(o14).arg(o15);
|
||||||
return c.str();
|
return c.str();
|
||||||
}
|
}
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
#endif // STRING_COMPOSE_H
|
#endif // STRING_COMPOSE_H
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OPEN_MAX
|
#ifndef OPEN_MAX
|
||||||
#define OPEN_MAX 32
|
#define OPEN_MAX (32)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
@ -166,7 +166,7 @@ struct dirent
|
||||||
{
|
{
|
||||||
long d_ino; // Always zero
|
long d_ino; // Always zero
|
||||||
unsigned short d_reclen; // Always zero
|
unsigned short d_reclen; // Always zero
|
||||||
unsigned short d_namlen; // Length of name in d_name
|
unsigned shor d_namlen; // Length of name in d_name
|
||||||
char d_name[FILENAME_MAX]; // File name
|
char d_name[FILENAME_MAX]; // File name
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,11 @@ namespace PBD {
|
||||||
template<class T>
|
template<class T>
|
||||||
class /*LIBPBD_API*/ RingBuffer
|
class /*LIBPBD_API*/ RingBuffer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RingBuffer (guint sz) {
|
RingBuffer (guint sz) {
|
||||||
// size = ffs(sz); /* find first [bit] set is a single inlined assembly instruction. But it looks like the API rounds up so... */
|
#if 0
|
||||||
|
size = ffs(sz); /* find first [bit] set is a single inlined assembly instruction. But it looks like the API rounds up so... */
|
||||||
|
#endif
|
||||||
guint power_of_two;
|
guint power_of_two;
|
||||||
for (power_of_two = 1; 1U<<power_of_two < sz; power_of_two++) {}
|
for (power_of_two = 1; 1U<<power_of_two < sz; power_of_two++) {}
|
||||||
size = 1<<power_of_two;
|
size = 1<<power_of_two;
|
||||||
|
|
@ -114,7 +116,7 @@ class /*LIBPBD_API*/ RingBuffer
|
||||||
guint get_read_idx () const { return g_atomic_int_get (&read_idx); }
|
guint get_read_idx () const { return g_atomic_int_get (&read_idx); }
|
||||||
guint bufsize () const { return size; }
|
guint bufsize () const { return size; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
T *buf;
|
T *buf;
|
||||||
guint size;
|
guint size;
|
||||||
mutable gint write_idx;
|
mutable gint write_idx;
|
||||||
|
|
|
||||||
|
|
@ -29,4 +29,3 @@
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,5 +87,3 @@ tokenize(const StringType& str,
|
||||||
} // namespace PBD
|
} // namespace PBD
|
||||||
|
|
||||||
#endif // PBD_TOKENIZER
|
#endif // PBD_TOKENIZER
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -665,8 +665,7 @@ XMLNode::remove_nodes_and_delete(const string& propname, const string& val)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLNode::remove_node_and_delete(const string& n, const string& propname,
|
XMLNode::remove_node_and_delete(const string& n, const string& propname, const string& val)
|
||||||
const string& val)
|
|
||||||
{
|
{
|
||||||
for (XMLNodeIterator i = _children.begin(); i != _children.end(); ++i) {
|
for (XMLNodeIterator i = _children.begin(); i != _children.end(); ++i) {
|
||||||
if ((*i)->name() == n) {
|
if ((*i)->name() == n) {
|
||||||
|
|
|
||||||
|
|
@ -531,8 +531,10 @@ FPGUI::build_proj_action_combo (Gtk::ComboBox& cb, FaderPort::ButtonState bs)
|
||||||
actions.push_back (make_pair (string("Toggle Meterbridge"), string(X_("Common/toggle-meterbridge"))));
|
actions.push_back (make_pair (string("Toggle Meterbridge"), string(X_("Common/toggle-meterbridge"))));
|
||||||
actions.push_back (make_pair (string (_("Zoom to Session")), string (X_("Editor/zoom-to-session"))));
|
actions.push_back (make_pair (string (_("Zoom to Session")), string (X_("Editor/zoom-to-session"))));
|
||||||
|
|
||||||
// actions.push_back (make_pair (string (_("Zoom In")), string (X_("Editor/temporal-zoom-in"))));
|
#if 0
|
||||||
// actions.push_back (make_pair (string (_("Zoom Out")), string (X_("Editor/temporal-zoom-out"))));
|
actions.push_back (make_pair (string (_("Zoom In")), string (X_("Editor/temporal-zoom-in"))));
|
||||||
|
actions.push_back (make_pair (string (_("Zoom Out")), string (X_("Editor/temporal-zoom-out"))));
|
||||||
|
#endif
|
||||||
|
|
||||||
build_action_combo (cb, actions, FaderPort::Proj, bs);
|
build_action_combo (cb, actions, FaderPort::Proj, bs);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -109,10 +109,11 @@ DeviceInfo::logic_control_buttons ()
|
||||||
void
|
void
|
||||||
DeviceInfo::shared_buttons ()
|
DeviceInfo::shared_buttons ()
|
||||||
{
|
{
|
||||||
// US-2499 button notes:
|
/* US-2499 button notes:
|
||||||
// CHAN button sends nothing. it inititates a dumb 0..127 knob mode for the 24 knobs
|
* CHAN button sends nothing. it inititates a dumb 0..127 knob mode for the 24 knobs
|
||||||
// PAN sends the regular pan/surround message. this tells our strips to send the pan knob position
|
* PAN sends the regular pan/surround message. this tells our strips to send the pan knob position
|
||||||
// AUX1-6 all send the same 0x29 + 0x21 message, I believe the surface uses this to captures knob info, somehow
|
* AUX1-6 all send the same 0x29 + 0x21 message, I believe the surface uses this to captures knob info, somehow
|
||||||
|
*/
|
||||||
|
|
||||||
_global_buttons[Button::Pan] = GlobalButtonInfo ("Pan/Surround", "assignment", 0x2a); // US-2400: this is sent (on&off in one msg) from the Pan button
|
_global_buttons[Button::Pan] = GlobalButtonInfo ("Pan/Surround", "assignment", 0x2a); // US-2400: this is sent (on&off in one msg) from the Pan button
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -263,14 +263,18 @@ Strip::reset_stripable ()
|
||||||
void
|
void
|
||||||
Strip::notify_all()
|
Strip::notify_all()
|
||||||
{
|
{
|
||||||
// if (!_stripable) {
|
#if 0
|
||||||
// zero ();
|
if (!_stripable) {
|
||||||
// return;
|
zero ();
|
||||||
// }
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
// The active V-pot control may not be active for this strip
|
// The active V-pot control may not be active for this strip
|
||||||
// But if we zero it in the controls function it may erase
|
// But if we zero it in the controls function it may erase
|
||||||
// the one we do want
|
// the one we do want
|
||||||
// _surface->write (_vpot->zero());
|
#if 0
|
||||||
|
_surface->write (_vpot->zero());
|
||||||
|
#endif
|
||||||
|
|
||||||
notify_solo_changed ();
|
notify_solo_changed ();
|
||||||
notify_mute_changed ();
|
notify_mute_changed ();
|
||||||
|
|
@ -281,15 +285,19 @@ Strip::notify_all()
|
||||||
notify_vpot_change ();
|
notify_vpot_change ();
|
||||||
notify_panner_width_changed ();
|
notify_panner_width_changed ();
|
||||||
notify_record_enable_changed ();
|
notify_record_enable_changed ();
|
||||||
// notify_processor_changed ();
|
#if 0
|
||||||
|
notify_processor_changed ();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Strip::notify_solo_changed ()
|
Strip::notify_solo_changed ()
|
||||||
{
|
{
|
||||||
// if (_stripable && _solo) {
|
#if 0
|
||||||
// _surface->write (_solo->set_state (_stripable->solo_control()->soloed() ? on : off));
|
if (_stripable && _solo) {
|
||||||
// }
|
_surface->write (_solo->set_state (_stripable->solo_control()->soloed() ? on : off));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
_solo->mark_dirty ();
|
_solo->mark_dirty ();
|
||||||
_trickle_counter = 0;
|
_trickle_counter = 0;
|
||||||
|
|
@ -299,14 +307,16 @@ void
|
||||||
Strip::notify_mute_changed ()
|
Strip::notify_mute_changed ()
|
||||||
{
|
{
|
||||||
DEBUG_TRACE (DEBUG::US2400, string_compose ("Strip %1 mute changed\n", _index));
|
DEBUG_TRACE (DEBUG::US2400, string_compose ("Strip %1 mute changed\n", _index));
|
||||||
// if (_stripable && _mute) {
|
#if 0
|
||||||
// DEBUG_TRACE (DEBUG::US2400, string_compose ("\tstripable muted ? %1\n", _stripable->mute_control()->muted()));
|
if (_stripable && _mute) {
|
||||||
// DEBUG_TRACE (DEBUG::US2400, string_compose ("mute message: %1\n", _mute->set_state (_stripable->mute_control()->muted() ? on : off)));
|
DEBUG_TRACE (DEBUG::US2400, string_compose ("\tstripable muted ? %1\n", _stripable->mute_control()->muted()));
|
||||||
//
|
DEBUG_TRACE (DEBUG::US2400, string_compose ("mute message: %1\n", _mute->set_state (_stripable->mute_control()->muted() ? on : off)));
|
||||||
// _surface->write (_mute->set_state (_stripable->mute_control()->muted() ? on : off));
|
|
||||||
// } else {
|
_surface->write (_mute->set_state (_stripable->mute_control()->muted() ? on : off));
|
||||||
// _surface->write (_mute->zero());
|
} else {
|
||||||
// }
|
_surface->write (_mute->zero());
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
_mute->mark_dirty ();
|
_mute->mark_dirty ();
|
||||||
_trickle_counter = 0;
|
_trickle_counter = 0;
|
||||||
|
|
@ -346,10 +356,11 @@ Strip::update_selection_state ()
|
||||||
{
|
{
|
||||||
_select->mark_dirty ();
|
_select->mark_dirty ();
|
||||||
_trickle_counter = 0;
|
_trickle_counter = 0;
|
||||||
|
#if 0
|
||||||
// if(_stripable) {
|
if(_stripable) {
|
||||||
// _surface->write (_select->set_state (_stripable->is_selected()));
|
_surface->write (_select->set_state (_stripable->is_selected()));
|
||||||
// }
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@ using namespace std;
|
||||||
ArdourDropdown::ArdourDropdown (Element e)
|
ArdourDropdown::ArdourDropdown (Element e)
|
||||||
: _scrolling_disabled(false)
|
: _scrolling_disabled(false)
|
||||||
{
|
{
|
||||||
// signal_button_press_event().connect (sigc::mem_fun(*this, &ArdourDropdown::on_mouse_pressed));
|
|
||||||
_menu.signal_size_request().connect (sigc::mem_fun(*this, &ArdourDropdown::menu_size_request));
|
_menu.signal_size_request().connect (sigc::mem_fun(*this, &ArdourDropdown::menu_size_request));
|
||||||
|
|
||||||
_menu.set_reserve_toggle_size(false);
|
_menu.set_reserve_toggle_size(false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue