summaryrefslogtreecommitdiff
path: root/libs/pbd/pbd
AgeCommit message (Collapse)Author
2017-08-05Add API to set thread-priority (for ctrl-surfaces)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-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-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-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 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-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 in PBD::PropertyTemplate<T> classTim Mayberry
2017-04-19Use XMLNode::set_property API in PBD::MementoCommand classTim 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 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-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-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
2017-04-16Silence -Wunused-valueRobin Gareus
2017-02-06add new API to PBD::Controllable, ::get_save_value()Paul Davis
Designed to allow derived classes to *save* a different value than would be reported by ::get_value(). Specifically there so that slaved controls can save/restore their *own* state, not the value that ::get_value() would return.
2017-02-06Remove a JE addition to one of the qm-dsp source files (no longer needed)John Emmas
2017-02-05Some minor changes in preparation for building the newer Vamp pluginsJohn Emmas
2017-01-22more consistent terminology in a commentPaul Davis
2017-01-20Reap invalidation recordsRobin Gareus
2017-01-20Free dead request-buffersRobin Gareus
This partially plugs a memory leak of event-loops.
2017-01-05syncing with upstreamDobroslav Slavenskoj
2017-01-05Fixing LV2_SUPPORT #ifdefsDobroslav Slavenskoj
2016-12-16MIDI tracer actually changes the event-loopRobin Gareus
2016-12-15some further invalidation details:Robin Gareus
Prevent double unref during when the EventLoop terminates: deleting the ringbuffer deletes all requests, some of which may contain stale invalidation remove the buffer_map_lock, now that signals ref-count the IR.
2016-12-15store InvalidationRecord in a Connection object and ref/unref it as appropriatePaul Davis
2016-12-15add ::use_count() method to InvalidationRecordPaul Davis
2016-12-15std::list::erase() needs a non-const iterator.;Paul Davis
at least for some versions of gcc.
2016-12-15and now with eraseRobin Gareus
2016-12-15C++98 compatible iterator eraseRobin Gareus
2016-12-15rework request invalidationRobin Gareus
This kills 2 birds with 1 stone: Removes the necessity of locks and makes call_slot() realtime safe (req->invalidation->requests list push_back). On object destruction, the invalidation-record (IR) itself is invalidated. Invalidated IRs are pushed onto a trash-pool and deleted in the event-loop of the invalidated object (GUI thread) once all requests that reference it have been processed. One last detail remains: PBD::signal connect should reference the IR and disconnect unreference it. This will guarantee that signal emission will not reference the IR while the pool trash is dropped.
2016-12-14Add a trash pool for invalidation requests.Robin Gareus
While EventLoop::invalidate_request() does invalidate request in the request-list. It does *not* invalidate requests in the per-thread-request-ringbuffer(s). The invalidation record cannot be deleted in EventLoop::invalidate_request see 6b5891a78f.
2016-12-14NO-OP: re-indentRobin Gareus