Mercurial > minori
comparison dep/animia/src/strategist.cc @ 156:cdf79282d647
dep/animia: add VERY early x11 window stuff
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Wed, 15 Nov 2023 18:04:04 -0500 |
parents | bd439dd6ffc5 |
children | bc1ae1810855 |
comparison
equal
deleted
inserted
replaced
155:d2bbb5773616 | 156:cdf79282d647 |
---|---|
1 #include <regex> | |
2 | |
3 #include "animia.h" | |
4 #include "animia/fd.h" | |
1 #include "animia/strategies.h" | 5 #include "animia/strategies.h" |
2 #include "animia/util.h" | 6 #include "animia/util.h" |
3 #include "animia/fd.h" | |
4 #include "animia.h" | |
5 | |
6 #include <iostream> | |
7 | |
8 #include <regex> | |
9 | 7 |
10 namespace animia::internal { | 8 namespace animia::internal { |
11 | 9 |
12 class Strategist { | 10 class Strategist { |
13 public: | 11 public: |
26 | 24 |
27 bool Strategist::ApplyStrategies() { | 25 bool Strategist::ApplyStrategies() { |
28 bool success = false; | 26 bool success = false; |
29 | 27 |
30 switch (result_.type) { | 28 switch (result_.type) { |
31 case ResultType::Process: | 29 case ResultType::Process: success |= ApplyOpenFilesStrategy(); break; |
32 success |= ApplyOpenFilesStrategy(); | 30 case ResultType::Window: success |= ApplyWindowTitleStrategy(); break; |
33 break; | |
34 case ResultType::Window: | |
35 success |= ApplyWindowTitleStrategy(); | |
36 break; | |
37 } | 31 } |
38 | 32 |
39 return success; | 33 return success; |
40 } | 34 } |
41 | 35 |
78 return true; | 72 return true; |
79 } | 73 } |
80 | 74 |
81 static MediaInfoType InferMediaInformationType(const std::string& str) { | 75 static MediaInfoType InferMediaInformationType(const std::string& str) { |
82 const std::regex path_pattern(R"(^(?:[A-Za-z]:[/\\]|\\\\)[^<>:"/\\|?*]+)"); | 76 const std::regex path_pattern(R"(^(?:[A-Za-z]:[/\\]|\\\\)[^<>:"/\\|?*]+)"); |
83 return (std::regex_search(str, path_pattern)) | 77 return (std::regex_search(str, path_pattern)) ? MediaInfoType::File : MediaInfoType::Unknown; |
84 ? MediaInfoType::File : MediaInfoType::Unknown; | |
85 } | 78 } |
86 | 79 |
87 bool Strategist::ApplyWindowTitleStrategy() { | 80 bool Strategist::ApplyWindowTitleStrategy() { |
88 auto title = result_.window.text; | 81 auto title = result_.window.text; |
89 ApplyWindowTitleFormat(result_.player.window_title_format, title); | 82 ApplyWindowTitleFormat(result_.player.window_title_format, title); |
117 result_.media.push_back(std::move(media)); | 110 result_.media.push_back(std::move(media)); |
118 | 111 |
119 return true; | 112 return true; |
120 } | 113 } |
121 | 114 |
122 } | 115 } // namespace animia::internal |