diff options
Diffstat (limited to 'src/lib/player_text.cc')
| -rw-r--r-- | src/lib/player_text.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/player_text.cc b/src/lib/player_text.cc index d9c153416..736421705 100644 --- a/src/lib/player_text.cc +++ b/src/lib/player_text.cc @@ -21,13 +21,49 @@ #include "player_text.h" #include "font.h" #include "util.h" +#include "dcpomatic_socket.h" +#include "image.h" +#include <dcp/raw_convert.h> +#include <libxml++/libxml++.h> #include <boost/foreach.hpp> using std::list; using boost::shared_ptr; +using dcp::raw_convert; using namespace dcpomatic; void +PlayerText::add_metadata (xmlpp::Node* node) const +{ + BOOST_FOREACH (shared_ptr<Font> i, fonts) { + /* XXX: transferring a font file for every frame that needs it seems a bit wasteful, + but probably not so bad in the great scheme of things. + */ + i->transfer_xml (node->add_child("Font")); + } + + BOOST_FOREACH (BitmapText i, bitmap) { + i.transfer_xml (node->add_child("Bitmap")); + } + + BOOST_FOREACH (StringText i, string) { + i.transfer_xml (node->add_child("String")); + } +} + +void +PlayerText::send_binary (shared_ptr<Socket> socket) const +{ + BOOST_FOREACH (shared_ptr<Font> i, fonts) { + i->transfer_binary (socket); + } + + BOOST_FOREACH (BitmapText i, bitmap) { + i.transfer_binary (socket); + } +} + +void PlayerText::add_fonts (list<shared_ptr<Font> > fonts_) { BOOST_FOREACH (shared_ptr<Font> i, fonts_) { |
