Browse Source

Add rack0.hpp backward compatibility header for ease of migration

tags/v1.0.0
Andrew Belt 6 years ago
parent
commit
34af736ee5
18 changed files with 175 additions and 153 deletions
  1. +1
    -4
      include/common.hpp
  2. +1
    -8
      include/logger.hpp
  3. +0
    -34
      include/math.hpp
  4. +75
    -0
      include/rack0.hpp
  5. +0
    -9
      include/random.hpp
  6. +3
    -3
      src/Core/AudioInterface.cpp
  7. +1
    -1
      src/Core/MIDIToCVInterface.cpp
  8. +7
    -7
      src/app/ModuleWidget.cpp
  9. +5
    -5
      src/app/RackWidget.cpp
  10. +12
    -12
      src/audio.cpp
  11. +23
    -23
      src/bridge.cpp
  12. +4
    -4
      src/main.cpp
  13. +1
    -1
      src/network.cpp
  14. +28
    -28
      src/plugin.cpp
  15. +3
    -3
      src/settings.cpp
  16. +2
    -2
      src/system.cpp
  17. +1
    -1
      src/widgets/FramebufferWidget.cpp
  18. +8
    -8
      src/window.cpp

+ 1
- 4
include/common.hpp View File

@@ -84,7 +84,7 @@ to get its size in bytes.

