33 ~Pimpl()
override { clearSingletonInstance(); }
43 if (item.hashCode == hashCode)
71 for (
int i =
images.size(); --
i >= 0;)
73 auto& item =
images.getReference(
i);
75 if (item.image.getReferenceCount() <= 1)
77 if (now > item.lastUseTime +
cacheTimeout || now < item.lastUseTime - 1000)
82 item.lastUseTime = now;
94 for (
int i =
images.size(); --
i >= 0;)
95 if (
images.getReference(
i).image.getReferenceCount() <= 1)
119 if (Pimpl::getInstanceWithoutCreating() !=
nullptr)
120 return Pimpl::getInstanceWithoutCreating()->
getFromHashCode (hashCode);
127 Pimpl::getInstance()->addImageToCache (
image, hashCode);
132 auto hashCode =
file.hashCode64();
161 Pimpl::getInstance()->cacheTimeout = (
unsigned int) millisecs;
166 Pimpl::getInstance()->releaseUnusedImages();
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Array.h:56
Definition juce_CriticalSection.h:43
DeletedAtShutdown()
Definition juce_DeletedAtShutdown.cpp:34
Definition juce_File.h:45
static Image getFromMemory(const void *imageData, int dataSize)
Definition juce_ImageCache.cpp:144
static void setCacheTimeout(int millisecs)
Definition juce_ImageCache.cpp:158
static void addImageToCache(const Image &image, int64 hashCode)
Definition juce_ImageCache.cpp:125
static void releaseUnusedImages()
Definition juce_ImageCache.cpp:164
static Image getFromFile(const File &file)
Definition juce_ImageCache.cpp:130
static Image getFromHashCode(int64 hashCode)
Definition juce_ImageCache.cpp:117
Definition juce_Image.h:58
static uint32 getApproximateMillisecondCounter() noexcept
Definition juce_Time.cpp:261
void stopTimer() noexcept
Definition juce_Timer.cpp:357
Timer() noexcept
Definition juce_Timer.cpp:316
bool isTimerRunning() const noexcept
Definition juce_Timer.h:111
void startTimer(int intervalInMilliseconds) noexcept
Definition juce_Timer.cpp:332
register unsigned i
Definition inflate.c:1575
#define JUCE_IMPLEMENT_SINGLETON(Classname)
Definition juce_Singleton.h:201
#define JUCE_DECLARE_SINGLETON(Classname, doNotRecreateAfterDeletion)
Definition juce_Singleton.h:184
Definition carla_juce.cpp:31
CriticalSection::ScopedLockType ScopedLock
Definition juce_CriticalSection.h:186
unsigned int uint32
Definition juce_MathsFunctions.h:45
long long int64
Definition juce_MathsFunctions.h:54
int pointer_sized_int
Definition juce_MathsFunctions.h:80
@ image
Definition juce_AccessibilityRole.h:42
Definition juce_ImageCache.cpp:100
int64 hashCode
Definition juce_ImageCache.cpp:102
Image image
Definition juce_ImageCache.cpp:101
uint32 lastUseTime
Definition juce_ImageCache.cpp:103
Definition juce_ImageCache.cpp:31
Array< Item > images
Definition juce_ImageCache.cpp:106
Image getFromHashCode(const int64 hashCode) noexcept
Definition juce_ImageCache.cpp:37
void timerCallback() override
Definition juce_ImageCache.cpp:65
~Pimpl() override
Definition juce_ImageCache.cpp:33
void addImageToCache(const Image &image, const int64 hashCode)
Definition juce_ImageCache.cpp:53
void releaseUnusedImages()
Definition juce_ImageCache.cpp:90
CriticalSection lock
Definition juce_ImageCache.cpp:107
unsigned int cacheTimeout
Definition juce_ImageCache.cpp:108
typedef int(UZ_EXP MsgFn)()
struct zdirent * file
Definition win32.c:1500
#define const
Definition zconf.h:137