mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-17 00:44:19 +00:00
Changed SparseSet to work with Range objects. Fixed array sorting bug.
This commit is contained in:
parent
21006fbd0a
commit
9c5651fb8e
14 changed files with 251 additions and 310 deletions
|
|
@ -49,7 +49,7 @@ public:
|
|||
activeImage (0),
|
||||
loadingImage (0)
|
||||
{
|
||||
HRESULT hr = graphBuilder.CoCreateInstance (CLSID_FilterGraph, CLSCTX_INPROC);
|
||||
HRESULT hr = graphBuilder.CoCreateInstance (CLSID_FilterGraph);
|
||||
if (FAILED (hr))
|
||||
return;
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ public:
|
|||
if (FAILED (hr))
|
||||
return;
|
||||
|
||||
hr = smartTee.CoCreateInstance (CLSID_SmartTee, CLSCTX_INPROC_SERVER);
|
||||
hr = smartTee.CoCreateInstance (CLSID_SmartTee);
|
||||
if (FAILED (hr))
|
||||
return;
|
||||
|
||||
|
|
@ -92,7 +92,7 @@ public:
|
|||
return;
|
||||
|
||||
ComSmartPtr <IBaseFilter> sampleGrabberBase;
|
||||
hr = sampleGrabberBase.CoCreateInstance (CLSID_SampleGrabber, CLSCTX_INPROC_SERVER);
|
||||
hr = sampleGrabberBase.CoCreateInstance (CLSID_SampleGrabber);
|
||||
if (FAILED (hr))
|
||||
return;
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ public:
|
|||
height = pVih->bmiHeader.biHeight;
|
||||
|
||||
ComSmartPtr <IBaseFilter> nullFilter;
|
||||
hr = nullFilter.CoCreateInstance (CLSID_NullRenderer, CLSCTX_INPROC_SERVER);
|
||||
hr = nullFilter.CoCreateInstance (CLSID_NullRenderer);
|
||||
hr = graphBuilder->AddFilter (nullFilter, _T("Null Renderer"));
|
||||
|
||||
if (connectFilters (sampleGrabberBase, nullFilter)
|
||||
|
|
@ -259,7 +259,7 @@ public:
|
|||
firstRecordedTime = Time();
|
||||
recordNextFrameTime = true;
|
||||
|
||||
HRESULT hr = asfWriter.CoCreateInstance (CLSID_WMAsfWriter, CLSCTX_INPROC_SERVER);
|
||||
HRESULT hr = asfWriter.CoCreateInstance (CLSID_WMAsfWriter);
|
||||
|
||||
if (SUCCEEDED (hr))
|
||||
{
|
||||
|
|
@ -737,7 +737,7 @@ static ComSmartPtr <IBaseFilter> enumerateCameras (StringArray* const names,
|
|||
ComSmartPtr <IBaseFilter> result;
|
||||
|
||||
ComSmartPtr <ICreateDevEnum> pDevEnum;
|
||||
HRESULT hr = pDevEnum.CoCreateInstance (CLSID_SystemDeviceEnum, CLSCTX_INPROC);
|
||||
HRESULT hr = pDevEnum.CoCreateInstance (CLSID_SystemDeviceEnum);
|
||||
|
||||
if (SUCCEEDED (hr))
|
||||
{
|
||||
|
|
@ -808,7 +808,7 @@ CameraDevice* CameraDevice::openDevice (int index,
|
|||
int maxWidth, int maxHeight)
|
||||
{
|
||||
ComSmartPtr <ICaptureGraphBuilder2> captureGraphBuilder;
|
||||
HRESULT hr = captureGraphBuilder.CoCreateInstance (CLSID_CaptureGraphBuilder2, CLSCTX_INPROC);
|
||||
HRESULT hr = captureGraphBuilder.CoCreateInstance (CLSID_CaptureGraphBuilder2);
|
||||
|
||||
if (SUCCEEDED (hr))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -502,7 +502,7 @@ const File File::getLinkedTarget() const
|
|||
return result;
|
||||
|
||||
ComSmartPtr <IShellLink> shellLink;
|
||||
if (SUCCEEDED (shellLink.CoCreateInstance (CLSID_ShellLink, CLSCTX_INPROC_SERVER)))
|
||||
if (SUCCEEDED (shellLink.CoCreateInstance (CLSID_ShellLink)))
|
||||
{
|
||||
ComSmartPtr <IPersistFile> persistFile;
|
||||
if (SUCCEEDED (shellLink->QueryInterface (IID_IPersistFile, (LPVOID*) &persistFile)))
|
||||
|
|
|
|||
|
|
@ -187,48 +187,47 @@
|
|||
/** A simple COM smart pointer.
|
||||
Avoids having to include ATL just to get one of these.
|
||||
*/
|
||||
template <class T>
|
||||
template <class ComClass>
|
||||
class ComSmartPtr
|
||||
{
|
||||
public:
|
||||
ComSmartPtr() throw() : p (0) {}
|
||||
ComSmartPtr (T* const p_) : p (p_) { if (p_ != 0) p_->AddRef(); }
|
||||
ComSmartPtr (const ComSmartPtr<T>& p_) : p (p_.p) { if (p != 0) p->AddRef(); }
|
||||
~ComSmartPtr() { if (p != 0) p->Release(); }
|
||||
ComSmartPtr() throw() : p (0) {}
|
||||
ComSmartPtr (ComClass* const p_) : p (p_) { if (p_ != 0) p_->AddRef(); }
|
||||
ComSmartPtr (const ComSmartPtr<ComClass>& p_) : p (p_.p) { if (p != 0) p->AddRef(); }
|
||||
~ComSmartPtr() { if (p != 0) p->Release(); }
|
||||
|
||||
operator T*() const throw() { return p; }
|
||||
T& operator*() const throw() { return *p; }
|
||||
T** operator&() throw() { return &p; }
|
||||
T* operator->() const throw() { return p; }
|
||||
operator ComClass*() const throw() { return p; }
|
||||
ComClass& operator*() const throw() { return *p; }
|
||||
ComClass** operator&() throw() { return &p; }
|
||||
ComClass* operator->() const throw() { return p; }
|
||||
|
||||
T* operator= (T* const newP)
|
||||
ComClass* operator= (ComClass* const newP)
|
||||
{
|
||||
if (newP != 0)
|
||||
newP->AddRef();
|
||||
|
||||
if (p != 0)
|
||||
p->Release();
|
||||
|
||||
if (newP != 0) newP->AddRef();
|
||||
if (p != 0) p->Release();
|
||||
p = newP;
|
||||
return newP;
|
||||
}
|
||||
|
||||
T* operator= (const ComSmartPtr<T>& newP) { return operator= (newP.p); }
|
||||
ComClass* operator= (const ComSmartPtr<ComClass>& newP) { return operator= (newP.p); }
|
||||
|
||||
HRESULT CoCreateInstance (REFCLSID rclsid, DWORD dwClsContext)
|
||||
HRESULT CoCreateInstance (REFCLSID rclsid, DWORD dwClsContext = CLSCTX_INPROC_SERVER)
|
||||
{
|
||||
#ifndef __MINGW32__
|
||||
operator= (0);
|
||||
return ::CoCreateInstance (rclsid, 0, dwClsContext, __uuidof(T), (void**) &p);
|
||||
return ::CoCreateInstance (rclsid, 0, dwClsContext, __uuidof (ComClass), (void**) &p);
|
||||
#else
|
||||
return S_FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
T* p;
|
||||
private:
|
||||
ComClass* p;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/** Handy base class for writing COM objects, providing ref-counting and a basic QueryInterface method.
|
||||
*/
|
||||
template <class ComClass>
|
||||
class ComBaseClassHelper : public ComClass
|
||||
{
|
||||
|
|
|
|||
|
|
@ -912,7 +912,7 @@ private:
|
|||
bool createDevices()
|
||||
{
|
||||
ComSmartPtr <IMMDeviceEnumerator> enumerator;
|
||||
if (! OK (enumerator.CoCreateInstance (__uuidof (MMDeviceEnumerator), CLSCTX_INPROC_SERVER)))
|
||||
if (! OK (enumerator.CoCreateInstance (__uuidof (MMDeviceEnumerator))))
|
||||
return false;
|
||||
|
||||
ComSmartPtr <IMMDeviceCollection> deviceCollection;
|
||||
|
|
@ -976,7 +976,7 @@ public:
|
|||
inputDeviceIds.clear();
|
||||
|
||||
ComSmartPtr <IMMDeviceEnumerator> enumerator;
|
||||
if (! OK (enumerator.CoCreateInstance (__uuidof (MMDeviceEnumerator), CLSCTX_INPROC_SERVER)))
|
||||
if (! OK (enumerator.CoCreateInstance (__uuidof (MMDeviceEnumerator))))
|
||||
return;
|
||||
|
||||
const String defaultRenderer = getDefaultEndpoint (enumerator, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue