gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

imagePool.h (696B)


      1 #pragma once
      2 
      3 #include <map>
      4 #include <cstddef>
      5 #include <memory>
      6 
      7 namespace juce
      8 {
      9 	class Image;
     10 }
     11 
     12 namespace jucePluginEditorLib
     13 {
     14 	class ImagePool
     15 	{
     16 	public:
     17 		enum class Type
     18 		{
     19 			Lock,
     20 			Link,
     21 
     22 			Count
     23 		};
     24 
     25 		using ImageData = std::pair<const char*, size_t>;	// pointer to data, data size
     26 		using ImageDataMap = std::map<Type, ImageData>;
     27 
     28 		const ImageDataMap& getImageDataMap() const;
     29 
     30 		const juce::Image* getImage(Type _type, float _scale);
     31 		const juce::Image* getImage(Type _type);
     32 
     33 	private:
     34 		mutable ImageDataMap m_imageDataMap;
     35 
     36 		std::map<Type, std::unique_ptr<juce::Image>> m_imageMap;
     37 		std::map<Type, std::map<float,std::unique_ptr<juce::Image>>> m_scaledImageMap;
     38 	};
     39 }