/** C#-style property constructor
Example:
Foo *foo = construct<Foo>(&Foo::greeting, "Hello world");
Foo *foo = construct<Foo>(&Foo::greeting, "Hello world", &Foo::legs, 2);
*/
template<typename T>
T *construct() {
@@ -120,6 +120,3 @@ DeferWrapper<F> deferWrapper(F f) {
}

#define DEFER(code) auto CONCAT(_defer_, __COUNTER__) = deferWrapper([&]() code)

/** Deprecated lowercase macro */
#define defer(...) DEFER(__VA_ARGS__)

+ 1
- 8
include/logger.hpp View File

@@ -3,7 +3,7 @@


/** Example usage:
debug("error: %d", errno);
DEBUG("error: %d", errno);
will print something like
[0.123 debug myfile.cpp:45] error: 67
*/
@@ -13,13 +13,6 @@ will print something like
#define FATAL(format, ...) rack::logger::log(rack::logger::FATAL_LEVEL, __FILE__, __LINE__, format, ##__VA_ARGS__)


/** Deprecated lowercase log functions */
#define debug(...) DEBUG(__VA_ARGS__)
#define info(...) INFO(__VA_ARGS__)
#define warn(...) WARN(__VA_ARGS__)
#define fatal(...) FATAL(__VA_ARGS__)


namespace rack {
namespace logger {



+ 0
- 34
include/math.hpp View File

@@ -305,39 +305,5 @@ inline Vec Vec::clampBetween(Rect bound) {
inline Vec Vec::clamp2(Rect bound) {return clampBetween(bound);}


////////////////////
// Deprecated functions
////////////////////

DEPRECATED inline int min(int a, int b) {return std::min(a, b);}
DEPRECATED inline int max(int a, int b) {return std::max(a, b);}
DEPRECATED inline int eucmod(int a, int base) {return eucMod(a, base);}
DEPRECATED inline bool ispow2(int n) {return isPow2(n);}
DEPRECATED inline int clamp2(int x, int a, int b) {return clampBetween(x, a, b);}
DEPRECATED inline float min(float a, float b) {return std::min(a, b);}
DEPRECATED inline float max(float a, float b) {return std::max(a, b);}
DEPRECATED inline float eucmod(float a, float base) {return eucMod(a, base);}
DEPRECATED inline float clamp2(float x, float a, float b) {return clampBetween(x, a, b);}

DEPRECATED inline int mini(int a, int b) {return std::min(a, b);}
DEPRECATED inline int maxi(int a, int b) {return std::max(a, b);}
DEPRECATED inline int clampi(int x, int min, int max) {return clamp(x, min, max);}
DEPRECATED inline int absi(int a) {return std::abs(a);}
DEPRECATED inline int eucmodi(int a, int base) {return eucMod(a, base);}
DEPRECATED inline int log2i(int n) {return log2(n);}
DEPRECATED inline bool ispow2i(int n) {return isPow2(n);}
DEPRECATED inline float absf(float x) {return std::abs(x);}
DEPRECATED inline float sgnf(float x) {return sgn(x);}
DEPRECATED inline float eucmodf(float a, float base) {return eucMod(a, base);}
DEPRECATED inline bool nearf(float a, float b, float epsilon = 1.0e-6f) {return isNear(a, b, epsilon);}
DEPRECATED inline float clampf(float x, float min, float max) {return clamp(x, min, max);}
DEPRECATED inline float clamp2f(float x, float min, float max) {return clampBetween(x, min, max);}
DEPRECATED inline float chopf(float x, float eps) {return chop(x, eps);}
DEPRECATED inline float rescalef(float x, float a, float b, float yMin, float yMax) {return rescale(x, a, b, yMin, yMax);}
DEPRECATED inline float crossf(float a, float b, float frac) {return crossfade(a, b, frac);}
DEPRECATED inline float interpf(const float *p, float x) {return interpolateLinear(p, x);}
DEPRECATED inline void cmultf(float *cr, float *ci, float ar, float ai, float br, float bi) {return cmult(cr, ci, ar, ai, br, bi);}


} // namespace math
} // namespace rack

+ 75
- 0
include/rack0.hpp View File

@@ -0,0 +1,75 @@
#pragma once

#include "rack.hpp"


namespace rack {

////////////////////
// common
////////////////////

/** Deprecated lowercase macro */
#define defer(...) DEFER(__VA_ARGS__)

////////////////////
// math
////////////////////

DEPRECATED inline int min(int a, int b) {return std::min(a, b);}
DEPRECATED inline int max(int a, int b) {return std::max(a, b);}
DEPRECATED inline int eucmod(int a, int base) {return eucMod(a, base);}
DEPRECATED inline bool ispow2(int n) {return isPow2(n);}
DEPRECATED inline int clamp2(int x, int a, int b) {return clampBetween(x, a, b);}
DEPRECATED inline float min(float a, float b) {return std::min(a, b);}
DEPRECATED inline float max(float a, float b) {return std::max(a, b);}
DEPRECATED inline float eucmod(float a, float base) {return eucMod(a, base);}
DEPRECATED inline float clamp2(float x, float a, float b) {return clampBetween(x, a, b);}

DEPRECATED inline int mini(int a, int b) {return std::min(a, b);}
DEPRECATED inline int maxi(int a, int b) {return std::max(a, b);}
DEPRECATED inline int clampi(int x, int min, int max) {return clamp(x, min, max);}
DEPRECATED inline int absi(int a) {return std::abs(a);}
DEPRECATED inline int eucmodi(int a, int base) {return eucMod(a, base);}
DEPRECATED inline int log2i(int n) {return log2(n);}
DEPRECATED inline bool ispow2i(int n) {return isPow2(n);}
DEPRECATED inline float absf(float x) {return std::abs(x);}
DEPRECATED inline float sgnf(float x) {return sgn(x);}
DEPRECATED inline float eucmodf(float a, float base) {return eucMod(a, base);}
DEPRECATED inline bool nearf(float a, float b, float epsilon = 1.0e-6f) {return isNear(a, b, epsilon);}
DEPRECATED inline float clampf(float x, float min, float max) {return clamp(x, min, max);}
DEPRECATED inline float clamp2f(float x, float min, float max) {return clampBetween(x, min, max);}
DEPRECATED inline float chopf(float x, float eps) {return chop(x, eps);}
DEPRECATED inline float rescalef(float x, float a, float b, float yMin, float yMax) {return rescale(x, a, b, yMin, yMax);}
DEPRECATED inline float crossf(float a, float b, float frac) {return crossfade(a, b, frac);}
DEPRECATED inline float interpf(const float *p, float x) {return interpolateLinear(p, x);}
DEPRECATED inline void cmultf(float *cr, float *ci, float ar, float ai, float br, float bi) {return cmult(cr, ci, ar, ai, br, bi);}

////////////////////
// random
////////////////////

DEPRECATED inline float randomu32() {return random::u32();}
DEPRECATED inline float randomu64() {return random::u64();}
DEPRECATED inline float randomUniform() {return random::uniform();}
DEPRECATED inline float randomNormal() {return random::normal();}
DEPRECATED inline float randomf() {return random::uniform();}

////////////////////
// string
////////////////////

using string::stringf;

////////////////////
// logger
////////////////////

/** Deprecated lowercase log functions */
#define debug(...) DEBUG(__VA_ARGS__)
#define info(...) INFO(__VA_ARGS__)
#define warn(...) WARN(__VA_ARGS__)
#define fatal(...) FATAL(__VA_ARGS__)


} // namespace rack

+ 0
- 9
include/random.hpp View File

@@ -19,13 +19,4 @@ float normal();


} // namespace random


DEPRECATED inline float randomu32() {return random::u32();}
DEPRECATED inline float randomu64() {return random::u64();}
DEPRECATED inline float randomUniform() {return random::uniform();}
DEPRECATED inline float randomNormal() {return random::normal();}
DEPRECATED inline float randomf() {return random::uniform();}


} // namespace rack

