summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2026-02-03 00:26:29 +0100
committerCarl Hetherington <cth@carlh.net>2026-02-16 01:20:39 +0100
commitedf67efd4662f63c62a1cb524761cc44831c7020 (patch)
tree5b833127daca63af302e015b49ceab4ed1461997 /src/lib
parent0e057a0fc38586ea55746173ca11446eef6d5865 (diff)
Support current playlist in the web interface.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/http_server.cc7
-rw-r--r--src/lib/http_server.h6
2 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/http_server.cc b/src/lib/http_server.cc
index 43b4cbb84..83ad2551c 100644
--- a/src/lib/http_server.cc
+++ b/src/lib/http_server.cc
@@ -134,6 +134,13 @@ HTTPServer::get_request(string const& url)
json.push_back(spl.second.as_json());
}
return Response(200, json.dump(), Response::Type::JSON);
+ } else if (url == "/api/v1/current-playlist") {
+ nlohmann::json json;
+ boost::mutex::scoped_lock lm(_mutex);
+ for (auto entry: _current_playlist) {
+ json.push_back(entry);
+ }
+ return Response(200, json.dump(), Response::Type::JSON);
} else if (boost::algorithm::starts_with(url, "/api/v1/content/")) {
vector<string> parts;
boost::algorithm::split(parts, url, boost::is_any_of("/"));
diff --git a/src/lib/http_server.h b/src/lib/http_server.h
index 7ca5fa534..42307b124 100644
--- a/src/lib/http_server.h
+++ b/src/lib/http_server.h
@@ -82,6 +82,11 @@ public:
_dcp_name = name;
}
+ void set_current_playlist(std::vector<std::string> playlist) {
+ boost::mutex::scoped_lock lm(_mutex);
+ _current_playlist = playlist;
+ }
+
private:
void handle(std::shared_ptr<Socket> socket) override;
Response request(std::vector<std::string> const& request, std::string const& body);
@@ -93,5 +98,6 @@ private:
bool _playing = false;
dcpomatic::DCPTime _position;
std::string _dcp_name;
+ std::vector<std::string> _current_playlist;
};