X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fraw_image_proxy.cc;h=fed40c45e7ec783faaa31fa94b55f91810177dc2;hb=2d4e8c5f69cc694625ad95dcee554499605f823b;hp=21201faa69264826db4129b7db3eaccb931e10c1;hpb=e5b744922fb6aed65ec13f22a9de0c86dd1bd561;p=dcpomatic.git diff --git a/src/lib/raw_image_proxy.cc b/src/lib/raw_image_proxy.cc index 21201faa6..fed40c45e 100644 --- a/src/lib/raw_image_proxy.cc +++ b/src/lib/raw_image_proxy.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2018 Carl Hetherington + Copyright (C) 2014-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,74 +18,87 @@ */ + #include "raw_image_proxy.h" #include "image.h" +#include "warnings.h" #include #include #include extern "C" { #include } +DCPOMATIC_DISABLE_WARNINGS #include +DCPOMATIC_ENABLE_WARNINGS #include "i18n.h" -using std::string; -using std::pair; + +using std::dynamic_pointer_cast; using std::make_pair; -using boost::shared_ptr; -using boost::dynamic_pointer_cast; +using std::make_shared; +using std::pair; +using std::shared_ptr; +using std::string; using boost::optional; using dcp::raw_convert; + RawImageProxy::RawImageProxy (shared_ptr image) : _image (image) { } + RawImageProxy::RawImageProxy (shared_ptr xml, shared_ptr socket) { dcp::Size size ( - xml->number_child ("Width"), xml->number_child ("Height") + xml->number_child("Width"), xml->number_child("Height") ); - _image.reset (new Image (static_cast (xml->number_child ("PixelFormat")), size, true)); + _image = make_shared(static_cast(xml->number_child("PixelFormat")), size, true); _image->read_from_socket (socket); } -pair, int> + +ImageProxy::Result RawImageProxy::image (optional) const { - return make_pair (_image, 0); + return Result (_image, 0); } + void RawImageProxy::add_metadata (xmlpp::Node* node) const { - node->add_child("Type")->add_child_text (N_("Raw")); - node->add_child("Width")->add_child_text (raw_convert (_image->size().width)); - node->add_child("Height")->add_child_text (raw_convert (_image->size().height)); - node->add_child("PixelFormat")->add_child_text (raw_convert (static_cast (_image->pixel_format ()))); + node->add_child("Type")->add_child_text(N_("Raw")); + node->add_child("Width")->add_child_text(raw_convert(_image->size().width)); + node->add_child("Height")->add_child_text(raw_convert(_image->size().height)); + node->add_child("PixelFormat")->add_child_text(raw_convert(static_cast(_image->pixel_format()))); } + void -RawImageProxy::send_binary (shared_ptr socket) const +RawImageProxy::write_to_socket (shared_ptr socket) const { _image->write_to_socket (socket); } + bool RawImageProxy::same (shared_ptr other) const { - shared_ptr rp = dynamic_pointer_cast (other); + auto rp = dynamic_pointer_cast (other); if (!rp) { return false; } - return (*_image.get()) == (*rp->image().first.get()); + return (*_image.get()) == (*rp->image().image.get()); } + size_t RawImageProxy::memory_used () const {