- Split ImageAspect into 2 types, ImageAspect for images and ImageAspectScreenFilter for screens

- Change ImageDetails into a class and add some accessors for the filtering logic for screen aspect and image aspect
This commit is contained in:
Alfred Reynolds
2021-09-08 11:56:47 +12:00
parent 7fef2e5a68
commit 8bb97ed926
8 changed files with 79 additions and 33 deletions

54
src/imagestructs.cpp Normal file
View File

@@ -0,0 +1,54 @@
#include "imagestructs.h"
#include "logger.h"
ImageDetails::ImageDetails()
{
}
ImageDetails::~ImageDetails()
{
}
ImageAspect ImageDetails::aspect() const
{
if (width > height)
{
return ImageAspect_Landscape;
}
else if (height > width)
{
return ImageAspect_Portrait;
}
// must be square, so just pick something
return ImageAspect_Portrait;
}
bool ImageDetails::isValidForScreenAspect(const ImageAspectScreenFilter aspectScreen) const
{
if(aspectScreen == ImageAspectScreenFilter_Any)
{
return true;
}
if(aspectScreen == ImageAspectScreenFilter_Monitor)
{
Log("Error: invalid aspect of ImageAspectScreenFilter_Monitor" );
return false;
}
if (width > height)
{
return aspectScreen == ImageAspectScreenFilter_Landscape;
}
else if (height > width)
{
return aspectScreen == ImageAspectScreenFilter_Portrait;
}
// must be square so let is always display
return true;
}