Add missing file=f so that all desktop shortcuts are uninstalled.
[dcpomatic.git] / src / lib / filter.h
index 5fbfd9c234e3a999bf04d7cbfa826241d49563bc..1144a2ca4b0c93efed7c826fca7a253f944de0d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -28,6 +28,7 @@
 #define DCPOMATIC_FILTER_H
 
 
+#include <boost/optional.hpp>
 #include <string>
 #include <vector>
 
@@ -44,9 +45,6 @@ class Filter
 public:
        Filter (std::string i, std::string n, std::string c, std::string f);
 
-       Filter (Filter const&) = delete;
-       Filter& operator= (Filter const&) = delete;
-
        /** @return our id */
        std::string id () const {
                return _id;
@@ -66,10 +64,10 @@ public:
                return _category;
        }
 
-       static std::vector<Filter const *> all ();
-       static Filter const * from_id (std::string d);
+       static std::vector<Filter> all ();
+       static boost::optional<Filter> from_id(std::string d);
        static void setup_filters ();
-       static std::string ffmpeg_string (std::vector<Filter const *> const & filters);
+       static std::string ffmpeg_string(std::vector<Filter> const& filters);
 
 private:
 
@@ -82,9 +80,14 @@ private:
        std::string _ffmpeg;
 
        /** all available filters */
-       static std::vector<Filter const *> _filters;
+       static std::vector<Filter> _filters;
        static void maybe_add (std::string, std::string, std::string, std::string);
 };
 
 
+bool operator==(Filter const& a, Filter const& b);
+bool operator!=(Filter const& a, Filter const& b);
+bool operator<(Filter const& a, Filter const& b);
+
+
 #endif