diff options
| author | Carl Hetherington <cth@carlh.net> | 2026-02-03 00:26:29 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2026-02-16 01:20:39 +0100 |
| commit | edf67efd4662f63c62a1cb524761cc44831c7020 (patch) | |
| tree | 5b833127daca63af302e015b49ceab4ed1461997 /src | |
| parent | 0e057a0fc38586ea55746173ca11446eef6d5865 (diff) | |
Support current playlist in the web interface.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/http_server.cc | 7 | ||||
| -rw-r--r-- | src/lib/http_server.h | 6 | ||||
| -rw-r--r-- | src/wx/player_frame.cc | 6 |
3 files changed, 19 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; }; diff --git a/src/wx/player_frame.cc b/src/wx/player_frame.cc index 5097c5e00..565e50ad7 100644 --- a/src/wx/player_frame.cc +++ b/src/wx/player_frame.cc @@ -563,6 +563,12 @@ PlayerFrame::idle() _http_server->set_dcp_name(""); } _http_server->set_position(_viewer.position()); + vector<string> names; + for (auto const& entry: _playlist) { + ShowPlaylistEntry e(entry.first, {}); + names.push_back(e.name()); + } + _http_server->set_current_playlist(names); _last_http_server_update = now; } } |
