Browse Source

Name some variables more consistently

Signed-off-by: falkTX <falktx@falktx.com>
tags/v2.1-alpha2
falkTX 5 years ago
parent
commit
6a6b396747
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
14 changed files with 73 additions and 71 deletions
  1. +1
    -1
      source/backend/CarlaEngine.hpp
  2. +4
    -4
      source/backend/engine/CarlaEngine.cpp
  3. +4
    -4
      source/backend/engine/CarlaEngineBridge.cpp
  4. +6
    -6
      source/backend/engine/CarlaEngineNative.cpp
  5. +17
    -22
      source/backend/plugin/CarlaPlugin.cpp
  6. +1
    -0
      source/backend/plugin/CarlaPluginFluidSynth.cpp
  7. +2
    -2
      source/backend/plugin/CarlaPluginInternal.cpp
  8. +6
    -6
      source/backend/plugin/CarlaPluginInternal.hpp
  9. +16
    -11
      source/backend/plugin/CarlaPluginJuce.cpp
  10. +4
    -4
      source/backend/plugin/CarlaPluginLV2.cpp
  11. +1
    -0
      source/backend/plugin/CarlaPluginNative.cpp
  12. +3
    -3
      source/backend/plugin/CarlaPluginVST2.cpp
  13. +3
    -3
      source/bridges-plugin/CarlaBridgePlugin.cpp
  14. +5
    -5
      source/bridges-plugin/CarlaBridgeSingleLV2.cpp

+ 1
- 1
source/backend/CarlaEngine.hpp View File

@@ -990,7 +990,7 @@ public:
*/
virtual void callback(const EngineCallbackOpcode action, const uint pluginId,
const int value1, const int value2, const int value3,
const float valueF, const char* const valueStr) noexcept;
const float valuef, const char* const valueStr) noexcept;

/*!
* Set the main engine callback to @a func.


+ 4
- 4
source/backend/engine/CarlaEngine.cpp View File

@@ -1308,15 +1308,15 @@ float CarlaEngine::getOutputPeak(const uint pluginId, const bool isLeft) const n

void CarlaEngine::callback(const EngineCallbackOpcode action, const uint pluginId,
const int value1, const int value2, const int value3,
const float valueF, const char* const valueStr) noexcept
const float valuef, const char* const valueStr) noexcept
{
#ifdef DEBUG
if (pData->isIdling)
carla_stdout("CarlaEngine::callback [while idling] (%i:%s, %i, %i, %i, %i, %f, \"%s\")",
action, EngineCallbackOpcode2Str(action), pluginId, value1, value2, value3, valueF, valueStr);
action, EngineCallbackOpcode2Str(action), pluginId, value1, value2, value3, valuef, valueStr);
else if (action != ENGINE_CALLBACK_IDLE && action != ENGINE_CALLBACK_NOTE_ON && action != ENGINE_CALLBACK_NOTE_OFF)
carla_debug("CarlaEngine::callback(%i:%s, %i, %i, %i, %i, %f, \"%s\")",
action, EngineCallbackOpcode2Str(action), pluginId, value1, value2, value3, valueF, valueStr);
action, EngineCallbackOpcode2Str(action), pluginId, value1, value2, value3, valuef, valueStr);
#endif

if (pData->callback != nullptr)
@@ -1325,7 +1325,7 @@ void CarlaEngine::callback(const EngineCallbackOpcode action, const uint pluginI
++pData->isIdling;

try {
pData->callback(pData->callbackPtr, action, pluginId, value1, value2, value3, valueF, valueStr);
pData->callback(pData->callbackPtr, action, pluginId, value1, value2, value3, valuef, valueStr);
#if defined(CARLA_OS_LINUX) && defined(__arm__)
} catch (__cxxabiv1::__forced_unwind&) {
carla_stderr2("Caught forced unwind exception in callback");


+ 4
- 4
source/backend/engine/CarlaEngineBridge.cpp View File

@@ -582,9 +582,9 @@ public:

void callback(const EngineCallbackOpcode action, const uint pluginId,
const int value1, const int value2, const int value3,
const float valueF, const char* const valueStr) noexcept override
const float valuef, const char* const valueStr) noexcept override
{
CarlaEngine::callback(action, pluginId, value1, value2, value3, valueF, valueStr);
CarlaEngine::callback(action, pluginId, value1, value2, value3, valuef, valueStr);

if (fClosingDown)
return;
@@ -597,7 +597,7 @@ public:
const CarlaMutexLocker _cml(fShmNonRtServerControl.mutex);
fShmNonRtServerControl.writeOpcode(kPluginBridgeNonRtServerParameterValue);
fShmNonRtServerControl.writeUInt(static_cast<uint>(value1));
fShmNonRtServerControl.writeFloat(valueF);
fShmNonRtServerControl.writeFloat(valuef);
fShmNonRtServerControl.commitWrite();
} break;

@@ -607,7 +607,7 @@ public:
const CarlaMutexLocker _cml(fShmNonRtServerControl.mutex);
fShmNonRtServerControl.writeOpcode(kPluginBridgeNonRtServerDefaultValue);
fShmNonRtServerControl.writeUInt(static_cast<uint>(value1));
fShmNonRtServerControl.writeFloat(valueF);
fShmNonRtServerControl.writeFloat(valuef);
fShmNonRtServerControl.commitWrite();
} break;



+ 6
- 6
source/backend/engine/CarlaEngineNative.cpp View File

@@ -810,9 +810,9 @@ protected:

void callback(const EngineCallbackOpcode action, const uint pluginId,
const int value1, const int value2, const int value3,
const float valueF, const char* const valueStr) noexcept override
const float valuef, const char* const valueStr) noexcept override
{
CarlaEngine::callback(action, pluginId, value1, value2, value3, valueF, valueStr);
CarlaEngine::callback(action, pluginId, value1, value2, value3, valuef, valueStr);

if (action == ENGINE_CALLBACK_IDLE && ! pData->aboutToClose) {
pHost->dispatcher(pHost->handle,
@@ -1138,7 +1138,7 @@ protected:

void uiServerCallback(const EngineCallbackOpcode action, const uint pluginId,
const int value1, const int value2, const int value3,
const float valueF, const char* const valueStr)
const float valuef, const char* const valueStr)
{
if (! fIsRunning)
return;
@@ -1229,7 +1229,7 @@ protected:
return;
{
const CarlaScopedLocale csl;
std::sprintf(tmpBuf, "%f\n", static_cast<double>(valueF));
std::sprintf(tmpBuf, "%f\n", static_cast<double>(valuef));
}
if (! fUiServer.writeMessage(tmpBuf))
return;
@@ -2121,9 +2121,9 @@ public:

static void _ui_server_callback(void* handle, EngineCallbackOpcode action, uint pluginId,
int value1, int value2, int value3,
float valueF, const char* valueStr)
float valuef, const char* valueStr)
{
handlePtr->uiServerCallback(action, pluginId, value1, value2, value3, valueF, valueStr);
handlePtr->uiServerCallback(action, pluginId, value1, value2, value3, valuef, valueStr);
}

static const char* _ui_file_callback(void* handle, FileCallbackOpcode action, bool isDir,


+ 17
- 22
source/backend/plugin/CarlaPlugin.cpp View File

@@ -1524,7 +1524,7 @@ void CarlaPlugin::setDryWetRT(const float value) noexcept
return;

pData->postProc.dryWet = fixedValue;
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_DRYWET, 0, 0, fixedValue);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_DRYWET, 1, 0, fixedValue);
}

void CarlaPlugin::setVolumeRT(const float value) noexcept
@@ -1537,7 +1537,7 @@ void CarlaPlugin::setVolumeRT(const float value) noexcept
return;

pData->postProc.volume = fixedValue;
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_VOLUME, 0, 0, fixedValue);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_VOLUME, 1, 0, fixedValue);
}

void CarlaPlugin::setBalanceLeftRT(const float value) noexcept
@@ -1550,7 +1550,7 @@ void CarlaPlugin::setBalanceLeftRT(const float value) noexcept
return;

pData->postProc.balanceLeft = fixedValue;
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_BALANCE_LEFT, 0, 0, fixedValue);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_BALANCE_LEFT, 1, 0, fixedValue);
}

void CarlaPlugin::setBalanceRightRT(const float value) noexcept
@@ -1563,7 +1563,7 @@ void CarlaPlugin::setBalanceRightRT(const float value) noexcept
return;

pData->postProc.balanceRight = fixedValue;
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_BALANCE_RIGHT, 0, 0, fixedValue);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_BALANCE_RIGHT, 1, 0, fixedValue);
}

void CarlaPlugin::setPanningRT(const float value) noexcept
@@ -1647,7 +1647,7 @@ void CarlaPlugin::setParameterValue(const uint32_t parameterId, const float valu

void CarlaPlugin::setParameterValueRT(const uint32_t parameterId, const float value) noexcept
{
pData->postponeRtEvent(kPluginPostRtEventParameterChange, static_cast<int32_t>(parameterId), 0, 0, value);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, static_cast<int32_t>(parameterId), 1, 0, value);
}

void CarlaPlugin::setParameterValueByRealIndex(const int32_t rindex, const float value, const bool sendGui, const bool sendOsc, const bool sendCallback) noexcept
@@ -2002,10 +2002,7 @@ void CarlaPlugin::idle()

case kPluginPostRtEventDebug: {
pData->engine->callback(ENGINE_CALLBACK_DEBUG, pData->id,
event.value1, event.value2,
0,
event.valueF,
nullptr);
event.value1, event.value2, event.value3, event.valuef, nullptr);
} break;

case kPluginPostRtEventParameterChange: {
@@ -2015,22 +2012,22 @@ void CarlaPlugin::idle()
if (needsUiMainThread)
pData->postUiEvents.append(event);
else
uiParameterChange(static_cast<uint32_t>(event.value1), event.valueF);
uiParameterChange(static_cast<uint32_t>(event.value1), event.valuef);
}

if (event.value2 != 1)
if (event.value2 != 0)
{
#if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE)
// Update OSC control client
if (sendOsc)
pData->engine->oscSend_control_set_parameter_value(pData->id, event.value1, event.valueF);
pData->engine->oscSend_control_set_parameter_value(pData->id, event.value1, event.valuef);
#endif
// Update Host
pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED,
pData->id,
event.value1,
0, 0,
event.valueF,
event.valuef,
nullptr);
}
} break;
@@ -2138,11 +2135,11 @@ void CarlaPlugin::idle()
case kPluginPostRtEventNoteOn: {
CARLA_SAFE_ASSERT_BREAK(event.value1 >= 0 && event.value1 < MAX_MIDI_CHANNELS);
CARLA_SAFE_ASSERT_BREAK(event.value2 >= 0 && event.value2 < MAX_MIDI_NOTE);
CARLA_SAFE_ASSERT_BREAK(event.value4 >= 0 && event.value4 < MAX_MIDI_VALUE);
CARLA_SAFE_ASSERT_BREAK(event.value3 >= 0 && event.value3 < MAX_MIDI_VALUE);

const uint8_t channel = static_cast<uint8_t>(event.value1);
const uint8_t note = static_cast<uint8_t>(event.value2);
const uint8_t velocity = static_cast<uint8_t>(event.value4);
const uint8_t velocity = static_cast<uint8_t>(event.value3);

// Update UI
if (hasUI)
@@ -2163,9 +2160,8 @@ void CarlaPlugin::idle()
pData->id,
event.value1,
event.value2,
event.value4,
event.value3,
0.0f, nullptr);

} break;

case kPluginPostRtEventNoteOff: {
@@ -2195,7 +2191,6 @@ void CarlaPlugin::idle()
event.value1,
event.value2,
0, 0.0f, nullptr);

} break;
}
}
@@ -2434,8 +2429,8 @@ void CarlaPlugin::sendMidiAllNotesOffToCallback()
postEvent.type = kPluginPostRtEventNoteOff;
postEvent.value1 = pData->ctrlChannel;
postEvent.value2 = 0;
postEvent.value4 = 0;
postEvent.valueF = 0.0f;
postEvent.value3 = 0;
postEvent.valuef = 0.0f;

for (int32_t i=0; i < MAX_MIDI_NOTE; ++i)
{
@@ -2480,7 +2475,7 @@ void CarlaPlugin::uiIdle()
break;

case kPluginPostRtEventParameterChange:
uiParameterChange(static_cast<uint32_t>(event.value1), event.valueF);
uiParameterChange(static_cast<uint32_t>(event.value1), event.valuef);
break;

case kPluginPostRtEventProgramChange:
@@ -2494,7 +2489,7 @@ void CarlaPlugin::uiIdle()
case kPluginPostRtEventNoteOn:
uiNoteOn(static_cast<uint8_t>(event.value1),
static_cast<uint8_t>(event.value2),
static_cast<uint8_t>(event.value4));
static_cast<uint8_t>(event.value3));
break;

case kPluginPostRtEventNoteOff:


+ 1
- 0
source/backend/plugin/CarlaPluginFluidSynth.cpp View File

@@ -560,6 +560,7 @@ public:
CarlaPlugin::setMidiProgram(index, sendGui, sendOsc, sendCallback, doingInit);
}

// FIXME: this is never used
void setMidiProgramRT(const uint32_t uindex) noexcept override
{
CARLA_SAFE_ASSERT_RETURN(fSynth != nullptr,);


+ 2
- 2
source/backend/plugin/CarlaPluginInternal.cpp View File

@@ -753,11 +753,11 @@ void CarlaPlugin::ProtectedData::postponeRtEvent(const PluginPostRtEventType typ
const int32_t value1,
const int32_t value2,
const int32_t value3,
const float valueF) noexcept
const float valuef) noexcept
{
CARLA_SAFE_ASSERT_RETURN(type != kPluginPostRtEventNull,);

PluginPostRtEvent rtEvent = { type, value1, value2, value3, valueF };
PluginPostRtEvent rtEvent = { type, value1, value2, value3, valuef };

postRtEvents.appendRT(rtEvent);
}


+ 6
- 6
source/backend/plugin/CarlaPluginInternal.hpp View File

@@ -67,14 +67,14 @@ enum SpecialParameterType {
* Post-RT event type.
* These are events postponned from within the process function,
*
* During process, we cannot lock, allocate memory or do UI stuff,
* so events have to be postponned to be executed later, on a separate thread.
* During process, we cannot lock, allocate memory or do UI stuff.
* Events have to be postponned to be executed later, on a separate thread.
* @see PluginPostRtEvent
*/
enum PluginPostRtEventType {
kPluginPostRtEventNull = 0,
kPluginPostRtEventDebug,
kPluginPostRtEventParameterChange, // param, SP (*), value (SP: if 1 only report change to UI, don't report to Callback and OSC)
kPluginPostRtEventParameterChange, // param, SP (*), unused, value (SP: if 1 report to Callback and OSC)
kPluginPostRtEventProgramChange, // index
kPluginPostRtEventMidiProgramChange, // index
kPluginPostRtEventNoteOn, // channel, note, velo
@@ -89,8 +89,8 @@ struct PluginPostRtEvent {
PluginPostRtEventType type;
int32_t value1;
int32_t value2;
int32_t value4;
float valueF;
int32_t value3;
float valuef;
};

// -----------------------------------------------------------------------
@@ -361,7 +361,7 @@ struct CarlaPlugin::ProtectedData {
void postponeRtEvent(const PluginPostRtEvent& rtEvent) noexcept;
void postponeRtEvent(const PluginPostRtEventType type,
const int32_t value1, const int32_t value2, const int32_t value3,
const float valueF) noexcept;
const float valuef) noexcept;

// -------------------------------------------------------------------
// Library functions


+ 16
- 11
source/backend/plugin/CarlaPluginJuce.cpp View File

@@ -279,6 +279,17 @@ public:
CarlaPlugin::setParameterValue(parameterId, fixedValue, sendGui, sendOsc, sendCallback);
}

