summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-05-27Update example waveform code in README.mdAdam Szmigin
2020-05-27Inline is not needed in source fileshaslersn
2020-05-27Use ceiling division for waveform sizehaslersn
2020-05-27SQLite3 is now an external dependencyAdam Szmigin
Removed in-tree SQLite3 amalgamation in favour of system dependency. Updated meson and CMake build scripts accordingly.
2020-05-26Public includes cover all required stdAdam Szmigin
2020-05-01Minimal CMake filemrsmidge
2020-04-26Update minimum Boost versionmrsmidge
2020-04-26Replace with std::optionalAdam Szmigin
2020-04-25Switch to Boost Test header-only modeAdam Szmigin
2020-04-19Use std::string literal suffix for testsmrsmidge
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).
2020-02-18Use std::optional where availableAdam Szmigin
Either <optional> or <experimental/optional> is now required for compilation and in the public API. In order to seamlessly use either one, the relevant symbols are aliased within the namespace `djinterop::stdx`. It is expected that this is removed in favour of just using std::optional in future once older compiler support can be removed.
2019-09-03Added const for default EL DB dir name.Adam Szmigin
2019-08-26Clang-format appliedAdam Szmigin
2019-08-26New methods for crate lookup and creation.Adam Szmigin
2019-08-24Fix issue with optional.hpp in wrong install dirmrsmidge
2019-08-20Clear up EL public API, refactor more things into el_storagemrsmidge
2019-08-15clang-format cleanupmrsmidge
2019-08-15Remove Boost from public API, C++11 compatiblemrsmidge
2019-07-08enginelibrary: Use el_transaction_guard_implhaslersn
2019-07-08transaction_guard: RAII class for database transactionshaslersn
A default-constructed `transaction_guard` is empty. That is, it represents no transaction. If a `transaction_guard` isn't empty, then you can * perform a COMMIT via `transaction_guard::commit()` or * perform a ROLLBACK via `transaction_guard::rollback()` or * perform a ROLLBACK implicitly by destructing the `transaction_guard`. In any of those cases, the `transaction_guard` becomes empty (even if the operation fails by throwing an exception). Of those, only `transaction_guard::commit()` can throw an exception. Performing a rollback does always succeed.
2019-07-08Reduce number of includes in public headershaslersn
2019-07-08track: Remove unneeded friend class declarationshaslersn
2019-07-08.gitignore: Add .vscodehaslersn
2019-07-08.gitignore: Tag root level directories as suchhaslersn
2019-07-08.clang-format: Fix for clang-format 7.0.0+haslersn
2019-07-08Remove empty source file src/djinterop/performance_data.cpphaslersn
2019-07-08track: Fix copy/paste mistakes in the docshaslersn
2019-07-08database: remove mentions of Engine from the docshaslersn
2019-07-08enginelibrary: Move standard_pad_colors to namespace djinterop::enginelibraryhaslersn
2019-07-08include: Correct header guard nameshaslersn
Also, the combination of `#pragma once` and header guards is now used. This should speed up compilation in case `#pragma once` is supported.
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::make_database(): Make this atomichaslersn
This resolves the TODO added in a85bae380a5bf6a2dbfd9b82bba7ca6469013fbc
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-08database: Outsource {music, perfdata}_db_path() to namespace ↵haslersn
djinterop::enginelibrary
2019-07-08crate, database, track: outsource implementations to .cpphaslersn
2019-07-08crate: [Bugfix] Define db() which was previously missinghaslersn
2019-07-08include/meson.build: Update public headers according to the previous reworkhaslersn
2019-07-08Add TODO about version checkshaslersn
2019-07-08el::{load, make}_database: Fix documentationhaslersn
2019-07-08enginelibrary: Move normalize_beatgrid to djinterop/enginelibrary.hpphaslersn
2019-07-08README: Update according to the polymorphism reworkhaslersn
See 880cf264b9fb843b647274f086887b709171b75f
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.
2019-07-08treewide: Rework APIhaslersn
The API methods now operate directly on the database. Therefore, the classes don't have a `save()` method anymore. Also, the distinction between tracks and their performance data has been hidden from the API user. That is, the performance data attributes are now accessible directly through the `track` API. This is WORK IN PROGRESS. See the TODOs.
2019-07-02database: database objects must now always represent existent databaseshaslersn
This removes the need for the `database::exists()` method.
2019-07-02database: Make database objects copyablehaslersn
2019-07-02{database, performance_data}: Remove move ctor/assignmenthaslersn
move ctor/assignemnt doesn't make sense if there's no default constructor.
2019-06-30Merge pull request #1 from haslersn/enhancement/add-default-nixmrsmidge
Add Nix expression
2019-06-30Added mention of Clang Format and fixed some README typosmrsmidge