-QHash<QString, int> VideoDefinition::getDefinitions() {
- static QHash<QString, int> definitions;
- if (definitions.isEmpty()) {
- definitions.insert("360p", 18);
- definitions.insert("720p", 22);
- definitions.insert("1080p", 37);
+template <typename T, T (VideoDefinition::*Getter)() const>
+const VideoDefinition& getDefinitionForImpl(T matchValue) {
+ const QList<VideoDefinition>& definitions = VideoDefinition::getDefinitions();
+ const int size = definitions.size();
+ for (int ii = 0; ii < size; ++ii) {
+ const VideoDefinition& def = definitions.at(ii);
+ if ((def.*Getter)() == matchValue)
+ return def;