void setParameterValueRT(const uint32_t parameterId, const float value) noexcept override
{
CARLA_SAFE_ASSERT_RETURN(parameterId < pData->param.count,);
CARLA_SAFE_ASSERT_RETURN(fInstance != nullptr,);

const float fixedValue(pData->param.getFixedValue(parameterId, value));
fInstance->setParameter(static_cast<int>(parameterId), value);

CarlaPlugin::setParameterValueRT(parameterId, fixedValue);
}

void setChunkData(const void* const data, const std::size_t dataSize) override
{
CARLA_SAFE_ASSERT_RETURN(pData->options & PLUGIN_OPTION_USE_CHUNKS,);
@@ -815,15 +826,13 @@ public:
if (MIDI_IS_CONTROL_BREATH_CONTROLLER(ctrlEvent.param) && (pData->hints & PLUGIN_CAN_DRYWET) != 0)
{
value = ctrlEvent.value;
setDryWet(value, false, false);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_DRYWET, 0, 0, value);
setDryWetRT(value);
}

if (MIDI_IS_CONTROL_CHANNEL_VOLUME(ctrlEvent.param) && (pData->hints & PLUGIN_CAN_VOLUME) != 0)
{
value = ctrlEvent.value*127.0f/100.0f;
setVolume(value, false, false);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_VOLUME, 0, 0, value);
setVolumeRT(value);
}

