Merged with trunk R1283.
[ardour.git] / gtk2_ardour / enums.cc
1 #include <pbd/enumwriter.h>
2
3 #include "audio_clock.h"
4
5 using namespace std;
6 using namespace PBD;
7 using namespace ARDOUR;
8
9 void
10 setup_gtk_ardour_enums ()
11 {
12         EnumWriter& enum_writer (EnumWriter::instance());
13         vector<int> i;
14         vector<string> s;
15
16         AudioClock::Mode clock_mode;
17
18 #define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
19 #define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
20 #define REGISTER_ENUM(e) i.push_back (e); s.push_back (#e)
21 #define REGISTER_CLASS_ENUM(t,e) i.push_back (t::e); s.push_back (#e)
22
23         REGISTER_CLASS_ENUM (AudioClock, SMPTE);
24         REGISTER_CLASS_ENUM (AudioClock, BBT);
25         REGISTER_CLASS_ENUM (AudioClock, MinSec);
26         REGISTER_CLASS_ENUM (AudioClock, Frames);
27         REGISTER_CLASS_ENUM (AudioClock, Off);
28         REGISTER (clock_mode);
29 }