summaryrefslogtreecommitdiff
path: root/gtk2_ardour/session_metadata_dialog.h
diff options
context:
space:
mode:
authorColin Fletcher <colin.m.fletcher@googlemail.com>2015-02-10 11:06:55 +0000
committerRobin Gareus <robin@gareus.org>2015-03-28 18:34:02 +0100
commit9d35a105bd3cfa14bd139028490ce880ce4d7fb5 (patch)
tree17c81b56359c6eb425ff91f01aea3e8218927855 /gtk2_ardour/session_metadata_dialog.h
parentc625d7a6373fa1889c9632fbcd423cccfd0e4bd1 (diff)
Add EAN barcode field to session metadata dialogue
Add an EAN13MetadataField type to the session metadata dialogue, and use it for entry of the EAN barcode in the 'album' tab.
Diffstat (limited to 'gtk2_ardour/session_metadata_dialog.h')
-rw-r--r--gtk2_ardour/session_metadata_dialog.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/gtk2_ardour/session_metadata_dialog.h b/gtk2_ardour/session_metadata_dialog.h
index 1599e50bb3..6dc4e6e371 100644
--- a/gtk2_ardour/session_metadata_dialog.h
+++ b/gtk2_ardour/session_metadata_dialog.h
@@ -120,6 +120,35 @@ class NumberMetadataField : public MetadataField {
guint width;
};
+/// MetadataField that accepts EAN-13 data only
+class EAN13MetadataField : public MetadataField {
+ private:
+ typedef std::string (ARDOUR::SessionMetadata::*Getter) () const;
+ typedef void (ARDOUR::SessionMetadata::*Setter) (std::string const &);
+ public:
+ EAN13MetadataField (Getter getter, Setter setter, std::string const & field_name, guint width = 13);
+ MetadataPtr copy ();
+
+ void save_data (ARDOUR::SessionMetadata & data) const;
+ void load_data (ARDOUR::SessionMetadata const & data);
+
+ Gtk::Widget & name_widget ();
+ Gtk::Widget & value_widget ();
+ Gtk::Widget & edit_widget ();
+ private:
+ void update_value ();
+ std::string numeric_string (std::string const & str) const;
+
+ Getter getter;
+ Setter setter;
+
+ Gtk::Label* label;
+ Gtk::Label* value_label;
+ Gtk::Entry* entry;
+
+ guint width;
+};
+
/// Interface for MetadataFields
class SessionMetadataSet : public ARDOUR::SessionHandlePtr {
public: