Andrew Belt
6dff695198
Rename plugin::getPlugin() to getPluginFallback(), getExactPlugin() to getPlugin(), and similar renaming for Model. Don't check plugin fallback in library.
3 years ago
Andrew Belt
2a0cb4dc56
Remove libRack symlink immediately after loading plugin library.
3 years ago
Andrew Belt
f15799e9a7
Add plugin::getExactPlugin() and getExactModel() to public API. Fix inability to load plugin that is aliased to another.
3 years ago
Andrew Belt
8f5f8992fb
Remove old /tmp/Rack2 symbolic link before creating it.
3 years ago
Andrew Belt
36e02a2c93
Link to the absolute path /tmp/Rack2/libRack.<ext>. Create a symlink at /tmp/Rack2 to the system dir containting libRack.
3 years ago
Andrew Belt
e32031a501
Revert using RTLD_DEEPBIND for loading plugins on Linux.
3 years ago
Andrew Belt
d9b169ebaf
Add bidirectional module fallback: MindMeld-ShapeMasterPro/ShapeMasterPro.
3 years ago
Andrew Belt
9eef95cf03
Add VultModules and VultModulesFree as plugin slug fallbacks of each other.
3 years ago
Andrew Belt
fc1a90d0e1
Use non-recursive plugin::getPlugin() and getModel().
3 years ago
Andrew Belt
9c70d94977
Call optional destroy() callback before unloading plugin library.
3 years ago
Andrew Belt
c32004713d
Use RTLD_DEEPBIND for loading plugins with dlopen() on Linux.
3 years ago
Andrew Belt
c50cafb271
Change user dir to Rack2. Remove "-v2" from user subdirs.
3 years ago
Andrew Belt
ed11f116b3
Log plugin loading before attempting to load plugin, in case it crashes Rack.
3 years ago
Andrew Belt
e53d8ac481
Clean up dist filenames.
3 years ago
Andrew Belt
c3ff43b6de
Rename *Dir() functions to *Directory(), backtracking on a previous commit.
3 years ago
Andrew Belt
00eb16189b
Use "directory/dir" terminology instead of "folder" except for UI text.
3 years ago
Andrew Belt
f3827c82c7
Add major version checking to library plugin update check.
3 years ago
Andrew Belt
2b9efc1401
Add string::join(). Reorder models how they are ordered in plugin's manifest. Use list instead of vector for models and tags in plugin::Plugin/Model.
3 years ago
Andrew Belt
ed1842a743
Rename string::U8toU16 to UTF8toUTF16 and U16toU8 to UTF16toUTF8.
4 years ago
Andrew Belt
583530032f
Move asset::pluginsPath, templatePath, and settingsPath to appropriate namespaces.
4 years ago
Andrew Belt
7bec4bd93c
Destroy system and plugin subsystems properly so they can be re-initialized.
4 years ago
Andrew Belt
f627d1e729
Move libRack.dylib to Resources folder in Mac bundle. Use rpath for plugin build.
4 years ago
Andrew Belt
b584e5f506
Use @executable_path for libRack.dylib for plugins on Mac. This is a hack that will need to be changed to @rpath later.
4 years ago
Andrew Belt
c4cc1c4368
Clean up fromJson Engine and RackWidget methods. Fix v0.6 patch loading.
4 years ago
Andrew Belt
f5bad0e20f
Add hard-coded plugin/model slug fallbacks/aliases. Catch Exceptions from Module::fromJson().
4 years ago
Andrew Belt
86f3658b51
Add `Exception::Exception(const char* format, ...)` so you can create Exception objects using C format strings.
4 years ago
Andrew Belt
9c5a616eab
Change file extension of plugin packages to .vcvplugin.
4 years ago
Andrew Belt
155ae4ead6
Rename `updater::` to `library::`. Move VCV Library synchronization code from `plugin::` to `library::`.
4 years ago
Andrew Belt
8d908a0a55
Add system::join(). Add asset::module().
4 years ago
Andrew Belt
3fbd0f77a9
Move string::absolute, directory, filename, filenameBase, and filenameExtension to system::getAbsolute, getDirectory, getFilename, getStem, and getExtension. Reimplement most system:: functions using std::experimental::filesystem. Add system::doesExist, getFileSize, and getTempDir.
4 years ago
Andrew Belt
8a50d39b7f
Make system::archiveFolder and unarchiveToFolder work on Windows with
Unicode. Rename UTF8toUTF16 to U8toU16 and switch back to std::wstring
instead of std::u16string.
4 years ago
Andrew Belt
0ded01c228
Add system::unarchiveToFolder() and archiveFolder(). Begin using `std::experimental::filesystem`.
4 years ago
Andrew Belt
3265e33802
Add rough code for synchronizing module whitelist from VCV Library.
4 years ago
Andrew Belt
dd0e670050
Fix wchar_t/char16_t distinction on Windows.
5 years ago
Andrew Belt
e457294889
Change string::fromWstring to UTF16toUTF8. Change string::toWstring to UTF8toUTF16. Replace std::wstring to std::u16string and wchar_t to char16_t.
5 years ago
Andrew Belt
b3a3b1cdbd
Add system::get/setWorkingDirectory() which fixes the Windows build.
5 years ago
Andrew Belt
d7da2e2b93
Set Core plugin path to the system dir instead of leaving blank.
5 years ago
Andrew Belt
05427d938b
Overhaul threading model for Engine using a shared mutex based design.
5 years ago
Andrew Belt
825adb155d
Add cookie support to network::requestJson() and network::requestDownload().
5 years ago
Andrew Belt
120aafe6d3
Change order of includes to C++ standard headers, library headers, and local project headers.
5 years ago
Andrew Belt
495db04320
Repair build on Windows.
5 years ago
Andrew Belt
5129c29a86
Use -rpath=. for plugins. Set cwd when loading plugins.
5 years ago
Andrew Belt
1dcaf6c1bc
Fix some segfaults when destroying environment.
5 years ago
Andrew Belt
b6f1191168
Make all environment init() functions re-entrant after calling destroy() if it exists.
5 years ago
Andrew Belt
866f684ce4
Move app::APP_*, ABI_*, and API_* variables to rack:: namespace.
5 years ago
Andrew Belt
af834d49ee
Replace fopen, remove, and rename on Windows with wrappers that call
wide-string equivalents.
5 years ago
Andrew Belt
ca9231e1b3
Rename App to Context and app.hpp to context.hpp. The APP macro is still valid.
5 years ago
Andrew Belt
12fcaa4b08
Move moduleFromJson from engine to plugin namespace. Move Engine mutex lock at the top of Engine::step().
5 years ago
Andrew Belt
e4b6056ded
Massive WIP v2 overhaul:
- Add Engine::fromJson which can be called without the GUI at all.
- Make RackWidget::fromJson attach itself to existing Engine state. However, once attached, they own their Engine objects (Module, Cable).
- Remove Engine thread. Now Engine must be stepped by other threads, such as the audio thread. This is fantastic because there is no longer a mutex lock every audio buffer.
- Add concept of the "primary module", which is allowed to call Engine::step().
- Add many Module events.
5 years ago
Andrew Belt
26bda06eb7
Move slug normalization from getPlugin or getModel functions to fromJson functions.
5 years ago