Revert "Remove cache_time_info and always cache time info"

This reverts commit cfb171c991.

No idea why, but this cache breaks SPL Transient Designer Plus. Perhaps
it overwrites the time info?
This commit is contained in:
Robbert van der Helm
2021-01-30 02:37:27 +01:00
parent 9858db25d2
commit 0adca3e33c
7 changed files with 44 additions and 29 deletions
+7 -1
View File
@@ -78,7 +78,13 @@ Configuration::Configuration(const fs::path& config_path,
// their defaults. At this point I'd really wish C++ could do pattern
// matching.
for (const auto& [key, value] : table) {
if (key == "editor_double_embed") {
if (key == "cache_time_info") {
if (const auto parsed_value = value.as_boolean()) {
cache_time_info = parsed_value->get();
} else {
invalid_options.push_back(key);
}
} else if (key == "editor_double_embed") {
if (const auto parsed_value = value.as_boolean()) {
editor_double_embed = parsed_value->get();
} else {
+15
View File
@@ -74,6 +74,20 @@ class Configuration {
Configuration(const boost::filesystem::path& config_path,
const boost::filesystem::path& yabridge_path);
/**
* If set to `true`, then after an `audioMasterGetTime()` call all
* subsequent calls to that function during a single processing cycle will
* reuse the results from the first call. In theory it would be a bug on the
* host's side if this did _not_ return the same value every time, but since
* yabridge tries to not have any behaviour of its own and since this
* function should only be called at most once every processing cycle this
* option is not enabled by default. An example of a situation where this
* does become necessary is the SWAM Cello plugin, which calls
* `audioMasterGetTime()` for every sample instead of only once. This would
* tank performance without this caching behaviour.
*/
bool cache_time_info = false;
/**
* If this is set to `true`, then the plugin editor should be embedded in
* yet another window. This would result in an embedding sequence of
@@ -166,6 +180,7 @@ class Configuration {
template <typename S>
void serialize(S& s) {
s.value1b(cache_time_info);
s.value1b(editor_double_embed);
s.value1b(editor_force_dnd);
s.value1b(editor_xembed);