Don't reuse file names
[harmattan/cameraplus] / lib / qtcamvideosettings.h
index c3d3b60..35649ff 100644 (file)
@@ -3,7 +3,7 @@
 /*!
  * This file is part of CameraPlus.
  *
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 #include <QSize>
 #include <QPair>
 #include <QString>
+#include <QSharedDataPointer>
+#include <QStringList>
 
 class QtCamVideoSettingsPrivate;
+class QtCamVideoResolutionPrivate;
 
-class QtCamVideoSettings {
+class QtCamVideoResolution {
 public:
-  QtCamVideoSettings(const QString& id, const QString& name,
-                    const QSize& capture, const QSize& preview,
-                    int fps, int nightFps);
-
-  QtCamVideoSettings(const QtCamVideoSettings& other);
-
-  ~QtCamVideoSettings();
+  QtCamVideoResolution(const QString& id, const QString& name, const QSize& capture,
+                      const QSize& preview, int fps, int nightFps,
+                      const QString& aspectRatio, const QString& resolution);
+  QtCamVideoResolution(const QtCamVideoResolution& other);
+  QtCamVideoResolution& operator=(const QtCamVideoResolution& other);
 
-  QtCamVideoSettings& operator=(const QtCamVideoSettings& other);
+  ~QtCamVideoResolution();
 
   QString id() const;
   QString name() const;
@@ -47,9 +48,34 @@ public:
   QSize previewResolution() const;
   int frameRate() const;
   int nightFrameRate() const;
+  QString aspectRatio() const;
+  QString resolution() const;
+
+private:
+  QSharedDataPointer<QtCamVideoResolutionPrivate> d_ptr;
+};
+
+class QtCamVideoSettings {
+public:
+  QtCamVideoSettings(const QString& id, const QString& suffix, const QString& profileName,
+                    const QString& profilePath, const QList<QtCamVideoResolution>& resolutions);
+  QtCamVideoSettings(const QtCamVideoSettings& other);
+
+  QtCamVideoSettings& operator=(const QtCamVideoSettings& other);
+
+  ~QtCamVideoSettings();
+
+  QString id() const;
+  QString suffix() const;
+  QString profileName() const;
+  QString profilePath() const;
+
+  QtCamVideoResolution defaultResolution(const QString& aspectRatio = QString()) const;
+  QList<QtCamVideoResolution> resolutions(const QString& aspectRatio = QString()) const;
+  QStringList aspectRatios() const;
 
 private:
-  QtCamVideoSettingsPrivate *d_ptr;
+  QSharedDataPointer<QtCamVideoSettingsPrivate> d_ptr;
 };
 
 #endif /* QT_CAM_VIDEO_SETTINGS_H */