xref: /aosp_15_r20/external/dynamic_depth/includes/xmpmeta/xmp_data.h (revision a62be0856e8e1158f43b03e41bbad10f4d005fde)
1*a62be085SSadaf Ebrahimi #ifndef DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_DATA_H_  // NOLINT
2*a62be085SSadaf Ebrahimi #define DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_DATA_H_  // NOLINT
3*a62be085SSadaf Ebrahimi 
4*a62be085SSadaf Ebrahimi #include <libxml/tree.h>
5*a62be085SSadaf Ebrahimi 
6*a62be085SSadaf Ebrahimi namespace dynamic_depth {
7*a62be085SSadaf Ebrahimi namespace xmpmeta {
8*a62be085SSadaf Ebrahimi 
9*a62be085SSadaf Ebrahimi // XmpData contains the standard, and optionally extended, XMP metadata from a
10*a62be085SSadaf Ebrahimi // JPEG file. See xmp_parser for reading XmpData from a JPEG or reading
11*a62be085SSadaf Ebrahimi // attributes from XmpData.
12*a62be085SSadaf Ebrahimi class XmpData {
13*a62be085SSadaf Ebrahimi  public:
14*a62be085SSadaf Ebrahimi   XmpData();
15*a62be085SSadaf Ebrahimi   ~XmpData();
16*a62be085SSadaf Ebrahimi 
17*a62be085SSadaf Ebrahimi   // Frees any allocated resources and resets the xmlDocPtrs to null.
18*a62be085SSadaf Ebrahimi   void Reset();
19*a62be085SSadaf Ebrahimi 
20*a62be085SSadaf Ebrahimi   // The standard XMP section.
21*a62be085SSadaf Ebrahimi   const xmlDocPtr StandardSection() const;
22*a62be085SSadaf Ebrahimi   xmlDocPtr* MutableStandardSection();
23*a62be085SSadaf Ebrahimi 
24*a62be085SSadaf Ebrahimi   // The extended XMP section.
25*a62be085SSadaf Ebrahimi   const xmlDocPtr ExtendedSection() const;
26*a62be085SSadaf Ebrahimi   xmlDocPtr* MutableExtendedSection();
27*a62be085SSadaf Ebrahimi 
28*a62be085SSadaf Ebrahimi  private:
29*a62be085SSadaf Ebrahimi   xmlDocPtr xmp_;
30*a62be085SSadaf Ebrahimi   xmlDocPtr xmp_extended_;
31*a62be085SSadaf Ebrahimi };
32*a62be085SSadaf Ebrahimi 
33*a62be085SSadaf Ebrahimi }  // namespace xmpmeta
34*a62be085SSadaf Ebrahimi }  // namespace dynamic_depth
35*a62be085SSadaf Ebrahimi 
36*a62be085SSadaf Ebrahimi #endif // DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_DATA_H_  // NOLINT
37