commit 2ca4ab227fcf24288a896661f41257d9af9a67b3
parent adf4ed47390b1645dc2dfca8bfa1394a7f6d7608
Author: Johannes Lorenz <j.git@lorenz-ho.me>
Date: Fri, 21 Feb 2025 18:52:14 +0100
Fix clang compiler warnings of different types
Diffstat:
21 files changed, 46 insertions(+), 49 deletions(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
@@ -370,10 +370,18 @@ add_definitions(
-Wall
-Wextra)
-check_cxx_compiler_flag("-Wno-stringop-truncation" COMPILER_SUPPORTS_NO_STRINGOP_TRUNCATION)
-if (COMPILER_SUPPORTS_NO_STRINGOP_TRUNCATION)
+check_cxx_compiler_flag("-Wno-stringop-truncation" HAVE_NO_STRINGOP_TRUNCATION)
+if (HAVE_NO_STRINGOP_TRUNCATION)
add_definitions(-Wno-stringop-truncation) # https://stackoverflow.com/questions/50198319
endif()
+check_cxx_compiler_flag("-Wno-vla-cxx-extension" HAVE_NO_VLA_CXX_EXTENSION)
+if (HAVE_NO_VLA_CXX_EXTENSION)
+ add_definitions(-Wno-vla-cxx-extension)
+endif()
+check_cxx_compiler_flag("-Wno-nan-infinity-disabled" HAVE_NO_NAN_INFINITY_DISABLED)
+if (HAVE_NO_NAN_INFINITY_DISABLED)
+ add_definitions(-Wno-nan-infinity-disabled) # std::isnan(), https://stackoverflow.com/questions/56097944
+endif()
# macro similar to "check_cxx_compiler_flag", however,
# it also checks for warnings that are only output if other warnings are active
@@ -390,9 +398,9 @@ endmacro ()
check_cxx_compiler_flag_extra("-Wall -Wextra -Wno-inconsistent-missing-override"
"unrecognized|option"
- COMPILER_SUPPORTS_NO_INCONSISTENT_MISSING_OVERRIDE
+ HAVE_NO_INCONSISTENT_MISSING_OVERRIDE
)
-if(COMPILER_SUPPORTS_NO_INCONSISTENT_MISSING_OVERRIDE)
+if(HAVE_NO_INCONSISTENT_MISSING_OVERRIDE)
add_definitions(-Wno-inconsistent-missing-override)
endif()
diff --git a/src/DSP/Reverter.cpp b/src/DSP/Reverter.cpp
@@ -24,7 +24,7 @@ namespace zyn {
Reverter::Reverter(Allocator *alloc, float delay_, unsigned int srate, int bufsize, float tRef_, const AbsTime *time_)
: syncMode(NOTEON), input(nullptr), gain(1.0f), delay(0.0f), phase(0.0f), crossfade(0.16f),
- tRef(tRef_), buffer_offset(0), buffer_counter(0), reverse_index(0.0f), phase_offset_old(0.0f),
+ tRef(tRef_), reverse_index(0.0f), phase_offset_old(0.0f),
phase_offset_fade(0.0f), fade_counter(0), mean_abs_value(999.9f), time(time_), memory(*alloc),
samplerate(srate), buffersize(bufsize), max_delay_samples(srate * MAX_REV_DELAY_SECONDS)
{
@@ -97,7 +97,7 @@ void Reverter::processBuffer(float *smp) {
for (int i = 0; i < buffersize; i++) {
reverse_index++;
checkSync();
- updateReaderPosition(i);
+ updateReaderPosition();
crossfadeSamples(smp, i);
applyGain(smp[i]);
}
@@ -168,7 +168,7 @@ void Reverter::sync(float pos) {
}
}
-void Reverter::updateReaderPosition(int i) {
+void Reverter::updateReaderPosition() {
// buffersize
// |<---->|
// ---+------+------+------+------+------+---
diff --git a/src/DSP/Reverter.h b/src/DSP/Reverter.h
@@ -163,7 +163,7 @@ private:
/**
* @brief Update the read position in the ring buffer.
*/
- void updateReaderPosition(int i);
+ void updateReaderPosition();
/**
* @brief Apply crossfading between two buffer segments.
@@ -215,12 +215,6 @@ private:
/// Time reference for syncing
float tRef;
- /// Offset in the buffer for reading/writing
- int buffer_offset;
-
- /// Counter for buffer processing
- int buffer_counter;
-
/// Offset for global time synchronization
float global_offset;
diff --git a/src/Effects/Alienwah.cpp b/src/Effects/Alienwah.cpp
@@ -68,7 +68,7 @@ rtosc::Ports Alienwah::ports = {
Alienwah::Alienwah(EffectParams pars)
:Effect(pars),
- lfo(pars.srate, pars.bufsize, pars.time),
+ lfo(pars.srate, pars.bufsize),
oldl(NULL),
oldr(NULL)
{
diff --git a/src/Effects/Chorus.cpp b/src/Effects/Chorus.cpp
@@ -80,7 +80,7 @@ rtosc::Ports Chorus::ports = {
Chorus::Chorus(EffectParams pars)
:Effect(pars),
- lfo(pars.srate, pars.bufsize, pars.time),
+ lfo(pars.srate, pars.bufsize),
maxdelay((int)(MAX_CHORUS_DELAY / 1000.0f * samplerate_f)),
delaySample(memory.valloc<float>(maxdelay), memory.valloc<float>(maxdelay))
{
diff --git a/src/Effects/DynamicFilter.cpp b/src/Effects/DynamicFilter.cpp
@@ -65,7 +65,7 @@ rtosc::Ports DynamicFilter::ports = {
DynamicFilter::DynamicFilter(EffectParams pars)
:Effect(pars),
- lfo(pars.srate, pars.bufsize, pars.time),
+ lfo(pars.srate, pars.bufsize),
Pvolume(110),
Pdepth(0),
Pampsns(90),
diff --git a/src/Effects/EffectLFO.cpp b/src/Effects/EffectLFO.cpp
@@ -19,7 +19,7 @@
namespace zyn {
-EffectLFO::EffectLFO(float srate_f, float bufsize_f, const AbsTime *time_)
+EffectLFO::EffectLFO(float srate_f, float bufsize_f)
:Pfreq(40),
Prandomness(0),
PLFOtype(0),
@@ -32,8 +32,7 @@ EffectLFO::EffectLFO(float srate_f, float bufsize_f, const AbsTime *time_)
ampr2(RND),
lfornd(0.0f),
samplerate_f(srate_f),
- buffersize_f(bufsize_f),
- time(time_)
+ buffersize_f(bufsize_f)
{
updateparams();
}
diff --git a/src/Effects/EffectLFO.h b/src/Effects/EffectLFO.h
@@ -28,9 +28,8 @@ class EffectLFO
*
* @param srate_f Sample rate.
* @param bufsize_f Buffer size.
- * @param time Pointer to an AbsTime object (optional).
*/
- EffectLFO(float srate_f, float bufsize_f, const AbsTime *time = nullptr);
+ EffectLFO(float srate_f, float bufsize_f);
/**
* Destructs the EffectLFO object.
@@ -76,11 +75,6 @@ private:
// Current setup
float samplerate_f; //!< Sample rate
float buffersize_f; //!< Buffer size
-
- const AbsTime *time; //!< Pointer to an AbsTime object
- unsigned int numerator; //!< The numerator of the time signature to calculate the frequency from system tempo(bpm)
- //!< If it is 0 Pfreq is used.
- unsigned int denominator; //!< The denominator of the time signature to calculate the frequency from system tempo(bpm)
};
}
diff --git a/src/Effects/EffectMgr.cpp b/src/Effects/EffectMgr.cpp
@@ -68,7 +68,7 @@ static const rtosc::Ports local_ports = {
if(!tail)
return;
for(int i=0;i<128;++i) {
- sprintf(tail+1, "parameter%d", i);
+ snprintf(tail+1, sizeof(loc)-(tail+1-loc), "parameter%d", i);
d.broadcast(loc, "i", eff->geteffectparrt(i));
}
}
diff --git a/src/Effects/Phaser.cpp b/src/Effects/Phaser.cpp
@@ -113,7 +113,7 @@ rtosc::Ports Phaser::ports = {
#define ZERO_ 0.00001f // Same idea as above.
Phaser::Phaser(EffectParams pars)
- :Effect(pars), lfo(pars.srate, pars.bufsize, pars.time), old(NULL), xn1(NULL),
+ :Effect(pars), lfo(pars.srate, pars.bufsize), old(NULL), xn1(NULL),
yn1(NULL), diff(0.0f), oldgain(0.0f), fb(0.0f)
{
analog_setup();
diff --git a/src/Effects/Reverse.cpp b/src/Effects/Reverse.cpp
@@ -50,7 +50,7 @@ rtosc::Ports Reverse::ports = {
"Enable Stereo Processing"),
rEffPar(Pphase, 4, rShort("phase"), rDefault(64),
"Phase offset for Reversed Segment"),
- rEffPar(Pcrossfade, 5, rShort("fade"), rDefault(64), rUnit(1\/100 s),
+ rEffPar(Pcrossfade, 5, rShort("fade"), rDefault(64), rUnit(1/100 s),
"Cross Fade Time between Reversed Segments"),
rEffParOpt(Psyncmode, 6, rShort("mode"), rDefault(NOTEON),
rOptions(SYNCMODES),
diff --git a/src/Misc/Master.cpp b/src/Misc/Master.cpp
@@ -1480,7 +1480,7 @@ void Master::GetAudioOutSamples(size_t nsamples,
int beat,
float tick,
float beatsPerBar,
- float beatType,
+ float /*beatType*/,
float bpm,
float PPQ,
bool playing,
diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp
@@ -2543,7 +2543,7 @@ void MiddleWare::doReadOnlyOp(std::function<void()> fn)
impl->doReadOnlyOp(fn);
}
-void MiddleWare::setUiCallback(int gui_id, void(*cb)(void*,const char *), void *ui)
+void MiddleWare::setUiCallback(std::size_t gui_id, void(*cb)(void*,const char *), void *ui)
{
assert(gui_id < sizeof(impl->cb)/sizeof(impl->cb[0]));
impl->cb[gui_id] = cb;
@@ -2582,7 +2582,7 @@ void MiddleWare::transmitMsg_va(const char *path, const char *args, va_list va)
fprintf(stderr, "Error in transmitMsg(va)n");
}
-void MiddleWare::transmitMsgGui(int gui_id, const char *msg)
+void MiddleWare::transmitMsgGui(std::size_t gui_id, const char *msg)
{
if(gui_id == 0 && activeUrl() != "GUI") {
transmitMsg("/echo", "ss", "OSC_URL", "GUI");
@@ -2594,7 +2594,7 @@ void MiddleWare::transmitMsgGui(int gui_id, const char *msg)
transmitMsg(msg);
}
-void MiddleWare::transmitMsgGui(int gui_id, const char *path, const char *args, ...)
+void MiddleWare::transmitMsgGui(std::size_t gui_id, const char *path, const char *args, ...)
{
char buffer[1024];
va_list va;
@@ -2606,7 +2606,7 @@ void MiddleWare::transmitMsgGui(int gui_id, const char *path, const char *args,
va_end(va);
}
-void MiddleWare::transmitMsgGui_va(int gui_id, const char *path, const char *args, va_list va)
+void MiddleWare::transmitMsgGui_va(std::size_t gui_id, const char *path, const char *args, va_list va)
{
char buffer[1024];
if(rtosc_vmessage(buffer, 1024, path, args, va))
diff --git a/src/Misc/MiddleWare.h b/src/Misc/MiddleWare.h
@@ -51,7 +51,7 @@ class MiddleWare
//return UI interface
Fl_Osc_Interface *spawnUiApi(void);
//Set callback to push UI events to
- void setUiCallback(int gui_id, void(*cb)(void*,const char *),void *ui);
+ void setUiCallback(std::size_t gui_id, void(*cb)(void*,const char *),void *ui);
//Set callback to run while busy
void setIdleCallback(void(*cb)(void*),void *ptr);
//Handle events
@@ -66,11 +66,11 @@ class MiddleWare
void transmitMsg_va(const char *, const char *args, va_list va);
//Handle a rtosc Message uToB, if sender is GUI
- void transmitMsgGui(int gui_id, const char * msg);
+ void transmitMsgGui(std::size_t gui_id, const char * msg);
//Handle a rtosc Message uToB, if sender is GUI
- void transmitMsgGui(int gui_id, const char *, const char *args, ...);
+ void transmitMsgGui(std::size_t gui_id, const char *, const char *args, ...);
//Handle a rtosc Message uToB, if sender is GUI
- void transmitMsgGui_va(int gui_id, const char *, const char *args, va_list va);
+ void transmitMsgGui_va(std::size_t gui_id, const char *, const char *args, va_list va);
//Send a message to middleware from an arbitrary thread
void messageAnywhere(const char *msg, const char *args, ...);
diff --git a/src/Misc/XMLwrapper.cpp b/src/Misc/XMLwrapper.cpp
@@ -297,7 +297,7 @@ void XMLwrapper::addparreal(const string &name, float val)
union { float in; uint32_t out; } convert;
char buf[11];
convert.in = val;
- sprintf(buf, "0x%.8X", convert.out);
+ snprintf(buf, sizeof(buf), "0x%.8X", convert.out);
addparams("par_real", 3, "name", name.c_str(), "value",
stringFrom<float>(val).c_str(), "exact_value", buf);
}
diff --git a/src/Nio/EngineMgr.cpp b/src/Nio/EngineMgr.cpp
@@ -58,6 +58,8 @@ EngineMgr::EngineMgr(const SYNTH_T *synth, const oss_devs_t& oss_devs)
#if OSS
engines.push_back(new OssEngine(*synth, oss_devs));
engines.push_back(new OssMultiEngine(*synth, oss_devs));
+#else
+ (void)oss_devs;
#endif
#if ALSA
engines.push_back(new AlsaEngine(*synth));
diff --git a/src/Params/ADnoteParameters.cpp b/src/Params/ADnoteParameters.cpp
@@ -453,7 +453,7 @@ static const Ports adPorts = {//XXX 16 should not be hard coded
NULL, rArrayTCbMember(VoicePar, Enabled)},
// this must come after "VoicePar#.../..." ports, so rtosc::apropos finds
// the more exact path first (bug in apropos)
- rRecurs(VoicePar, NUM_VOICES),
+ rRecurs(VoicePar, NUM_VOICES, "Voice Parameters"),
rRecur(GlobalPar, "Adnote Parameters"),
};
#undef rChangeCb
diff --git a/src/Params/Controller.cpp b/src/Params/Controller.cpp
@@ -114,7 +114,7 @@ const rtosc::Ports Controller::ports = {
#undef rChangeCb
#define rChangeCb rChangeCbBase
rToggle(NRPN.receive, rDefault(true), "NRPN MIDI Enable"),
- rAction(defaults),
+ rAction(defaults, "Reset Controller to defaults"),
};
#undef rChangeCb
diff --git a/src/Params/FilterParams.cpp b/src/Params/FilterParams.cpp
@@ -334,11 +334,11 @@ const rtosc::Ports FilterParams::ports = {
FilterParams *obj = (FilterParams*)d.obj;
if(rtosc_narguments(msg)) {
int Pfreqtracking = rtosc_argument(msg, 0).i;
- obj->freqtracking = 100 * (Pfreqtracking - 64.0f) / (64.0f);
+ obj->freqtracking = 100.0f * (Pfreqtracking - 64.0f) / (64.0f);
rChangeCb;
d.broadcast(d.loc, "i", Pfreqtracking);
} else {
- int Pfreqtracking = obj->freqtracking/100.0*64.0 + 64.0;
+ int Pfreqtracking = static_cast<int>(roundf(((obj->freqtracking/100.0f) * 64.0f + 64.0f)));
d.reply(d.loc, "i", Pfreqtracking);
}
}},
diff --git a/src/Tests/MqTest.cpp b/src/Tests/MqTest.cpp
@@ -87,7 +87,7 @@ class MessageTest
} else {
auto *mem = s->alloc();
if(mem) {
- sprintf(mem->memory,"%d written by %d@op%d", i*OPS+op,i,op);
+ snprintf(mem->memory, mem->size, "%d written by %d@op%d", i*OPS+op,i,op);
//printf("w%d",i%10);
op++;
}
diff --git a/src/Tests/PortChecker.cpp b/src/Tests/PortChecker.cpp
@@ -28,7 +28,7 @@ char *instance_name=(char*)"";
class direct_server : public rtosc::port_checker::server
{
zyn::MiddleWare* const mw;
- const int gui_id;
+ const std::size_t gui_id;
std::queue<std::vector<char>> received; // inbox for MW's replies
public:
@@ -123,7 +123,7 @@ public:
void vinit(const char* ) override {} // nothing to do here
- direct_server(int gui_id, int timeout_msecs, zyn::MiddleWare* mw)
+ direct_server(std::size_t gui_id, int timeout_msecs, zyn::MiddleWare* mw)
: server(timeout_msecs)
, mw(mw)
, gui_id(gui_id) {}
@@ -193,8 +193,8 @@ class PortChecker
bool ok;
try {
int timeout_msecs = 50;
- sender = new direct_server(0, timeout_msecs, mw);
- other = new direct_server(1, timeout_msecs, mw);
+ sender = new direct_server(0u, timeout_msecs, mw);
+ other = new direct_server(1u, timeout_msecs, mw);
rtosc::port_checker pc(sender, other);
ok = pc(mw->getServerPort());