aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_devices/imageCache.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Library/ml_devices/imageCache.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Plugins/Library/ml_devices/imageCache.h')
-rw-r--r--Src/Plugins/Library/ml_devices/imageCache.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_devices/imageCache.h b/Src/Plugins/Library/ml_devices/imageCache.h
new file mode 100644
index 00000000..1c67f98b
--- /dev/null
+++ b/Src/Plugins/Library/ml_devices/imageCache.h
@@ -0,0 +1,76 @@
+#ifndef _NULLSOFT_WINAMP_ML_DEVICES_IMAGE_CACHE_HEADER
+#define _NULLSOFT_WINAMP_ML_DEVICES_IMAGE_CACHE_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+typedef struct DeviceColoredImage DeviceColoredImage;
+typedef struct DeviceImage DeviceImage;
+typedef struct DeviceImageCache DeviceImageCache;
+
+typedef HBITMAP (*DeviceImageLoader)(const wchar_t* /*path*/, int /*width*/, int /*height*/, void* /*user*/);
+typedef BOOL (*DeviceImageFilter)(HBITMAP /*bitmap*/, COLORREF /*color1*/, COLORREF /*color2*/, void* /*user*/);
+
+DeviceImageCache *
+DeviceImageCache_Create();
+
+void
+DeviceImageCache_Free(DeviceImageCache *self);
+
+DeviceImage *
+DeviceImageCache_GetImage(DeviceImageCache *self,
+ const wchar_t *path,
+ int width,
+ int height,
+ DeviceImageLoader loader,
+ void *user);
+
+size_t
+DeviceImage_AddRef(DeviceImage *self);
+
+size_t
+DeviceImage_Release(DeviceImage *self);
+
+BOOL
+DeviceImage_GetSize(DeviceImage *self,
+ int *width,
+ int *height);
+
+typedef enum DeviceImageFlags
+{
+
+ DeviceImage_ExactSize = (1 << 0),
+ DeviceImage_AlignLeft = 0,
+ DeviceImage_AlignRight = (1 << 1),
+ DeviceImage_AlignHCenter = (1 << 2),
+ DeviceImage_AlignTop = 0,
+ DeviceImage_AlignBottom = (1 << 3),
+ DeviceImage_AlignVCenter = (1 << 4),
+ DeviceImage_Normal = (DeviceImage_AlignLeft | DeviceImage_AlignTop),
+} DeviceImageFlags;
+DEFINE_ENUM_FLAG_OPERATORS(DeviceImageFlags);
+
+HBITMAP
+DeviceImage_GetBitmap(DeviceImage *self, DeviceImageFlags flags);
+
+DeviceColoredImage *
+DeviceImage_GetColoredImage(DeviceImage *self,
+ COLORREF color1,
+ COLORREF color2,
+ DeviceImageFilter filter,
+ void *user);
+
+size_t
+DeviceColoredImage_AddRef(DeviceColoredImage *self);
+
+size_t
+DeviceColoredImage_Release(DeviceColoredImage *self);
+
+HBITMAP
+DeviceColoredImage_GetBitmap(DeviceColoredImage *self, DeviceImageFlags flags);
+
+DeviceImage*
+DeviceColoredImage_GetBaseImage(DeviceColoredImage *self);
+
+#endif // _NULLSOFT_WINAMP_ML_DEVICES_IMAGE_CACHE_HEADER \ No newline at end of file