mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
ASIO: Fix compiler warnings
This commit is contained in:
parent
157e115d09
commit
696ad7648c
1 changed files with 48 additions and 22 deletions
|
|
@ -128,7 +128,7 @@ struct ASIOSampleFormat
|
||||||
{
|
{
|
||||||
if (formatIsFloat)
|
if (formatIsFloat)
|
||||||
{
|
{
|
||||||
memcpy (dst, src, samps * sizeof (float));
|
memcpy (dst, src, (size_t) samps * sizeof (float));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -146,7 +146,7 @@ struct ASIOSampleFormat
|
||||||
{
|
{
|
||||||
if (formatIsFloat)
|
if (formatIsFloat)
|
||||||
{
|
{
|
||||||
memcpy (dst, src, samps * sizeof (float));
|
memcpy (dst, src, (size_t) samps * sizeof (float));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -163,7 +163,7 @@ struct ASIOSampleFormat
|
||||||
void clear (void* dst, int numSamps) noexcept
|
void clear (void* dst, int numSamps) noexcept
|
||||||
{
|
{
|
||||||
if (dst != nullptr)
|
if (dst != nullptr)
|
||||||
zeromem (dst, numSamps * byteStride);
|
zeromem (dst, (size_t) (numSamps * byteStride));
|
||||||
}
|
}
|
||||||
|
|
||||||
int bitDepth = 24, byteStride = 4;
|
int bitDepth = 24, byteStride = 4;
|
||||||
|
|
@ -202,7 +202,8 @@ private:
|
||||||
{
|
{
|
||||||
while (--numSamples >= 0)
|
while (--numSamples >= 0)
|
||||||
{
|
{
|
||||||
*(uint16*) dest = ByteOrder::swapIfBigEndian ((uint16) (short) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
const auto value = ByteOrder::swapIfBigEndian ((uint16) (short) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
||||||
|
std::memcpy (dest, &value, sizeof (value));
|
||||||
dest += dstStrideBytes;
|
dest += dstStrideBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -210,7 +211,8 @@ private:
|
||||||
{
|
{
|
||||||
while (--numSamples >= 0)
|
while (--numSamples >= 0)
|
||||||
{
|
{
|
||||||
*(uint16*) dest = ByteOrder::swapIfLittleEndian ((uint16) (short) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
const auto value = ByteOrder::swapIfLittleEndian ((uint16) (short) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
||||||
|
std::memcpy (dest, &value, sizeof (value));
|
||||||
dest += dstStrideBytes;
|
dest += dstStrideBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -248,7 +250,7 @@ private:
|
||||||
{
|
{
|
||||||
while (--numSamples >= 0)
|
while (--numSamples >= 0)
|
||||||
{
|
{
|
||||||
ByteOrder::littleEndian24BitToChars ((uint32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)), dest);
|
ByteOrder::littleEndian24BitToChars ((int32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)), dest);
|
||||||
dest += dstStrideBytes;
|
dest += dstStrideBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -256,7 +258,7 @@ private:
|
||||||
{
|
{
|
||||||
while (--numSamples >= 0)
|
while (--numSamples >= 0)
|
||||||
{
|
{
|
||||||
ByteOrder::bigEndian24BitToChars ((uint32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)), dest);
|
ByteOrder::bigEndian24BitToChars ((int32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)), dest);
|
||||||
dest += dstStrideBytes;
|
dest += dstStrideBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -294,7 +296,8 @@ private:
|
||||||
{
|
{
|
||||||
while (--numSamples >= 0)
|
while (--numSamples >= 0)
|
||||||
{
|
{
|
||||||
*(uint32*) dest = ByteOrder::swapIfBigEndian ((uint32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
const auto value = ByteOrder::swapIfBigEndian ((uint32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
||||||
|
std::memcpy (dest, &value, sizeof (value));
|
||||||
dest += dstStrideBytes;
|
dest += dstStrideBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -302,7 +305,8 @@ private:
|
||||||
{
|
{
|
||||||
while (--numSamples >= 0)
|
while (--numSamples >= 0)
|
||||||
{
|
{
|
||||||
*(uint32*) dest = ByteOrder::swapIfLittleEndian ((uint32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
const auto value = ByteOrder::swapIfLittleEndian ((uint32) roundToInt (jlimit (-maxVal, maxVal, maxVal * *src++)));
|
||||||
|
std::memcpy (dest, &value, sizeof (value));
|
||||||
dest += dstStrideBytes;
|
dest += dstStrideBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -330,7 +334,7 @@ public:
|
||||||
owner (ownerType),
|
owner (ownerType),
|
||||||
classId (clsID)
|
classId (clsID)
|
||||||
{
|
{
|
||||||
::CoInitialize (nullptr);
|
[[maybe_unused]] const auto result = ::CoInitialize (nullptr);
|
||||||
|
|
||||||
name = devName;
|
name = devName;
|
||||||
inBuffers.calloc (4);
|
inBuffers.calloc (4);
|
||||||
|
|
@ -430,10 +434,13 @@ public:
|
||||||
|
|
||||||
updateSampleRates();
|
updateSampleRates();
|
||||||
|
|
||||||
if (sampleRate == 0 || (sampleRates.size() > 0 && ! sampleRates.contains (sampleRate)))
|
if (! sampleRates.isEmpty())
|
||||||
sampleRate = sampleRates[0];
|
{
|
||||||
|
if (sampleRate <= 0 || ! sampleRates.contains (sampleRate))
|
||||||
|
sampleRate = sampleRates[0];
|
||||||
|
}
|
||||||
|
|
||||||
if (sampleRate == 0)
|
if (sampleRate <= 0)
|
||||||
{
|
{
|
||||||
jassertfalse;
|
jassertfalse;
|
||||||
sampleRate = 44100.0;
|
sampleRate = 44100.0;
|
||||||
|
|
@ -955,7 +962,7 @@ private:
|
||||||
|
|
||||||
void setSampleRate (double newRate)
|
void setSampleRate (double newRate)
|
||||||
{
|
{
|
||||||
if (currentSampleRate != newRate)
|
if (! approximatelyEqual (currentSampleRate, newRate))
|
||||||
{
|
{
|
||||||
JUCE_ASIO_LOG ("rate change: " + String (currentSampleRate) + " to " + String (newRate));
|
JUCE_ASIO_LOG ("rate change: " + String (currentSampleRate) + " to " + String (newRate));
|
||||||
auto err = asioObject->setSampleRate (newRate);
|
auto err = asioObject->setSampleRate (newRate);
|
||||||
|
|
@ -1104,11 +1111,20 @@ private:
|
||||||
|
|
||||||
if (asioObject != nullptr)
|
if (asioObject != nullptr)
|
||||||
{
|
{
|
||||||
|
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wlanguage-extension-token")
|
||||||
|
JUCE_BEGIN_IGNORE_WARNINGS_MSVC (6320)
|
||||||
|
|
||||||
__try
|
__try
|
||||||
{
|
{
|
||||||
asioObject->Release();
|
asioObject->Release();
|
||||||
}
|
}
|
||||||
__except (EXCEPTION_EXECUTE_HANDLER) { releasedOK = false; }
|
__except (EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
releasedOK = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
JUCE_END_IGNORE_WARNINGS_MSVC
|
||||||
|
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||||
|
|
||||||
asioObject = nullptr;
|
asioObject = nullptr;
|
||||||
}
|
}
|
||||||
|
|
@ -1132,12 +1148,22 @@ private:
|
||||||
|
|
||||||
bool tryCreatingDriver (bool& crashed)
|
bool tryCreatingDriver (bool& crashed)
|
||||||
{
|
{
|
||||||
|
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wlanguage-extension-token")
|
||||||
|
JUCE_BEGIN_IGNORE_WARNINGS_MSVC (6320)
|
||||||
|
|
||||||
__try
|
__try
|
||||||
{
|
{
|
||||||
return CoCreateInstance (classId, 0, CLSCTX_INPROC_SERVER,
|
return CoCreateInstance (classId, nullptr, CLSCTX_INPROC_SERVER,
|
||||||
classId, (void**) &asioObject) == S_OK;
|
classId, (void**) &asioObject) == S_OK;
|
||||||
}
|
}
|
||||||
__except (EXCEPTION_EXECUTE_HANDLER) { crashed = true; }
|
__except (EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
crashed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
JUCE_END_IGNORE_WARNINGS_MSVC
|
||||||
|
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1454,7 +1480,7 @@ public:
|
||||||
deviceNames.clear();
|
deviceNames.clear();
|
||||||
classIds.clear();
|
classIds.clear();
|
||||||
|
|
||||||
HKEY hk = 0;
|
HKEY hk = nullptr;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
|
||||||
if (RegOpenKey (HKEY_LOCAL_MACHINE, _T ("software\\asio"), &hk) == ERROR_SUCCESS)
|
if (RegOpenKey (HKEY_LOCAL_MACHINE, _T ("software\\asio"), &hk) == ERROR_SUCCESS)
|
||||||
|
|
@ -1555,7 +1581,7 @@ private:
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
static bool checkClassIsOk (const String& classId)
|
static bool checkClassIsOk (const String& classId)
|
||||||
{
|
{
|
||||||
HKEY hk = 0;
|
HKEY hk = nullptr;
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
|
|
||||||
if (RegOpenKey (HKEY_CLASSES_ROOT, _T ("clsid"), &hk) == ERROR_SUCCESS)
|
if (RegOpenKey (HKEY_CLASSES_ROOT, _T ("clsid"), &hk) == ERROR_SUCCESS)
|
||||||
|
|
@ -1577,7 +1603,7 @@ private:
|
||||||
DWORD dtype = REG_SZ;
|
DWORD dtype = REG_SZ;
|
||||||
DWORD dsize = sizeof (pathName);
|
DWORD dsize = sizeof (pathName);
|
||||||
|
|
||||||
if (RegQueryValueEx (pathKey, 0, 0, &dtype, (LPBYTE) pathName, &dsize) == ERROR_SUCCESS)
|
if (RegQueryValueEx (pathKey, nullptr, nullptr, &dtype, (LPBYTE) pathName, &dsize) == ERROR_SUCCESS)
|
||||||
// In older code, this used to check for the existence of the file, but there are situations
|
// In older code, this used to check for the existence of the file, but there are situations
|
||||||
// where our process doesn't have access to it, but where the driver still loads ok.
|
// where our process doesn't have access to it, but where the driver still loads ok.
|
||||||
ok = (pathName[0] != 0);
|
ok = (pathName[0] != 0);
|
||||||
|
|
@ -1614,7 +1640,7 @@ private:
|
||||||
DWORD dtype = REG_SZ;
|
DWORD dtype = REG_SZ;
|
||||||
DWORD dsize = sizeof (buf);
|
DWORD dsize = sizeof (buf);
|
||||||
|
|
||||||
if (RegQueryValueEx (subKey, _T ("clsid"), 0, &dtype, (LPBYTE) buf, &dsize) == ERROR_SUCCESS)
|
if (RegQueryValueEx (subKey, _T ("clsid"), nullptr, &dtype, (LPBYTE) buf, &dsize) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
if (dsize > 0 && checkClassIsOk (buf))
|
if (dsize > 0 && checkClassIsOk (buf))
|
||||||
{
|
{
|
||||||
|
|
@ -1626,7 +1652,7 @@ private:
|
||||||
dsize = sizeof (buf);
|
dsize = sizeof (buf);
|
||||||
String deviceName;
|
String deviceName;
|
||||||
|
|
||||||
if (RegQueryValueEx (subKey, _T ("description"), 0, &dtype, (LPBYTE) buf, &dsize) == ERROR_SUCCESS)
|
if (RegQueryValueEx (subKey, _T ("description"), nullptr, &dtype, (LPBYTE) buf, &dsize) == ERROR_SUCCESS)
|
||||||
deviceName = buf;
|
deviceName = buf;
|
||||||
else
|
else
|
||||||
deviceName = keyName;
|
deviceName = keyName;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue