more work on synchronizing metadata with xmp sidecars

(cherry picked from commit 81bbff6e6ae87bd35e8050a1cc621297ca24939b)
This commit is contained in:
Alberto Griggio
2019-05-14 07:03:07 -07:00
committed by Lawrence Lee
parent caa23df465
commit 1a771fa211
18 changed files with 611 additions and 173 deletions

View File

@@ -24,6 +24,7 @@
#include "iimage.h"
#include "imagedimensions.h"
#include "imageformat.h"
#include "metadata.h"
#include "rtengine.h"
enum {
@@ -52,25 +53,6 @@ class ColorTemp;
class ProgressListener;
class Imagefloat;
class MetadataInfo final
{
public:
explicit MetadataInfo(const Glib::ustring& src = {});
const Glib::ustring& filename() const;
const rtengine::procparams::ExifPairs& exif() const;
const rtengine::procparams::IPTCPairs& iptc() const;
void setExif(const rtengine::procparams::ExifPairs &exif);
void setIptc(const rtengine::procparams::IPTCPairs &iptc);
private:
Glib::ustring src_;
std::unique_ptr<rtengine::procparams::ExifPairs> exif_;
std::unique_ptr<rtengine::procparams::IPTCPairs> iptc_;
};
class ImageIO : virtual public ImageDatas
{
@@ -84,7 +66,7 @@ protected:
MyMutex imutex;
IIOSampleFormat sampleFormat;
IIOSampleArrangement sampleArrangement;
MetadataInfo metadataInfo;
Exiv2Metadata metadataInfo;
private:
void deleteLoadedProfileData( );
@@ -124,7 +106,7 @@ public:
cmsHPROFILE getEmbeddedProfile () const;
void getEmbeddedProfileData (int& length, unsigned char*& pdata) const;
void setMetadata(MetadataInfo info);
void setMetadata(Exiv2Metadata info);
void setOutputProfile(const std::string& pdata);
bool saveMetadata(const Glib::ustring &fname) const;