- Add "-a" argument to filter show pictures by aspect ratio (potrait, landscape or all)

This commit is contained in:
Alfred Reynolds
2021-07-29 11:52:32 +12:00
parent 4dddda44e7
commit 23a0e208bf
4 changed files with 108 additions and 20 deletions

View File

@@ -29,12 +29,22 @@ int main(int argc, char *argv[])
bool recursive = false;
bool shuffle = false;
bool sorted = false;
char aspect = 'a';
std::string valid_aspects = "alp"; // all, landscape, portait
std::string overlay = "";
while ((opt = getopt(argc, argv, "b:p:t:o:O:rsS")) != -1) {
while ((opt = getopt(argc, argv, "b:p:t:o:O:a:rsS")) != -1) {
switch (opt) {
case 'p':
path = optarg;
break;
case 'a':
aspect = optarg[0];
if ( valid_aspects.find(aspect) == std::string::npos )
{
std::cout << "Invalid Aspect option, defaulting to all" << std::endl;
aspect = 'a';
}
break;
case 't':
rotationSeconds = atoi(optarg);
break;
@@ -83,16 +93,17 @@ int main(int argc, char *argv[])
std::unique_ptr<ImageSelector> selector;
if (sorted)
{
selector = std::unique_ptr<ImageSelector>(new SortedImageSelector(pathTraverser));
selector = std::unique_ptr<ImageSelector>(new SortedImageSelector(pathTraverser, aspect));
}
else if (shuffle)
{
selector = std::unique_ptr<ImageSelector>(new ShuffleImageSelector(pathTraverser));
selector = std::unique_ptr<ImageSelector>(new ShuffleImageSelector(pathTraverser, aspect));
}
else
{
selector = std::unique_ptr<ImageSelector>(new RandomImageSelector(pathTraverser));
selector = std::unique_ptr<ImageSelector>(new RandomImageSelector(pathTraverser, aspect));
}
std::cout << "Rotation Time: " << rotationSeconds << std::endl;
std::cout << "Overlay input: " << overlay << std::endl;
Overlay o(overlay);
w.setOverlay(&o);