Updated audio image extraction logic. Added caching classes.
This commit is contained in:
36
Harmonia.Core/Caching/AudioImageMemoryCache.cs
Normal file
36
Harmonia.Core/Caching/AudioImageMemoryCache.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using Harmonia.Core.Imaging;
|
||||
using Harmonia.Core.Models;
|
||||
|
||||
namespace Harmonia.Core.Caching;
|
||||
|
||||
public class AudioImageMemoryCache(IAudioImageExtractor audioImageExtractor) : MemoryCache<Song, SongPictureInfo>, IAudioImageCache
|
||||
{
|
||||
protected override object? GetKey(Song key)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(key.ImageHash) == false)
|
||||
{
|
||||
return key.ImageHash;
|
||||
}
|
||||
else if (string.IsNullOrWhiteSpace(key.ImageName) == false)
|
||||
{
|
||||
return key.ImageName;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected override SongPictureInfo? Fetch(Song key)
|
||||
{
|
||||
return audioImageExtractor.ExtractImage(key.FileName);
|
||||
}
|
||||
|
||||
protected override void AddToCache(object key, SongPictureInfo entry)
|
||||
{
|
||||
base.AddToCache(key, entry);
|
||||
}
|
||||
|
||||
protected override long GetEntrySize(SongPictureInfo entry)
|
||||
{
|
||||
return entry.Size;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user