if (MIDI_IS_CONTROL_BALANCE(ctrlEvent.param) && (pData->hints & PLUGIN_CAN_BALANCE) != 0)
@@ -847,10 +856,8 @@ public:
right = 1.0f;
}

setBalanceLeft(left, false, false);
setBalanceRight(right, false, false);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_BALANCE_LEFT, 0, 0, left);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, PARAMETER_BALANCE_RIGHT, 0, 0, right);
setBalanceLeftRT(left);
setBalanceRightRT(right);
}
}
#endif
@@ -884,8 +891,7 @@ public:
value = std::rint(value);
}

setParameterValue(k, value, false, false, false);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, static_cast<int32_t>(k), 0, 0, value);
setParameterValueRT(k, value);
}

if ((pData->options & PLUGIN_OPTION_SEND_CONTROL_CHANGES) != 0 && ctrlEvent.param < MAX_MIDI_CONTROL)
@@ -910,7 +916,6 @@ public:
if (ctrlEvent.param < pData->prog.count)
{
setProgramRT(ctrlEvent.param);
pData->postponeRtEvent(kPluginPostRtEventProgramChange, ctrlEvent.param, 0, 0, 0.0f);
break;
}
}


+ 4
- 4
source/backend/plugin/CarlaPluginLV2.cpp View File

