X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsession_metadata.h;h=c4341dbc61a30c6fd0f315661a680066c785e213;hb=99fb7346f07be28f548855b3e9c1ff2a174d994f;hp=71dd59904cf3e0ed46ac56a9eaeb9b75bdebaf93;hpb=3b89d9eaa03406a5e03648f47734211f09b89d62;p=ardour.git diff --git a/libs/ardour/ardour/session_metadata.h b/libs/ardour/ardour/session_metadata.h index 71dd59904c..c4341dbc61 100644 --- a/libs/ardour/ardour/session_metadata.h +++ b/libs/ardour/ardour/session_metadata.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2008 Paul Davis + Copyright (C) 2008 Paul Davis Author: Sakari Bergen This program is free software; you can redistribute it and/or modify it @@ -21,7 +21,6 @@ #define __ardour_session_metadata_h__ #include -#include #include #include @@ -38,90 +37,115 @@ namespace ARDOUR { class 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 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_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 &); + 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 std::string & name); + + std::string get_value (const std::string & name) const; + uint32_t get_uint_value (const std::string & name) const; - XMLNode * get_xml (const Glib::ustring & name); - - Glib::ustring get_value (const Glib::ustring & name) const; - uint32_t get_uint_value (const Glib::ustring & 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