diff options
| author | Tim Keller <tjk@tjkeller.xyz> | 2025-06-24 19:16:36 -0500 |
|---|---|---|
| committer | Tim Keller <tjk@tjkeller.xyz> | 2025-06-24 19:16:36 -0500 |
| commit | 4c3d572eb850c32a45ec9cbaf82688d45c1eebf4 (patch) | |
| tree | c46c5e7f7d837b548b9e7afe597bc047ba9e0f68 /lazycachelist.py | |
| parent | 2f03f39e24053377dce108e45fde13ccd1e0ae22 (diff) | |
| download | immich-frame-4c3d572eb850c32a45ec9cbaf82688d45c1eebf4.tar.xz immich-frame-4c3d572eb850c32a45ec9cbaf82688d45c1eebf4.zip | |
add ability to change out albums list during runtime
Diffstat (limited to 'lazycachelist.py')
| -rw-r--r-- | lazycachelist.py | 18 |
1 files changed, 15 insertions, 3 deletions
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 |
