mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-29 02:40:05 +00:00
Warnings: Add missing overrides
This commit is contained in:
parent
6c32c4df87
commit
047448fbce
84 changed files with 630 additions and 627 deletions
|
|
@ -979,7 +979,7 @@ public:
|
|||
#endif
|
||||
}
|
||||
|
||||
~ALSAAudioIODeviceType()
|
||||
~ALSAAudioIODeviceType() override
|
||||
{
|
||||
#if ! JUCE_ALSA_LOGGING
|
||||
snd_lib_error_set_handler (nullptr);
|
||||
|
|
@ -989,7 +989,7 @@ public:
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
void scanForDevices()
|
||||
void scanForDevices() override
|
||||
{
|
||||
if (hasScanned)
|
||||
return;
|
||||
|
|
@ -1011,14 +1011,14 @@ public:
|
|||
outputNames.appendNumbersToDuplicates (false, true);
|
||||
}
|
||||
|
||||
StringArray getDeviceNames (bool wantInputNames) const
|
||||
StringArray getDeviceNames (bool wantInputNames) const override
|
||||
{
|
||||
jassert (hasScanned); // need to call scanForDevices() before doing this
|
||||
|
||||
return wantInputNames ? inputNames : outputNames;
|
||||
}
|
||||
|
||||
int getDefaultDeviceIndex (bool forInput) const
|
||||
int getDefaultDeviceIndex (bool forInput) const override
|
||||
{
|
||||
jassert (hasScanned); // need to call scanForDevices() before doing this
|
||||
|
||||
|
|
@ -1026,9 +1026,9 @@ public:
|
|||
return idx >= 0 ? idx : 0;
|
||||
}
|
||||
|
||||
bool hasSeparateInputsAndOutputs() const { return true; }
|
||||
bool hasSeparateInputsAndOutputs() const override { return true; }
|
||||
|
||||
int getIndexOfDevice (AudioIODevice* device, bool asInput) const
|
||||
int getIndexOfDevice (AudioIODevice* device, bool asInput) const override
|
||||
{
|
||||
jassert (hasScanned); // need to call scanForDevices() before doing this
|
||||
|
||||
|
|
@ -1040,7 +1040,7 @@ public:
|
|||
}
|
||||
|
||||
AudioIODevice* createDevice (const String& outputDeviceName,
|
||||
const String& inputDeviceName)
|
||||
const String& inputDeviceName) override
|
||||
{
|
||||
jassert (hasScanned); // need to call scanForDevices() before doing this
|
||||
|
||||
|
|
|
|||
|
|
@ -564,13 +564,13 @@ private:
|
|||
{
|
||||
SessionEventCallback (WASAPIDeviceBase& d) : owner (d) {}
|
||||
|
||||
JUCE_COMRESULT OnDisplayNameChanged (LPCWSTR, LPCGUID) { return S_OK; }
|
||||
JUCE_COMRESULT OnIconPathChanged (LPCWSTR, LPCGUID) { return S_OK; }
|
||||
JUCE_COMRESULT OnSimpleVolumeChanged (float, BOOL, LPCGUID) { return S_OK; }
|
||||
JUCE_COMRESULT OnChannelVolumeChanged (DWORD, float*, DWORD, LPCGUID) { return S_OK; }
|
||||
JUCE_COMRESULT OnGroupingParamChanged (LPCGUID, LPCGUID) { return S_OK; }
|
||||
JUCE_COMRESULT OnDisplayNameChanged (LPCWSTR, LPCGUID) override { return S_OK; }
|
||||
JUCE_COMRESULT OnIconPathChanged (LPCWSTR, LPCGUID) override { return S_OK; }
|
||||
JUCE_COMRESULT OnSimpleVolumeChanged (float, BOOL, LPCGUID) override { return S_OK; }
|
||||
JUCE_COMRESULT OnChannelVolumeChanged (DWORD, float*, DWORD, LPCGUID) override { return S_OK; }
|
||||
JUCE_COMRESULT OnGroupingParamChanged (LPCGUID, LPCGUID) override { return S_OK; }
|
||||
|
||||
JUCE_COMRESULT OnStateChanged (AudioSessionState state)
|
||||
JUCE_COMRESULT OnStateChanged (AudioSessionState state) override
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
|
|
@ -588,7 +588,7 @@ private:
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT OnSessionDisconnected (AudioSessionDisconnectReason reason)
|
||||
JUCE_COMRESULT OnSessionDisconnected (AudioSessionDisconnectReason reason) override
|
||||
{
|
||||
if (reason == DisconnectReasonFormatChanged)
|
||||
owner.deviceSampleRateChanged();
|
||||
|
|
@ -833,7 +833,7 @@ private:
|
|||
return result;
|
||||
}
|
||||
|
||||
DWORD getStreamFlags()
|
||||
DWORD getStreamFlags() const
|
||||
{
|
||||
DWORD streamFlags = 0x40000; /*AUDCLNT_STREAMFLAGS_EVENTCALLBACK*/
|
||||
|
||||
|
|
@ -1199,8 +1199,8 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class WASAPIAudioIODevice final : public AudioIODevice,
|
||||
public Thread,
|
||||
private AsyncUpdater
|
||||
public Thread,
|
||||
private AsyncUpdater
|
||||
{
|
||||
public:
|
||||
WASAPIAudioIODevice (const String& deviceName,
|
||||
|
|
@ -1821,11 +1821,11 @@ private:
|
|||
explicit ChangeNotificationClient (WASAPIAudioIODeviceType* d)
|
||||
: ComBaseClassHelper (0), device (d) {}
|
||||
|
||||
JUCE_COMRESULT OnDeviceAdded (LPCWSTR) { return notify(); }
|
||||
JUCE_COMRESULT OnDeviceRemoved (LPCWSTR) { return notify(); }
|
||||
JUCE_COMRESULT OnDeviceStateChanged (LPCWSTR, DWORD) { return notify(); }
|
||||
JUCE_COMRESULT OnDefaultDeviceChanged (EDataFlow, ERole, LPCWSTR) { return notify(); }
|
||||
JUCE_COMRESULT OnPropertyValueChanged (LPCWSTR, const PROPERTYKEY) { return notify(); }
|
||||
JUCE_COMRESULT OnDeviceAdded (LPCWSTR) override { return notify(); }
|
||||
JUCE_COMRESULT OnDeviceRemoved (LPCWSTR) override { return notify(); }
|
||||
JUCE_COMRESULT OnDeviceStateChanged (LPCWSTR, DWORD) override { return notify(); }
|
||||
JUCE_COMRESULT OnDefaultDeviceChanged (EDataFlow, ERole, LPCWSTR) override { return notify(); }
|
||||
JUCE_COMRESULT OnPropertyValueChanged (LPCWSTR, const PROPERTYKEY) override { return notify(); }
|
||||
|
||||
private:
|
||||
WeakReference<WASAPIAudioIODeviceType> device;
|
||||
|
|
|
|||
|
|
@ -37,15 +37,15 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
JUCE_COMRESULT Commit (DWORD) { return S_OK; }
|
||||
JUCE_COMRESULT Write (const void*, ULONG, ULONG*) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Clone (IStream**) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetSize (ULARGE_INTEGER) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Revert() { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT LockRegion (ULARGE_INTEGER, ULARGE_INTEGER, DWORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT UnlockRegion (ULARGE_INTEGER, ULARGE_INTEGER, DWORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Commit (DWORD) override { return S_OK; }
|
||||
JUCE_COMRESULT Write (const void*, ULONG, ULONG*) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Clone (IStream**) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetSize (ULARGE_INTEGER) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Revert() override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT LockRegion (ULARGE_INTEGER, ULARGE_INTEGER, DWORD) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT UnlockRegion (ULARGE_INTEGER, ULARGE_INTEGER, DWORD) override { return E_NOTIMPL; }
|
||||
|
||||
JUCE_COMRESULT Read (void* dest, ULONG numBytes, ULONG* bytesRead)
|
||||
JUCE_COMRESULT Read (void* dest, ULONG numBytes, ULONG* bytesRead) override
|
||||
{
|
||||
auto numRead = source.read (dest, (size_t) numBytes);
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ public:
|
|||
return (numRead == (int) numBytes) ? S_OK : S_FALSE;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT Seek (LARGE_INTEGER position, DWORD origin, ULARGE_INTEGER* resultPosition)
|
||||
JUCE_COMRESULT Seek (LARGE_INTEGER position, DWORD origin, ULARGE_INTEGER* resultPosition) override
|
||||
{
|
||||
auto newPos = (int64) position.QuadPart;
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ public:
|
|||
}
|
||||
|
||||
JUCE_COMRESULT CopyTo (IStream* destStream, ULARGE_INTEGER numBytesToDo,
|
||||
ULARGE_INTEGER* bytesRead, ULARGE_INTEGER* bytesWritten)
|
||||
ULARGE_INTEGER* bytesRead, ULARGE_INTEGER* bytesWritten) override
|
||||
{
|
||||
uint64 totalCopied = 0;
|
||||
auto numBytes = (int64) numBytesToDo.QuadPart;
|
||||
|
|
@ -105,7 +105,7 @@ public:
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT Stat (STATSTG* stat, DWORD)
|
||||
JUCE_COMRESULT Stat (STATSTG* stat, DWORD) override
|
||||
{
|
||||
if (stat == nullptr)
|
||||
return STG_E_INVALIDPOINTER;
|
||||
|
|
@ -319,7 +319,7 @@ WindowsMediaAudioFormat::WindowsMediaAudioFormat()
|
|||
{
|
||||
}
|
||||
|
||||
WindowsMediaAudioFormat::~WindowsMediaAudioFormat() {}
|
||||
WindowsMediaAudioFormat::~WindowsMediaAudioFormat() = default;
|
||||
|
||||
Array<int> WindowsMediaAudioFormat::getPossibleSampleRates() { return {}; }
|
||||
Array<int> WindowsMediaAudioFormat::getPossibleBitDepths() { return {}; }
|
||||
|
|
|
|||
|
|
@ -613,7 +613,7 @@ private:
|
|||
{
|
||||
ScanJob (Scanner& s) : ThreadPoolJob ("pluginscan"), scanner (s) {}
|
||||
|
||||
JobStatus runJob()
|
||||
JobStatus runJob() override
|
||||
{
|
||||
while (scanner.doNextScan() && ! shouldExit())
|
||||
{}
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ namespace CDBurnerHelpers
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
class AudioCDBurner::Pimpl : public ComBaseClassHelper <IDiscMasterProgressEvents>,
|
||||
class AudioCDBurner::Pimpl : public ComBaseClassHelper<IDiscMasterProgressEvents>,
|
||||
public Timer
|
||||
{
|
||||
public:
|
||||
|
|
@ -104,8 +104,6 @@ public:
|
|||
startTimer (2000);
|
||||
}
|
||||
|
||||
~Pimpl() {}
|
||||
|
||||
void releaseObjects()
|
||||
{
|
||||
discRecorder->Close();
|
||||
|
|
@ -116,7 +114,7 @@ public:
|
|||
Release();
|
||||
}
|
||||
|
||||
JUCE_COMRESULT QueryCancel (boolean* pbCancel)
|
||||
JUCE_COMRESULT QueryCancel (boolean* pbCancel) override
|
||||
{
|
||||
if (listener != nullptr && ! shouldCancel)
|
||||
shouldCancel = listener->audioCDBurnProgress (progress);
|
||||
|
|
@ -126,7 +124,7 @@ public:
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT NotifyBlockProgress (long nCompleted, long nTotal)
|
||||
JUCE_COMRESULT NotifyBlockProgress (long nCompleted, long nTotal) override
|
||||
{
|
||||
progress = nCompleted / (float) nTotal;
|
||||
shouldCancel = listener != nullptr && listener->audioCDBurnProgress (progress);
|
||||
|
|
@ -134,13 +132,13 @@ public:
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT NotifyPnPActivity (void) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyAddProgress (long /*nCompletedSteps*/, long /*nTotalSteps*/) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyTrackProgress (long /*nCurrentTrack*/, long /*nTotalTracks*/) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyPreparingBurn (long /*nEstimatedSeconds*/) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyClosingDisc (long /*nEstimatedSeconds*/) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyBurnComplete (HRESULT /*status*/) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyEraseComplete (HRESULT /*status*/) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyPnPActivity (void) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyAddProgress (long /*nCompletedSteps*/, long /*nTotalSteps*/) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyTrackProgress (long /*nCurrentTrack*/, long /*nTotalTracks*/) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyPreparingBurn (long /*nEstimatedSeconds*/) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyClosingDisc (long /*nEstimatedSeconds*/) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyBurnComplete (HRESULT /*status*/) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT NotifyEraseComplete (HRESULT /*status*/) override { return E_NOTIMPL; }
|
||||
|
||||
class ScopedDiscOpener
|
||||
{
|
||||
|
|
@ -173,30 +171,34 @@ public:
|
|||
return readOnlyDiskPresent;
|
||||
}
|
||||
|
||||
int getIntProperty (const LPOLESTR name, const int defaultReturn) const
|
||||
int getIntProperty (const wchar_t* name, const int defaultReturn) const
|
||||
{
|
||||
std::wstring copy { name };
|
||||
|
||||
ComSmartPtr<IPropertyStorage> prop;
|
||||
if (FAILED (discRecorder->GetRecorderProperties (prop.resetAndGetPointerAddress())))
|
||||
return defaultReturn;
|
||||
|
||||
PROPSPEC iPropSpec;
|
||||
iPropSpec.ulKind = PRSPEC_LPWSTR;
|
||||
iPropSpec.lpwstr = name;
|
||||
iPropSpec.lpwstr = copy.data();
|
||||
|
||||
PROPVARIANT iPropVariant;
|
||||
return FAILED (prop->ReadMultiple (1, &iPropSpec, &iPropVariant))
|
||||
? defaultReturn : (int) iPropVariant.lVal;
|
||||
}
|
||||
|
||||
bool setIntProperty (const LPOLESTR name, const int value) const
|
||||
bool setIntProperty (const wchar_t* name, const int value) const
|
||||
{
|
||||
std::wstring copy { name };
|
||||
|
||||
ComSmartPtr<IPropertyStorage> prop;
|
||||
if (FAILED (discRecorder->GetRecorderProperties (prop.resetAndGetPointerAddress())))
|
||||
return false;
|
||||
|
||||
PROPSPEC iPropSpec;
|
||||
iPropSpec.ulKind = PRSPEC_LPWSTR;
|
||||
iPropSpec.lpwstr = name;
|
||||
iPropSpec.lpwstr = copy.data();
|
||||
|
||||
PROPVARIANT iPropVariant;
|
||||
if (FAILED (prop->ReadMultiple (1, &iPropSpec, &iPropVariant)))
|
||||
|
|
@ -389,7 +391,7 @@ bool AudioCDBurner::addAudioTrack (AudioSource* audioSource, int numSamples)
|
|||
buffer.clear (bytesPerBlock);
|
||||
|
||||
AudioData::interleaveSamples (AudioData::NonInterleavedSource<AudioData::Float32, AudioData::NativeEndian> { sourceBuffer.getArrayOfReadPointers(), 2 },
|
||||
AudioData::InterleavedDest<AudioData::Int16, Audiodata::LittleEndian> { reinterpret_cast<uint16*> (buffer), 2 },
|
||||
AudioData::InterleavedDest<AudioData::Int16, AudioData::LittleEndian> { reinterpret_cast<uint16*> (buffer.get()), 2 },
|
||||
samplesPerBlock);
|
||||
|
||||
hr = pimpl->redbook->AddAudioTrackBlocks (buffer, bytesPerBlock);
|
||||
|
|
|
|||
|
|
@ -324,9 +324,9 @@ void findCDDevices (Array<CDDeviceDescription>& list)
|
|||
|
||||
if (h != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
char buffer[100] = { 0 };
|
||||
char buffer[100]{};
|
||||
|
||||
SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER p = { 0 };
|
||||
SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER p{};
|
||||
p.spt.Length = sizeof (SCSI_PASS_THROUGH);
|
||||
p.spt.CdbLength = 6;
|
||||
p.spt.SenseInfoLength = 24;
|
||||
|
|
@ -348,7 +348,7 @@ void findCDDevices (Array<CDDeviceDescription>& list)
|
|||
dev.scsiDriveLetter = driveLetter;
|
||||
dev.createDescription (buffer);
|
||||
|
||||
SCSI_ADDRESS scsiAddr = { 0 };
|
||||
SCSI_ADDRESS scsiAddr{};
|
||||
scsiAddr.Length = sizeof (scsiAddr);
|
||||
|
||||
if (DeviceIoControl (h, IOCTL_SCSI_GET_ADDRESS,
|
||||
|
|
@ -371,7 +371,7 @@ void findCDDevices (Array<CDDeviceDescription>& list)
|
|||
DWORD performScsiPassThroughCommand (SRB_ExecSCSICmd* const srb, const char driveLetter,
|
||||
HANDLE& deviceHandle, const bool retryOnFailure)
|
||||
{
|
||||
SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER s = { 0 };
|
||||
SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER s{};
|
||||
s.spt.Length = sizeof (SCSI_PASS_THROUGH);
|
||||
s.spt.CdbLength = srb->SRB_CDBLen;
|
||||
|
||||
|
|
@ -798,7 +798,7 @@ int CDController::getLastIndex()
|
|||
//==============================================================================
|
||||
bool CDDeviceHandle::readTOC (TOC* lpToc)
|
||||
{
|
||||
SRB_ExecSCSICmd s = { 0 };
|
||||
SRB_ExecSCSICmd s{};
|
||||
s.SRB_Cmd = SC_EXEC_SCSI_CMD;
|
||||
s.SRB_HaID = info.ha;
|
||||
s.SRB_Target = info.tgt;
|
||||
|
|
@ -872,7 +872,7 @@ void CDDeviceHandle::openDrawer (bool shouldBeOpen)
|
|||
}
|
||||
}
|
||||
|
||||
SRB_ExecSCSICmd s = { 0 };
|
||||
SRB_ExecSCSICmd s{};
|
||||
s.SRB_Cmd = SC_EXEC_SCSI_CMD;
|
||||
s.SRB_HaID = info.ha;
|
||||
s.SRB_Target = info.tgt;
|
||||
|
|
@ -1134,7 +1134,7 @@ bool AudioCDReader::readSamples (int* const* destSamples, int numDestChannels, i
|
|||
bool AudioCDReader::isCDStillPresent() const
|
||||
{
|
||||
using namespace CDReaderHelpers;
|
||||
TOC toc = { 0 };
|
||||
TOC toc{};
|
||||
return static_cast<CDDeviceWrapper*> (handle)->deviceHandle.readTOC (&toc);
|
||||
}
|
||||
|
||||
|
|
@ -1144,7 +1144,7 @@ void AudioCDReader::refreshTrackLengths()
|
|||
trackStartSamples.clear();
|
||||
zeromem (audioTracks, sizeof (audioTracks));
|
||||
|
||||
TOC toc = { 0 };
|
||||
TOC toc{};
|
||||
|
||||
if (static_cast<CDDeviceWrapper*> (handle)->deviceHandle.readTOC (&toc))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wcast-align",
|
|||
"-Wswitch-default",
|
||||
"-Wswitch-enum",
|
||||
"-Wunused-but-set-variable",
|
||||
"-Wzero-as-null-pointer-constant")
|
||||
"-Wzero-as-null-pointer-constant",
|
||||
"-Wsuggest-override")
|
||||
|
||||
#include <cstdarg>
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,8 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wconversion",
|
|||
"-Wmaybe-uninitialized",
|
||||
"-Wshadow-field",
|
||||
"-Wsign-conversion",
|
||||
"-Wzero-as-null-pointer-constant")
|
||||
"-Wzero-as-null-pointer-constant",
|
||||
"-Wsuggest-override")
|
||||
|
||||
#include <climits>
|
||||
#include <cfloat>
|
||||
|
|
|
|||
|
|
@ -183,12 +183,12 @@ public:
|
|||
startThread();
|
||||
}
|
||||
|
||||
~WriteThread()
|
||||
~WriteThread() override
|
||||
{
|
||||
stopThread (5000);
|
||||
}
|
||||
|
||||
void run()
|
||||
void run() override
|
||||
{
|
||||
int n = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -110,13 +110,13 @@ struct Expression::Helpers
|
|||
Constant (double val, bool resolutionTarget)
|
||||
: value (val), isResolutionTarget (resolutionTarget) {}
|
||||
|
||||
Type getType() const noexcept { return constantType; }
|
||||
Term* clone() const { return new Constant (value, isResolutionTarget); }
|
||||
TermPtr resolve (const Scope&, int) { return *this; }
|
||||
double toDouble() const { return value; }
|
||||
TermPtr negated() { return *new Constant (-value, isResolutionTarget); }
|
||||
Type getType() const noexcept override { return constantType; }
|
||||
Term* clone() const override { return new Constant (value, isResolutionTarget); }
|
||||
TermPtr resolve (const Scope&, int) override { return *this; }
|
||||
double toDouble() const override { return value; }
|
||||
TermPtr negated() override { return *new Constant (-value, isResolutionTarget); }
|
||||
|
||||
String toString() const
|
||||
String toString() const override
|
||||
{
|
||||
String s (value);
|
||||
if (isResolutionTarget)
|
||||
|
|
@ -138,25 +138,25 @@ struct Expression::Helpers
|
|||
jassert (left != nullptr && right != nullptr);
|
||||
}
|
||||
|
||||
int getInputIndexFor (const Term* possibleInput) const
|
||||
int getInputIndexFor (const Term* possibleInput) const override
|
||||
{
|
||||
return possibleInput == left ? 0 : (possibleInput == right ? 1 : -1);
|
||||
}
|
||||
|
||||
Type getType() const noexcept { return operatorType; }
|
||||
int getNumInputs() const { return 2; }
|
||||
Term* getInput (int index) const { return index == 0 ? left.get() : (index == 1 ? right.get() : nullptr); }
|
||||
Type getType() const noexcept override { return operatorType; }
|
||||
int getNumInputs() const override { return 2; }
|
||||
Term* getInput (int index) const override { return index == 0 ? left.get() : (index == 1 ? right.get() : nullptr); }
|
||||
|
||||
virtual double performFunction (double left, double right) const = 0;
|
||||
virtual void writeOperator (String& dest) const = 0;
|
||||
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth)
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
return *new Constant (performFunction (left ->resolve (scope, recursionDepth)->toDouble(),
|
||||
right->resolve (scope, recursionDepth)->toDouble()), false);
|
||||
}
|
||||
|
||||
String toString() const
|
||||
String toString() const override
|
||||
{
|
||||
String s;
|
||||
auto ourPrecendence = getOperatorPrecedence();
|
||||
|
|
@ -198,25 +198,25 @@ struct Expression::Helpers
|
|||
public:
|
||||
explicit SymbolTerm (const String& sym) : symbol (sym) {}
|
||||
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth)
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
checkRecursionDepth (recursionDepth);
|
||||
return scope.getSymbolValue (symbol).term->resolve (scope, recursionDepth + 1);
|
||||
}
|
||||
|
||||
Type getType() const noexcept { return symbolType; }
|
||||
Term* clone() const { return new SymbolTerm (symbol); }
|
||||
String toString() const { return symbol; }
|
||||
String getName() const { return symbol; }
|
||||
Type getType() const noexcept override { return symbolType; }
|
||||
Term* clone() const override { return new SymbolTerm (symbol); }
|
||||
String toString() const override { return symbol; }
|
||||
String getName() const override { return symbol; }
|
||||
|
||||
void visitAllSymbols (SymbolVisitor& visitor, const Scope& scope, int recursionDepth)
|
||||
void visitAllSymbols (SymbolVisitor& visitor, const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
checkRecursionDepth (recursionDepth);
|
||||
visitor.useSymbol (Symbol (scope.getScopeUID(), symbol));
|
||||
scope.getSymbolValue (symbol).term->visitAllSymbols (visitor, scope, recursionDepth + 1);
|
||||
}
|
||||
|
||||
void renameSymbol (const Symbol& oldSymbol, const String& newName, const Scope& scope, int /*recursionDepth*/)
|
||||
void renameSymbol (const Symbol& oldSymbol, const String& newName, const Scope& scope, int /*recursionDepth*/) override
|
||||
{
|
||||
if (oldSymbol.symbolName == symbol && scope.getScopeUID() == oldSymbol.scopeUID)
|
||||
symbol = newName;
|
||||
|
|
@ -235,13 +235,13 @@ struct Expression::Helpers
|
|||
: functionName (name), parameters (params)
|
||||
{}
|
||||
|
||||
Type getType() const noexcept { return functionType; }
|
||||
Term* clone() const { return new Function (functionName, parameters); }
|
||||
int getNumInputs() const { return parameters.size(); }
|
||||
Term* getInput (int i) const { return parameters.getReference (i).term.get(); }
|
||||
String getName() const { return functionName; }
|
||||
Type getType() const noexcept override { return functionType; }
|
||||
Term* clone() const override { return new Function (functionName, parameters); }
|
||||
int getNumInputs() const override { return parameters.size(); }
|
||||
Term* getInput (int i) const override { return parameters.getReference (i).term.get(); }
|
||||
String getName() const override { return functionName; }
|
||||
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth)
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
checkRecursionDepth (recursionDepth);
|
||||
double result = 0;
|
||||
|
|
@ -264,7 +264,7 @@ struct Expression::Helpers
|
|||
return *new Constant (result, false);
|
||||
}
|
||||
|
||||
int getInputIndexFor (const Term* possibleInput) const
|
||||
int getInputIndexFor (const Term* possibleInput) const override
|
||||
{
|
||||
for (int i = 0; i < parameters.size(); ++i)
|
||||
if (parameters.getReference (i).term == possibleInput)
|
||||
|
|
@ -273,7 +273,7 @@ struct Expression::Helpers
|
|||
return -1;
|
||||
}
|
||||
|
||||
String toString() const
|
||||
String toString() const override
|
||||
{
|
||||
if (parameters.size() == 0)
|
||||
return functionName + "()";
|
||||
|
|
@ -302,7 +302,7 @@ struct Expression::Helpers
|
|||
public:
|
||||
DotOperator (SymbolTerm* l, TermPtr r) : BinaryTerm (TermPtr (l), r) {}
|
||||
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth)
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
checkRecursionDepth (recursionDepth);
|
||||
|
||||
|
|
@ -311,13 +311,13 @@ struct Expression::Helpers
|
|||
return visitor.output;
|
||||
}
|
||||
|
||||
Term* clone() const { return new DotOperator (getSymbol(), *right); }
|
||||
String getName() const { return "."; }
|
||||
int getOperatorPrecedence() const { return 1; }
|
||||
void writeOperator (String& dest) const { dest << '.'; }
|
||||
double performFunction (double, double) const { return 0.0; }
|
||||
Term* clone() const override { return new DotOperator (getSymbol(), *right); }
|
||||
String getName() const override { return "."; }
|
||||
int getOperatorPrecedence() const override { return 1; }
|
||||
void writeOperator (String& dest) const override { dest << '.'; }
|
||||
double performFunction (double, double) const override { return 0.0; }
|
||||
|
||||
void visitAllSymbols (SymbolVisitor& visitor, const Scope& scope, int recursionDepth)
|
||||
void visitAllSymbols (SymbolVisitor& visitor, const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
checkRecursionDepth (recursionDepth);
|
||||
visitor.useSymbol (Symbol (scope.getScopeUID(), getSymbol()->symbol));
|
||||
|
|
@ -331,7 +331,7 @@ struct Expression::Helpers
|
|||
catch (...) {}
|
||||
}
|
||||
|
||||
void renameSymbol (const Symbol& oldSymbol, const String& newName, const Scope& scope, int recursionDepth)
|
||||
void renameSymbol (const Symbol& oldSymbol, const String& newName, const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
checkRecursionDepth (recursionDepth);
|
||||
getSymbol()->renameSymbol (oldSymbol, newName, scope, recursionDepth);
|
||||
|
|
@ -353,7 +353,7 @@ struct Expression::Helpers
|
|||
EvaluationVisitor (const TermPtr& t, const int recursion)
|
||||
: input (t), output (t), recursionCount (recursion) {}
|
||||
|
||||
void visit (const Scope& scope) { output = input->resolve (scope, recursionCount); }
|
||||
void visit (const Scope& scope) override { output = input->resolve (scope, recursionCount); }
|
||||
|
||||
const TermPtr input;
|
||||
TermPtr output;
|
||||
|
|
@ -369,7 +369,7 @@ struct Expression::Helpers
|
|||
SymbolVisitingVisitor (const TermPtr& t, SymbolVisitor& v, const int recursion)
|
||||
: input (t), visitor (v), recursionCount (recursion) {}
|
||||
|
||||
void visit (const Scope& scope) { input->visitAllSymbols (visitor, scope, recursionCount); }
|
||||
void visit (const Scope& scope) override { input->visitAllSymbols (visitor, scope, recursionCount); }
|
||||
|
||||
private:
|
||||
const TermPtr input;
|
||||
|
|
@ -385,7 +385,7 @@ struct Expression::Helpers
|
|||
SymbolRenamingVisitor (const TermPtr& t, const Expression::Symbol& symbol_, const String& newName_, const int recursionCount_)
|
||||
: input (t), symbol (symbol_), newName (newName_), recursionCount (recursionCount_) {}
|
||||
|
||||
void visit (const Scope& scope) { input->renameSymbol (symbol, newName, scope, recursionCount); }
|
||||
void visit (const Scope& scope) override { input->renameSymbol (symbol, newName, scope, recursionCount); }
|
||||
|
||||
private:
|
||||
const TermPtr input;
|
||||
|
|
@ -410,21 +410,21 @@ struct Expression::Helpers
|
|||
jassert (t != nullptr);
|
||||
}
|
||||
|
||||
Type getType() const noexcept { return operatorType; }
|
||||
int getInputIndexFor (const Term* possibleInput) const { return possibleInput == input ? 0 : -1; }
|
||||
int getNumInputs() const { return 1; }
|
||||
Term* getInput (int index) const { return index == 0 ? input.get() : nullptr; }
|
||||
Term* clone() const { return new Negate (*input->clone()); }
|
||||
Type getType() const noexcept override { return operatorType; }
|
||||
int getInputIndexFor (const Term* possibleInput) const override { return possibleInput == input ? 0 : -1; }
|
||||
int getNumInputs() const override { return 1; }
|
||||
Term* getInput (int index) const override { return index == 0 ? input.get() : nullptr; }
|
||||
Term* clone() const override { return new Negate (*input->clone()); }
|
||||
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth)
|
||||
TermPtr resolve (const Scope& scope, int recursionDepth) override
|
||||
{
|
||||
return *new Constant (-input->resolve (scope, recursionDepth)->toDouble(), false);
|
||||
}
|
||||
|
||||
String getName() const { return "-"; }
|
||||
TermPtr negated() { return input; }
|
||||
String getName() const override { return "-"; }
|
||||
TermPtr negated() override { return input; }
|
||||
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, [[maybe_unused]] const Term* t, double overallTarget, Term* topLevelTerm) const
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, [[maybe_unused]] const Term* t, double overallTarget, Term* topLevelTerm) const override
|
||||
{
|
||||
jassert (t == input);
|
||||
|
||||
|
|
@ -434,7 +434,7 @@ struct Expression::Helpers
|
|||
: dest->createTermToEvaluateInput (scope, this, overallTarget, topLevelTerm));
|
||||
}
|
||||
|
||||
String toString() const
|
||||
String toString() const override
|
||||
{
|
||||
if (input->getOperatorPrecedence() > 0)
|
||||
return "-(" + input->toString() + ")";
|
||||
|
|
@ -452,13 +452,13 @@ struct Expression::Helpers
|
|||
public:
|
||||
Add (TermPtr l, TermPtr r) : BinaryTerm (l, r) {}
|
||||
|
||||
Term* clone() const { return new Add (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const { return lhs + rhs; }
|
||||
int getOperatorPrecedence() const { return 3; }
|
||||
String getName() const { return "+"; }
|
||||
void writeOperator (String& dest) const { dest << " + "; }
|
||||
Term* clone() const override { return new Add (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const override { return lhs + rhs; }
|
||||
int getOperatorPrecedence() const override { return 3; }
|
||||
String getName() const override { return "+"; }
|
||||
void writeOperator (String& dest) const override { dest << " + "; }
|
||||
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const override
|
||||
{
|
||||
if (auto newDest = createDestinationTerm (scope, input, overallTarget, topLevelTerm))
|
||||
return *new Subtract (newDest, *(input == left ? right : left)->clone());
|
||||
|
|
@ -476,13 +476,13 @@ struct Expression::Helpers
|
|||
public:
|
||||
Subtract (TermPtr l, TermPtr r) : BinaryTerm (l, r) {}
|
||||
|
||||
Term* clone() const { return new Subtract (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const { return lhs - rhs; }
|
||||
int getOperatorPrecedence() const { return 3; }
|
||||
String getName() const { return "-"; }
|
||||
void writeOperator (String& dest) const { dest << " - "; }
|
||||
Term* clone() const override { return new Subtract (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const override { return lhs - rhs; }
|
||||
int getOperatorPrecedence() const override { return 3; }
|
||||
String getName() const override { return "-"; }
|
||||
void writeOperator (String& dest) const override { dest << " - "; }
|
||||
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const override
|
||||
{
|
||||
if (auto newDest = createDestinationTerm (scope, input, overallTarget, topLevelTerm))
|
||||
{
|
||||
|
|
@ -505,13 +505,13 @@ struct Expression::Helpers
|
|||
public:
|
||||
Multiply (TermPtr l, TermPtr r) : BinaryTerm (l, r) {}
|
||||
|
||||
Term* clone() const { return new Multiply (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const { return lhs * rhs; }
|
||||
String getName() const { return "*"; }
|
||||
void writeOperator (String& dest) const { dest << " * "; }
|
||||
int getOperatorPrecedence() const { return 2; }
|
||||
Term* clone() const override { return new Multiply (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const override { return lhs * rhs; }
|
||||
String getName() const override { return "*"; }
|
||||
void writeOperator (String& dest) const override { dest << " * "; }
|
||||
int getOperatorPrecedence() const override { return 2; }
|
||||
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const override
|
||||
{
|
||||
if (auto newDest = createDestinationTerm (scope, input, overallTarget, topLevelTerm))
|
||||
return *new Divide (newDest, *(input == left ? right : left)->clone());
|
||||
|
|
@ -528,13 +528,13 @@ struct Expression::Helpers
|
|||
public:
|
||||
Divide (TermPtr l, TermPtr r) : BinaryTerm (l, r) {}
|
||||
|
||||
Term* clone() const { return new Divide (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const { return lhs / rhs; }
|
||||
String getName() const { return "/"; }
|
||||
void writeOperator (String& dest) const { dest << " / "; }
|
||||
int getOperatorPrecedence() const { return 2; }
|
||||
Term* clone() const override { return new Divide (*left->clone(), *right->clone()); }
|
||||
double performFunction (double lhs, double rhs) const override { return lhs / rhs; }
|
||||
String getName() const override { return "/"; }
|
||||
void writeOperator (String& dest) const override { dest << " / "; }
|
||||
int getOperatorPrecedence() const override { return 2; }
|
||||
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const
|
||||
TermPtr createTermToEvaluateInput (const Scope& scope, const Term* input, double overallTarget, Term* topLevelTerm) const override
|
||||
{
|
||||
auto newDest = createDestinationTerm (scope, input, overallTarget, topLevelTerm);
|
||||
|
||||
|
|
@ -625,7 +625,7 @@ struct Expression::Helpers
|
|||
{
|
||||
public:
|
||||
SymbolCheckVisitor (const Symbol& s) : symbol (s) {}
|
||||
void useSymbol (const Symbol& s) { wasFound = wasFound || s == symbol; }
|
||||
void useSymbol (const Symbol& s) override { wasFound = wasFound || s == symbol; }
|
||||
|
||||
bool wasFound = false;
|
||||
|
||||
|
|
@ -640,7 +640,7 @@ struct Expression::Helpers
|
|||
{
|
||||
public:
|
||||
SymbolListVisitor (Array<Symbol>& list_) : list (list_) {}
|
||||
void useSymbol (const Symbol& s) { list.addIfNotAlreadyThere (s); }
|
||||
void useSymbol (const Symbol& s) override { list.addIfNotAlreadyThere (s); }
|
||||
|
||||
private:
|
||||
Array<Symbol>& list;
|
||||
|
|
|
|||
|
|
@ -167,13 +167,13 @@ public:
|
|||
ComBaseClassHelperBase (unsigned int initialRefCount) : refCount (initialRefCount) {}
|
||||
virtual ~ComBaseClassHelperBase() = default;
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef() { return ++refCount; }
|
||||
ULONG STDMETHODCALLTYPE Release() { auto r = --refCount; if (r == 0) delete this; return r; }
|
||||
ULONG STDMETHODCALLTYPE AddRef() override { return ++refCount; }
|
||||
ULONG STDMETHODCALLTYPE Release() override { auto r = --refCount; if (r == 0) delete this; return r; }
|
||||
|
||||
protected:
|
||||
ULONG refCount;
|
||||
|
||||
JUCE_COMRESULT QueryInterface (REFIID refId, void** result)
|
||||
JUCE_COMRESULT QueryInterface (REFIID refId, void** result) override
|
||||
{
|
||||
if (refId == __uuidof (IUnknown))
|
||||
return castToType<First> (result);
|
||||
|
|
@ -203,7 +203,7 @@ public:
|
|||
explicit ComBaseClassHelper (unsigned int initialRefCount = 1)
|
||||
: ComBaseClassHelperBase<ComClasses...> (initialRefCount) {}
|
||||
|
||||
JUCE_COMRESULT QueryInterface (REFIID refId, void** result)
|
||||
JUCE_COMRESULT QueryInterface (REFIID refId, void** result) override
|
||||
{
|
||||
const std::tuple<IID, void*> bases[]
|
||||
{
|
||||
|
|
|
|||
|
|
@ -845,7 +845,7 @@ public:
|
|||
TheTest::run (*this, random, Tag<int64_t>{});
|
||||
}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
runTestForAllTypes ("InitializationTest", InitializationTest{});
|
||||
|
||||
|
|
|
|||
|
|
@ -212,11 +212,11 @@ public:
|
|||
bool loadedOk() const noexcept { return dwFontFace != nullptr; }
|
||||
BOOL isFontFound() const noexcept { return fontFound; }
|
||||
|
||||
float getAscent() const { return ascent; }
|
||||
float getDescent() const { return 1.0f - ascent; }
|
||||
float getHeightToPointsFactor() const { return heightToPointsFactor; }
|
||||
float getAscent() const override { return ascent; }
|
||||
float getDescent() const override { return 1.0f - ascent; }
|
||||
float getHeightToPointsFactor() const override { return heightToPointsFactor; }
|
||||
|
||||
float getStringWidth (const String& text)
|
||||
float getStringWidth (const String& text) override
|
||||
{
|
||||
auto textUTF32 = text.toUTF32();
|
||||
auto len = textUTF32.length();
|
||||
|
|
@ -235,7 +235,7 @@ public:
|
|||
return x * unitsToHeightScaleFactor;
|
||||
}
|
||||
|
||||
void getGlyphPositions (const String& text, Array<int>& resultGlyphs, Array<float>& xOffsets)
|
||||
void getGlyphPositions (const String& text, Array<int>& resultGlyphs, Array<float>& xOffsets) override
|
||||
{
|
||||
xOffsets.add (0);
|
||||
|
||||
|
|
@ -257,7 +257,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
bool getOutlineForGlyph (int glyphNumber, Path& path)
|
||||
bool getOutlineForGlyph (int glyphNumber, Path& path) override
|
||||
{
|
||||
jassert (path.isEmpty()); // we might need to apply a transform to the path, so this must be empty
|
||||
auto glyphIndex = (UINT16) glyphNumber;
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ public:
|
|||
L' ');
|
||||
}
|
||||
|
||||
bool loadGlyphIfPossible (const juce_wchar character)
|
||||
bool loadGlyphIfPossible (const juce_wchar character) override
|
||||
{
|
||||
if (faceWrapper != nullptr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@ public:
|
|||
loadFont();
|
||||
}
|
||||
|
||||
~WindowsTypeface()
|
||||
~WindowsTypeface() override
|
||||
{
|
||||
SelectObject (dc, previousFontH); // Replacing the previous font before deleting the DC avoids a warning in BoundsChecker
|
||||
DeleteDC (dc);
|
||||
|
|
@ -346,11 +346,11 @@ public:
|
|||
RemoveFontMemResourceEx (memoryFont);
|
||||
}
|
||||
|
||||
float getAscent() const { return ascent; }
|
||||
float getDescent() const { return 1.0f - ascent; }
|
||||
float getHeightToPointsFactor() const { return heightToPointsFactor; }
|
||||
float getAscent() const override { return ascent; }
|
||||
float getDescent() const override { return 1.0f - ascent; }
|
||||
float getHeightToPointsFactor() const override { return heightToPointsFactor; }
|
||||
|
||||
float getStringWidth (const String& text)
|
||||
float getStringWidth (const String& text) override
|
||||
{
|
||||
auto utf16 = text.toUTF16();
|
||||
auto numChars = utf16.length();
|
||||
|
|
@ -367,7 +367,7 @@ public:
|
|||
return x;
|
||||
}
|
||||
|
||||
void getGlyphPositions (const String& text, Array<int>& resultGlyphs, Array<float>& xOffsets)
|
||||
void getGlyphPositions (const String& text, Array<int>& resultGlyphs, Array<float>& xOffsets) override
|
||||
{
|
||||
auto utf16 = text.toUTF16();
|
||||
auto numChars = utf16.length();
|
||||
|
|
@ -391,7 +391,7 @@ public:
|
|||
xOffsets.add (x);
|
||||
}
|
||||
|
||||
bool getOutlineForGlyph (int glyphNumber, Path& glyphPath)
|
||||
bool getOutlineForGlyph (int glyphNumber, Path& glyphPath) override
|
||||
{
|
||||
if (glyphNumber < 0)
|
||||
glyphNumber = defaultGlyph;
|
||||
|
|
|
|||
|
|
@ -60,12 +60,12 @@ struct TabbedComponent::ButtonBar final : public TabbedButtonBar
|
|||
{
|
||||
}
|
||||
|
||||
void currentTabChanged (int newCurrentTabIndex, const String& newTabName)
|
||||
void currentTabChanged (int newCurrentTabIndex, const String& newTabName) override
|
||||
{
|
||||
owner.changeCallback (newCurrentTabIndex, newTabName);
|
||||
}
|
||||
|
||||
void popupMenuClickOnTab (int tabIndex, const String& tabName)
|
||||
void popupMenuClickOnTab (int tabIndex, const String& tabName) override
|
||||
{
|
||||
owner.popupMenuClickOnTab (tabIndex, tabName);
|
||||
}
|
||||
|
|
@ -75,7 +75,7 @@ struct TabbedComponent::ButtonBar final : public TabbedButtonBar
|
|||
return owner.tabs->getTabBackgroundColour (tabIndex);
|
||||
}
|
||||
|
||||
TabBarButton* createTabButton (const String& tabName, int tabIndex)
|
||||
TabBarButton* createTabButton (const String& tabName, int tabIndex) override
|
||||
{
|
||||
return owner.createTabButton (tabName, tabIndex);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace DragAndDropHelpers
|
|||
//==============================================================================
|
||||
struct JuceDropSource final : public ComBaseClassHelper<IDropSource>
|
||||
{
|
||||
JuceDropSource() {}
|
||||
JuceDropSource() = default;
|
||||
|
||||
JUCE_COMRESULT QueryContinueDrag (BOOL escapePressed, DWORD keys) override
|
||||
{
|
||||
|
|
@ -123,7 +123,7 @@ namespace DragAndDropHelpers
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
class JuceDataObject final : public ComBaseClassHelper <IDataObject>
|
||||
class JuceDataObject final : public ComBaseClassHelper<IDataObject>
|
||||
{
|
||||
public:
|
||||
JuceDataObject (const FORMATETC* f, const STGMEDIUM* m)
|
||||
|
|
@ -131,12 +131,12 @@ namespace DragAndDropHelpers
|
|||
{
|
||||
}
|
||||
|
||||
~JuceDataObject()
|
||||
~JuceDataObject() override
|
||||
{
|
||||
jassert (refCount == 0);
|
||||
}
|
||||
|
||||
JUCE_COMRESULT GetData (FORMATETC* pFormatEtc, STGMEDIUM* pMedium)
|
||||
JUCE_COMRESULT GetData (FORMATETC* pFormatEtc, STGMEDIUM* pMedium) override
|
||||
{
|
||||
if ((pFormatEtc->tymed & format->tymed) != 0
|
||||
&& pFormatEtc->cfFormat == format->cfFormat
|
||||
|
|
@ -164,7 +164,7 @@ namespace DragAndDropHelpers
|
|||
return DV_E_FORMATETC;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT QueryGetData (FORMATETC* f)
|
||||
JUCE_COMRESULT QueryGetData (FORMATETC* f) override
|
||||
{
|
||||
if (f == nullptr)
|
||||
return E_INVALIDARG;
|
||||
|
|
@ -177,13 +177,13 @@ namespace DragAndDropHelpers
|
|||
return DV_E_FORMATETC;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT GetCanonicalFormatEtc (FORMATETC*, FORMATETC* pFormatEtcOut)
|
||||
JUCE_COMRESULT GetCanonicalFormatEtc (FORMATETC*, FORMATETC* pFormatEtcOut) override
|
||||
{
|
||||
pFormatEtcOut->ptd = nullptr;
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT EnumFormatEtc (DWORD direction, IEnumFORMATETC** result)
|
||||
JUCE_COMRESULT EnumFormatEtc (DWORD direction, IEnumFORMATETC** result) override
|
||||
{
|
||||
if (result == nullptr)
|
||||
return E_POINTER;
|
||||
|
|
@ -198,11 +198,11 @@ namespace DragAndDropHelpers
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT GetDataHere (FORMATETC*, STGMEDIUM*) { return DATA_E_FORMATETC; }
|
||||
JUCE_COMRESULT SetData (FORMATETC*, STGMEDIUM*, BOOL) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT DAdvise (FORMATETC*, DWORD, IAdviseSink*, DWORD*) { return OLE_E_ADVISENOTSUPPORTED; }
|
||||
JUCE_COMRESULT DUnadvise (DWORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT EnumDAdvise (IEnumSTATDATA**) { return OLE_E_ADVISENOTSUPPORTED; }
|
||||
JUCE_COMRESULT GetDataHere (FORMATETC*, STGMEDIUM*) override { return DATA_E_FORMATETC; }
|
||||
JUCE_COMRESULT SetData (FORMATETC*, STGMEDIUM*, BOOL) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT DAdvise (FORMATETC*, DWORD, IAdviseSink*, DWORD*) override { return OLE_E_ADVISENOTSUPPORTED; }
|
||||
JUCE_COMRESULT DUnadvise (DWORD) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT EnumDAdvise (IEnumSTATDATA**) override { return OLE_E_ADVISENOTSUPPORTED; }
|
||||
|
||||
private:
|
||||
const FORMATETC* const format;
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ class RelativeRectangleLocalScope final : public Expression::Scope
|
|||
public:
|
||||
RelativeRectangleLocalScope (const RelativeRectangle& rect_) : rect (rect_) {}
|
||||
|
||||
Expression getSymbolValue (const String& symbol) const
|
||||
Expression getSymbolValue (const String& symbol) const override
|
||||
{
|
||||
switch (RelativeCoordinate::StandardStrings::getTypeOf (symbol))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ class TableListBox::Header final : public TableHeaderComponent
|
|||
public:
|
||||
Header (TableListBox& tlb) : owner (tlb) {}
|
||||
|
||||
void addMenuItems (PopupMenu& menu, int columnIdClicked)
|
||||
void addMenuItems (PopupMenu& menu, int columnIdClicked) override
|
||||
{
|
||||
if (owner.isAutoSizeMenuOptionShown())
|
||||
{
|
||||
|
|
@ -330,7 +330,7 @@ public:
|
|||
TableHeaderComponent::addMenuItems (menu, columnIdClicked);
|
||||
}
|
||||
|
||||
void reactToMenuItem (int menuReturnId, int columnIdClicked)
|
||||
void reactToMenuItem (int menuReturnId, int columnIdClicked) override
|
||||
{
|
||||
switch (menuReturnId)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,23 +37,23 @@ namespace ActiveXHelpers
|
|||
//==============================================================================
|
||||
struct JuceIStorage final : public ComBaseClassHelper<IStorage>
|
||||
{
|
||||
JuceIStorage() {}
|
||||
JuceIStorage() = default;
|
||||
|
||||
JUCE_COMRESULT CreateStream (const WCHAR*, DWORD, DWORD, DWORD, IStream**) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OpenStream (const WCHAR*, void*, DWORD, DWORD, IStream**) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT CreateStorage (const WCHAR*, DWORD, DWORD, DWORD, IStorage**) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OpenStorage (const WCHAR*, IStorage*, DWORD, SNB, DWORD, IStorage**) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT CopyTo (DWORD, IID const*, SNB, IStorage*) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT MoveElementTo (const OLECHAR*,IStorage*, const OLECHAR*, DWORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Commit (DWORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Revert() { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT EnumElements (DWORD, void*, DWORD, IEnumSTATSTG**) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT DestroyElement (const OLECHAR*) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT RenameElement (const WCHAR*, const WCHAR*) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetElementTimes (const WCHAR*, FILETIME const*, FILETIME const*, FILETIME const*) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetClass (REFCLSID) { return S_OK; }
|
||||
JUCE_COMRESULT SetStateBits (DWORD, DWORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Stat (STATSTG*, DWORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT CreateStream (const WCHAR*, DWORD, DWORD, DWORD, IStream**) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OpenStream (const WCHAR*, void*, DWORD, DWORD, IStream**) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT CreateStorage (const WCHAR*, DWORD, DWORD, DWORD, IStorage**) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OpenStorage (const WCHAR*, IStorage*, DWORD, SNB, DWORD, IStorage**) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT CopyTo (DWORD, IID const*, SNB, IStorage*) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT MoveElementTo (const OLECHAR*,IStorage*, const OLECHAR*, DWORD) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Commit (DWORD) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Revert() override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT EnumElements (DWORD, void*, DWORD, IEnumSTATSTG**) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT DestroyElement (const OLECHAR*) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT RenameElement (const WCHAR*, const WCHAR*) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetElementTimes (const WCHAR*, FILETIME const*, FILETIME const*, FILETIME const*) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetClass (REFCLSID) override { return S_OK; }
|
||||
JUCE_COMRESULT SetStateBits (DWORD, DWORD) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT Stat (STATSTG*, DWORD) override { return E_NOTIMPL; }
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -61,18 +61,18 @@ namespace ActiveXHelpers
|
|||
{
|
||||
JuceOleInPlaceFrame (HWND hwnd) : window (hwnd) {}
|
||||
|
||||
JUCE_COMRESULT GetWindow (HWND* lphwnd) { *lphwnd = window; return S_OK; }
|
||||
JUCE_COMRESULT ContextSensitiveHelp (BOOL) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT GetBorder (LPRECT) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT RequestBorderSpace (LPCBORDERWIDTHS) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetBorderSpace (LPCBORDERWIDTHS) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetActiveObject (IOleInPlaceActiveObject* a, LPCOLESTR) { activeObject = a; return S_OK; }
|
||||
JUCE_COMRESULT InsertMenus (HMENU, LPOLEMENUGROUPWIDTHS) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetMenu (HMENU, HOLEMENU, HWND) { return S_OK; }
|
||||
JUCE_COMRESULT RemoveMenus (HMENU) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetStatusText (LPCOLESTR) { return S_OK; }
|
||||
JUCE_COMRESULT EnableModeless (BOOL) { return S_OK; }
|
||||
JUCE_COMRESULT TranslateAccelerator (LPMSG, WORD) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT GetWindow (HWND* lphwnd) override { *lphwnd = window; return S_OK; }
|
||||
JUCE_COMRESULT ContextSensitiveHelp (BOOL) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT GetBorder (LPRECT) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT RequestBorderSpace (LPCBORDERWIDTHS) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetBorderSpace (LPCBORDERWIDTHS) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetActiveObject (IOleInPlaceActiveObject* a, LPCOLESTR) override { activeObject = a; return S_OK; }
|
||||
JUCE_COMRESULT InsertMenus (HMENU, LPOLEMENUGROUPWIDTHS) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetMenu (HMENU, HOLEMENU, HWND) override { return S_OK; }
|
||||
JUCE_COMRESULT RemoveMenus (HMENU) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetStatusText (LPCOLESTR) override { return S_OK; }
|
||||
JUCE_COMRESULT EnableModeless (BOOL) override { return S_OK; }
|
||||
JUCE_COMRESULT TranslateAccelerator (LPMSG, WORD) override { return E_NOTIMPL; }
|
||||
|
||||
HRESULT OfferKeyTranslation (LPMSG lpmsg)
|
||||
{
|
||||
|
|
@ -94,18 +94,18 @@ namespace ActiveXHelpers
|
|||
frame (new JuceOleInPlaceFrame (window))
|
||||
{}
|
||||
|
||||
~JuceIOleInPlaceSite()
|
||||
~JuceIOleInPlaceSite() override
|
||||
{
|
||||
frame->Release();
|
||||
}
|
||||
|
||||
JUCE_COMRESULT GetWindow (HWND* lphwnd) { *lphwnd = window; return S_OK; }
|
||||
JUCE_COMRESULT ContextSensitiveHelp (BOOL) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT CanInPlaceActivate() { return S_OK; }
|
||||
JUCE_COMRESULT OnInPlaceActivate() { return S_OK; }
|
||||
JUCE_COMRESULT OnUIActivate() { return S_OK; }
|
||||
JUCE_COMRESULT GetWindow (HWND* lphwnd) override { *lphwnd = window; return S_OK; }
|
||||
JUCE_COMRESULT ContextSensitiveHelp (BOOL) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT CanInPlaceActivate() override { return S_OK; }
|
||||
JUCE_COMRESULT OnInPlaceActivate() override { return S_OK; }
|
||||
JUCE_COMRESULT OnUIActivate() override { return S_OK; }
|
||||
|
||||
JUCE_COMRESULT GetWindowContext (LPOLEINPLACEFRAME* lplpFrame, LPOLEINPLACEUIWINDOW* lplpDoc, LPRECT, LPRECT, LPOLEINPLACEFRAMEINFO lpFrameInfo)
|
||||
JUCE_COMRESULT GetWindowContext (LPOLEINPLACEFRAME* lplpFrame, LPOLEINPLACEUIWINDOW* lplpDoc, LPRECT, LPRECT, LPOLEINPLACEFRAMEINFO lpFrameInfo) override
|
||||
{
|
||||
/* Note: If you call AddRef on the frame here, then some types of object (e.g. web browser control) cause leaks..
|
||||
If you don't call AddRef then others crash (e.g. QuickTime).. Bit of a catch-22, so letting it leak is probably preferable.
|
||||
|
|
@ -119,12 +119,12 @@ namespace ActiveXHelpers
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT Scroll (SIZE) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OnUIDeactivate (BOOL) { return S_OK; }
|
||||
JUCE_COMRESULT OnInPlaceDeactivate() { return S_OK; }
|
||||
JUCE_COMRESULT DiscardUndoState() { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT DeactivateAndUndo() { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OnPosRectChange (LPCRECT) { return S_OK; }
|
||||
JUCE_COMRESULT Scroll (SIZE) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OnUIDeactivate (BOOL) override { return S_OK; }
|
||||
JUCE_COMRESULT OnInPlaceDeactivate() override { return S_OK; }
|
||||
JUCE_COMRESULT DiscardUndoState() override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT DeactivateAndUndo() override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT OnPosRectChange (LPCRECT) override { return S_OK; }
|
||||
|
||||
LRESULT offerEventToActiveXControl (::MSG& msg)
|
||||
{
|
||||
|
|
@ -144,7 +144,7 @@ namespace ActiveXHelpers
|
|||
JuceIOleClientSite (HWND window) : inplaceSite (new JuceIOleInPlaceSite (window))
|
||||
{}
|
||||
|
||||
~JuceIOleClientSite()
|
||||
~JuceIOleClientSite() override
|
||||
{
|
||||
inplaceSite->Release();
|
||||
|
||||
|
|
@ -155,7 +155,7 @@ namespace ActiveXHelpers
|
|||
}
|
||||
}
|
||||
|
||||
JUCE_COMRESULT QueryInterface (REFIID type, void** result)
|
||||
JUCE_COMRESULT QueryInterface (REFIID type, void** result) override
|
||||
{
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wlanguage-extension-token")
|
||||
|
||||
|
|
@ -177,12 +177,12 @@ namespace ActiveXHelpers
|
|||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
}
|
||||
|
||||
JUCE_COMRESULT SaveObject() { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT GetMoniker (DWORD, DWORD, IMoniker**) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT GetContainer (LPOLECONTAINER* ppContainer) { *ppContainer = nullptr; return E_NOINTERFACE; }
|
||||
JUCE_COMRESULT ShowObject() { return S_OK; }
|
||||
JUCE_COMRESULT OnShowWindow (BOOL) { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT RequestNewObjectLayout() { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SaveObject() override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT GetMoniker (DWORD, DWORD, IMoniker**) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT GetContainer (LPOLECONTAINER* ppContainer) override { *ppContainer = nullptr; return E_NOINTERFACE; }
|
||||
JUCE_COMRESULT ShowObject() override { return S_OK; }
|
||||
JUCE_COMRESULT OnShowWindow (BOOL) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT RequestNewObjectLayout() override { return E_NOTIMPL; }
|
||||
|
||||
LRESULT offerEventToActiveXControl (::MSG& msg)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -670,7 +670,7 @@ public:
|
|||
: originalWorker (std::move (workerToUse))
|
||||
{}
|
||||
|
||||
void operator() (OpenGLContext& calleeContext)
|
||||
void operator() (OpenGLContext& calleeContext) override
|
||||
{
|
||||
if (originalWorker != nullptr)
|
||||
(*originalWorker) (calleeContext);
|
||||
|
|
|
|||
|
|
@ -406,7 +406,7 @@ public:
|
|||
: UnitTest ("OSCAddress class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("construction and parsing");
|
||||
{
|
||||
|
|
@ -452,7 +452,7 @@ public:
|
|||
: UnitTest ("OSCAddressPattern class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("construction and parsing");
|
||||
{
|
||||
|
|
@ -593,7 +593,7 @@ public:
|
|||
: UnitTest ("OSCAddress class / pattern matching", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("basic string matching");
|
||||
{
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public:
|
|||
return block;
|
||||
}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
runTestInitialisation();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ public:
|
|||
: UnitTest ("OSCBundle class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("Construction");
|
||||
{
|
||||
|
|
@ -224,7 +224,7 @@ public:
|
|||
: UnitTest ("OSCBundle::Element class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("Construction from OSCMessage");
|
||||
{
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public:
|
|||
: UnitTest ("OSCMessage class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("Basic usage");
|
||||
{
|
||||
|
|
|
|||
|
|
@ -670,7 +670,7 @@ public:
|
|||
: UnitTest ("OSCInputStream class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("reading OSC addresses");
|
||||
{
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ public:
|
|||
: UnitTest ("OSCBinaryWriter class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("writing OSC addresses");
|
||||
{
|
||||
|
|
@ -672,7 +672,7 @@ public:
|
|||
: UnitTest ("OSCRoundTripTests class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("Empty OSC message");
|
||||
{
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ public:
|
|||
: UnitTest ("OSCTimeTag class", UnitTestCategories::osc)
|
||||
{}
|
||||
|
||||
void runTest()
|
||||
void runTest() override
|
||||
{
|
||||
beginTest ("Basics");
|
||||
|
||||
|
|
|
|||
|
|
@ -530,7 +530,7 @@ struct CameraDevice::Pimpl : public ChangeBroadcaster
|
|||
GrabberCallback (Pimpl& p)
|
||||
: ComBaseClassHelperBase (0), owner (p) {}
|
||||
|
||||
JUCE_COMRESULT QueryInterface (REFIID refId, void** result)
|
||||
JUCE_COMRESULT QueryInterface (REFIID refId, void** result) override
|
||||
{
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wlanguage-extension-token")
|
||||
if (refId == __uuidof (ComTypes::ISampleGrabberCB))
|
||||
|
|
@ -540,9 +540,9 @@ struct CameraDevice::Pimpl : public ChangeBroadcaster
|
|||
return ComBaseClassHelperBase<ComTypes::ISampleGrabberCB>::QueryInterface (refId, result);
|
||||
}
|
||||
|
||||
JUCE_COMRESULT SampleCB (double, ComTypes::IMediaSample*) { return E_FAIL; }
|
||||
JUCE_COMRESULT SampleCB (double, ComTypes::IMediaSample*) override { return E_FAIL; }
|
||||
|
||||
JUCE_COMRESULT BufferCB (double time, BYTE* buffer, long bufferSize)
|
||||
JUCE_COMRESULT BufferCB (double time, BYTE* buffer, long bufferSize) override
|
||||
{
|
||||
owner.handleFrame (time, buffer, bufferSize);
|
||||
return S_OK;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue