From 4c3d572eb850c32a45ec9cbaf82688d45c1eebf4 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 24 Jun 2025 19:16:36 -0500 Subject: add ability to change out albums list during runtime --- lazycachelist.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'lazycachelist.py') diff --git a/lazycachelist.py b/lazycachelist.py index 99212ab..b4d003a 100644 --- a/lazycachelist.py +++ b/lazycachelist.py @@ -39,13 +39,12 @@ class CallbackStateData: class LazyCachingTextureList(): def __init__(self, album_ids, max_cache_items=100, change_callback=None): self.immich_connector = PixMan().immich_connector + self.void = False assert max_cache_items >= 20, "Minimum cache items is 20" # Double small radius # Ring buffer - self.cache_length = max_cache_items - self.cache = [None] * max_cache_items + self.max_cache_items = max_cache_items self.radius_small = 10 - self.radius_large = int(max_cache_items / 2) self.cache_items_behind = 0 self.cache_items_ahead = 0 self.cache_index = 0 @@ -62,6 +61,19 @@ class LazyCachingTextureList(): self.change_callback = change_callback + @property + def max_cache_items(self): + return self.cache_length + + @max_cache_items.setter + def max_cache_items(self, max_cache_items): + self.cache_length = max_cache_items + self.cache = [None] * max_cache_items + self.radius_large = int(max_cache_items / 2) + + def free(self): + self.void = True + def index_in_cache_range(self, index): index_range_low = (self.asset_index - self.cache_items_behind) % self.asset_count index_range_high = (self.asset_index + self.cache_items_ahead ) % self.asset_count -- cgit v1.2.3