summaryrefslogtreecommitdiff
path: root/libs/pbd
AgeCommit message (Collapse)Author
2017-08-05Add API to set thread-priority (for ctrl-surfaces)Robin Gareus
2017-08-04NO-OP: whitespaceRobin Gareus
2017-08-04Graph profiling: allow to override max DSP thread count & calc avg.Robin Gareus
2017-07-30NO-OP: name-change (_list and _lock are also used in other places)Robin Gareus
Derived classes need to explicitly specify namespace and class to avoid ambiguities (even for private members)
2017-07-25Make start_touch() truly idempotentRobin Gareus
Also don't allow outsiders to call Controllable::set_touching()
2017-07-03PBD::init() failing is fatal in main(), don't silently exit.Robin Gareus
2017-07-02Controllable focus notification APIRobin Gareus
This allows to inform control-surfaces about the current GUI control-element. "Link" control-surface interaction to GUI focus.
2017-06-22Accommodate newly introduced source(s) in our MSVC project (libpbd)John Emmas
2017-06-22Remove LocaleGuard from PBD::Controllable state methodsTim Mayberry
These are no longer necessary as float <=> string conversion is handled by locale independent PBD::to_string/string_to via XMLNode::get/set_property
2017-06-21compilation requires <stdint.h>Paul Davis
2017-06-21Remove internal_to_user/user_to_internal APIRobin Gareus
Also GainControl can just use the AutomationControl's implementation of get_user_string()
2017-06-21Centralize control-parameter math functions in libpbd.Robin Gareus
Functions formerly in ardour/util.h and some more functions. The main motivation is libevoral which can use libpbd but not libardour. The eventual goal is to consolidate various different interpolation, scaling and deflection methods.
2017-06-12VCA/SlavableAutomationCtrl re-design:Robin Gareus
* remember master-ctrl value on assignment & save with session * Control/AutomationCtrl only stores ctrl's own value (w/o master) * virtual AutomationControl::get_value () -> use SlavableAC method * MasterRecord uses weak-ptr (fixes recursive ~Controllable() deadlock)
2017-05-29NO-OP: whitespaceRobin Gareus
2017-05-29duplicate routes start off unsoloed to avoid issues related to upstream / ↵Daniel Sheeler
downstream buses
2017-05-26Remove normalization of property names from libpbd xml codeTim Mayberry
It may have been OK to add this code temporarily at this low level, but as it was introduced in 2008, this change is made with the assumption that any Sessions that were affected have been re-saved since then with corrected property names and that "normalization" is no longer necessary. Timing results before changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 30375 Max: 48253 Total: 431727 Avg: 43172 (43 msecs) Write : Count: 10 Min: 42553 Max: 49163 Total: 453353 Avg: 45335 (45 msecs) Read : Count: 10 Min: 70307 Max: 75987 Total: 734923 Avg: 73492 (73 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 154486 Max: 307856 Total: 2678989 Avg: 267898 (267 msecs) Write : Count: 10 Min: 304273 Max: 343274 Total: 3169158 Avg: 316915 (316 msecs) Read : Count: 10 Min: 496920 Max: 541394 Total: 5260410 Avg: 526041 (526 msecs) Timing results after changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 21437 Max: 39749 Total: 348622 Avg: 34862 (34 msecs) Write : Count: 10 Min: 42320 Max: 49989 Total: 446135 Avg: 44613 (44 msecs) Read : Count: 10 Min: 63252 Max: 68389 Total: 660841 Avg: 66084 (66 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 113458 Max: 263225 Total: 2215595 Avg: 221559 (221 msecs) Write : Count: 10 Min: 305439 Max: 339986 Total: 3150697 Avg: 315069 (315 msecs) Read : Count: 10 Min: 447560 Max: 488121 Total: 4698903 Avg: 469890 (469 msecs)
2017-05-06NO-OP: whitespace and FSF addressRobin Gareus
2017-05-05extend PBD::ID API to allow construction and operator== using uint64_tPaul Davis
This is theoretically dangerous, because a PBD::ID is supposed to be unique, and this new constructor cannot guarantee that. However, the same danger already exists with the std::string-based constructor
2017-04-22Add mechanism to reset/lock semaphoresRobin Gareus
2017-04-21Use correct property names in PBD::Undo classTim Mayberry
These have been "normalized" in XMLProperty ctor for many years, so this does not change the Session format.
2017-04-21Use hyphen for XML property namesTim Mayberry
These have been normalized/modified by the XMLProperty ctor for many years (~9) so special treatment when reading properties should not be needed.
2017-04-20Relax LocaleGuardsRobin Gareus
Arodur itself on longer depends on C/C++ locale for saving/loading sessions. However, the Localeguard is kept for 3rd party plugins: Reset the C locale to "C" to enforce consisten numerics and portable sessions as well as verify that no plugin changes the C++ locale.
2017-04-19Changes needed for building Tim's new 'string_convert' stuff with MSVC (libpbd)John Emmas
2017-04-19Add additional PBD::string_to/to_string specializations for PBD::IDTim Mayberry
2017-04-19Remove PBD::to_string() function from pbd/convert.hTim Mayberry
All uses of this function have now been replaced by PBD::to_string() from pbd/string_convert.h Remove this function so that it isn't mistakenly used to perform numeric to string conversion when the result is being used for serialization as that only works if the global C++ locale is set with LC_NUMERIC=C, which is the case currently but may not be in the future.
2017-04-19Remove now unused PBD::string_is_affirmative functionTim Mayberry
The equivalent function is now PBD::string_to<bool>
2017-04-19Remove unused XMLNode::add_property methodsTim Mayberry
These are now unused and functionality is replaced by XMLNode::set_property set_property is a better name as a node can only have properties with unique names and the property will be set or reset(if it already exists). Changing the name also makes it easier to transition and test the new API.
2017-04-19Use XMLNode::set_property API in xml testsTim Mayberry
2017-04-19Use XMLNode::set_property in PBD::PropertyTemplate<T> classTim Mayberry
2017-04-19Use XMLNode::get/set_property API in PBD::ConfigurationVariable classTim Mayberry
2017-04-19Use XMLNode::set_property API in PBD::MementoCommand classTim Mayberry
2017-04-19Use XMLNode::set_property API in PBD::StatefulDiffCommand classTim Mayberry
2017-04-19Use XMLNode::set_property API in PBD::Undo classTim Mayberry
2017-04-19Use XMLNode::get/set_property API in PBD::StatefulTim Mayberry
2017-04-19Use XMLNode::get/set_property API in PBD::ControllableTim Mayberry
2017-04-19Add pbd/types_convert.h header for PBD::to_string/string_to specialisationsTim Mayberry
2017-04-19Add a template based get/set_property API to PBD::XMLNodeTim Mayberry
2017-04-19Use PBD string conversion functions in PBD::ConfigurationVariableTim Mayberry
No longer need a specialization for bool as PBD::to_string/string_to already has specializations for bool Remove template specialization for float as string_to/to_string handles string representations of infinity
2017-04-19Use PBD string conversion functions in PBD::Property classTim Mayberry
2017-04-19Add DEFINE_ENUM_CONVERT macro for defining PBD::string_to/to_string for enumsTim Mayberry
A simple macro for defining the four template specializations required to convert an enum to a string and back using the existing string_2_enum and enum_2_string functions. Generally these will only be instantiated in one source file, I don't think it is necessary to explicitly instantiate any at this stage.
2017-04-19Remove now unused ID::print methodTim Mayberry
2017-04-19Use ID::to_s() in libpbd instead of ID::print()Tim Mayberry
2017-04-19Use PBD string conversion functions in PBD::ID instead of snprintfTim Mayberry
Keep ID::print in place for now and replace usage in subsequent commit to minimize changes
2017-04-19Make boolean string values 0 and 1 to maintain backwards compatibilityTim Mayberry
I would prefer "yes" and "no" as it distinguishes boolean values from numeric but using "yes and "no" results in PBD::Property<T>::from_string failing to parse the correct values when opening in an older Ardour version as there is no specialization for bool. Using 0 and 1 also results in less change to the Session file.
2017-04-17Fix string-convert tests for Windows and hopefully macOS/OS XTim Mayberry
Tests requires a locale installed on the host that uses a comma as the decimal mark/point.
2017-04-16Fix Doxygen syntax (amend/revert f1a4767ac)Robin Gareus
1st line after /** brief description. Doxygen is used for Ardour's online source doc and the Lua class reference.
2017-04-16Accommodate newly introduced source(s) in our MSVC project (libpbd)John Emmas
2017-04-16Add locale independent and thread safe string conversion API with testsTim Mayberry
All conversions are performed as if in the "C" locale but without actually changing locale. This is a wrapper around printf/sscanf for int types which aren't affected by locale and uses glib functions g_ascii_strtod and g_ascii_dtostr for float/double types. My first attempt at this used std::stringstream and ios::imbue(std::locale::classic()) as it should be thread safe, but testing shows it is not for gcc/mingw-w64 on Windows, and possibly also some versions of macOS/OS X. Use "yes" and "no" when converting a boolean in PBD::string_to<bool> as this seems to be the convention used throughout libardour which will allow using string_to<bool> in those cases. Add accepted bool string values from PBD::string_is_affirmative to PBD::string_to<bool> Mark strings in pbd/string_convert.cc as not for translation Add u/int16_t string conversions to pbd/string_convert.h and tests Add DEBUG_TRACE output on conversion errors Add int8_t/uint8_t conversions(using int16/uint16 types) to string_convert.h Add support for converting an infinity expression to/from string Follows the C99/C11 standard for strtof/strtod where subject sequence is an optional plus or minus sign then INF or INFINITY, ignoring case.
2017-04-16Add PBD::DEBUG::StringConvert debug bitTim Mayberry
This is for debugging errors with string conversion for cases where errors aren't handled
2017-04-16Fix indentation and make comment style consistent in PBD::PropertyList headerTim Mayberry