| 
							- #pragma once
 - #include <common.hpp>
 - 
 - #include <map>
 - 
 - 
 - namespace rack {
 - 
 - 
 - /** Synchronizes plugins with the VCV Library and updates Rack itself
 - */
 - namespace library {
 - 
 - 
 - struct UpdateInfo {
 - 	std::string name;
 - 	std::string version;
 - 	std::string changelogUrl;
 - 	bool downloaded = false;
 - };
 - 
 - 
 - void init();
 - void destroy();
 - 
 - void checkAppUpdate();
 - bool isAppUpdateAvailable();
 - 
 - bool isLoggedIn();
 - void logIn(const std::string& email, const std::string& password);
 - void logOut();
 - void checkUpdates();
 - bool hasUpdates();
 - void syncUpdate(const std::string& slug);
 - void syncUpdates();
 - 
 - 
 - extern std::string appVersion;
 - extern std::string appDownloadUrl;
 - extern std::string appChangelogUrl;
 - 
 - extern std::string loginStatus;
 - // plugin slug -> UpdateInfo
 - extern std::map<std::string, UpdateInfo> updateInfos;
 - extern std::string updateStatus;
 - extern std::string updateSlug;
 - extern float updateProgress;
 - /** Whether plugins are currently downloading. */
 - extern bool isSyncing;
 - /** Whether the UI should ask the user to restart after updating plugins. */
 - extern bool restartRequested;
 - 
 - 
 - } // namespace library
 - } // namespace rack
 
 
  |