X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsession_metadata.h;h=a8fb977e51948d177d50fde32e80fa6ae4eedf54;hb=a1c5d1be43007265ef1257889a3138b0fa75c2ac;hp=481e21c338e8aea62e49901b5e3f9cabdb05aec8;hpb=8713667ec1a6cc9ba56c07f763e5a422cc47fbef;p=ardour.git diff --git a/libs/ardour/ardour/session_metadata.h b/libs/ardour/ardour/session_metadata.h index 481e21c338..a8fb977e51 100644 --- a/libs/ardour/ardour/session_metadata.h +++ b/libs/ardour/ardour/session_metadata.h @@ -21,7 +21,6 @@ #define __ardour_session_metadata_h__ #include -#include #include #include @@ -29,99 +28,128 @@ #include "pbd/statefuldestructible.h" #include "pbd/xml++.h" +#include "ardour/libardour_visibility.h" + namespace ARDOUR { /** Represents metadata associated to a Session * Metadata can be accessed and edited via this class. * Exported files can also be tagged with this data. */ -class SessionMetadata : public PBD::StatefulDestructible +class LIBARDOUR_API SessionMetadata : public PBD::StatefulDestructible { public: + //singleton instance: + static SessionMetadata *Metadata() { if (_metadata == NULL) _metadata = new SessionMetadata(); return _metadata; } + SessionMetadata (); ~SessionMetadata (); /*** Accessing ***/ - Glib::ustring comment () const; - Glib::ustring copyright () const; - Glib::ustring isrc () const; + std::string comment () const; + std::string copyright () const; + std::string isrc () const; uint32_t year () const; - Glib::ustring grouping () const; - Glib::ustring title () const; - Glib::ustring subtitle () const; - - Glib::ustring artist () const; - Glib::ustring album_artist () const; - Glib::ustring lyricist () const; - Glib::ustring composer () const; - Glib::ustring conductor () const; - Glib::ustring remixer () const; - Glib::ustring arranger () const; - Glib::ustring engineer () const; - Glib::ustring producer () const; - Glib::ustring dj_mixer () const; - Glib::ustring mixer () const; - - Glib::ustring album () const; - Glib::ustring compilation () const; - Glib::ustring disc_subtitle () const; + std::string grouping () const; + std::string barcode () const; + std::string title () const; + std::string subtitle () const; + + std::string artist () const; + std::string album_artist () const; + std::string lyricist () const; + std::string composer () const; + std::string conductor () const; + std::string remixer () const; + std::string arranger () const; + std::string engineer () const; + std::string producer () const; + std::string dj_mixer () const; + std::string mixer () const; + + std::string album () const; + std::string compilation () const; + std::string disc_subtitle () const; uint32_t disc_number () const; uint32_t total_discs () const; uint32_t track_number () const; uint32_t total_tracks () const; - Glib::ustring genre () const; + std::string genre () const; + + std::string instructor () const; + std::string course () const; + + std::string user_name () const; + std::string user_email () const; + std::string user_web () const; + std::string organization () const; + std::string country () const; /*** Editing ***/ - void set_comment (const Glib::ustring &); - void set_copyright (const Glib::ustring &); - void set_isrc (const Glib::ustring &); + void set_comment (const std::string &); + void set_copyright (const std::string &); + void set_isrc (const std::string &); void set_year (uint32_t); - void set_grouping (const Glib::ustring &); - void set_title (const Glib::ustring &); - void set_subtitle (const Glib::ustring &); - - void set_artist (const Glib::ustring &); - void set_album_artist (const Glib::ustring &); - void set_lyricist (const Glib::ustring &); - void set_composer (const Glib::ustring &); - void set_conductor (const Glib::ustring &); - void set_remixer (const Glib::ustring &); - void set_arranger (const Glib::ustring &); - void set_engineer (const Glib::ustring &); - void set_producer (const Glib::ustring &); - void set_dj_mixer (const Glib::ustring &); - void set_mixer (const Glib::ustring &); - - void set_album (const Glib::ustring &); - void set_compilation (const Glib::ustring &); - void set_disc_subtitle (const Glib::ustring &); + void set_grouping (const std::string &); + void set_barcode (const std::string &); + void set_title (const std::string &); + void set_subtitle (const std::string &); + + void set_artist (const std::string &); + void set_album_artist (const std::string &); + void set_lyricist (const std::string &); + void set_composer (const std::string &); + void set_conductor (const std::string &); + void set_remixer (const std::string &); + void set_arranger (const std::string &); + void set_engineer (const std::string &); + void set_producer (const std::string &); + void set_dj_mixer (const std::string &); + void set_mixer (const std::string &); + + void set_album (const std::string &); + void set_compilation (const std::string &); + void set_disc_subtitle (const std::string &); void set_disc_number (uint32_t); void set_total_discs (uint32_t); void set_track_number (uint32_t); void set_total_tracks (uint32_t); - void set_genre (const Glib::ustring &); + void set_genre (const std::string &); + + void set_instructor (const std::string &); + void set_course (const std::string &); + + void set_user_name (const std::string &); + void set_user_email (const std::string &); + void set_user_web (const std::string &); + void set_organization (const std::string &); + void set_country (const std::string &); /*** Serialization ***/ - XMLNode & get_state (); - int set_state (const XMLNode &, int version); + XMLNode & get_state (); //serializes stuff in the map, to be stored in session file + XMLNode & get_user_state (); //serializes stuff in the user_map, to be stored in user's config file + int set_state (const XMLNode &, int version_num); private: - typedef std::pair Property; - typedef std::map PropertyMap; + static SessionMetadata *_metadata; //singleton instance + + typedef std::pair Property; + typedef std::map PropertyMap; PropertyMap map; + PropertyMap user_map; - XMLNode * get_xml (const Glib::ustring & name); + XMLNode * get_xml (const std::string & name); - Glib::ustring get_value (const Glib::ustring & name) const; - uint32_t get_uint_value (const Glib::ustring & name) const; + std::string get_value (const std::string & name) const; + uint32_t get_uint_value (const std::string & name) const; - void set_value (const Glib::ustring & name, const Glib::ustring & value); - void set_value (const Glib::ustring & name, uint32_t value); + void set_value (const std::string & name, const std::string & value); + void set_value (const std::string & name, uint32_t value); }; } // namespace ARDOUR