Add screens() to get all screens.
authorCarl Hetherington <cth@carlh.net>
Fri, 17 Jan 2025 00:06:18 +0000 (01:06 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 22 Jan 2025 13:34:25 +0000 (14:34 +0100)
src/lib/cinema_list.cc
src/lib/cinema_list.h

index 6805a42cdb4dc622bf5f208945e6ba60cbef6641..f59a8f4f8ce69ea43c9f88587c4e2b47f3e9ac30 100644 (file)
@@ -35,6 +35,7 @@
 #include <numeric>
 
 
+using std::function;
 using std::pair;
 using std::make_pair;
 using std::string;
@@ -465,3 +466,15 @@ CinemaList::unique_utc_offset(std::set<CinemaID> const& cinemas_to_check)
        return offset;
 }
 
+
+void
+CinemaList::screens(function<void (CinemaID, ScreenID, dcpomatic::Screen const& screen)> callback) const
+{
+       SQLiteStatement statement(_db, _screens.select(""));
+       statement.execute([this, &callback](SQLiteStatement& statement) {
+               auto const screen_id = statement.column_int64(0);
+               callback(statement.column_int64(1), screen_id, screen_from_result(statement, screen_id));
+       });
+
+}
+
index 101f93607e9bc7ddb418812844403b4a622fd744..6c1e6501783985015c64c51f599e1a590dd6b1f0 100644 (file)
@@ -105,6 +105,8 @@ public:
        std::vector<std::pair<ScreenID, dcpomatic::Screen>> screens(CinemaID cinema_id) const;
        std::vector<std::pair<ScreenID, dcpomatic::Screen>> screens_by_cinema_and_name(CinemaID id, std::string const& name) const;
 
+       void screens(std::function<void (CinemaID, ScreenID, dcpomatic::Screen const&)> callback) const;
+
        boost::optional<dcp::UTCOffset> unique_utc_offset(std::set<CinemaID> const& cinemas);
 
 private: