summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/session_metadata.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/session_metadata.h')
-rw-r--r--libs/ardour/ardour/session_metadata.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/libs/ardour/ardour/session_metadata.h b/libs/ardour/ardour/session_metadata.h
index 296bf6243f..c4341dbc61 100644
--- a/libs/ardour/ardour/session_metadata.h
+++ b/libs/ardour/ardour/session_metadata.h
@@ -37,6 +37,9 @@ namespace ARDOUR {
class SessionMetadata : public PBD::StatefulDestructible
{
public:
+ //singleton instance:
+ static SessionMetadata *Metadata() { if (_metadata == NULL) _metadata = new SessionMetadata(); return _metadata; }
+
SessionMetadata ();
~SessionMetadata ();
@@ -72,6 +75,15 @@ class SessionMetadata : public PBD::StatefulDestructible
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 std::string &);
void set_copyright (const std::string &);
@@ -104,15 +116,28 @@ class SessionMetadata : public PBD::StatefulDestructible
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:
+ static SessionMetadata *_metadata; //singleton instance
+
typedef std::pair<std::string, std::string> Property;
typedef std::map<std::string, std::string> PropertyMap;
PropertyMap map;
+ PropertyMap user_map;
XMLNode * get_xml (const std::string & name);