Merge master and multifarious hackery.
[dcpomatic.git] / src / lib / format.h
index e953062329d9b583a0cfd078159499fb991320dc..06423d2b1ea2c558fbd9329558be56e13949d6e5 100644 (file)
 
 #include <string>
 #include <vector>
-#include "util.h"
+#include <libdcp/util.h>
 
 class Film;
 
 class Format
 {
 public:
-       Format (libdcp::Size dcp, std::string id, std::string n, std::string d)
+       Format (libdcp::Size dcp, std::string id, std::string n)
                : _dcp_size (dcp)
                , _id (id)
                , _nickname (n)
-               , _dci_name (d)
        {}
 
-       /** @return the ratio of the container (including any padding) */
-       float container_ratio () const;
-
-       int dcp_padding (boost::shared_ptr<const Film> f) const;
-
        /** @return size in pixels of the images that we should
-        *  put in a DCP for this ratio.  This size will not correspond
-        *  to the ratio when we are doing things like 16:9 in a Flat frame.
+        *  put in a DCP for this format.
         */
        libdcp::Size dcp_size () const {
                return _dcp_size;
@@ -56,71 +49,32 @@ public:
        }
 
        /** @return Full name to present to the user */
-       virtual std::string name () const = 0;
+       std::string name () const;
 
        /** @return Nickname (e.g. Flat, Scope) */
        std::string nickname () const {
                return _nickname;
        }
 
-       std::string dci_name () const {
-               return _dci_name;
-       }
-
-       std::string as_metadata () const;
-
        static Format const * from_nickname (std::string n);
-       static Format const * from_metadata (std::string m);
        static Format const * from_id (std::string i);
        static std::vector<Format const *> all ();
        static void setup_formats ();
 
 protected:     
         /** @return the ratio */
-       virtual float ratio (boost::shared_ptr<const Film> f) const = 0;
+       float ratio () const;
 
        /** libdcp::Size in pixels of the images that we should
-        *  put in a DCP for this ratio.  This size will not correspond
-        *  to the ratio when we are doing things like 16:9 in a Flat frame.
+        *  put in a DCP for this format.
         */
        libdcp::Size _dcp_size;
        /** id for use in metadata */
        std::string _id;
        /** nickname (e.g. Flat, Scope) */
        std::string _nickname;
-       std::string _dci_name;
 
 private:       
        /** all available formats */
        static std::vector<Format const *> _formats;
 };
-
-/** @class FixedFormat
- *  @brief Class to describe a format whose ratio is fixed regardless
- *  of source size.
- */
-class FixedFormat : public Format
-{
-public:
-       FixedFormat (float, libdcp::Size, std::string, std::string, std::string);
-
-       float ratio (boost::shared_ptr<const Film>) const {
-               return _ratio;
-       }
-
-       std::string name () const;
-       
-private:
-
-       float _ratio;
-};
-
-class VariableFormat : public Format
-{
-public:
-       VariableFormat (libdcp::Size, std::string, std::string, std::string);
-
-       float ratio (boost::shared_ptr<const Film> f) const;
-
-       std::string name () const;
-};