jellyfin/MediaBrowser.Controller/Entities/Photo.cs

99 lines
2.5 KiB
C#
Raw Normal View History

#nullable disable
#pragma warning disable CS1591
2019-10-15 11:49:49 -04:00
using System.Text.Json.Serialization;
using Jellyfin.Data.Enums;
using MediaBrowser.Model.Drawing;
2018-12-27 18:27:57 -05:00
namespace MediaBrowser.Controller.Entities
{
public class Photo : BaseItem
{
2019-10-15 11:49:49 -04:00
[JsonIgnore]
public override bool SupportsLocalMetadata => false;
2018-12-27 18:27:57 -05:00
2019-10-15 11:49:49 -04:00
[JsonIgnore]
public override MediaType MediaType => MediaType.Photo;
2018-12-27 18:27:57 -05:00
2019-10-15 11:49:49 -04:00
[JsonIgnore]
public override Folder LatestItemsIndexContainer => AlbumEntity;
2018-12-27 18:27:57 -05:00
2019-10-15 11:49:49 -04:00
[JsonIgnore]
2018-12-27 18:27:57 -05:00
public PhotoAlbum AlbumEntity
{
get
{
var parents = GetParents();
foreach (var parent in parents)
{
if (parent is PhotoAlbum photoAlbum)
2018-12-27 18:27:57 -05:00
{
return photoAlbum;
}
}
2020-06-15 17:43:52 -04:00
2018-12-27 18:27:57 -05:00
return null;
}
}
public string CameraMake { get; set; }
public string CameraModel { get; set; }
public string Software { get; set; }
public double? ExposureTime { get; set; }
public double? FocalLength { get; set; }
public ImageOrientation? Orientation { get; set; }
public double? Aperture { get; set; }
public double? ShutterSpeed { get; set; }
public double? Latitude { get; set; }
public double? Longitude { get; set; }
public double? Altitude { get; set; }
public int? IsoSpeedRating { get; set; }
2018-12-27 18:27:57 -05:00
public override bool CanDownload()
{
return true;
}
public override double GetDefaultPrimaryImageAspectRatio()
{
2018-12-27 16:43:48 -05:00
// REVIEW: @bond
2020-02-20 09:30:04 -05:00
if (Width != 0 && Height != 0)
2018-12-27 18:27:57 -05:00
{
2020-02-20 09:30:04 -05:00
double width = Width;
double height = Height;
2018-12-27 18:27:57 -05:00
if (Orientation.HasValue)
{
switch (Orientation.Value)
{
case ImageOrientation.LeftBottom:
case ImageOrientation.LeftTop:
case ImageOrientation.RightBottom:
case ImageOrientation.RightTop:
var temp = height;
height = width;
width = temp;
break;
}
}
return width / height;
2018-12-27 18:27:57 -05:00
}
return base.GetDefaultPrimaryImageAspectRatio();
}
}
}