+ 3
- 3
src/Core/AudioInterface.cpp View File

@@ -71,7 +71,7 @@ struct AudioInterfaceIO : AudioIO {
else {
// Timed out, fill output with zeros
memset(output, 0, frames * numOutputs * sizeof(float));
debug("Audio Interface IO underflow");
DEBUG("Audio Interface IO underflow");
}
}

@@ -171,7 +171,7 @@ void AudioInterface::step() {
else {
// Give up on pulling input
audioIO.active = false;
debug("Audio Interface underflow");
DEBUG("Audio Interface underflow");
}
}

@@ -221,7 +221,7 @@ void AudioInterface::step() {
// Give up on pushing output
audioIO.active = false;
outputBuffer.clear();
debug("Audio Interface underflow");
DEBUG("Audio Interface underflow");
}
}



+ 1
- 1
src/Core/MIDIToCVInterface.cpp View File

@@ -166,7 +166,7 @@ struct MIDIToCVInterface : Module {
}

void processMessage(MidiMessage msg) {
// debug("MIDI: %01x %01x %02x %02x", msg.status(), msg.channel(), msg.note(), msg.value());
// DEBUG("MIDI: %01x %01x %02x %02x", msg.status(), msg.channel(), msg.note(), msg.value());

switch (msg.status()) {
// note off


+ 7
- 7
src/app/ModuleWidget.cpp View File

@@ -91,7 +91,7 @@ void ModuleWidget::fromJson(json_t *rootJ) {
if (pluginJ) {
pluginSlug = json_string_value(pluginJ);
if (pluginSlug != model->plugin->slug) {
warn("Plugin %s does not match ModuleWidget's plugin %s.", pluginSlug.c_str(), model->plugin->slug.c_str());
WARN("Plugin %s does not match ModuleWidget's plugin %s.", pluginSlug.c_str(), model->plugin->slug.c_str());
return;
}
}
@@ -101,7 +101,7 @@ void ModuleWidget::fromJson(json_t *rootJ) {
if (modelJ) {
modelSlug = json_string_value(modelJ);
if (modelSlug != model->slug) {
warn("Model %s does not match ModuleWidget's model %s.", modelSlug.c_str(), model->slug.c_str());
WARN("Model %s does not match ModuleWidget's model %s.", modelSlug.c_str(), model->slug.c_str());
return;
}
}
@@ -111,7 +111,7 @@ void ModuleWidget::fromJson(json_t *rootJ) {
if (versionJ) {
std::string version = json_string_value(versionJ);
if (version != model->plugin->version) {
info("Patch created with %s version %s, using version %s.", pluginSlug.c_str(), version.c_str(), model->plugin->version.c_str());
INFO("Patch created with %s version %s, using version %s.", pluginSlug.c_str(), version.c_str(), model->plugin->version.c_str());
}
}

@@ -169,7 +169,7 @@ void ModuleWidget::copyClipboard() {
void ModuleWidget::pasteClipboard() {
const char *moduleJson = glfwGetClipboardString(gWindow);
if (!moduleJson) {
warn("Could not get text from clipboard.");
WARN("Could not get text from clipboard.");
return;
}

@@ -180,12 +180,12 @@ void ModuleWidget::pasteClipboard() {
json_decref(moduleJ);
}
else {
warn("JSON parsing error at %s %d:%d %s", error.source, error.line, error.column, error.text);
WARN("JSON parsing error at %s %d:%d %s", error.source, error.line, error.column, error.text);
}
}

void ModuleWidget::load(std::string filename) {
info("Loading preset %s", filename.c_str());
INFO("Loading preset %s", filename.c_str());
FILE *file = fopen(filename.c_str(), "r");
if (!file) {
// Exit silently
@@ -207,7 +207,7 @@ void ModuleWidget::load(std::string filename) {
}

void ModuleWidget::save(std::string filename) {
info("Saving preset %s", filename.c_str());
INFO("Saving preset %s", filename.c_str());
json_t *moduleJ = toJson();
if (!moduleJ)
return;


+ 5
- 5
src/app/RackWidget.cpp View File

@@ -121,7 +121,7 @@ void RackWidget::saveAsDialog() {
}

void RackWidget::save(std::string filename) {
info("Saving patch %s", filename.c_str());
INFO("Saving patch %s", filename.c_str());
json_t *rootJ = toJson();
if (!rootJ)
return;
@@ -136,7 +136,7 @@ void RackWidget::save(std::string filename) {
}

void RackWidget::load(std::string filename) {
info("Loading patch %s", filename.c_str());
INFO("Loading patch %s", filename.c_str());
FILE *file = fopen(filename.c_str(), "r");
if (!file) {
// Exit silently
@@ -259,7 +259,7 @@ void RackWidget::fromJson(json_t *rootJ) {
legacy = 1;
}
if (legacy) {
info("Loading patch using legacy mode %d", legacy);
INFO("Loading patch using legacy mode %d", legacy);
}

// modules
@@ -386,7 +386,7 @@ ModuleWidget *RackWidget::moduleFromJson(json_t *moduleJ) {
void RackWidget::pastePresetClipboard() {
const char *moduleJson = glfwGetClipboardString(gWindow);
if (!moduleJson) {
warn("Could not get text from clipboard.");
WARN("Could not get text from clipboard.");
return;
}

@@ -402,7 +402,7 @@ void RackWidget::pastePresetClipboard() {
json_decref(moduleJ);
}
else {
warn("JSON parsing error at %s %d:%d %s", error.source, error.line, error.column, error.text);
WARN("JSON parsing error at %s %d:%d %s", error.source, error.line, error.column, error.text);
}
}



+ 12
- 12
src/audio.cpp View File

@@ -89,7 +89,7 @@ bool AudioIO::getDeviceInfo(int device, RtAudio::DeviceInfo *deviceInfo) {
return true;
}
catch (RtAudioError &e) {
warn("Failed to query RtAudio device: %s", e.what());
WARN("Failed to query RtAudio device: %s", e.what());
}
}
}
@@ -166,7 +166,7 @@ std::vector<int> AudioIO::getSampleRates() {
return sampleRates;
}
catch (RtAudioError &e) {
warn("Failed to query RtAudio device: %s", e.what());
WARN("Failed to query RtAudio device: %s", e.what());
}
}
return {};
@@ -219,7 +219,7 @@ void AudioIO::openStream() {
deviceInfo = rtAudio->getDeviceInfo(device);
}
catch (RtAudioError &e) {
warn("Failed to query RtAudio device: %s", e.what());
WARN("Failed to query RtAudio device: %s", e.what());
return;
}

@@ -229,7 +229,7 @@ void AudioIO::openStream() {
setChannels(math::clamp((int) deviceInfo.outputChannels - offset, 0, maxChannels), math::clamp((int) deviceInfo.inputChannels - offset, 0, maxChannels));

if (numOutputs == 0 && numInputs == 0) {
warn("RtAudio device %d has 0 inputs and 0 outputs", device);
WARN("RtAudio device %d has 0 inputs and 0 outputs", device);
return;
}

@@ -255,7 +255,7 @@ void AudioIO::openStream() {
}

try {
info("Opening audio RtAudio device %d with %d in %d out", device, numInputs, numOutputs);
INFO("Opening audio RtAudio device %d with %d in %d out", device, numInputs, numOutputs);
rtAudio->openStream(
numOutputs == 0 ? NULL : &outParameters,
numInputs == 0 ? NULL : &inParameters,
@@ -263,16 +263,16 @@ void AudioIO::openStream() {
&rtCallback, this, &options, NULL);
}
catch (RtAudioError &e) {
warn("Failed to open RtAudio stream: %s", e.what());
WARN("Failed to open RtAudio stream: %s", e.what());
return;
}

try {
info("Starting RtAudio stream %d", device);
INFO("Starting RtAudio stream %d", device);
rtAudio->startStream();
}
catch (RtAudioError &e) {
warn("Failed to start RtAudio stream: %s", e.what());
WARN("Failed to start RtAudio stream: %s", e.what());
return;
}

@@ -291,21 +291,21 @@ void AudioIO::closeStream() {

if (rtAudio) {
if (rtAudio->isStreamRunning()) {
info("Stopping RtAudio stream %d", device);
INFO("Stopping RtAudio stream %d", device);
try {
rtAudio->stopStream();
}
catch (RtAudioError &e) {
warn("Failed to stop RtAudio stream %s", e.what());
WARN("Failed to stop RtAudio stream %s", e.what());
}
}
if (rtAudio->isStreamOpen()) {
info("Closing RtAudio stream %d", device);
INFO("Closing RtAudio stream %d", device);
try {
rtAudio->closeStream();
}
catch (RtAudioError &e) {
warn("Failed to close RtAudio stream %s", e.what());
WARN("Failed to close RtAudio stream %s", e.what());
}
}
deviceInfo = RtAudio::DeviceInfo();


+ 23
- 23
src/bridge.cpp View File

@@ -102,13 +102,13 @@ struct BridgeClientConnection {
}

void run() {
info("Bridge client connected");
INFO("Bridge client connected");

// Check hello key
uint32_t hello = -1;
recv<uint32_t>(&hello);
if (hello != BRIDGE_HELLO) {
info("Bridge client protocol mismatch %x %x", hello, BRIDGE_HELLO);
INFO("Bridge client protocol mismatch %x %x", hello, BRIDGE_HELLO);
return;
}

@@ -118,7 +118,7 @@ struct BridgeClientConnection {
step();
}

info("Bridge client closed");
INFO("Bridge client closed");
}

/** Accepts a command from the client */
@@ -131,7 +131,7 @@ struct BridgeClientConnection {
switch (command) {
default:
case NO_COMMAND: {
warn("Bridge client: bad command %d detected, closing", command);
WARN("Bridge client: bad command %d detected, closing", command);
ready = false;
} break;

@@ -169,7 +169,7 @@ struct BridgeClientConnection {

float input[BRIDGE_INPUTS * frames];
if (!recv(&input, BRIDGE_INPUTS * frames * sizeof(float))) {
debug("Failed to receive");
DEBUG("Failed to receive");
return;
}

@@ -177,7 +177,7 @@ struct BridgeClientConnection {
memset(&output, 0, sizeof(output));
processStream(input, output, frames);
if (!send(&output, BRIDGE_OUTPUTS * frames * sizeof(float))) {
debug("Failed to send");
DEBUG("Failed to send");
return;
}
// flush();
@@ -237,17 +237,17 @@ struct BridgeClientConnection {


static void clientRun(int client) {
defer({
DEFER({
#if ARCH_WIN
if (shutdown(client, SD_SEND)) {
warn("Bridge client shutdown() failed");
WARN("Bridge client shutdown() failed");
}
if (closesocket(client)) {
warn("Bridge client closesocket() failed");
WARN("Bridge client closesocket() failed");
}
#else
if (close(client)) {
warn("Bridge client close() failed");
WARN("Bridge client close() failed");
}
#endif
});
@@ -256,7 +256,7 @@ static void clientRun(int client) {
// Avoid SIGPIPE
int flag = 1;
if (setsockopt(client, SOL_SOCKET, SO_NOSIGPIPE, &flag, sizeof(int))) {
warn("Bridge client setsockopt() failed");
WARN("Bridge client setsockopt() failed");
return;
}
#endif
@@ -265,12 +265,12 @@ static void clientRun(int client) {
#if ARCH_WIN
unsigned long blockingMode = 0;
if (ioctlsocket(client, FIONBIO, &blockingMode)) {
warn("Bridge client ioctlsocket() failed");
WARN("Bridge client ioctlsocket() failed");
return;
}
#else
if (fcntl(client, F_SETFL, fcntl(client, F_GETFL, 0) & ~O_NONBLOCK)) {
warn("Bridge client fcntl() failed");
WARN("Bridge client fcntl() failed");
return;
}
#endif
@@ -286,10 +286,10 @@ static void serverConnect() {
#if ARCH_WIN
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData)) {
warn("Bridge server WSAStartup() failed");
WARN("Bridge server WSAStartup() failed");
return;
}
defer({
DEFER({
WSACleanup();
});
#endif
@@ -308,15 +308,15 @@ static void serverConnect() {
// Open socket
int server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (server < 0) {
warn("Bridge server socket() failed");
WARN("Bridge server socket() failed");
return;
}
defer({
DEFER({
if (close(server)) {
warn("Bridge server close() failed");
WARN("Bridge server close() failed");
return;
}
info("Bridge server closed");
INFO("Bridge server closed");
});

#if ARCH_MAC || ARCH_LIN
@@ -326,22 +326,22 @@ static void serverConnect() {

// Bind socket to address
if (bind(server, (struct sockaddr*) &addr, sizeof(addr))) {
warn("Bridge server bind() failed");
WARN("Bridge server bind() failed");
return;
}

// Listen for clients
if (listen(server, 20)) {
warn("Bridge server listen() failed");
WARN("Bridge server listen() failed");
return;
}
info("Bridge server started");
INFO("Bridge server started");

// Enable non-blocking
#if ARCH_WIN
unsigned long blockingMode = 1;
if (ioctlsocket(server, FIONBIO, &blockingMode)) {
warn("Bridge server ioctlsocket() failed");
WARN("Bridge server ioctlsocket() failed");
return;
}
#else


+ 4
- 4
src/main.cpp View File

@@ -56,11 +56,11 @@ int main(int argc, char* argv[]) {
logger::init(devMode);

// Log environment
info("%s %s", gApplicationName.c_str(), gApplicationVersion.c_str());
INFO("%s %s", gApplicationName.c_str(), gApplicationVersion.c_str());
if (devMode)
info("Development mode");
info("Global directory: %s", asset::global("").c_str());
info("Local directory: %s", asset::local("").c_str());
INFO("Development mode");
INFO("Global directory: %s", asset::global("").c_str());
INFO("Local directory: %s", asset::local("").c_str());

// Initialize app
pluginInit(devMode);


+ 1
- 1
src/network.cpp View File

@@ -85,7 +85,7 @@ json_t *requestJson(Method method, std::string url, json_t *dataJ) {
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &resText);

// Perform request
// info("Requesting %s", url.c_str());
// INFO("Requesting %s", url.c_str());
// curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
CURLcode res = curl_easy_perform(curl);



+ 28
- 28
src/plugin.cpp View File

@@ -64,7 +64,7 @@ static bool loadPlugin(std::string path) {

// Check file existence
if (!system::isFile(libraryFilename)) {
warn("Plugin file %s does not exist", libraryFilename.c_str());
WARN("Plugin file %s does not exist", libraryFilename.c_str());
return false;
}

@@ -75,13 +75,13 @@ static bool loadPlugin(std::string path) {
SetErrorMode(0);
if (!handle) {
int error = GetLastError();
warn("Failed to load library %s: code %d", libraryFilename.c_str(), error);
WARN("Failed to load library %s: code %d", libraryFilename.c_str(), error);
return false;
}
#else
void *handle = dlopen(libraryFilename.c_str(), RTLD_NOW);
if (!handle) {
warn("Failed to load library %s: %s", libraryFilename.c_str(), dlerror());
WARN("Failed to load library %s: %s", libraryFilename.c_str(), dlerror());
return false;
}
#endif
@@ -95,7 +95,7 @@ static bool loadPlugin(std::string path) {
initCallback = (InitCallback) dlsym(handle, "init");
#endif
if (!initCallback) {
warn("Failed to read init() symbol in %s", libraryFilename.c_str());
WARN("Failed to read init() symbol in %s", libraryFilename.c_str());
return false;
}

@@ -108,7 +108,7 @@ static bool loadPlugin(std::string path) {
// Reject plugin if slug already exists
Plugin *oldPlugin = pluginGetPlugin(plugin->slug);
if (oldPlugin) {
warn("Plugin \"%s\" is already loaded, not attempting to load it again", plugin->slug.c_str());
WARN("Plugin \"%s\" is already loaded, not attempting to load it again", plugin->slug.c_str());
// TODO
// Fix memory leak with `plugin` here
return false;
@@ -116,7 +116,7 @@ static bool loadPlugin(std::string path) {

// Add plugin to list
gPlugins.push_back(plugin);
info("Loaded plugin %s %s from %s", plugin->slug.c_str(), plugin->version.c_str(), libraryFilename.c_str());
INFO("Loaded plugin %s %s from %s", plugin->slug.c_str(), plugin->version.c_str(), libraryFilename.c_str());

return true;
}
@@ -135,7 +135,7 @@ static bool syncPlugin(std::string slug, json_t *manifestJ, bool dryRun) {
// Get latest version
json_t *latestVersionJ = json_object_get(manifestJ, "latestVersion");
if (!latestVersionJ) {
warn("Could not get latest version of plugin %s", slug.c_str());
WARN("Could not get latest version of plugin %s", slug.c_str());
return false;
}
std::string latestVersion = json_string_value(latestVersionJ);
@@ -178,10 +178,10 @@ static bool syncPlugin(std::string slug, json_t *manifestJ, bool dryRun) {
// Check if available
json_t *availableResJ = network::requestJson(network::METHOD_GET, downloadUrl, NULL);
if (!availableResJ) {
warn("Could not check whether download is available");
WARN("Could not check whether download is available");
return false;
}
defer({
DEFER({
json_decref(availableResJ);
});
json_t *successJ = json_object_get(availableResJ, "success");
@@ -190,12 +190,12 @@ static bool syncPlugin(std::string slug, json_t *manifestJ, bool dryRun) {
else {
downloadName = name;
downloadProgress = 0.0;
info("Downloading plugin %s %s %s", slug.c_str(), latestVersion.c_str(), arch.c_str());
INFO("Downloading plugin %s %s %s", slug.c_str(), latestVersion.c_str(), arch.c_str());

// Download zip
std::string pluginDest = asset::local("plugins/" + slug + ".zip");
if (!network::requestDownload(downloadUrl, pluginDest, &downloadProgress)) {
warn("Plugin %s download was unsuccessful", slug.c_str());
WARN("Plugin %s download was unsuccessful", slug.c_str());
return false;
}

@@ -226,7 +226,7 @@ static int extractZipHandle(zip_t *za, const char *dir) {
zip_stat_t zs;
err = zip_stat_index(za, i, 0, &zs);
if (err) {
warn("zip_stat_index() failed: error %d", err);
WARN("zip_stat_index() failed: error %d", err);
return err;
}
int nameLen = strlen(zs.name);
@@ -237,7 +237,7 @@ static int extractZipHandle(zip_t *za, const char *dir) {
if (zs.name[nameLen - 1] == '/') {
if (mkdir(path, 0755)) {
if (errno != EEXIST) {
warn("mkdir(%s) failed: error %d", path, errno);
WARN("mkdir(%s) failed: error %d", path, errno);
return errno;
}
}
@@ -245,7 +245,7 @@ static int extractZipHandle(zip_t *za, const char *dir) {
else {
zip_file_t *zf = zip_fopen_index(za, i, 0);
if (!zf) {
warn("zip_fopen_index() failed");
WARN("zip_fopen_index() failed");
return -1;
}

@@ -263,7 +263,7 @@ static int extractZipHandle(zip_t *za, const char *dir) {

err = zip_fclose(zf);
if (err) {
warn("zip_fclose() failed: error %d", err);
WARN("zip_fclose() failed: error %d", err);
return err;
}
fclose(outFile);
@@ -277,10 +277,10 @@ static int extractZip(const char *filename, const char *path) {
int err;
zip_t *za = zip_open(filename, 0, &err);
if (!za) {
warn("Could not open zip %s: error %d", filename, err);
WARN("Could not open zip %s: error %d", filename, err);
return err;
}
defer({
DEFER({
zip_close(za);
});

@@ -294,16 +294,16 @@ static void extractPackages(std::string path) {
for (std::string packagePath : system::listEntries(path)) {
if (string::extension(packagePath) != "zip")
continue;
info("Extracting package %s", packagePath.c_str());
INFO("Extracting package %s", packagePath.c_str());
// Extract package
if (extractZip(packagePath.c_str(), path.c_str())) {
warn("Package %s failed to extract", packagePath.c_str());
WARN("Package %s failed to extract", packagePath.c_str());
message += string::stringf("Could not extract package %s\n", packagePath.c_str());
continue;
}
// Remove package
if (remove(packagePath.c_str())) {
warn("Could not delete file %s: error %d", packagePath.c_str(), errno);
WARN("Could not delete file %s: error %d", packagePath.c_str(), errno);
}
}
if (!message.empty()) {
@@ -372,7 +372,7 @@ bool pluginSync(bool dryRun) {
downloadProgress = 0.0;
downloadName = "Updating plugins...";
}
defer({
DEFER({
isDownloading = false;
});

@@ -382,38 +382,38 @@ bool pluginSync(bool dryRun) {
json_t *pluginsResJ = network::requestJson(network::METHOD_GET, gApiHost + "/plugins", pluginsReqJ);
json_decref(pluginsReqJ);
if (!pluginsResJ) {
warn("Request for user's plugins failed");
WARN("Request for user's plugins failed");
return false;
}
defer({
DEFER({
json_decref(pluginsResJ);
});

json_t *errorJ = json_object_get(pluginsResJ, "error");
if (errorJ) {
warn("Request for user's plugins returned an error: %s", json_string_value(errorJ));
WARN("Request for user's plugins returned an error: %s", json_string_value(errorJ));
return false;
}

// Get community manifests
json_t *manifestsResJ = network::requestJson(network::METHOD_GET, gApiHost + "/community/manifests", NULL);
if (!manifestsResJ) {
warn("Request for community manifests failed");
WARN("Request for community manifests failed");
return false;
}
defer({
DEFER({
json_decref(manifestsResJ);
});

// Check each plugin in list of plugin slugs
json_t *pluginsJ = json_object_get(pluginsResJ, "plugins");
if (!pluginsJ) {
warn("No plugins array");
WARN("No plugins array");
return false;
}
json_t *manifestsJ = json_object_get(manifestsResJ, "manifests");
if (!manifestsJ) {
warn("No manifests object");
WARN("No manifests object");
return false;
}



+ 3
- 3
src/settings.cpp View File

@@ -152,7 +152,7 @@ static void settingsFromJson(json_t *rootJ) {


void settingsSave(std::string filename) {
info("Saving settings %s", filename.c_str());
INFO("Saving settings %s", filename.c_str());
json_t *rootJ = settingsToJson();
if (rootJ) {
FILE *file = fopen(filename.c_str(), "w");
@@ -166,7 +166,7 @@ void settingsSave(std::string filename) {
}

void settingsLoad(std::string filename) {
info("Loading settings %s", filename.c_str());
INFO("Loading settings %s", filename.c_str());
FILE *file = fopen(filename.c_str(), "r");
if (!file)
return;
@@ -178,7 +178,7 @@ void settingsLoad(std::string filename) {
json_decref(rootJ);
}
else {
warn("JSON parsing error at %s %d:%d %s", error.source, error.line, error.column, error.text);
WARN("JSON parsing error at %s %d:%d %s", error.source, error.line, error.column, error.text);
}

fclose(file);


+ 2
- 2
src/system.cpp View File

@@ -48,13 +48,13 @@ void copyFile(std::string srcPath, std::string destPath) {
FILE *source = fopen(srcPath.c_str(), "rb");
if (!source)
return;
defer({
DEFER({
fclose(source);
});
FILE *dest = fopen(destPath.c_str(), "wb");
if (!dest)
return;
defer({
DEFER({
fclose(dest);
});
// Copy buffer


+ 1
- 1
src/widgets/FramebufferWidget.cpp View File

@@ -62,7 +62,7 @@ void FramebufferWidget::draw(NVGcontext *vg) {
if (fbSize.isZero())
return;

// info("rendering framebuffer %f %f", fbSize.x, fbSize.y);
// INFO("rendering framebuffer %f %f", fbSize.x, fbSize.y);
// Delete old one first to free up GPU memory
internal->setFramebuffer(NULL);
// Create a framebuffer from the main nanovg context. We will draw to this in the secondary nanovg context.


+ 8
- 8
src/window.cpp View File

@@ -300,7 +300,7 @@ void dropCallback(GLFWwindow *window, int count, const char **paths) {
}

void errorCallback(int error, const char *description) {
warn("GLFW error %d: %s", error, description);
WARN("GLFW error %d: %s", error, description);
}

void renderGui() {
@@ -496,7 +496,7 @@ void windowRun() {
std::this_thread::sleep_for(std::chrono::duration<double>(minTime - frameTime));
}
endTime = glfwGetTime();
// info("%lf fps", 1.0 / (endTime - startTime));
// INFO("%lf fps", 1.0 / (endTime - startTime));
}
}

@@ -637,10 +637,10 @@ bool windowGetFullScreen() {
Font::Font(const std::string &filename) {
handle = nvgCreateFont(gVg, filename.c_str(), filename.c_str());
if (handle >= 0) {
info("Loaded font %s", filename.c_str());
INFO("Loaded font %s", filename.c_str());
}
else {
warn("Failed to load font %s", filename.c_str());
WARN("Failed to load font %s", filename.c_str());
}
}

@@ -663,10 +663,10 @@ std::shared_ptr<Font> Font::load(const std::string &filename) {
Image::Image(const std::string &filename) {
handle = nvgCreateImage(gVg, filename.c_str(), NVG_IMAGE_REPEATX | NVG_IMAGE_REPEATY);
if (handle > 0) {
info("Loaded image %s", filename.c_str());
INFO("Loaded image %s", filename.c_str());
}
else {
warn("Failed to load image %s", filename.c_str());
WARN("Failed to load image %s", filename.c_str());
}
}

@@ -690,10 +690,10 @@ std::shared_ptr<Image> Image::load(const std::string &filename) {
SVG::SVG(const std::string &filename) {
handle = nsvgParseFromFile(filename.c_str(), "px", SVG_DPI);
if (handle) {
info("Loaded SVG %s", filename.c_str());
INFO("Loaded SVG %s", filename.c_str());
}
else {
warn("Failed to load SVG %s", filename.c_str());
WARN("Failed to load SVG %s", filename.c_str());
}
}



Loading…
Cancel
Save