diff --git a/include/app/common.hpp b/include/app/common.hpp index 2b015180..48ad01a4 100644 --- a/include/app/common.hpp +++ b/include/app/common.hpp @@ -12,15 +12,6 @@ namespace rack { namespace app { -extern const std::string APP_NAME; -extern const std::string APP_VERSION; -extern const std::string APP_ARCH; - -extern const std::string ABI_VERSION; - -extern const std::string API_URL; -extern const std::string API_VERSION; - static const float SVG_DPI = 75.f; static const float MM_PER_IN = 25.4f; diff --git a/include/common.hpp b/include/common.hpp index cc1594e4..6338dc6d 100644 --- a/include/common.hpp +++ b/include/common.hpp @@ -163,6 +163,18 @@ struct Exception : std::runtime_error { }; +// config + +extern const std::string APP_NAME; +extern const std::string APP_VERSION; +extern const std::string APP_ARCH; + +extern const std::string ABI_VERSION; + +extern const std::string API_URL; +extern const std::string API_VERSION; + + } // namespace rack diff --git a/src/app/common.cpp b/src/app/common.cpp deleted file mode 100644 index 76f2e040..00000000 --- a/src/app/common.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include - - -namespace rack { -namespace app { - - -const std::string APP_NAME = "VCV Rack"; -const std::string APP_VERSION = TOSTRING(VERSION); -#if defined ARCH_WIN - const std::string APP_ARCH = "win"; -#elif ARCH_MAC - const std::string APP_ARCH = "mac"; -#elif defined ARCH_LIN - const std::string APP_ARCH = "lin"; -#endif - -const std::string ABI_VERSION = "2"; - -const std::string API_URL = "https://api.vcvrack.com"; -const std::string API_VERSION = "2"; - - -} // namespace app -} // namespace rack diff --git a/src/asset.cpp b/src/asset.cpp index ca194aef..96a82db4 100644 --- a/src/asset.cpp +++ b/src/asset.cpp @@ -126,10 +126,10 @@ void init() { } else { logPath = userDir + "/log.txt"; - pluginsPath = userDir + "/plugins-v" + app::ABI_VERSION; - settingsPath = userDir + "/settings-v" + app::ABI_VERSION + ".json"; - autosavePath = userDir + "/autosave-v" + app::ABI_VERSION + ".vcv"; - templatePath = userDir + "/template-v" + app::ABI_VERSION + ".vcv"; + pluginsPath = userDir + "/plugins-v" + ABI_VERSION; + settingsPath = userDir + "/settings-v" + ABI_VERSION + ".json"; + autosavePath = userDir + "/autosave-v" + ABI_VERSION + ".vcv"; + templatePath = userDir + "/template-v" + ABI_VERSION + ".vcv"; } } diff --git a/src/common.cpp b/src/common.cpp index 9639844a..57a4d370 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -1,6 +1,28 @@ #include +namespace rack { + + +const std::string APP_NAME = "VCV Rack"; +const std::string APP_VERSION = TOSTRING(VERSION); +#if defined ARCH_WIN + const std::string APP_ARCH = "win"; +#elif ARCH_MAC + const std::string APP_ARCH = "mac"; +#elif defined ARCH_LIN + const std::string APP_ARCH = "lin"; +#endif + +const std::string ABI_VERSION = "2"; + +const std::string API_URL = "https://api.vcvrack.com"; +const std::string API_VERSION = "2"; + + +} // namespace rack + + #if defined ARCH_WIN #include diff --git a/src/main.cpp b/src/main.cpp index 8d723fc7..9ada846f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -47,7 +47,7 @@ static void fatalSignalHandler(int sig) { // This might fail because we might not be in the main thread. // But oh well, we're crashing anyway. - std::string text = app::APP_NAME + " has crashed. See " + asset::logPath + " for details."; + std::string text = APP_NAME + " has crashed. See " + asset::logPath + " for details."; osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, text.c_str()); abort(); @@ -58,7 +58,7 @@ int main(int argc, char* argv[]) { #if defined ARCH_WIN // Windows global mutex to prevent multiple instances // Handle will be closed by Windows when the process ends - HANDLE instanceMutex = CreateMutexW(NULL, true, string::toWstring(app::APP_NAME).c_str()); + HANDLE instanceMutex = CreateMutexW(NULL, true, string::toWstring(APP_NAME).c_str()); if (GetLastError() == ERROR_ALREADY_EXISTS) { osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, "Rack is already running. Multiple Rack instances are not supported."); exit(1); @@ -118,7 +118,7 @@ int main(int argc, char* argv[]) { } // Log environment - INFO("%s v%s", app::APP_NAME.c_str(), app::APP_VERSION.c_str()); + INFO("%s v%s", APP_NAME.c_str(), APP_VERSION.c_str()); INFO("%s", system::getOperatingSystemInfo().c_str()); std::string argsList; for (int i = 0; i < argc; i++) { diff --git a/src/patch.cpp b/src/patch.cpp index cfb25431..54ea18d9 100644 --- a/src/patch.cpp +++ b/src/patch.cpp @@ -270,7 +270,7 @@ json_t* PatchManager::toJson() { json_t* rootJ = json_object(); // version - json_t* versionJ = json_string(app::APP_VERSION.c_str()); + json_t* versionJ = json_string(APP_VERSION.c_str()); json_object_set_new(rootJ, "version", versionJ); json_t* engineJ = APP->engine->toJson(); @@ -293,8 +293,8 @@ void PatchManager::fromJson(json_t* rootJ) { json_t* versionJ = json_object_get(rootJ, "version"); if (versionJ) version = json_string_value(versionJ); - if (version != app::APP_VERSION) { - INFO("Patch was made with Rack v%s, current Rack version is v%s", version.c_str(), app::APP_VERSION.c_str()); + if (version != APP_VERSION) { + INFO("Patch was made with Rack v%s, current Rack version is v%s", version.c_str(), APP_VERSION.c_str()); } // Detect old patches with ModuleWidget::params/inputs/outputs indices. diff --git a/src/plugin.cpp b/src/plugin.cpp index ecb1e063..b9730cec 100644 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -260,7 +260,7 @@ void logIn(const std::string& email, const std::string& password) { json_t* reqJ = json_object(); json_object_set(reqJ, "email", json_string(email.c_str())); json_object_set(reqJ, "password", json_string(password.c_str())); - std::string url = app::API_URL + "/token"; + std::string url = API_URL + "/token"; json_t* resJ = network::requestJson(network::METHOD_POST, url, reqJ); json_decref(reqJ); @@ -311,7 +311,7 @@ void queryUpdates() { updateStatus = "Querying for updates..."; // Get user's plugins list - std::string pluginsUrl = app::API_URL + "/plugins"; + std::string pluginsUrl = API_URL + "/plugins"; json_t* pluginsReqJ = json_object(); json_object_set(pluginsReqJ, "token", json_string(settings::token.c_str())); json_t* pluginsResJ = network::requestJson(network::METHOD_GET, pluginsUrl, pluginsReqJ); @@ -333,9 +333,9 @@ void queryUpdates() { } // Get library manifests - std::string manifestsUrl = app::API_URL + "/library/manifests"; + std::string manifestsUrl = API_URL + "/library/manifests"; json_t* manifestsReq = json_object(); - json_object_set(manifestsReq, "version", json_string(app::API_VERSION.c_str())); + json_object_set(manifestsReq, "version", json_string(API_VERSION.c_str())); json_t* manifestsResJ = network::requestJson(network::METHOD_GET, manifestsUrl, manifestsReq); json_decref(manifestsReq); if (!manifestsResJ) { @@ -420,13 +420,13 @@ void syncUpdate(Update* update) { isSyncingUpdate = false; }); - std::string downloadUrl = app::API_URL + "/download"; + std::string downloadUrl = API_URL + "/download"; downloadUrl += "?token=" + network::encodeUrl(settings::token); downloadUrl += "&slug=" + network::encodeUrl(update->pluginSlug); downloadUrl += "&version=" + network::encodeUrl(update->version); - downloadUrl += "&arch=" + network::encodeUrl(app::APP_ARCH); + downloadUrl += "&arch=" + network::encodeUrl(APP_ARCH); - INFO("Downloading plugin %s %s %s", update->pluginSlug.c_str(), update->version.c_str(), app::APP_ARCH.c_str()); + INFO("Downloading plugin %s %s %s", update->pluginSlug.c_str(), update->version.c_str(), APP_ARCH.c_str()); // Download zip std::string pluginDest = asset::pluginsPath + "/" + update->pluginSlug + ".zip"; diff --git a/src/plugin/Plugin.cpp b/src/plugin/Plugin.cpp index be50bbf5..6ee12fa8 100644 --- a/src/plugin/Plugin.cpp +++ b/src/plugin/Plugin.cpp @@ -45,8 +45,8 @@ void Plugin::fromJson(json_t* rootJ) { json_t* versionJ = json_object_get(rootJ, "version"); if (versionJ) version = json_string_value(versionJ); - if (!string::startsWith(version, app::ABI_VERSION + ".")) - throw Exception(string::f("Plugin version %s does not match Rack ABI version %s", version.c_str(), app::ABI_VERSION.c_str())); + if (!string::startsWith(version, ABI_VERSION + ".")) + throw Exception(string::f("Plugin version %s does not match Rack ABI version %s", version.c_str(), ABI_VERSION.c_str())); if (version == "") throw Exception("No plugin version"); diff --git a/src/updater.cpp b/src/updater.cpp index 43608beb..7d778fae 100644 --- a/src/updater.cpp +++ b/src/updater.cpp @@ -20,7 +20,7 @@ static std::string downloadUrl; static void checkVersion() { - std::string versionUrl = app::API_URL + "/version"; + std::string versionUrl = API_URL + "/version"; json_t* resJ = network::requestJson(network::METHOD_GET, versionUrl, NULL); if (!resJ) { WARN("Request for version failed"); @@ -40,7 +40,7 @@ static void checkVersion() { json_t* downloadUrlsJ = json_object_get(resJ, "downloadUrls"); if (downloadUrlsJ) { - json_t* downloadUrlJ = json_object_get(downloadUrlsJ, app::APP_ARCH.c_str()); + json_t* downloadUrlJ = json_object_get(downloadUrlsJ, APP_ARCH.c_str()); if (downloadUrlJ) downloadUrl = json_string_value(downloadUrlJ); } @@ -95,7 +95,7 @@ void update() { bool isUpdateAvailable() { - return (version != "") && (version != app::APP_VERSION); + return (version != "") && (version != APP_VERSION); } diff --git a/src/window.cpp b/src/window.cpp index ce6b264d..668cbcd3 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -361,7 +361,7 @@ void Window::run() { gamepad::step(); // Set window title - std::string windowTitle = app::APP_NAME + " v" + app::APP_VERSION; + std::string windowTitle = APP_NAME + " v" + APP_VERSION; if (!APP->patch->path.empty()) { windowTitle += " - "; if (!APP->history->isSaved())