commit e2a2735e14919974b15275932f057822a7843774
parent 801b05b290eafb104ac5f6a85ae9cbacf5f36c36
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Sat, 9 May 2015 12:33:43 -0400
Apply Patch For Carla Embedding
Authored By FalkTX
Diffstat:
19 files changed, 71 insertions(+), 23 deletions(-)
diff --git a/src/Misc/Allocator.cpp b/src/Misc/Allocator.cpp
@@ -107,6 +107,7 @@ void Allocator::addMemory(void *v, size_t mem_size)
printf("FAILED TO INSERT MEMORY POOL\n");
};//{(void)mem_size;};
+#ifndef INCLUDED_tlsfbits
//From tlsf internals
typedef struct block_header_t
{
@@ -121,6 +122,7 @@ typedef struct block_header_t
struct block_header_t* prev_free;
} block_header_t;
static const size_t block_header_free_bit = 1 << 0;
+#endif
bool Allocator::memFree(void *pool)
{
diff --git a/src/Misc/Allocator.h b/src/Misc/Allocator.h
@@ -1,3 +1,4 @@
+#pragma once
#include <cstdlib>
#include <utility>
diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp
@@ -204,11 +204,15 @@ void refreshBankView(const Bank &bank, unsigned loc, Fl_Osc_Interface *osc)
errx(1, "Failure to handle bank update properly...");
+ if (osc)
osc->tryLink(response);
}
void bankList(Bank &bank, Fl_Osc_Interface *osc)
{
+ if (! osc)
+ return;
+
char response[2048];
int i = 0;
@@ -216,6 +220,7 @@ void bankList(Bank &bank, Fl_Osc_Interface *osc)
if(!rtosc_message(response, 2048, "/bank-list", "iss",
i++, elm.name.c_str(), elm.dir.c_str()))
errx(1, "Failure to handle bank update properly...");
+ if (osc)
osc->tryLink(response);
}
}
@@ -1316,3 +1321,8 @@ const SYNTH_T &MiddleWare::getSynth(void) const
{
return impl->synth;
}
+
+const char* MiddleWare::getServerAddress(void) const
+{
+ return lo_server_get_url(impl->server);
+}
diff --git a/src/Misc/MiddleWare.h b/src/Misc/MiddleWare.h
@@ -35,6 +35,8 @@ class MiddleWare
void activeUrl(std::string u);
//View Synthesis Parameters
const SYNTH_T &getSynth(void) const;
+ //liblo stuff
+ const char* getServerAddress(void) const;
private:
class MiddleWareImpl *impl;
};
diff --git a/src/Params/ADnoteParameters.cpp b/src/Params/ADnoteParameters.cpp
@@ -273,9 +273,6 @@ const Ports &ADnoteParameters::ports = adPorts;
const Ports &ADnoteVoiceParam::ports = voicePorts;
const Ports &ADnoteGlobalParam::ports = globalPorts;
-int ADnote_unison_sizes[] =
-{1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 25, 30, 40, 50, 0};
-
ADnoteParameters::ADnoteParameters(const SYNTH_T &synth, FFTwrapper *fft_)
:PresetsArray()
{
@@ -1027,6 +1024,8 @@ void ADnoteGlobalParam::paste(ADnoteGlobalParam &a)
RCopy(FilterLfo);
RCopy(Reson);
}
+#undef copy
+#undef RCopy
void ADnoteVoiceParam::getfromXML(XMLwrapper *xml, unsigned nvoice)
{
diff --git a/src/Params/ADnoteParameters.h b/src/Params/ADnoteParameters.h
@@ -29,7 +29,8 @@
enum FMTYPE {
NONE, MORPH, RING_MOD, PHASE_MOD, FREQ_MOD, PITCH_MOD
};
-extern int ADnote_unison_sizes[];
+static const int ADnote_unison_sizes[] =
+{1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 25, 30, 40, 50, 0};
/*****************************************************************/
/* GLOBAL PARAMETERS */
diff --git a/src/Params/FilterParams.cpp b/src/Params/FilterParams.cpp
@@ -121,6 +121,8 @@ const rtosc::Ports FilterParams::ports = {
//{"Pvowels#" FF_MAX_VOWELS "/formants#" FF_MAX_FORMANTS "/q",
// "", NULL, [](){}},
};
+#undef rChangeCb
+#define rChangeCb
diff --git a/src/Params/PADnoteParameters.cpp b/src/Params/PADnoteParameters.cpp
@@ -50,7 +50,7 @@ void simpleset(const char *m, rtosc::RtData &d)
#define P_C(x) rtosc::Port{#x "::c", "::", NULL, \
simpleset<__builtin_offsetof(class PADnoteParameters, P##x)>}
-static const rtosc::Ports localPorts =
+static const rtosc::Ports PADnotePorts =
{
rRecurp(oscilgen, "Oscillator"),
rRecurp(FreqLfo, "Frequency LFO"),
@@ -187,7 +187,7 @@ static const rtosc::Ports localPorts =
}},
};
-const rtosc::Ports &PADnoteParameters::ports = localPorts;
+const rtosc::Ports &PADnoteParameters::ports = PADnotePorts;
PADnoteParameters::PADnoteParameters(const SYNTH_T &synth_, FFTwrapper *fft_)
:Presets(), synth(synth_)
diff --git a/src/Params/SUBnoteParameters.cpp b/src/Params/SUBnoteParameters.cpp
@@ -33,7 +33,7 @@
#define rObject SUBnoteParameters
using namespace rtosc;
-static const rtosc::Ports localPorts = {
+static const rtosc::Ports SUBnotePorts = {
rSelf(SUBnoteParameters),
rPaste,
rToggle(Pstereo, "Stereo Enable"),
@@ -122,7 +122,7 @@ static const rtosc::Ports localPorts = {
};
-const rtosc::Ports &SUBnoteParameters::ports = localPorts;
+const rtosc::Ports &SUBnoteParameters::ports = SUBnotePorts;
SUBnoteParameters::SUBnoteParameters():Presets()
{
diff --git a/src/UI/Connection.cpp b/src/UI/Connection.cpp
@@ -69,23 +69,38 @@ ui_handle_t GUI::createUi(Fl_Osc_Interface *osc, void *exit)
Fl_Dial::default_style(Fl_Dial::PIXMAP_DIAL);
+#ifdef CARLA_VERSION_STRING
+ if(Fl_Shared_Image *img = Fl_Shared_Image::get(gUiPixmapPath + "knob.png"))
+ Fl_Dial::default_image(img);
+#else
if(Fl_Shared_Image *img = Fl_Shared_Image::get(PIXMAP_PATH "/knob.png"))
Fl_Dial::default_image(img);
+#endif
else if(Fl_Shared_Image *img = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/knob.png"))
Fl_Dial::default_image(img);
else
errx(1, "ERROR: Cannot find pixmaps/knob.png");
+#ifdef CARLA_VERSION_STRING
+ if(Fl_Shared_Image *img = Fl_Shared_Image::get(gUiPixmapPath + "window_backdrop.png"))
+ Fl::scheme_bg(new Fl_Tiled_Image(img));
+#else
if(Fl_Shared_Image *img = Fl_Shared_Image::get(PIXMAP_PATH "/window_backdrop.png"))
Fl::scheme_bg(new Fl_Tiled_Image(img));
+#endif
else if(Fl_Shared_Image *img = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/window_backdrop.png"))
Fl::scheme_bg(new Fl_Tiled_Image(img));
else
errx(1, "ERROR: Cannot find pixmaps/window_backdrop.png");
+#ifdef CARLA_VERSION_STRING
+ if(Fl_Shared_Image *img = Fl_Shared_Image::get(gUiPixmapPath + "module_backdrop.png"))
+ module_backdrop = new Fl_Tiled_Image(img);
+#else
if(Fl_Shared_Image *img = Fl_Shared_Image::get(PIXMAP_PATH "/module_backdrop.png"))
module_backdrop = new Fl_Tiled_Image(img);
+#endif
else if(Fl_Shared_Image *img = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/module_backdrop.png"))
module_backdrop = new Fl_Tiled_Image(img);
else
diff --git a/src/UI/EnvelopeFreeEdit.h b/src/UI/EnvelopeFreeEdit.h
@@ -1,3 +1,4 @@
+#pragma once
#include <FL/Fl_Box.H>
#include "../Params/EnvelopeParams.h"
#include "Fl_Osc_Widget.H"
diff --git a/src/UI/Fl_Osc_Choice.cpp b/src/UI/Fl_Osc_Choice.cpp
@@ -7,7 +7,7 @@
#include <cassert>
#include <sstream>
-static void callback_fn(Fl_Widget *w, void *)
+static void callback_fn_choice(Fl_Widget *w, void *)
{
((Fl_Osc_Choice*)w)->cb();
}
@@ -16,7 +16,7 @@ Fl_Osc_Choice::Fl_Osc_Choice(int X, int Y, int W, int H, const char *label)
:Fl_Choice(X,Y,W,H, label), Fl_Osc_Widget(this), cb_data(NULL, NULL)
{
min = 0;
- Fl_Choice::callback(callback_fn, NULL);
+ Fl_Choice::callback(callback_fn_choice, NULL);
}
void Fl_Osc_Choice::init(std::string path_, int base)
diff --git a/src/UI/Fl_Osc_Counter.cpp b/src/UI/Fl_Osc_Counter.cpp
@@ -1,6 +1,6 @@
#include "Fl_Osc_Counter.H"
-static void callback_fn(Fl_Widget *w, void *)
+static void callback_fn_counter(Fl_Widget *w, void *)
{
((Fl_Osc_Counter*)w)->cb();
}
@@ -8,7 +8,7 @@ static void callback_fn(Fl_Widget *w, void *)
Fl_Osc_Counter::Fl_Osc_Counter(int x, int y, int w, int h, const char *label)
:Fl_Counter(x,y,w,h,label), Fl_Osc_Widget(this), offset(0)
{
- Fl_Counter::callback(callback_fn);
+ Fl_Counter::callback(callback_fn_counter);
}
void Fl_Osc_Counter::update(void)
diff --git a/src/UI/Fl_Osc_Dial.cpp b/src/UI/Fl_Osc_Dial.cpp
@@ -8,7 +8,7 @@
#include <cassert>
#include <sstream>
-static void callback_fn(Fl_Widget *w, void *)
+static void callback_fn_dial(Fl_Widget *w, void *)
{
((Fl_Osc_Dial*)w)->cb();
}
@@ -28,7 +28,7 @@ Fl_Osc_Dial::Fl_Osc_Dial(int X, int Y, int W, int H, const char *label)
:WidgetPDial(X,Y,W,H, label), Fl_Osc_Widget(this), alt_style(false), dead(false)
{
bounds(0.0, 127.0f);
- WidgetPDial::callback(callback_fn);
+ WidgetPDial::callback(callback_fn_dial);
}
diff --git a/src/UI/Fl_Osc_DialF.cpp b/src/UI/Fl_Osc_DialF.cpp
@@ -18,7 +18,7 @@ B string_cast(const A &a)
return b;
}
-static void callback_fn(Fl_Widget *w, void *)
+static void callback_fn_dialf(Fl_Widget *w, void *)
{
((Fl_Osc_DialF*)w)->cb();
}
@@ -27,7 +27,7 @@ Fl_Osc_DialF::Fl_Osc_DialF(int X, int Y, int W, int H, const char *label)
:WidgetPDial(X,Y,W,H, label), Fl_Osc_Widget()
{
//bounds(0.0, 127.0f);
- WidgetPDial::callback(callback_fn);
+ WidgetPDial::callback(callback_fn_dialf);
}
diff --git a/src/UI/Fl_Osc_Output.cpp b/src/UI/Fl_Osc_Output.cpp
@@ -5,7 +5,7 @@
#include <cassert>
#include <sstream>
-static void callback_fn(Fl_Widget *w, void *)
+static void callback_fn_output(Fl_Widget *w, void *)
{
((Fl_Osc_Output*)w)->cb();
}
@@ -13,7 +13,7 @@ static void callback_fn(Fl_Widget *w, void *)
Fl_Osc_Output::Fl_Osc_Output(int X, int Y, int W, int H, const char *label)
:Fl_Value_Output(X,Y,W,H, label), Fl_Osc_Widget(this)
{
- Fl_Value_Output::callback(callback_fn);
+ Fl_Value_Output::callback(callback_fn_output);
}
diff --git a/src/UI/Fl_Osc_Roller.cpp b/src/UI/Fl_Osc_Roller.cpp
@@ -5,7 +5,7 @@
#include <cassert>
#include <sstream>
-static void callback_fn(Fl_Widget *w, void *)
+static void callback_fn_roller(Fl_Widget *w, void *)
{
((Fl_Osc_Roller*)w)->cb();
}
@@ -13,7 +13,7 @@ static void callback_fn(Fl_Widget *w, void *)
Fl_Osc_Roller::Fl_Osc_Roller(int X, int Y, int W, int H, const char *label)
:Fl_Roller(X,Y,W,H, label), Fl_Osc_Widget(this)
{
- Fl_Roller::callback(callback_fn);
+ Fl_Roller::callback(callback_fn_roller);
bounds(0.0, 127.0f);
}
diff --git a/src/UI/Fl_Osc_Value.H b/src/UI/Fl_Osc_Value.H
@@ -1,3 +1,4 @@
+#pragma once
#include <FL/Fl_Value_Input.H>
#include "Fl_Osc_Widget.H"
diff --git a/src/UI/guimain.cpp b/src/UI/guimain.cpp
@@ -34,9 +34,6 @@ NSM_Client *nsm = 0;
lo_server server;
std::string sendtourl;
-int ADnote_unison_sizes[] =
-{1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 25, 30, 40, 50, 0};
-
/*
* Program exit
*/
@@ -128,23 +125,38 @@ ui_handle_t GUI::createUi(Fl_Osc_Interface *osc, void *exit)
Fl_Dial::default_style(Fl_Dial::PIXMAP_DIAL);
+#ifdef CARLA_VERSION_STRING
+ if(Fl_Shared_Image *img = Fl_Shared_Image::get(gUiPixmapPath + "knob.png"))
+ Fl_Dial::default_image(img);
+#else
if(Fl_Shared_Image *img = Fl_Shared_Image::get(PIXMAP_PATH "/knob.png"))
Fl_Dial::default_image(img);
+#endif
else if(Fl_Shared_Image *img = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/knob.png"))
Fl_Dial::default_image(img);
else
errx(1, "ERROR: Cannot find pixmaps/knob.png");
+#ifdef CARLA_VERSION_STRING
+ if(Fl_Shared_Image *img = Fl_Shared_Image::get(gUiPixmapPath + "window_backdrop.png"))
+ Fl::scheme_bg(new Fl_Tiled_Image(img));
+#else
if(Fl_Shared_Image *img = Fl_Shared_Image::get(PIXMAP_PATH "/window_backdrop.png"))
Fl::scheme_bg(new Fl_Tiled_Image(img));
+#endif
else if(Fl_Shared_Image *img = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/window_backdrop.png"))
Fl::scheme_bg(new Fl_Tiled_Image(img));
else
errx(1, "ERROR: Cannot find pixmaps/window_backdrop.png");
+#ifdef CARLA_VERSION_STRING
+ if(Fl_Shared_Image *img = Fl_Shared_Image::get(gUiPixmapPath + "module_backdrop.png"))
+ module_backdrop = new Fl_Tiled_Image(img);
+#else
if(Fl_Shared_Image *img = Fl_Shared_Image::get(PIXMAP_PATH "/module_backdrop.png"))
module_backdrop = new Fl_Tiled_Image(img);
+#endif
else if(Fl_Shared_Image *img = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/module_backdrop.png"))
module_backdrop = new Fl_Tiled_Image(img);
else
@@ -510,6 +522,7 @@ static int handler_function(const char *path, const char *types, lo_arg **argv,
return 0;
}
+#ifndef CARLA_VERSION_STRING
int main(int argc, char *argv[])
{
//Startup Liblo Link
@@ -531,3 +544,4 @@ int main(int argc, char *argv[])
exitprogram();
return 0;
}
+#endif