summaryrefslogtreecommitdiffstats
path: root/src/djinterop/enginelibrary/el_track_impl.cpp
AgeCommit message (Collapse)Author
2020-10-06Fix experimental optional comparison regressionAdam Szmigin
2020-09-26Fix exception when no average loudness setmrsmidge
If the average loudness in Engine Library format is zero, this is now interpreted as there being no average loudness.
2020-09-16Support Engine Prime schema versions up to 1.18.0Adam Szmigin
* Added a test of reference DB files. * Test crate and track creation across all supported versions. * Support for all schema versions seen by EP and SC5000 players.
2020-08-20Remove unused variableAdam Szmigin
2020-08-18Use std::optional or experimental as availableAdam Szmigin
At build time, the library will now choose `std::optional<T>` or `std::experimental::optional<T>` (in order of preference), depending on which one is available. A new alias `djinterop::stdx::optional` is available for clients to use. Note that sqlite_modern_cpp performs its own detection of `std::optional<T>` or its experimental equivalent: in order for the library to build correctly, both will need to detect the same version of `std::optional<T>`.
2020-07-08Remove internal use of Boost OptionalAdam Szmigin
2020-06-21Added symbol visibility declarationsAdam Szmigin
Made hidden visiblity the default when using g++. Removed defunct tests from `schema_test` and renamed `enginelibrary_test`, which is more accurate (schema creation and verification is already handled in `database_test`). Successful Windows VS2019 compilation
2020-06-12einginelibrary: In el_track_impl::set_overview_waveform_data, add ↵haslersn
explanatory comment Co-authored-by: Adam Szmigin <smidge@xsco.net>
2020-06-07enginelibrary: Check that encoded and subsequently decoded perfdata matches ↵haslersn
the original
2020-05-27Inline is not needed in source fileshaslersn
2020-05-26Public includes cover all required stdAdam Szmigin
2020-02-19API has w/form samples-per-entry rather than sizeAdam Szmigin
Informing the user of a desired waveform size is not the right approach, as the waveform is still essentially meaningless without knowledge of the scale it uses. As such, the public API now exposes the required number of _samples per waveform entry_, thereby creating a clear-cut scaling factor for waveform interpretation in the context of samples.
2020-02-19Corrected some encoding regression bugs.Adam Szmigin
* Fixed some encoding bugs introduced in earlier refactoring. * Quantised some amounts used for waveform encoding better (WIP).
2019-08-26New methods for crate lookup and creation.Adam Szmigin
2019-08-15Remove Boost from public API, C++11 compatiblemrsmidge
2019-07-08enginelibrary: Use el_transaction_guard_implhaslersn
2019-07-08src, test: Remove header guardshaslersn
Because of `sqlite_modern_cpp.h` as a dependency, libdjinterop can already only be compiled with a compiler that supports `#pragma once`. Therefore, we can remove header guards from all headers in `./src/` and `./test/`. Header guards are still present in `./include`. This way, libdjinterop can still be used in a project compiled without `#pragma once` support.
2019-07-08enginelibrary: Use 1 db connection handling both sqlite fileshaslersn
This is achieved using the `ATTACH` command. See `djinterop/enginelibrary/el_storage.cpp`.
2019-07-08treewide: Make database/crate/track polymorphichaslersn
NOTE: The pimpl is polymorphic. This way, the user facing objects can still be passed by value.