@@ -3188,7 +3188,7 @@ public:
if (doPostRt)
pData->postponeRtEvent(kPluginPostRtEventParameterChange,
static_cast<int32_t>(k),
1,
0,
0,
fParamBuffers[k]);
}
@@ -3985,7 +3985,7 @@ public:
fParamBuffers[k] = pData->param.ranges[k].def;
pData->postponeRtEvent(kPluginPostRtEventParameterChange,
static_cast<int32_t>(k),
0, 0,
1, 0,
fParamBuffers[k]);
}
}
@@ -4256,7 +4256,7 @@ public:
fParamBuffers[k] = sampleRatef;
pData->postponeRtEvent(kPluginPostRtEventParameterChange,
static_cast<int32_t>(k),
1,
0,
0,
fParamBuffers[k]);
break;
@@ -4274,7 +4274,7 @@ public:
fParamBuffers[k] = isOffline ? pData->param.ranges[k].max : pData->param.ranges[k].min;
pData->postponeRtEvent(kPluginPostRtEventParameterChange,
static_cast<int32_t>(k),
1,
0,
0,
fParamBuffers[k]);
break;


+ 1
- 0
source/backend/plugin/CarlaPluginNative.cpp View File

@@ -819,6 +819,7 @@ public:
CarlaPlugin::setMidiProgram(index, sendGui, sendOsc, sendCallback, doingInit);
}

