zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

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:
Msrc/CMakeLists.txt | 16++++++++++++----
Msrc/DSP/Reverter.cpp | 6+++---
Msrc/DSP/Reverter.h | 8+-------
Msrc/Effects/Alienwah.cpp | 2+-
Msrc/Effects/Chorus.cpp | 2+-
Msrc/Effects/DynamicFilter.cpp | 2+-
Msrc/Effects/EffectLFO.cpp | 5++---
Msrc/Effects/EffectLFO.h | 8+-------
Msrc/Effects/EffectMgr.cpp | 2+-
Msrc/Effects/Phaser.cpp | 2+-
Msrc/Effects/Reverse.cpp | 2+-
Msrc/Misc/Master.cpp | 2+-
Msrc/Misc/MiddleWare.cpp | 8++++----
Msrc/Misc/MiddleWare.h | 8++++----
Msrc/Misc/XMLwrapper.cpp | 2+-
Msrc/Nio/EngineMgr.cpp | 2++
Msrc/Params/ADnoteParameters.cpp | 2+-
Msrc/Params/Controller.cpp | 2+-
Msrc/Params/FilterParams.cpp | 4++--
Msrc/Tests/MqTest.cpp | 2+-
Msrc/Tests/PortChecker.cpp | 8++++----
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());