JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_AudioThumbnailCache.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
41class JUCE_API AudioThumbnailCache
42{
43public:
44 //==============================================================================
50 explicit AudioThumbnailCache (int maxNumThumbsToStore);
51
53 virtual ~AudioThumbnailCache();
54
55 //==============================================================================
57 void clear();
58
65 bool loadThumb (AudioThumbnailBase& thumb, int64 hashCode);
66
72 void storeThumb (const AudioThumbnailBase& thumb, int64 hashCode);
73
75 void removeThumb (int64 hashCode);
76
77 //==============================================================================
82 bool readFromStream (InputStream& source);
83
87 void writeToStream (OutputStream& stream);
88
90 TimeSliceThread& getTimeSliceThread() noexcept { return thread; }
91
92protected:
96 virtual void saveNewlyFinishedThumbnail (const AudioThumbnailBase&, int64 hashCode);
97
101 virtual bool loadNewThumb (AudioThumbnailBase&, int64 hashCode);
102
103private:
104 //==============================================================================
105 TimeSliceThread thread;
106
107 class ThumbnailCacheEntry;
109 CriticalSection lock;
110 int maxNumThumbsToStore;
111
112 ThumbnailCacheEntry* findThumbFor (int64 hash) const;
113 int findOldestThumb() const;
114
116};
117
118} // namespace juce
Provides a base for classes that can store and draw scaled views of an audio waveform.
An instance of this class is used to manage multiple AudioThumbnail objects.
TimeSliceThread & getTimeSliceThread() noexcept
Returns the thread that client thumbnails can use.
The base class for streams that read data.
The base class for streams that write data to some kind of destination.
An array designed for holding objects.
A thread that keeps a list of clients, and calls each one in turn, giving them all a chance to run so...
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.
long long int64
A platform-independent 64-bit integer type.