// FIXME: this is never used
void setMidiProgramRT(const uint32_t index) noexcept override
{
CARLA_SAFE_ASSERT_RETURN(fDescriptor != nullptr,);


+ 3
- 3
source/backend/plugin/CarlaPluginVST2.cpp View File

@@ -1907,19 +1907,19 @@ protected:
else if (pthread_equal(thisThread, fProcThread))
{
CARLA_SAFE_ASSERT(fIsProcessing);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, index, 0, 0, fixedValue);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, index, 1, 0, fixedValue);
}
// Called from effSetChunk or effSetProgram
else if (pthread_equal(thisThread, fChangingValuesThread))
{
carla_debug("audioMasterAutomate called while setting state");
pData->postponeRtEvent(kPluginPostRtEventParameterChange, index, 0, 0, fixedValue);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, index, 1, 0, fixedValue);
}
// Called from effIdle
else if (pthread_equal(thisThread, fIdleThread))
{
carla_debug("audioMasterAutomate called from idle thread");
pData->postponeRtEvent(kPluginPostRtEventParameterChange, index, 0, 0, fixedValue);
pData->postponeRtEvent(kPluginPostRtEventParameterChange, index, 1, 0, fixedValue);
}
// Called from UI?
else if (fUI.isVisible)


+ 3
- 3
source/bridges-plugin/CarlaBridgePlugin.cpp View File

@@ -325,15 +325,15 @@ private:

static void callback(void* ptr, EngineCallbackOpcode action, unsigned int pluginId,
int value1, int value2, int value3,
float valueF, const char* valueStr)
float valuef, const char* valueStr)
{
carla_debug("CarlaBridgePlugin::callback(%p, %i:%s, %i, %i, %i, %i, %f, \"%s\")",
ptr, action, EngineCallbackOpcode2Str(action),
pluginId, value1, value2, value3, valueF, valueStr);
pluginId, value1, value2, value3, valuef, valueStr);
CARLA_SAFE_ASSERT_RETURN(ptr != nullptr,);
CARLA_SAFE_ASSERT_RETURN(pluginId == 0,);

return ((CarlaBridgePlugin*)ptr)->handleCallback(action, value1, value2, value3, valueF, valueStr);
return ((CarlaBridgePlugin*)ptr)->handleCallback(action, value1, value2, value3, valuef, valueStr);
}

CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaBridgePlugin)


+ 5
- 5
source/bridges-plugin/CarlaBridgeSingleLV2.cpp View File

@@ -413,7 +413,7 @@ protected:

void engineCallback(const EngineCallbackOpcode action, const uint pluginId,
const int value1, const int value2, const int value3,
const float valueF, const char* const valueStr)
const float valuef, const char* const valueStr)
{
switch (action)
{
@@ -425,7 +425,7 @@ protected:
{
fUI.writeFunction(fUI.controller,
static_cast<uint32_t>(value1)+fPorts.indexOffset,
sizeof(float), 0, &valueF);
sizeof(float), 0, &valuef);
}
break;

@@ -442,7 +442,7 @@ protected:
carla_stdout("engineCallback(%i:%s, %u, %i, %i, %f, %s)",
action, EngineCallbackOpcode2Str(action), pluginId,
value1, value2, value3,
static_cast<double>(valueF), valueStr);
static_cast<double>(valuef), valueStr);
break;
}
}
@@ -546,9 +546,9 @@ private:

static void _engine_callback(void* handle, EngineCallbackOpcode action, uint pluginId,
int value1, int value2, int value3,
float valueF, const char* valueStr)
float valuef, const char* valueStr)
{
handlePtr->engineCallback(action, pluginId, value1, value2, value3, valueF, valueStr);
handlePtr->engineCallback(action, pluginId, value1, value2, value3, valuef, valueStr);
}

#undef handlePtr


Loading…
Cancel
Save