]> git.sur5r.net Git - minitube/blobdiff - src/videodefinition.h
New upstream version 3.1
[minitube] / src / videodefinition.h
index dadc992f31619f69652225a4d12cd9fe33e4b362..b35a545cbfb2d1ca6d27dc1255ef8e6e50cbfd46 100644 (file)
@@ -1,17 +1,52 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIDEODEFINITION_H
 #define VIDEODEFINITION_H
 
 #include <QtCore>
 
 class VideoDefinition {
-
 public:
-    static QStringList getDefinitionNames();
-    static QList<int> getDefinitionCodes();
-    static QHash<QString, int> getDefinitions();
-    static int getDefinitionCode(QString name);
-    static QString getDefinitionName(int code);
+    static const QVector<VideoDefinition> &getDefinitions();
+    static const QVector<QString> &getDefinitionNames();
+    static const VideoDefinition &forName(const QString &name);
+    static const VideoDefinition &forCode(int code);
+
+    VideoDefinition(const QString &name, int code, bool hasAudioStream = false);
+
+    const QString &getName() const { return name; }
+    int getCode() const { return code; }
+    bool hasAudio() const { return hasAudioStream; }
+    bool isEmpty() const;
 
+    VideoDefinition &operator=(const VideoDefinition &);
+
+private:
+    const QString name;
+    const int code;
+    const bool hasAudioStream;
 };
 
+inline bool operator==(const VideoDefinition &lhs, const VideoDefinition &rhs) {
+    return lhs.getCode() == rhs.getCode();
+}
+
 #endif // VIDEODEFINITION_H