| @@ -949,9 +949,9 @@ const CarlaPluginInfo* carla_get_plugin_info(uint pluginId) | |||
| char strBufMaker[STR_MAX+1]; | |||
| char strBufCopyright[STR_MAX+1]; | |||
| carla_zeroChar(strBufLabel, STR_MAX+1); | |||
| carla_zeroChar(strBufMaker, STR_MAX+1); | |||
| carla_zeroChar(strBufCopyright, STR_MAX+1); | |||
| carla_zeroChars(strBufLabel, STR_MAX+1); | |||
| carla_zeroChars(strBufMaker, STR_MAX+1); | |||
| carla_zeroChars(strBufCopyright, STR_MAX+1); | |||
| info.type = plugin->getType(); | |||
| info.category = plugin->getCategory(); | |||
| @@ -1093,9 +1093,9 @@ const CarlaParameterInfo* carla_get_parameter_info(uint pluginId, uint32_t param | |||
| char strBufSymbol[STR_MAX+1]; | |||
| char strBufUnit[STR_MAX+1]; | |||
| carla_zeroChar(strBufName, STR_MAX+1); | |||
| carla_zeroChar(strBufSymbol, STR_MAX+1); | |||
| carla_zeroChar(strBufUnit, STR_MAX+1); | |||
| carla_zeroChars(strBufName, STR_MAX+1); | |||
| carla_zeroChars(strBufSymbol, STR_MAX+1); | |||
| carla_zeroChars(strBufUnit, STR_MAX+1); | |||
| info.scalePointCount = plugin->getParameterScalePointCount(parameterId); | |||
| @@ -1148,7 +1148,7 @@ const CarlaScalePointInfo* carla_get_parameter_scalepoint_info(uint pluginId, ui | |||
| if (scalePointId < plugin->getParameterScalePointCount(parameterId)) | |||
| { | |||
| char strBufLabel[STR_MAX+1]; | |||
| carla_zeroChar(strBufLabel, STR_MAX+1); | |||
| carla_zeroChars(strBufLabel, STR_MAX+1); | |||
| info.value = plugin->getParameterScalePointValue(parameterId, scalePointId); | |||
| @@ -1231,7 +1231,7 @@ const MidiProgramData* carla_get_midi_program_data(uint pluginId, uint32_t midiP | |||
| if (midiProgramId < plugin->getMidiProgramCount()) | |||
| { | |||
| const MidiProgramData& ret(plugin->getMidiProgramData(midiProgramId)); | |||
| carla_copyStruct<MidiProgramData>(midiProgData, ret); | |||
| carla_copyStruct(midiProgData, ret); | |||
| checkStringPtr(midiProgData.name); | |||
| return &midiProgData; | |||
| } | |||
| @@ -1262,7 +1262,7 @@ const CustomData* carla_get_custom_data(uint pluginId, uint32_t customDataId) | |||
| if (customDataId < plugin->getCustomDataCount()) | |||
| { | |||
| const CustomData& ret(plugin->getCustomData(customDataId)); | |||
| carla_copyStruct<CustomData>(customData, ret); | |||
| carla_copyStruct(customData, ret); | |||
| checkStringPtr(customData.type); | |||
| checkStringPtr(customData.key); | |||
| checkStringPtr(customData.value); | |||
| @@ -1376,7 +1376,7 @@ const char* carla_get_parameter_text(uint pluginId, uint32_t parameterId) | |||
| { | |||
| if (parameterId < plugin->getParameterCount()) | |||
| { | |||
| carla_zeroChar(textBuf, STR_MAX+1); | |||
| carla_zeroChars(textBuf, STR_MAX+1); | |||
| plugin->getParameterText(parameterId, textBuf); | |||
| return textBuf; | |||
| } | |||
| @@ -1400,7 +1400,7 @@ const char* carla_get_program_name(uint pluginId, uint32_t programId) | |||
| { | |||
| if (programId < plugin->getProgramCount()) | |||
| { | |||
| carla_zeroChar(programName, STR_MAX+1); | |||
| carla_zeroChars(programName, STR_MAX+1); | |||
| plugin->getProgramName(programId, programName); | |||
| return programName; | |||
| } | |||
| @@ -1424,7 +1424,7 @@ const char* carla_get_midi_program_name(uint pluginId, uint32_t midiProgramId) | |||
| { | |||
| if (midiProgramId < plugin->getMidiProgramCount()) | |||
| { | |||
| carla_zeroChar(midiProgramName, STR_MAX+1); | |||
| carla_zeroChars(midiProgramName, STR_MAX+1); | |||
| plugin->getMidiProgramName(midiProgramId, midiProgramName); | |||
| return midiProgramName; | |||
| } | |||
| @@ -1446,7 +1446,7 @@ const char* carla_get_real_plugin_name(uint pluginId) | |||
| if (CarlaPlugin* const plugin = gStandalone.engine->getPlugin(pluginId)) | |||
| { | |||
| carla_zeroChar(realPluginName, STR_MAX+1); | |||
| carla_zeroChars(realPluginName, STR_MAX+1); | |||
| plugin->getRealName(realPluginName); | |||
| return realPluginName; | |||
| } | |||
| @@ -659,7 +659,7 @@ bool CarlaEngine::removePlugin(const uint id) | |||
| # endif | |||
| #else | |||
| pData->curPluginCount = 0; | |||
| carla_zeroStruct(pData->plugins, 1); | |||
| carla_zeroStructs(pData->plugins, 1); | |||
| #endif | |||
| delete plugin; | |||
| @@ -769,7 +769,7 @@ bool CarlaEngine::clonePlugin(const uint id) | |||
| CARLA_SAFE_ASSERT_RETURN_ERR(plugin->getId() == id, "Invalid engine internal data"); | |||
| char label[STR_MAX+1]; | |||
| carla_zeroChar(label, STR_MAX+1); | |||
| carla_zeroChars(label, STR_MAX+1); | |||
| plugin->getLabel(label); | |||
| const uint pluginCountBefore(pData->curPluginCount); | |||
| @@ -895,7 +895,7 @@ const char* CarlaEngine::getUniquePluginName(const char* const name) const | |||
| return sname.dup(); | |||
| } | |||
| const std::size_t maxNameSize(carla_minWithBase<uint>(getMaxClientNameSize(), 0xff, 6U) - 6); // 6 = strlen(" (10)") + 1 | |||
| const std::size_t maxNameSize(carla_minConstrained<uint>(getMaxClientNameSize(), 0xff, 6U) - 6); // 6 = strlen(" (10)") + 1 | |||
| if (maxNameSize == 0 || ! isRunning()) | |||
| return sname.dup(); | |||
| @@ -54,7 +54,7 @@ struct BridgeAudioPool { | |||
| : filename(), | |||
| data(nullptr) | |||
| { | |||
| carla_zeroChar(shm, 64); | |||
| carla_zeroChars(shm, 64); | |||
| jackbridge_shm_init(shm); | |||
| } | |||
| @@ -106,7 +106,7 @@ struct BridgeRtClientControl : public CarlaRingBufferControl<SmallStackBuffer> { | |||
| : filename(), | |||
| data(nullptr) | |||
| { | |||
| carla_zeroChar(shm, 64); | |||
| carla_zeroChars(shm, 64); | |||
| jackbridge_shm_init(shm); | |||
| } | |||
| @@ -195,7 +195,7 @@ struct BridgeNonRtClientControl : public CarlaRingBufferControl<BigStackBuffer> | |||
| : filename(), | |||
| data(nullptr) | |||
| { | |||
| carla_zeroChar(shm, 64); | |||
| carla_zeroChars(shm, 64); | |||
| jackbridge_shm_init(shm); | |||
| } | |||
| @@ -274,7 +274,7 @@ struct BridgeNonRtServerControl : public CarlaRingBufferControl<HugeStackBuffer> | |||
| filename(), | |||
| data(nullptr) | |||
| { | |||
| carla_zeroChar(shm, 64); | |||
| carla_zeroChars(shm, 64); | |||
| jackbridge_shm_init(shm); | |||
| } | |||
| @@ -574,27 +574,27 @@ public: | |||
| // uint/size, str[] (realName), uint/size, str[] (label), uint/size, str[] (maker), uint/size, str[] (copyright) | |||
| fShmNonRtServerControl.writeOpcode(kPluginBridgeNonRtServerPluginInfo2); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getRealName(bufStr); | |||
| bufStrSize = carla_fixValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getLabel(bufStr); | |||
| bufStrSize = carla_fixValue(1U, 256U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 256U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getMaker(bufStr); | |||
| bufStrSize = carla_fixValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getCopyright(bufStr); | |||
| bufStrSize = carla_fixValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| @@ -656,21 +656,21 @@ public: | |||
| fShmNonRtServerControl.writeOpcode(kPluginBridgeNonRtServerParameterData2); | |||
| fShmNonRtServerControl.writeUInt(i); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getParameterName(i, bufStr); | |||
| bufStrSize = carla_fixValue(1U, 32U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 32U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getParameterSymbol(i, bufStr); | |||
| bufStrSize = carla_fixValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 64U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getParameterUnit(i, bufStr); | |||
| bufStrSize = carla_fixValue(1U, 32U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 32U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| @@ -720,9 +720,9 @@ public: | |||
| fShmNonRtServerControl.writeOpcode(kPluginBridgeNonRtServerProgramName); | |||
| fShmNonRtServerControl.writeUInt(i); | |||
| carla_zeroChar(bufStr, STR_MAX); | |||
| carla_zeroChars(bufStr, STR_MAX); | |||
| plugin->getProgramName(i, bufStr); | |||
| bufStrSize = carla_fixValue(1U, 32U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| bufStrSize = carla_fixedValue(1U, 32U, static_cast<uint32_t>(std::strlen(bufStr))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(bufStr, bufStrSize); | |||
| @@ -750,7 +750,7 @@ public: | |||
| fShmNonRtServerControl.writeUInt(mpData.bank); | |||
| fShmNonRtServerControl.writeUInt(mpData.program); | |||
| bufStrSize = carla_fixValue(1U, 32U, static_cast<uint32_t>(std::strlen(mpData.name))); | |||
| bufStrSize = carla_fixedValue(1U, 32U, static_cast<uint32_t>(std::strlen(mpData.name))); | |||
| fShmNonRtServerControl.writeUInt(bufStrSize); | |||
| fShmNonRtServerControl.writeCustomData(mpData.name, bufStrSize); | |||
| @@ -989,19 +989,19 @@ public: | |||
| // type | |||
| const uint32_t typeSize(fShmNonRtClientControl.readUInt()); | |||
| char typeStr[typeSize+1]; | |||
| carla_zeroChar(typeStr, typeSize+1); | |||
| carla_zeroChars(typeStr, typeSize+1); | |||
| fShmNonRtClientControl.readCustomData(typeStr, typeSize); | |||
| // key | |||
| const uint32_t keySize(fShmNonRtClientControl.readUInt()); | |||
| char keyStr[keySize+1]; | |||
| carla_zeroChar(keyStr, keySize+1); | |||
| carla_zeroChars(keyStr, keySize+1); | |||
| fShmNonRtClientControl.readCustomData(keyStr, keySize); | |||
| // value | |||
| const uint32_t valueSize(fShmNonRtClientControl.readUInt()); | |||
| char valueStr[valueSize+1]; | |||
| carla_zeroChar(valueStr, valueSize+1); | |||
| carla_zeroChars(valueStr, valueSize+1); | |||
| fShmNonRtClientControl.readCustomData(valueStr, valueSize); | |||
| if (plugin != nullptr && plugin->isEnabled()) | |||
| @@ -1014,7 +1014,7 @@ public: | |||
| CARLA_SAFE_ASSERT_BREAK(size > 0); | |||
| char chunkFilePathTry[size+1]; | |||
| carla_zeroChar(chunkFilePathTry, size+1); | |||
| carla_zeroChars(chunkFilePathTry, size+1); | |||
| fShmNonRtClientControl.readCustomData(chunkFilePathTry, size); | |||
| CARLA_SAFE_ASSERT_BREAK(chunkFilePathTry[0] != '\0'); | |||
| @@ -1430,7 +1430,7 @@ protected: | |||
| std::size_t curMidiDataPos = 0; | |||
| if (pData->events.in[0].type != kEngineEventTypeNull) | |||
| carla_zeroStruct<EngineEvent>(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.in, kMaxEngineEventInternalCount); | |||
| if (pData->events.out[0].type != kEngineEventTypeNull) | |||
| { | |||
| @@ -1490,7 +1490,7 @@ protected: | |||
| } | |||
| } | |||
| carla_zeroStruct<EngineEvent>(pData->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.out, kMaxEngineEventInternalCount); | |||
| } | |||
| } break; | |||
| @@ -43,14 +43,14 @@ void EngineControlEvent::convertToMidiData(const uint8_t channel, uint8_t& size, | |||
| size = 3; | |||
| data[0] = static_cast<uint8_t>(MIDI_STATUS_CONTROL_CHANGE | (channel & MIDI_CHANNEL_BIT)); | |||
| data[1] = MIDI_CONTROL_BANK_SELECT; | |||
| data[2] = uint8_t(carla_fixValue<float>(0.0f, float(MAX_MIDI_VALUE-1), value)); | |||
| data[2] = uint8_t(carla_fixedValue<float>(0.0f, float(MAX_MIDI_VALUE-1), value)); | |||
| } | |||
| else | |||
| { | |||
| size = 3; | |||
| data[0] = static_cast<uint8_t>(MIDI_STATUS_CONTROL_CHANGE | (channel & MIDI_CHANNEL_BIT)); | |||
| data[1] = static_cast<uint8_t>(param); | |||
| data[2] = uint8_t(carla_fixValue<float>(0.0f, 1.0f, value) * float(MAX_MIDI_VALUE-1)); | |||
| data[2] = uint8_t(carla_fixedValue<float>(0.0f, 1.0f, value) * float(MAX_MIDI_VALUE-1)); | |||
| } | |||
| break; | |||
| @@ -58,13 +58,13 @@ void EngineControlEvent::convertToMidiData(const uint8_t channel, uint8_t& size, | |||
| size = 3; | |||
| data[0] = static_cast<uint8_t>(MIDI_STATUS_CONTROL_CHANGE | (channel & MIDI_CHANNEL_BIT)); | |||
| data[1] = MIDI_CONTROL_BANK_SELECT; | |||
| data[2] = uint8_t(carla_fixValue<uint16_t>(0, MAX_MIDI_VALUE-1, param)); | |||
| data[2] = uint8_t(carla_fixedValue<uint16_t>(0, MAX_MIDI_VALUE-1, param)); | |||
| break; | |||
| case kEngineControlEventTypeMidiProgram: | |||
| size = 2; | |||
| data[0] = static_cast<uint8_t>(MIDI_STATUS_PROGRAM_CHANGE | (channel & MIDI_CHANNEL_BIT)); | |||
| data[1] = uint8_t(carla_fixValue<uint16_t>(0, MAX_MIDI_VALUE-1, param)); | |||
| data[1] = uint8_t(carla_fixedValue<uint16_t>(0, MAX_MIDI_VALUE-1, param)); | |||
| break; | |||
| case kEngineControlEventTypeAllSoundOff: | |||
| @@ -133,7 +133,7 @@ void EngineEvent::fillFromMidiData(const uint8_t size, const uint8_t* const data | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(size >= 3,); | |||
| const uint8_t midiValue(carla_fixValue<uint8_t>(0, 127, data[2])); // ensures 0.0<->1.0 value range | |||
| const uint8_t midiValue(carla_fixedValue<uint8_t>(0, 127, data[2])); // ensures 0.0<->1.0 value range | |||
| ctrl.type = kEngineControlEventTypeParameter; | |||
| ctrl.param = midiControl; | |||
| @@ -323,7 +323,7 @@ bool EngineTimeInfo::operator==(const EngineTimeInfo& timeInfo) const noexcept | |||
| return false; | |||
| if ((valid & kValidBBT) == 0) | |||
| return true; | |||
| if (! carla_compareFloats(timeInfo.bbt.beatsPerMinute, bbt.beatsPerMinute)) | |||
| if (carla_isNotEqual(timeInfo.bbt.beatsPerMinute, bbt.beatsPerMinute)) | |||
| return false; | |||
| return true; | |||
| } | |||
| @@ -789,7 +789,7 @@ void RackGraph::process(CarlaEngine::ProtectedData* const data, const float* inB | |||
| FloatVectorOperations::clear(outBuf[1], iframes); | |||
| // initialize event outputs (zero) | |||
| carla_zeroStruct<EngineEvent>(data->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(data->events.out, kMaxEngineEventInternalCount); | |||
| uint32_t oldAudioInCount = 0; | |||
| uint32_t oldAudioOutCount = 0; | |||
| @@ -827,10 +827,10 @@ void RackGraph::process(CarlaEngine::ProtectedData* const data, const float* inB | |||
| else | |||
| { | |||
| // initialize event inputs from previous outputs | |||
| carla_copyStruct<EngineEvent>(data->events.in, data->events.out, kMaxEngineEventInternalCount); | |||
| carla_copyStructs(data->events.in, data->events.out, kMaxEngineEventInternalCount); | |||
| // initialize event outputs (zero) | |||
| carla_zeroStruct<EngineEvent>(data->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(data->events.out, kMaxEngineEventInternalCount); | |||
| } | |||
| } | |||
| @@ -1217,7 +1217,7 @@ public: | |||
| EngineEvent* const engineEvents(port->fBuffer); | |||
| CARLA_SAFE_ASSERT_RETURN(engineEvents != nullptr,); | |||
| carla_zeroStruct<EngineEvent>(engineEvents, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(engineEvents, kMaxEngineEventInternalCount); | |||
| fillEngineEventsFromJuceMidiBuffer(engineEvents, midi); | |||
| } | |||
| @@ -1270,7 +1270,7 @@ public: | |||
| CARLA_SAFE_ASSERT_RETURN(engineEvents != nullptr,); | |||
| fillJuceMidiBufferFromEngineEvents(midi, engineEvents); | |||
| carla_zeroStruct<EngineEvent>(engineEvents, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(engineEvents, kMaxEngineEventInternalCount); | |||
| } | |||
| fPlugin->unlock(); | |||
| @@ -1340,8 +1340,8 @@ PatchbayGraph::PatchbayGraph(CarlaEngine* const engine, const uint32_t ins, cons | |||
| graph(), | |||
| audioBuffer(), | |||
| midiBuffer(), | |||
| inputs(carla_fixValue(0U, MAX_PATCHBAY_PLUGINS-2, ins)), | |||
| outputs(carla_fixValue(0U, MAX_PATCHBAY_PLUGINS-2, outs)), | |||
| inputs(carla_fixedValue(0U, MAX_PATCHBAY_PLUGINS-2, ins)), | |||
| outputs(carla_fixedValue(0U, MAX_PATCHBAY_PLUGINS-2, outs)), | |||
| retCon(), | |||
| usingExternal(false), | |||
| extGraph(engine), | |||
| @@ -1845,7 +1845,7 @@ void PatchbayGraph::process(CarlaEngine::ProtectedData* const data, const float* | |||
| // put juce events in carla buffer | |||
| { | |||
| carla_zeroStruct<EngineEvent>(data->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(data->events.out, kMaxEngineEventInternalCount); | |||
| fillEngineEventsFromJuceMidiBuffer(data->events.out, midiBuffer); | |||
| midiBuffer.clear(); | |||
| } | |||
| @@ -127,7 +127,7 @@ CarlaEngine::ProtectedData::ProtectedData(CarlaEngine* const engine) noexcept | |||
| nextAction() | |||
| { | |||
| #ifdef BUILD_BRIDGE | |||
| carla_zeroStruct(plugins, 1); | |||
| carla_zeroStructs(plugins, 1); | |||
| #endif | |||
| } | |||
| @@ -206,7 +206,7 @@ bool CarlaEngine::ProtectedData::init(const char* const clientName) | |||
| #ifndef BUILD_BRIDGE | |||
| plugins = new EnginePluginData[maxPluginNumber]; | |||
| carla_zeroStruct(plugins, maxPluginNumber); | |||
| carla_zeroStructs(plugins, maxPluginNumber); | |||
| #endif | |||
| nextAction.ready(); | |||
| @@ -690,7 +690,7 @@ public: | |||
| // FIXME: Always enable JACK transport for now | |||
| pData->options.transportMode = ENGINE_TRANSPORT_MODE_JACK; | |||
| carla_zeroStruct<jack_position_t>(fTransportPos); | |||
| carla_zeroStruct(fTransportPos); | |||
| } | |||
| ~CarlaEngineJack() noexcept override | |||
| @@ -749,7 +749,7 @@ public: | |||
| fTransportState = JackTransportStopped; | |||
| fExternalPatchbay = true; | |||
| carla_zeroStruct<jack_position_t>(fTransportPos); | |||
| carla_zeroStruct(fTransportPos); | |||
| CarlaString truncatedClientName(clientName); | |||
| truncatedClientName.truncate(getMaxClientNameSize()); | |||
| @@ -764,7 +764,7 @@ public: | |||
| return false; | |||
| } | |||
| if (pData->bufferSize == 0 || carla_compareFloats(pData->sampleRate, 0.0)) | |||
| if (pData->bufferSize == 0 || carla_isEqual(pData->sampleRate, 0.0)) | |||
| { | |||
| // open temp client to get initial buffer-size and sample-rate values | |||
| if (jack_client_t* const tmpClient = jackbridge_client_open(truncatedClientName, JackNoStartServer, nullptr)) | |||
| @@ -1309,7 +1309,7 @@ protected: | |||
| void handleJackSampleRateCallback(const double newSampleRate) | |||
| { | |||
| if (carla_compareFloats(pData->sampleRate, newSampleRate)) | |||
| if (carla_isEqual(pData->sampleRate, newSampleRate)) | |||
| return; | |||
| pData->sampleRate = newSampleRate; | |||
| @@ -1439,8 +1439,8 @@ protected: | |||
| /**/ float* outBuf[2] = { audioOut1, audioOut2 }; | |||
| // initialize events | |||
| carla_zeroStruct<EngineEvent>(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStruct<EngineEvent>(pData->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.out, kMaxEngineEventInternalCount); | |||
| { | |||
| ushort engineEventIndex = 0; | |||
| @@ -430,8 +430,8 @@ protected: | |||
| FloatVectorOperations::clear(outputChannelData[i], numSamples); | |||
| // initialize events | |||
| carla_zeroStruct<EngineEvent>(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStruct<EngineEvent>(pData->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.out, kMaxEngineEventInternalCount); | |||
| if (fMidiInEvents.mutex.tryLock()) | |||
| { | |||
| @@ -576,7 +576,7 @@ public: | |||
| if (gNeedsJuceHandling && ++gJuceReferenceCounter == 1) | |||
| juce::initialiseJuce_GUI(); | |||
| carla_zeroChar(fTmpBuf, STR_MAX+1); | |||
| carla_zeroChars(fTmpBuf, STR_MAX+1); | |||
| pData->bufferSize = pHost->get_buffer_size(pHost->handle); | |||
| pData->sampleRate = pHost->get_sample_rate(pHost->handle); | |||
| @@ -732,7 +732,7 @@ protected: | |||
| void sampleRateChanged(const double newSampleRate) | |||
| { | |||
| if (carla_compareFloats(pData->sampleRate, newSampleRate)) | |||
| if (carla_isEqual(pData->sampleRate, newSampleRate)) | |||
| return; | |||
| { | |||
| @@ -1339,8 +1339,8 @@ protected: | |||
| // --------------------------------------------------------------- | |||
| // initialize events | |||
| carla_zeroStruct<EngineEvent>(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStruct<EngineEvent>(pData->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.out, kMaxEngineEventInternalCount); | |||
| // --------------------------------------------------------------- | |||
| // events input (before processing) | |||
| @@ -1385,7 +1385,7 @@ protected: | |||
| // --------------------------------------------------------------- | |||
| // events output (after processing) | |||
| carla_zeroStruct<EngineEvent>(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.in, kMaxEngineEventInternalCount); | |||
| { | |||
| NativeMidiEvent midiEvent; | |||
| @@ -112,7 +112,7 @@ void CarlaEngineEventPort::initBuffer() noexcept | |||
| if (kProcessMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK || kProcessMode == ENGINE_PROCESS_MODE_BRIDGE) | |||
| fBuffer = kClient.getEngine().getInternalEventBuffer(kIsInput); | |||
| else if (kProcessMode == ENGINE_PROCESS_MODE_PATCHBAY && ! kIsInput) | |||
| carla_zeroStruct<EngineEvent>(fBuffer, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(fBuffer, kMaxEngineEventInternalCount); | |||
| } | |||
| uint32_t CarlaEngineEventPort::getEventCount() const noexcept | |||
| @@ -178,7 +178,7 @@ bool CarlaEngineEventPort::writeControlEvent(const uint32_t time, const uint8_t | |||
| event.ctrl.type = type; | |||
| event.ctrl.param = param; | |||
| event.ctrl.value = carla_fixValue<float>(0.0f, 1.0f, value); | |||
| event.ctrl.value = carla_fixedValue<float>(0.0f, 1.0f, value); | |||
| return true; | |||
| } | |||
| @@ -249,8 +249,8 @@ public: | |||
| return false; | |||
| } | |||
| iParams.nChannels = carla_fixValue(0U, 128U, iParams.nChannels); | |||
| oParams.nChannels = carla_fixValue(0U, 128U, oParams.nChannels); | |||
| iParams.nChannels = carla_fixedValue(0U, 128U, iParams.nChannels); | |||
| oParams.nChannels = carla_fixedValue(0U, 128U, oParams.nChannels); | |||
| fAudioInterleaved = fAudio.getCurrentApi() == RtAudio::LINUX_PULSE; | |||
| RtAudio::StreamOptions rtOptions; | |||
| @@ -599,8 +599,8 @@ protected: | |||
| } | |||
| // initialize events | |||
| carla_zeroStruct<EngineEvent>(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStruct<EngineEvent>(pData->events.out, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.in, kMaxEngineEventInternalCount); | |||
| carla_zeroStructs(pData->events.out, kMaxEngineEventInternalCount); | |||
| if (fMidiInEvents.mutex.tryLock()) | |||
| { | |||
| @@ -1007,9 +1007,9 @@ void CarlaPlugin::setDryWet(const float value, const bool sendOsc, const bool se | |||
| { | |||
| CARLA_SAFE_ASSERT(value >= 0.0f && value <= 1.0f); | |||
| const float fixedValue(carla_fixValue<float>(0.0f, 1.0f, value)); | |||
| const float fixedValue(carla_fixedValue<float>(0.0f, 1.0f, value)); | |||
| if (carla_compareFloats(pData->postProc.dryWet, fixedValue)) | |||
| if (carla_isEqual(pData->postProc.dryWet, fixedValue)) | |||
| return; | |||
| pData->postProc.dryWet = fixedValue; | |||
| @@ -1030,9 +1030,9 @@ void CarlaPlugin::setVolume(const float value, const bool sendOsc, const bool se | |||
| { | |||
| CARLA_SAFE_ASSERT(value >= 0.0f && value <= 1.27f); | |||
| const float fixedValue(carla_fixValue<float>(0.0f, 1.27f, value)); | |||
| const float fixedValue(carla_fixedValue<float>(0.0f, 1.27f, value)); | |||
| if (carla_compareFloats(pData->postProc.volume, fixedValue)) | |||
| if (carla_isEqual(pData->postProc.volume, fixedValue)) | |||
| return; | |||
| pData->postProc.volume = fixedValue; | |||
| @@ -1053,9 +1053,9 @@ void CarlaPlugin::setBalanceLeft(const float value, const bool sendOsc, const bo | |||
| { | |||
| CARLA_SAFE_ASSERT(value >= -1.0f && value <= 1.0f); | |||
| const float fixedValue(carla_fixValue<float>(-1.0f, 1.0f, value)); | |||
| const float fixedValue(carla_fixedValue<float>(-1.0f, 1.0f, value)); | |||
| if (carla_compareFloats(pData->postProc.balanceLeft, fixedValue)) | |||
| if (carla_isEqual(pData->postProc.balanceLeft, fixedValue)) | |||
| return; | |||
| pData->postProc.balanceLeft = fixedValue; | |||
| @@ -1076,9 +1076,9 @@ void CarlaPlugin::setBalanceRight(const float value, const bool sendOsc, const b | |||
| { | |||
| CARLA_SAFE_ASSERT(value >= -1.0f && value <= 1.0f); | |||
| const float fixedValue(carla_fixValue<float>(-1.0f, 1.0f, value)); | |||
| const float fixedValue(carla_fixedValue<float>(-1.0f, 1.0f, value)); | |||
| if (carla_compareFloats(pData->postProc.balanceRight, fixedValue)) | |||
| if (carla_isEqual(pData->postProc.balanceRight, fixedValue)) | |||
| return; | |||
| pData->postProc.balanceRight = fixedValue; | |||
| @@ -1099,9 +1099,9 @@ void CarlaPlugin::setPanning(const float value, const bool sendOsc, const bool s | |||
| { | |||
| CARLA_SAFE_ASSERT(value >= -1.0f && value <= 1.0f); | |||
| const float fixedValue(carla_fixValue<float>(-1.0f, 1.0f, value)); | |||
| const float fixedValue(carla_fixedValue<float>(-1.0f, 1.0f, value)); | |||
| if (carla_compareFloats(pData->postProc.panning, fixedValue)) | |||
| if (carla_isEqual(pData->postProc.panning, fixedValue)) | |||
| return; | |||
| pData->postProc.panning = fixedValue; | |||
| @@ -1198,7 +1198,7 @@ void CarlaPlugin::setParameterValueByRealIndex(const int32_t rindex, const float | |||
| { | |||
| if (pData->param.data[i].rindex == rindex) | |||
| { | |||
| //if (! carla_compareFloats(getParameterValue(i), value)) | |||
| //if (carla_isNotEqual(getParameterValue(i), value)) | |||
| setParameterValue(i, value, sendGui, sendOsc, sendCallback); | |||
| break; | |||
| } | |||
| @@ -1648,10 +1648,10 @@ void CarlaPlugin::registerToOscClient() noexcept | |||
| // Base data | |||
| { | |||
| char bufName[STR_MAX+1], bufLabel[STR_MAX+1], bufMaker[STR_MAX+1], bufCopyright[STR_MAX+1]; | |||
| carla_zeroChar(bufName, STR_MAX); | |||
| carla_zeroChar(bufLabel, STR_MAX); | |||
| carla_zeroChar(bufMaker, STR_MAX); | |||
| carla_zeroChar(bufCopyright, STR_MAX); | |||
| carla_zeroChars(bufName, STR_MAX); | |||
| carla_zeroChars(bufLabel, STR_MAX); | |||
| carla_zeroChars(bufMaker, STR_MAX); | |||
| carla_zeroChars(bufCopyright, STR_MAX); | |||
| getRealName(bufName); | |||
| getLabel(bufLabel); | |||
| @@ -1679,8 +1679,8 @@ void CarlaPlugin::registerToOscClient() noexcept | |||
| for (uint32_t i=0, maxParams=pData->engine->getOptions().maxParameters; i<count && i<maxParams; ++i) | |||
| { | |||
| carla_zeroChar(bufName, STR_MAX); | |||
| carla_zeroChar(bufUnit, STR_MAX); | |||
| carla_zeroChars(bufName, STR_MAX); | |||
| carla_zeroChars(bufUnit, STR_MAX); | |||
| getParameterName(i, bufName); | |||
| getParameterUnit(i, bufUnit); | |||
| @@ -1794,9 +1794,9 @@ public: | |||
| // Post-processing (dry/wet, volume and balance) | |||
| { | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && ! carla_compareFloats(pData->postProc.volume, 1.0f); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && ! carla_compareFloats(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && carla_isNotEqual(pData->postProc.volume, 1.0f); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && carla_isNotEqual(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| bool isPair; | |||
| float bufValue, oldBufLeft[doBalance ? frames : 1]; | |||
| @@ -2022,25 +2022,25 @@ public: | |||
| // realName | |||
| const uint32_t realNameSize(fShmNonRtServerControl.readUInt()); | |||
| char realName[realNameSize+1]; | |||
| carla_zeroChar(realName, realNameSize+1); | |||
| carla_zeroChars(realName, realNameSize+1); | |||
| fShmNonRtServerControl.readCustomData(realName, realNameSize); | |||
| // label | |||
| const uint32_t labelSize(fShmNonRtServerControl.readUInt()); | |||
| char label[labelSize+1]; | |||
| carla_zeroChar(label, labelSize+1); | |||
| carla_zeroChars(label, labelSize+1); | |||
| fShmNonRtServerControl.readCustomData(label, labelSize); | |||
| // maker | |||
| const uint32_t makerSize(fShmNonRtServerControl.readUInt()); | |||
| char maker[makerSize+1]; | |||
| carla_zeroChar(maker, makerSize+1); | |||
| carla_zeroChars(maker, makerSize+1); | |||
| fShmNonRtServerControl.readCustomData(maker, makerSize); | |||
| // copyright | |||
| const uint32_t copyrightSize(fShmNonRtServerControl.readUInt()); | |||
| char copyright[copyrightSize+1]; | |||
| carla_zeroChar(copyright, copyrightSize+1); | |||
| carla_zeroChars(copyright, copyrightSize+1); | |||
| fShmNonRtServerControl.readCustomData(copyright, copyrightSize); | |||
| fInfo.name = realName; | |||
| @@ -2141,19 +2141,19 @@ public: | |||
| // name | |||
| const uint32_t nameSize(fShmNonRtServerControl.readUInt()); | |||
| char name[nameSize+1]; | |||
| carla_zeroChar(name, nameSize+1); | |||
| carla_zeroChars(name, nameSize+1); | |||
| fShmNonRtServerControl.readCustomData(name, nameSize); | |||
| // symbol | |||
| const uint32_t symbolSize(fShmNonRtServerControl.readUInt()); | |||
| char symbol[symbolSize+1]; | |||
| carla_zeroChar(symbol, symbolSize+1); | |||
| carla_zeroChars(symbol, symbolSize+1); | |||
| fShmNonRtServerControl.readCustomData(symbol, symbolSize); | |||
| // unit | |||
| const uint32_t unitSize(fShmNonRtServerControl.readUInt()); | |||
| char unit[unitSize+1]; | |||
| carla_zeroChar(unit, unitSize+1); | |||
| carla_zeroChars(unit, unitSize+1); | |||
| fShmNonRtServerControl.readCustomData(unit, unitSize); | |||
| CARLA_SAFE_ASSERT_INT2(index < pData->param.count, index, pData->param.count); | |||
| @@ -2254,7 +2254,7 @@ public: | |||
| // name | |||
| const uint32_t nameSize(fShmNonRtServerControl.readUInt()); | |||
| char name[nameSize+1]; | |||
| carla_zeroChar(name, nameSize+1); | |||
| carla_zeroChars(name, nameSize+1); | |||
| fShmNonRtServerControl.readCustomData(name, nameSize); | |||
| CARLA_SAFE_ASSERT_INT2(index < pData->prog.count, index, pData->prog.count); | |||
| @@ -2276,7 +2276,7 @@ public: | |||
| // name | |||
| const uint32_t nameSize(fShmNonRtServerControl.readUInt()); | |||
| char name[nameSize+1]; | |||
| carla_zeroChar(name, nameSize+1); | |||
| carla_zeroChars(name, nameSize+1); | |||
| fShmNonRtServerControl.readCustomData(name, nameSize); | |||
| CARLA_SAFE_ASSERT_INT2(index < pData->midiprog.count, index, pData->midiprog.count); | |||
| @@ -2297,19 +2297,19 @@ public: | |||
| // type | |||
| const uint32_t typeSize(fShmNonRtServerControl.readUInt()); | |||
| char type[typeSize+1]; | |||
| carla_zeroChar(type, typeSize+1); | |||
| carla_zeroChars(type, typeSize+1); | |||
| fShmNonRtServerControl.readCustomData(type, typeSize); | |||
| // key | |||
| const uint32_t keySize(fShmNonRtServerControl.readUInt()); | |||
| char key[keySize+1]; | |||
| carla_zeroChar(key, keySize+1); | |||
| carla_zeroChars(key, keySize+1); | |||
| fShmNonRtServerControl.readCustomData(key, keySize); | |||
| // value | |||
| const uint32_t valueSize(fShmNonRtServerControl.readUInt()); | |||
| char value[valueSize+1]; | |||
| carla_zeroChar(value, valueSize+1); | |||
| carla_zeroChars(value, valueSize+1); | |||
| fShmNonRtServerControl.readCustomData(value, valueSize); | |||
| CarlaPlugin::setCustomData(type, key, value, false); | |||
| @@ -2321,7 +2321,7 @@ public: | |||
| // chunkFilePath | |||
| const uint32_t chunkFilePathSize(fShmNonRtServerControl.readUInt()); | |||
| char chunkFilePath[chunkFilePathSize+1]; | |||
| carla_zeroChar(chunkFilePath, chunkFilePathSize+1); | |||
| carla_zeroChars(chunkFilePath, chunkFilePathSize+1); | |||
| fShmNonRtServerControl.readCustomData(chunkFilePath, chunkFilePathSize); | |||
| String realChunkFilePath(chunkFilePath); | |||
| @@ -2382,7 +2382,7 @@ public: | |||
| // error | |||
| const uint32_t errorSize(fShmNonRtServerControl.readUInt()); | |||
| char error[errorSize+1]; | |||
| carla_zeroChar(error, errorSize+1); | |||
| carla_zeroChars(error, errorSize+1); | |||
| fShmNonRtServerControl.readCustomData(error, errorSize); | |||
| if (fInitiated) | |||
| @@ -2510,7 +2510,7 @@ public: | |||
| // init bridge thread | |||
| { | |||
| char shmIdsStr[6*4+1]; | |||
| carla_zeroChar(shmIdsStr, 6*4+1); | |||
| carla_zeroChars(shmIdsStr, 6*4+1); | |||
| std::strncpy(shmIdsStr+6*0, &fShmAudioPool.filename[fShmAudioPool.filename.length()-6], 6); | |||
| std::strncpy(shmIdsStr+6*1, &fShmRtClientControl.filename[fShmRtClientControl.filename.length()-6], 6); | |||
| @@ -914,7 +914,7 @@ public: | |||
| carla_stderr2("WARNING - Broken plugin parameter '%s': min > max", paramName); | |||
| min = max - 0.1f; | |||
| } | |||
| else if (carla_compareFloats(min, max)) | |||
| else if (carla_isEqual(min, max)) | |||
| { | |||
| carla_stderr2("WARNING - Broken plugin parameter '%s': min == max", paramName); | |||
| max = min + 0.1f; | |||
| @@ -1341,7 +1341,7 @@ public: | |||
| } | |||
| ulong midiEventCount = 0; | |||
| carla_zeroStruct<snd_seq_event_t>(fMidiEvents, kPluginMaxMidiEvents); | |||
| carla_zeroStructs(fMidiEvents, kPluginMaxMidiEvents); | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // Check if needs reset | |||
| @@ -1934,8 +1934,8 @@ public: | |||
| // Post-processing (dry/wet, volume and balance) | |||
| { | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && ! carla_compareFloats(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && carla_isNotEqual(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| const bool isMono = (pData->audioIn.count == 1); | |||
| bool isPair; | |||
| @@ -1418,8 +1418,8 @@ public: | |||
| { | |||
| // note - balance not possible with kUse16Outs, so we can safely skip fAudioOutBuffers | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && ! carla_compareFloats(pData->postProc.volume, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && carla_isNotEqual(pData->postProc.volume, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| float oldBufLeft[doBalance ? frames : 1]; | |||
| @@ -49,7 +49,7 @@ void PluginAudioData::createNew(const uint32_t newCount) | |||
| CARLA_SAFE_ASSERT_RETURN(newCount > 0,); | |||
| ports = new PluginAudioPort[newCount]; | |||
| carla_zeroStruct(ports, newCount); | |||
| carla_zeroStructs(ports, newCount); | |||
| count = newCount; | |||
| } | |||
| @@ -103,7 +103,7 @@ void PluginCVData::createNew(const uint32_t newCount) | |||
| CARLA_SAFE_ASSERT_RETURN(newCount > 0,); | |||
| ports = new PluginCVPort[newCount]; | |||
| carla_zeroStruct(ports, newCount); | |||
| carla_zeroStructs(ports, newCount); | |||
| count = newCount; | |||
| } | |||
| @@ -200,7 +200,7 @@ void PluginParameterData::createNew(const uint32_t newCount, const bool withSpec | |||
| CARLA_SAFE_ASSERT_RETURN(newCount > 0,); | |||
| data = new ParameterData[newCount]; | |||
| carla_zeroStruct(data, newCount); | |||
| carla_zeroStructs(data, newCount); | |||
| for (uint32_t i=0; i < newCount; ++i) | |||
| { | |||
| @@ -210,12 +210,12 @@ void PluginParameterData::createNew(const uint32_t newCount, const bool withSpec | |||
| } | |||
| ranges = new ParameterRanges[newCount]; | |||
| carla_zeroStruct(ranges, newCount); | |||
| carla_zeroStructs(ranges, newCount); | |||
| if (withSpecial) | |||
| { | |||
| special = new SpecialParameterType[newCount]; | |||
| carla_zeroStruct(special, newCount); | |||
| carla_zeroStructs(special, newCount); | |||
| } | |||
| count = newCount; | |||
| @@ -289,7 +289,7 @@ void PluginProgramData::createNew(const uint32_t newCount) | |||
| CARLA_SAFE_ASSERT_RETURN(newCount > 0,); | |||
| names = new ProgramName[newCount]; | |||
| carla_zeroStruct(names, newCount); | |||
| carla_zeroStructs(names, newCount); | |||
| count = newCount; | |||
| current = -1; | |||
| @@ -339,7 +339,7 @@ void PluginMidiProgramData::createNew(const uint32_t newCount) | |||
| CARLA_SAFE_ASSERT_RETURN(newCount > 0,); | |||
| data = new MidiProgramData[newCount]; | |||
| carla_zeroStruct(data, newCount); | |||
| carla_zeroStructs(data, newCount); | |||
| count = newCount; | |||
| current = -1; | |||
| @@ -1113,7 +1113,7 @@ protected: | |||
| bool getCurrentPosition(CurrentPositionInfo& result) override | |||
| { | |||
| carla_copyStruct<CurrentPositionInfo>(result, fPosInfo); | |||
| carla_copyStruct(result, fPosInfo); | |||
| return true; | |||
| } | |||
| @@ -615,7 +615,7 @@ public: | |||
| carla_stderr2("WARNING - Broken plugin parameter '%s': min > max", paramName); | |||
| min = max - 0.1f; | |||
| } | |||
| else if (carla_compareFloats(min, max)) | |||
| else if (carla_isEqual(min, max)) | |||
| { | |||
| carla_stderr2("WARNING - Broken plugin parameter '%s': min == max", paramName); | |||
| max = min + 0.1f; | |||
| @@ -1211,8 +1211,8 @@ public: | |||
| // Post-processing (dry/wet, volume and balance) | |||
| { | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && ! carla_compareFloats(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && carla_isNotEqual(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| const bool isMono = (pData->audioIn.count == 1); | |||
| bool isPair; | |||
| @@ -2091,7 +2091,7 @@ public: | |||
| max = (float)0xffffff; | |||
| } | |||
| if (carla_compareFloats(min, max)) | |||
| if (carla_isEqual(min, max)) | |||
| { | |||
| carla_stderr2("WARNING - Broken plugin parameter '%s': max == min", fRdfDescriptor->Ports[i].Name); | |||
| max = min + 0.1f; | |||
| @@ -2809,7 +2809,7 @@ public: | |||
| break; | |||
| case LV2_PORT_DESIGNATION_TIME_BAR_BEAT: | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && (fLastTimeInfo.bbt.tick != timeInfo.bbt.tick || | |||
| !carla_compareFloats(fLastTimeInfo.bbt.ticksPerBeat, timeInfo.bbt.ticksPerBeat))) | |||
| !carla_isEqual(fLastTimeInfo.bbt.ticksPerBeat, timeInfo.bbt.ticksPerBeat))) | |||
| { | |||
| fParamBuffers[k] = static_cast<float>(static_cast<double>(timeInfo.bbt.beat) - 1.0 + (static_cast<double>(timeInfo.bbt.tick) / timeInfo.bbt.ticksPerBeat)); | |||
| doPostRt = true; | |||
| @@ -2823,28 +2823,28 @@ public: | |||
| } | |||
| break; | |||
| case LV2_PORT_DESIGNATION_TIME_BEAT_UNIT: | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && ! carla_compareFloats(fLastTimeInfo.bbt.beatType, timeInfo.bbt.beatType)) | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && carla_isNotEqual(fLastTimeInfo.bbt.beatType, timeInfo.bbt.beatType)) | |||
| { | |||
| fParamBuffers[k] = timeInfo.bbt.beatType; | |||
| doPostRt = true; | |||
| } | |||
| break; | |||
| case LV2_PORT_DESIGNATION_TIME_BEATS_PER_BAR: | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && ! carla_compareFloats(fLastTimeInfo.bbt.beatsPerBar, timeInfo.bbt.beatsPerBar)) | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && carla_isNotEqual(fLastTimeInfo.bbt.beatsPerBar, timeInfo.bbt.beatsPerBar)) | |||
| { | |||
| fParamBuffers[k] = timeInfo.bbt.beatsPerBar; | |||
| doPostRt = true; | |||
| } | |||
| break; | |||
| case LV2_PORT_DESIGNATION_TIME_BEATS_PER_MINUTE: | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && ! carla_compareFloats(fLastTimeInfo.bbt.beatsPerMinute, timeInfo.bbt.beatsPerMinute)) | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && carla_isNotEqual(fLastTimeInfo.bbt.beatsPerMinute, timeInfo.bbt.beatsPerMinute)) | |||
| { | |||
| fParamBuffers[k] = static_cast<float>(timeInfo.bbt.beatsPerMinute); | |||
| doPostRt = true; | |||
| } | |||
| break; | |||
| case LV2_PORT_DESIGNATION_TIME_TICKS_PER_BEAT: | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && ! carla_compareFloats(fLastTimeInfo.bbt.ticksPerBeat, timeInfo.bbt.ticksPerBeat)) | |||
| if ((timeInfo.valid & EngineTimeInfo::kValidBBT) != 0 && carla_isNotEqual(fLastTimeInfo.bbt.ticksPerBeat, timeInfo.bbt.ticksPerBeat)) | |||
| { | |||
| fParamBuffers[k] = static_cast<float>(timeInfo.bbt.ticksPerBeat); | |||
| doPostRt = true; | |||
| @@ -2911,7 +2911,7 @@ public: | |||
| pData->postRtEvents.trySplice(); | |||
| carla_copyStruct<EngineTimeInfo>(fLastTimeInfo, timeInfo); | |||
| carla_copyStruct(fLastTimeInfo, timeInfo); | |||
| } | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| @@ -3603,7 +3603,7 @@ public: | |||
| if (pData->param.data[k].hints & PARAMETER_IS_TRIGGER) | |||
| { | |||
| if (! carla_compareFloats(fParamBuffers[k], pData->param.ranges[k].def)) | |||
| if (carla_isNotEqual(fParamBuffers[k], pData->param.ranges[k].def)) | |||
| { | |||
| fParamBuffers[k] = pData->param.ranges[k].def; | |||
| pData->postponeRtEvent(kPluginPostRtEventParameterChange, static_cast<int32_t>(k), 0, fParamBuffers[k]); | |||
| @@ -3618,8 +3618,8 @@ public: | |||
| // Post-processing (dry/wet, volume and balance) | |||
| { | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && ! carla_compareFloats(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && carla_isNotEqual(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| const bool isMono = (pData->audioIn.count == 1); | |||
| bool isPair; | |||
| @@ -3808,7 +3808,7 @@ public: | |||
| CARLA_ASSERT_INT(newSampleRate > 0.0, newSampleRate); | |||
| carla_debug("CarlaPluginLV2::sampleRateChanged(%g) - start", newSampleRate); | |||
| if (! carla_compareFloats(fLv2Options.sampleRate, newSampleRate)) | |||
| if (carla_isNotEqual(fLv2Options.sampleRate, newSampleRate)) | |||
| { | |||
| fLv2Options.sampleRate = newSampleRate; | |||
| @@ -4561,7 +4561,7 @@ public: | |||
| const float value(*(const float*)buffer); | |||
| //if (! carla_compareFloats(fParamBuffers[index], value)) | |||
| //if (carla_isNotEqual(fParamBuffers[index], value)) | |||
| setParameterValue(index, value, false, true, true); | |||
| } break; | |||
| @@ -219,11 +219,11 @@ public: | |||
| sSampler->SetGlobalMaxStreams(LinuxSampler::kMaxStreams); | |||
| sSampler->SetGlobalMaxVoices(LinuxSampler::kMaxVoices); | |||
| carla_zeroStruct(fCurProgs, MAX_MIDI_CHANNELS); | |||
| carla_zeroStruct(fSamplerChannels, MAX_MIDI_CHANNELS); | |||
| carla_zeroStruct(fEngineChannels, MAX_MIDI_CHANNELS); | |||
| carla_zeroStructs(fCurProgs, MAX_MIDI_CHANNELS); | |||
| carla_zeroStructs(fSamplerChannels, MAX_MIDI_CHANNELS); | |||
| carla_zeroStructs(fEngineChannels, MAX_MIDI_CHANNELS); | |||
| carla_zeroFloat(fParamBuffers, LinuxSamplerParametersMax); | |||
| carla_zeroFloats(fParamBuffers, LinuxSamplerParametersMax); | |||
| if (use16Outs && ! isGIG) | |||
| carla_stderr("Tried to use SFZ with 16 stereo outs, this doesn't make much sense so single stereo mode will be used instead"); | |||
| @@ -1104,8 +1104,8 @@ public: | |||
| // Post-processing (dry/wet, volume and balance) | |||
| { | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && ! carla_compareFloats(pData->postProc.volume, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && carla_isNotEqual(pData->postProc.volume, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| float oldBufLeft[doBalance ? frames : 1]; | |||
| @@ -190,9 +190,9 @@ public: | |||
| { | |||
| carla_debug("CarlaPluginNative::CarlaPluginNative(%p, %i)", engine, id); | |||
| carla_fill<int32_t>(fCurMidiProgs, 0, MAX_MIDI_CHANNELS); | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| carla_fill(fCurMidiProgs, 0, MAX_MIDI_CHANNELS); | |||
| carla_zeroStructs(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStruct(fTimeInfo); | |||
| fHost.handle = this; | |||
| fHost.resourceDir = carla_strdup(engine->getOptions().resourceDir); | |||
| @@ -1019,7 +1019,7 @@ public: | |||
| else if (max < min) | |||
| min = max; | |||
| if (carla_compareFloats(min, max)) | |||
| if (carla_isEqual(min, max)) | |||
| { | |||
| carla_stderr2("WARNING - Broken plugin parameter '%s': max == min", paramInfo->name); | |||
| max = min + 0.1f; | |||
| @@ -1320,7 +1320,7 @@ public: | |||
| } | |||
| fMidiEventCount = 0; | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStructs(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // Check if needs reset | |||
| @@ -1461,7 +1461,7 @@ public: | |||
| if (fMidiEventCount > 0) | |||
| { | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, fMidiEventCount); | |||
| carla_zeroStructs(fMidiEvents, fMidiEventCount); | |||
| fMidiEventCount = 0; | |||
| } | |||
| } | |||
| @@ -1888,8 +1888,8 @@ public: | |||
| // Post-processing (dry/wet, volume and balance) | |||
| { | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && ! carla_compareFloats(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && carla_isNotEqual(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| bool isPair; | |||
| float bufValue, oldBufLeft[doBalance ? frames : 1]; | |||
| @@ -77,8 +77,8 @@ public: | |||
| { | |||
| carla_debug("CarlaPluginVST2::CarlaPluginVST2(%p, %i)", engine, id); | |||
| carla_zeroStruct<VstMidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStruct<VstTimeInfo>(fTimeInfo); | |||
| carla_zeroStructs(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStruct(fTimeInfo); | |||
| for (ushort i=0; i < kPluginMaxMidiEvents*2; ++i) | |||
| fEvents.data[i] = (VstEvent*)&fMidiEvents[i]; | |||
| @@ -620,7 +620,7 @@ public: | |||
| float min, max, def, step, stepSmall, stepLarge; | |||
| VstParameterProperties prop; | |||
| carla_zeroStruct<VstParameterProperties>(prop); | |||
| carla_zeroStruct(prop); | |||
| if (pData->hints & PLUGIN_HAS_COCKOS_EXTENSIONS) | |||
| { | |||
| @@ -637,7 +637,7 @@ public: | |||
| carla_stderr2("WARNING - Broken plugin parameter min > max (with cockos extensions)"); | |||
| min = max - 0.1f; | |||
| } | |||
| else if (carla_compareFloats(min, max)) | |||
| else if (carla_isEqual(min, max)) | |||
| { | |||
| carla_stderr2("WARNING - Broken plugin parameter min == max (with cockos extensions)"); | |||
| max = min + 0.1f; | |||
| @@ -679,7 +679,7 @@ public: | |||
| carla_stderr2("WARNING - Broken plugin parameter min > max"); | |||
| min = max - 0.1f; | |||
| } | |||
| else if (carla_compareFloats(min, max)) | |||
| else if (carla_isEqual(min, max)) | |||
| { | |||
| carla_stderr2("WARNING - Broken plugin parameter min == max"); | |||
| max = min + 0.1f; | |||
| @@ -1006,7 +1006,7 @@ public: | |||
| } | |||
| fMidiEventCount = 0; | |||
| carla_zeroStruct<VstMidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStructs(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // Check if needs reset | |||
| @@ -1174,7 +1174,7 @@ public: | |||
| if (fMidiEventCount > 0) | |||
| { | |||
| carla_zeroStruct<VstMidiEvent>(fMidiEvents, fMidiEventCount); | |||
| carla_zeroStructs(fMidiEvents, fMidiEventCount); | |||
| fMidiEventCount = 0; | |||
| } | |||
| } | |||
| @@ -1528,9 +1528,9 @@ public: | |||
| // Post-processing (dry/wet, volume and balance) | |||
| { | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && ! carla_compareFloats(pData->postProc.volume, 1.0f); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && ! carla_compareFloats(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_compareFloats(pData->postProc.balanceLeft, -1.0f) && carla_compareFloats(pData->postProc.balanceRight, 1.0f)); | |||
| const bool doVolume = (pData->hints & PLUGIN_CAN_VOLUME) != 0 && carla_isNotEqual(pData->postProc.volume, 1.0f); | |||
| const bool doDryWet = (pData->hints & PLUGIN_CAN_DRYWET) != 0 && carla_isNotEqual(pData->postProc.dryWet, 1.0f); | |||
| const bool doBalance = (pData->hints & PLUGIN_CAN_BALANCE) != 0 && ! (carla_isEqual(pData->postProc.balanceLeft, -1.0f) && carla_isEqual(pData->postProc.balanceRight, 1.0f)); | |||
| bool isPair; | |||
| float bufValue, oldBufLeft[doBalance ? frames : 1]; | |||
| @@ -1798,7 +1798,7 @@ protected: | |||
| case audioMasterGetNumAutomatableParameters: | |||
| // Deprecated in VST SDK 2.4 | |||
| ret = carla_fixValue<intptr_t>(0, static_cast<intptr_t>(pData->engine->getOptions().maxParameters), fEffect->numParams); | |||
| ret = carla_fixedValue<intptr_t>(0, static_cast<intptr_t>(pData->engine->getOptions().maxParameters), fEffect->numParams); | |||
| break; | |||
| case audioMasterGetParameterQuantization: | |||
| @@ -2139,7 +2139,7 @@ public: | |||
| else | |||
| { | |||
| char strBuf[STR_MAX+1]; | |||
| carla_zeroChar(strBuf, STR_MAX+1); | |||
| carla_zeroChars(strBuf, STR_MAX+1); | |||
| dispatcher(effGetEffectName, 0, 0, strBuf, 0.0f); | |||
| if (strBuf[0] != '\0') | |||
| @@ -179,7 +179,7 @@ static intptr_t VSTCALLBACK vstHostCallback(AEffect* const effect, const int32_t | |||
| if (! gVstIsProcessing) { DISCOVERY_OUT("warning", "Plugin requested timeInfo out of process"); } | |||
| if (! gVstWantsTime) { DISCOVERY_OUT("warning", "Plugin requested timeInfo but didn't ask if host could do \"sendVstTimeInfo\""); } | |||
| carla_zeroStruct<VstTimeInfo>(timeInfo); | |||
| carla_zeroStruct(timeInfo); | |||
| timeInfo.sampleRate = kSampleRate; | |||
| // Tempo | |||
| @@ -549,7 +549,7 @@ static void do_ladspa_check(lib_t& libHandle, const char* const filename, const | |||
| if (LADSPA_IS_PORT_AUDIO(portDescriptor)) | |||
| { | |||
| carla_zeroFloat(bufferAudio[iA], kBufferSize); | |||
| carla_zeroFloats(bufferAudio[iA], kBufferSize); | |||
| descriptor->connect_port(handle, j, bufferAudio[iA++]); | |||
| } | |||
| else if (LADSPA_IS_PORT_CONTROL(portDescriptor)) | |||
| @@ -571,7 +571,7 @@ static void do_ladspa_check(lib_t& libHandle, const char* const filename, const | |||
| DISCOVERY_OUT("warning", "Parameter '" << portName << "' is broken: min > max"); | |||
| max = min + 0.1f; | |||
| } | |||
| else if (carla_compareFloats(min, max)) | |||
| else if (carla_isEqual(min, max)) | |||
| { | |||
| DISCOVERY_OUT("warning", "Parameter '" << portName << "' is broken: max == min"); | |||
| max = min + 0.1f; | |||
| @@ -820,7 +820,7 @@ static void do_dssi_check(lib_t& libHandle, const char* const filename, const bo | |||
| if (LADSPA_IS_PORT_AUDIO(portDescriptor)) | |||
| { | |||
| carla_zeroFloat(bufferAudio[iA], kBufferSize); | |||
| carla_zeroFloats(bufferAudio[iA], kBufferSize); | |||
| ldescriptor->connect_port(handle, j, bufferAudio[iA++]); | |||
| } | |||
| else if (LADSPA_IS_PORT_CONTROL(portDescriptor)) | |||
| @@ -842,7 +842,7 @@ static void do_dssi_check(lib_t& libHandle, const char* const filename, const bo | |||
| DISCOVERY_OUT("warning", "Parameter '" << portName << "' is broken: min > max"); | |||
| max = min + 0.1f; | |||
| } | |||
| else if (carla_compareFloats(min, max)) | |||
| else if (carla_isEqual(min, max)) | |||
| { | |||
| DISCOVERY_OUT("warning", "Parameter '" << portName << "' is broken: max == min"); | |||
| max = min + 0.1f; | |||
| @@ -889,7 +889,7 @@ static void do_dssi_check(lib_t& libHandle, const char* const filename, const bo | |||
| if (descriptor->run_synth != nullptr) | |||
| { | |||
| snd_seq_event_t midiEvents[2]; | |||
| carla_zeroStruct<snd_seq_event_t>(midiEvents, 2); | |||
| carla_zeroStructs(midiEvents, 2); | |||
| const unsigned long midiEventCount = 2; | |||
| @@ -1193,7 +1193,7 @@ static void do_vst_check(lib_t& libHandle, const bool doInit) | |||
| { | |||
| for (;;) | |||
| { | |||
| carla_zeroChar(strBuf, STR_MAX+1); | |||
| carla_zeroChars(strBuf, STR_MAX+1); | |||
| gVstCurrentUniqueId = effect->dispatcher(effect, effShellGetNextPlugin, 0, 0, strBuf, 0.0f); | |||
| @@ -1232,7 +1232,7 @@ static void do_vst_check(lib_t& libHandle, const bool doInit) | |||
| } | |||
| // get name | |||
| carla_zeroChar(strBuf, STR_MAX+1); | |||
| carla_zeroChars(strBuf, STR_MAX+1); | |||
| if (effect->dispatcher(effect, effGetEffectName, 0, 0, strBuf, 0.0f) == 1) | |||
| cName = strBuf; | |||
| @@ -1240,7 +1240,7 @@ static void do_vst_check(lib_t& libHandle, const bool doInit) | |||
| cName.clear(); | |||
| // get product | |||
| carla_zeroChar(strBuf, STR_MAX+1); | |||
| carla_zeroChars(strBuf, STR_MAX+1); | |||
| if (effect->dispatcher(effect, effGetProductString, 0, 0, strBuf, 0.0f) == 1) | |||
| cProduct = strBuf; | |||
| @@ -1248,7 +1248,7 @@ static void do_vst_check(lib_t& libHandle, const bool doInit) | |||
| cProduct.clear(); | |||
| // get vendor | |||
| carla_zeroChar(strBuf, STR_MAX+1); | |||
| carla_zeroChars(strBuf, STR_MAX+1); | |||
| if (effect->dispatcher(effect, effGetVendorString, 0, 0, strBuf, 0.0f) == 1) | |||
| cVendor = strBuf; | |||
| @@ -1299,14 +1299,14 @@ static void do_vst_check(lib_t& libHandle, const bool doInit) | |||
| for (int j=0; j < audioIns; ++j) | |||
| { | |||
| bufferAudioIn[j] = new float[kBufferSize]; | |||
| carla_zeroFloat(bufferAudioIn[j], kBufferSize); | |||
| carla_zeroFloats(bufferAudioIn[j], kBufferSize); | |||
| } | |||
| float* bufferAudioOut[audioOuts]; | |||
| for (int j=0; j < audioOuts; ++j) | |||
| { | |||
| bufferAudioOut[j] = new float[kBufferSize]; | |||
| carla_zeroFloat(bufferAudioOut[j], kBufferSize); | |||
| carla_zeroFloats(bufferAudioOut[j], kBufferSize); | |||
| } | |||
| struct VstEventsFixed { | |||
| @@ -1323,7 +1323,7 @@ static void do_vst_check(lib_t& libHandle, const bool doInit) | |||
| } events; | |||
| VstMidiEvent midiEvents[2]; | |||
| carla_zeroStruct<VstMidiEvent>(midiEvents, 2); | |||
| carla_zeroStructs(midiEvents, 2); | |||
| midiEvents[0].type = kVstMidiType; | |||
| midiEvents[0].byteSize = sizeof(VstMidiEvent); | |||
| @@ -106,7 +106,7 @@ protected: | |||
| void setParameterValue(const uint32_t index, const float value) final | |||
| { | |||
| const int ivalue(roundToIntAccurate(carla_fixValue(0.0f, 127.0f, value))); | |||
| const int ivalue(roundToIntAccurate(carla_fixedValue(0.0f, 127.0f, value))); | |||
| fEffect->changepar(static_cast<int>(index+2), static_cast<uchar>(ivalue)); | |||
| } | |||
| @@ -449,10 +449,10 @@ protected: | |||
| } | |||
| else if (index <= kParamPart16Volume) | |||
| { | |||
| if (carla_compareFloats(fParameters[index], value)) | |||
| if (carla_isEqual(fParameters[index], value)) | |||
| return; | |||
| fParameters[index] = std::round(carla_fixValue(0.0f, 127.0f, value)); | |||
| fParameters[index] = std::round(carla_fixedValue(0.0f, 127.0f, value)); | |||
| fMiddleWare->transmitMsg("/echo", "ss", "OSC_URL", ""); | |||
| fMiddleWare->activeUrl(""); | |||
| @@ -463,10 +463,10 @@ protected: | |||
| } | |||
| else if (index <= kParamPart16Panning) | |||
| { | |||
| if (carla_compareFloats(fParameters[index], value)) | |||
| if (carla_isEqual(fParameters[index], value)) | |||
| return; | |||
| fParameters[index] = std::round(carla_fixValue(0.0f, 127.0f, value)); | |||
| fParameters[index] = std::round(carla_fixedValue(0.0f, 127.0f, value)); | |||
| fMiddleWare->transmitMsg("/echo", "ss", "OSC_URL", ""); | |||
| fMiddleWare->activeUrl(""); | |||
| @@ -480,7 +480,7 @@ protected: | |||
| const uint zynIndex(getZynParameterFromIndex(index)); | |||
| CARLA_SAFE_ASSERT_RETURN(zynIndex != C_NULL,); | |||
| fParameters[index] = std::round(carla_fixValue(0.0f, 127.0f, value)); | |||
| fParameters[index] = std::round(carla_fixedValue(0.0f, 127.0f, value)); | |||
| for (int npart=0; npart<NUM_MIDI_PARTS; ++npart) | |||
| { | |||
| @@ -208,8 +208,8 @@ public: | |||
| if (fHandle == nullptr) | |||
| return false; | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kMaxMidiEvents*2); | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| carla_zeroStructs(fMidiEvents, kMaxMidiEvents*2); | |||
| carla_zeroStruct(fTimeInfo); | |||
| fPorts.init(fDescriptor, fHandle); | |||
| fUris.map(fUridMap); | |||
| @@ -230,7 +230,7 @@ public: | |||
| if (fDescriptor->activate != nullptr) | |||
| fDescriptor->activate(fHandle); | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| carla_zeroStruct(fTimeInfo); | |||
| } | |||
| void lv2_deactivate() | |||
| @@ -294,7 +294,7 @@ public: | |||
| if (fDescriptor->midiIns > 0 || (fDescriptor->hints & PLUGIN_USES_TIME) != 0) | |||
| { | |||
| fMidiEventCount = 0; | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kMaxMidiEvents*2); | |||
| carla_zeroStructs(fMidiEvents, kMaxMidiEvents*2); | |||
| LV2_ATOM_SEQUENCE_FOREACH(fPorts.eventsIn[0], iter) | |||
| { | |||
| @@ -211,8 +211,8 @@ public: | |||
| fHandle = fDescriptor->instantiate(&fHost); | |||
| CARLA_SAFE_ASSERT_RETURN(fHandle != nullptr, false); | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kMaxMidiEvents*2); | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| carla_zeroStructs(fMidiEvents, kMaxMidiEvents*2); | |||
| carla_zeroStruct(fTimeInfo); | |||
| fPorts.init(fDescriptor, fHandle); | |||
| fURIs.map(fUridMap); | |||
| @@ -233,7 +233,7 @@ public: | |||
| if (fDescriptor->activate != nullptr) | |||
| fDescriptor->activate(fHandle); | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| carla_zeroStruct(fTimeInfo); | |||
| } | |||
| void lv2_deactivate() | |||
| @@ -270,7 +270,7 @@ public: | |||
| curValue = *fPorts.paramsPtr[i]; | |||
| if (carla_compareFloats(fPorts.paramsLast[i], curValue)) | |||
| if (carla_isEqual(fPorts.paramsLast[i], curValue)) | |||
| continue; | |||
| fPorts.paramsLast[i] = curValue; | |||
| @@ -280,7 +280,7 @@ public: | |||
| if (fDescriptor->midiIns > 0 || fDescriptor->midiOuts > 0 || (fDescriptor->hints & NATIVE_PLUGIN_USES_TIME) != 0) | |||
| { | |||
| fMidiEventCount = 0; | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kMaxMidiEvents*2); | |||
| carla_zeroStructs(fMidiEvents, kMaxMidiEvents*2); | |||
| if (fDescriptor->hints & NATIVE_PLUGIN_USES_TIME) | |||
| { | |||
| @@ -432,7 +432,7 @@ public: | |||
| if (speed != nullptr && speed->type == fURIs.atomFloat) | |||
| { | |||
| fLastTimeSpeed = ((LV2_Atom_Float*)speed)->body; | |||
| fTimeInfo.playing = carla_compareFloats(fLastTimeSpeed, 1.0); | |||
| fTimeInfo.playing = carla_isEqual(fLastTimeSpeed, 1.0); | |||
| } | |||
| fTimeInfo.bbt.valid = (beatsPerMinute != nullptr && beatsPerBar != nullptr && beatUnit != nullptr); | |||
| @@ -477,7 +477,7 @@ public: | |||
| fIsProcessing = false; | |||
| // update timePos for next callback | |||
| if (! carla_compareFloats(fLastTimeSpeed, 0.0)) | |||
| if (carla_isNotEqual(fLastTimeSpeed, 0.0)) | |||
| { | |||
| const double newFrames = fLastTimeSpeed*frames; | |||
| @@ -168,8 +168,8 @@ public: | |||
| fHandle = fDescriptor->instantiate(&fHost); | |||
| CARLA_SAFE_ASSERT_RETURN(fHandle != nullptr, false); | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kMaxMidiEvents); | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| carla_zeroStructs(fMidiEvents, kMaxMidiEvents); | |||
| carla_zeroStruct(fTimeInfo); | |||
| return true; | |||
| } | |||
| @@ -185,7 +185,7 @@ public: | |||
| switch (opcode) | |||
| { | |||
| case effSetSampleRate: | |||
| if (carla_compareFloats(fSampleRate, static_cast<double>(opt))) | |||
| if (carla_isEqual(fSampleRate, static_cast<double>(opt))) | |||
| return 0; | |||
| fSampleRate = opt; | |||
| @@ -208,7 +208,7 @@ public: | |||
| if (value != 0) | |||
| { | |||
| fMidiEventCount = 0; | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| carla_zeroStruct(fTimeInfo); | |||
| // tell host we want MIDI events | |||
| hostCallback(audioMasterWantMidi); | |||
| @@ -229,7 +229,7 @@ public: | |||
| fDescriptor->dispatcher(fHandle, NATIVE_PLUGIN_OPCODE_BUFFER_SIZE_CHANGED, 0, (int32_t)value, nullptr, 0.0f); | |||
| } | |||
| if (sampleRate != 0.0 && ! carla_compareFloats(fSampleRate, sampleRate)) | |||
| if (sampleRate != 0.0 && carla_isNotEqual(fSampleRate, sampleRate)) | |||
| { | |||
| fSampleRate = sampleRate; | |||
| @@ -588,7 +588,7 @@ private: | |||
| { | |||
| for (uint32_t i=0; i<kMaxMidiEvents; ++i) | |||
| data[i] = (VstEvent*)&mdata[i]; | |||
| carla_zeroStruct<VstMidiEvent>(mdata, kMaxMidiEvents); | |||
| carla_zeroStructs(mdata, kMaxMidiEvents); | |||
| } | |||
| CARLA_DECLARE_NON_COPY_STRUCT(FixedVstEvents); | |||
| @@ -147,7 +147,7 @@ static void test_CarlaRingBuffer3(CarlaRingBuffer<BufferStruct>& b) noexcept | |||
| // read data | |||
| char license[kLicenseSize+1]; | |||
| carla_zeroChar(license, kLicenseSize+1); | |||
| carla_zeroChars(license, kLicenseSize+1); | |||
| b.readCustomData(license, kLicenseSize); | |||
| // now empty again | |||
| @@ -473,18 +473,18 @@ static void test_CarlaMathUtils() noexcept | |||
| assert(carla_max(5, 6, 3) == 3); | |||
| // Fix bounds of 'value' between 'min' and 'max'. | |||
| assert(carla_fixValue(0, 1, -1) == 0); | |||
| assert(carla_fixValue(0, 1, 0) == 0); | |||
| assert(carla_fixValue(0, 1, 1) == 1); | |||
| assert(carla_fixValue(0, 1, 2) == 1); | |||
| assert(carla_fixValue(0.0, 1.0, -1.0) == 0.0); | |||
| assert(carla_fixValue(0.0, 1.0, 0.0) == 0.0); | |||
| assert(carla_fixValue(0.0, 1.0, 1.0) == 1.0); | |||
| assert(carla_fixValue(0.0, 1.0, 2.0) == 1.0); | |||
| assert(carla_fixValue(0.0, 1.0, -0.1) == 0.0); | |||
| assert(carla_fixValue(0.0, 1.0, 1.1) == 1.0); | |||
| assert(carla_fixedValue(0, 1, -1) == 0); | |||
| assert(carla_fixedValue(0, 1, 0) == 0); | |||
| assert(carla_fixedValue(0, 1, 1) == 1); | |||
| assert(carla_fixedValue(0, 1, 2) == 1); | |||
| assert(carla_fixedValue(0.0, 1.0, -1.0) == 0.0); | |||
| assert(carla_fixedValue(0.0, 1.0, 0.0) == 0.0); | |||
| assert(carla_fixedValue(0.0, 1.0, 1.0) == 1.0); | |||
| assert(carla_fixedValue(0.0, 1.0, 2.0) == 1.0); | |||
| assert(carla_fixedValue(0.0, 1.0, -0.1) == 0.0); | |||
| assert(carla_fixedValue(0.0, 1.0, 1.1) == 1.0); | |||
| // Get next power of 2. | |||
| assert(carla_nextPowerOf2(0) == 0); | |||
| @@ -97,7 +97,7 @@ const char* lib_error(const char* const filename) noexcept | |||
| #ifdef CARLA_OS_WIN | |||
| static char libError[2048+1]; | |||
| carla_zeroChar(libError, 2048+1); | |||
| carla_zeroChars(libError, 2048+1); | |||
| try { | |||
| const DWORD winErrorCode = ::GetLastError(); | |||
| @@ -514,7 +514,7 @@ struct CarlaPipeCommon::PrivateData { | |||
| } CARLA_SAFE_EXCEPTION("CreateEvent"); | |||
| #endif | |||
| carla_zeroChar(tmpBuf, 0xff+1); | |||
| carla_zeroChars(tmpBuf, 0xff+1); | |||
| } | |||
| ~PrivateData() noexcept | |||
| @@ -305,7 +305,7 @@ public: | |||
| const int screen = DefaultScreen(fDisplay); | |||
| XSetWindowAttributes attr; | |||
| carla_zeroStruct<XSetWindowAttributes>(attr); | |||
| carla_zeroStruct(attr); | |||
| attr.border_pixel = 0; | |||
| attr.event_mask = KeyPressMask|KeyReleaseMask; | |||
| @@ -485,7 +485,7 @@ public: | |||
| if (! fIsResizable) | |||
| { | |||
| XSizeHints sizeHints; | |||
| carla_zeroStruct<XSizeHints>(sizeHints); | |||
| carla_zeroStruct(sizeHints); | |||
| sizeHints.flags = PSize|PMinSize|PMaxSize; | |||
| sizeHints.width = static_cast<int>(width); | |||
| @@ -228,14 +228,14 @@ public: | |||
| CARLA_SAFE_ASSERT_RETURN(size > 0,); | |||
| if (! tryRead(data, size)) | |||
| carla_zeroBytes(data, size); | |||
| std::memset(data, 0, size); | |||
| } | |||
| template <typename T> | |||
| void readCustomType(T& type) noexcept | |||
| { | |||
| if (! tryRead(&type, sizeof(T))) | |||
| carla_zeroStruct(type); | |||
| std::memset(&type, 0, sizeof(T)); | |||
| } | |||
| // ------------------------------------------------------------------- | |||
| @@ -61,7 +61,7 @@ sem_t* carla_sem_create() noexcept | |||
| std::srand(static_cast<uint>(std::time(nullptr))); | |||
| char strBuf[0xff+1]; | |||
| carla_zeroChar(strBuf, 0xff+1); | |||
| carla_zeroChars(strBuf, 0xff+1); | |||
| std::snprintf(strBuf, 0xff, "carla-sem-%lu-%lu-%i", static_cast<ulong>(::getpid()), sCounter, std::rand()); | |||
| ::sem_unlink(strBuf); | |||
| @@ -66,7 +66,7 @@ static std::string replaceStdString(const std::string& original, const std::stri | |||
| { | |||
| retval.append(current, next); | |||
| retval.append(after); | |||
| current = next + static_cast<std::ssize_t>(before.size()); | |||
| current = next + static_cast<ssize_t>(before.size()); | |||
| } | |||
| retval.append(current, next); | |||
| return retval; | |||
| @@ -330,23 +330,23 @@ bool CarlaStateSave::fillFromXmlElement(const XmlElement* const xmlElement) | |||
| } | |||
| else if (tag.equalsIgnoreCase("drywet")) | |||
| { | |||
| dryWet = carla_fixValue(0.0f, 1.0f, text.getFloatValue()); | |||
| dryWet = carla_fixedValue(0.0f, 1.0f, text.getFloatValue()); | |||
| } | |||
| else if (tag.equalsIgnoreCase("volume")) | |||
| { | |||
| volume = carla_fixValue(0.0f, 1.27f, text.getFloatValue()); | |||
| volume = carla_fixedValue(0.0f, 1.27f, text.getFloatValue()); | |||
| } | |||
| else if (tag.equalsIgnoreCase("balanceleft") || tag.equalsIgnoreCase("balance-left")) | |||
| { | |||
| balanceLeft = carla_fixValue(-1.0f, 1.0f, text.getFloatValue()); | |||
| balanceLeft = carla_fixedValue(-1.0f, 1.0f, text.getFloatValue()); | |||
| } | |||
| else if (tag.equalsIgnoreCase("balanceright") || tag.equalsIgnoreCase("balance-right")) | |||
| { | |||
| balanceRight = carla_fixValue(-1.0f, 1.0f, text.getFloatValue()); | |||
| balanceRight = carla_fixedValue(-1.0f, 1.0f, text.getFloatValue()); | |||
| } | |||
| else if (tag.equalsIgnoreCase("panning")) | |||
| { | |||
| panning = carla_fixValue(-1.0f, 1.0f, text.getFloatValue()); | |||
| panning = carla_fixedValue(-1.0f, 1.0f, text.getFloatValue()); | |||
| } | |||
| else if (tag.equalsIgnoreCase("controlchannel") || tag.equalsIgnoreCase("control-channel")) | |||
| { | |||
| @@ -552,15 +552,15 @@ void CarlaStateSave::dumpToMemoryStream(MemoryOutputStream& content) const | |||
| dataXml << " <Active>" << (active ? "Yes" : "No") << "</Active>\n"; | |||
| if (! carla_compareFloats(dryWet, 1.0f)) | |||
| if (carla_isNotEqual(dryWet, 1.0f)) | |||
| dataXml << " <DryWet>" << String(dryWet, 7) << "</DryWet>\n"; | |||
| if (! carla_compareFloats(volume, 1.0f)) | |||
| if (carla_isNotEqual(volume, 1.0f)) | |||
| dataXml << " <Volume>" << String(volume, 7) << "</Volume>\n"; | |||
| if (! carla_compareFloats(balanceLeft, -1.0f)) | |||
| if (carla_isNotEqual(balanceLeft, -1.0f)) | |||
| dataXml << " <Balance-Left>" << String(balanceLeft, 7) << "</Balance-Left>\n"; | |||
| if (! carla_compareFloats(balanceRight, 1.0f)) | |||
| if (carla_isNotEqual(balanceRight, 1.0f)) | |||
| dataXml << " <Balance-Right>" << String(balanceRight, 7) << "</Balance-Right>\n"; | |||
| if (! carla_compareFloats(panning, 0.0f)) | |||
| if (carla_isNotEqual(panning, 0.0f)) | |||
| dataXml << " <Panning>" << String(panning, 7) << "</Panning>\n"; | |||
| if (ctrlChannel < 0) | |||
| @@ -158,7 +158,7 @@ public: | |||
| static T& _getFallback() | |||
| { | |||
| static T data; | |||
| carla_zeroStruct<T>(data); | |||
| carla_zeroStruct(data); | |||
| return data; | |||
| } | |||
| @@ -225,7 +225,7 @@ public: | |||
| static T& _getFallback() | |||
| { | |||
| static T data; | |||
| carla_zeroStruct<T>(data); | |||
| carla_zeroStruct(data); | |||
| return data; | |||
| } | |||
| }; | |||