ardour
enums.cc
Go to the documentation of this file.
1 /*
2  Copyright (C) 2000-2007 Paul Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 #include "pbd/enumwriter.h"
21 
22 #include "audio_clock.h"
23 #include "editing.h"
24 #include "enums.h"
25 #include "editor_items.h"
26 
27 using namespace std;
28 using namespace PBD;
29 using namespace ARDOUR;
30 using namespace Editing;
31 
32 void
34 {
35  EnumWriter& enum_writer (EnumWriter::instance());
36  vector<int> i;
37  vector<string> s;
38 
39  AudioClock::Mode clock_mode;
40  Width width;
41  ImportMode import_mode;
42  EditPoint edit_point;
43  LayerDisplay layer_display;
44  RegionListSortType region_list_sort_type;
45  SnapType snap_type;
46  SnapMode snap_mode;
47  ZoomFocus zoom_focus;
48  ItemType item_type;
49  MouseMode mouse_mode;
50 
51 #define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
52 #define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
53 #define REGISTER_ENUM(e) i.push_back (e); s.push_back (#e)
54 #define REGISTER_CLASS_ENUM(t,e) i.push_back (t::e); s.push_back (#e)
55 
60  REGISTER (clock_mode);
61 
64  REGISTER (width);
65 
66  REGISTER_ENUM (ImportAsTrack);
67  REGISTER_ENUM (ImportToTrack);
68  REGISTER_ENUM (ImportAsRegion);
69  REGISTER_ENUM (ImportAsTapeTrack);
70  REGISTER (import_mode);
71 
72  REGISTER_ENUM (EditAtPlayhead);
73  REGISTER_ENUM (EditAtMouse);
74  REGISTER_ENUM (EditAtSelectedMarker);
75  REGISTER (edit_point);
76 
79  REGISTER (layer_display);
80 
81  REGISTER_ENUM (ByEndInFile);
82  REGISTER_ENUM (ByLength);
83  REGISTER_ENUM (ByName);
84  REGISTER_ENUM (ByPosition);
85  REGISTER_ENUM (BySourceFileCreationDate);
86  REGISTER_ENUM (BySourceFileFS);
87  REGISTER_ENUM (BySourceFileLength);
88  REGISTER_ENUM (BySourceFileName);
89  REGISTER_ENUM (ByStartInFile);
90  REGISTER_ENUM (ByTimestamp);
91  REGISTER (region_list_sort_type);
92 
93  REGISTER_ENUM (SnapToCDFrame);
94  REGISTER_ENUM (SnapToTimecodeFrame);
95  REGISTER_ENUM (SnapToTimecodeSeconds);
96  REGISTER_ENUM (SnapToTimecodeMinutes);
97  REGISTER_ENUM (SnapToSeconds);
98  REGISTER_ENUM (SnapToMinutes);
99  REGISTER_ENUM (SnapToBeatDiv128);
100  REGISTER_ENUM (SnapToBeatDiv64);
101  REGISTER_ENUM (SnapToBeatDiv32);
102  REGISTER_ENUM (SnapToBeatDiv28);
103  REGISTER_ENUM (SnapToBeatDiv24);
104  REGISTER_ENUM (SnapToBeatDiv20);
105  REGISTER_ENUM (SnapToBeatDiv16);
106  REGISTER_ENUM (SnapToBeatDiv14);
107  REGISTER_ENUM (SnapToBeatDiv12);
108  REGISTER_ENUM (SnapToBeatDiv10);
109  REGISTER_ENUM (SnapToBeatDiv8);
110  REGISTER_ENUM (SnapToBeatDiv7);
111  REGISTER_ENUM (SnapToBeatDiv6);
112  REGISTER_ENUM (SnapToBeatDiv5);
113  REGISTER_ENUM (SnapToBeatDiv4);
114  REGISTER_ENUM (SnapToBeatDiv3);
115  REGISTER_ENUM (SnapToBeatDiv2);
116  REGISTER_ENUM (SnapToBeat);
117  REGISTER_ENUM (SnapToBar);
118  REGISTER_ENUM (SnapToMark);
119  REGISTER_ENUM (SnapToRegionStart);
120  REGISTER_ENUM (SnapToRegionEnd);
121  REGISTER_ENUM (SnapToRegionSync);
122  REGISTER_ENUM (SnapToRegionBoundary);
123  REGISTER (snap_type);
124 
125  REGISTER_ENUM (SnapOff);
126  REGISTER_ENUM (SnapNormal);
127  REGISTER_ENUM (SnapMagnetic);
128  REGISTER (snap_mode);
129 
130  REGISTER_ENUM (ZoomFocusLeft);
131  REGISTER_ENUM (ZoomFocusRight);
132  REGISTER_ENUM (ZoomFocusCenter);
133  REGISTER_ENUM (ZoomFocusPlayhead);
134  REGISTER_ENUM (ZoomFocusMouse);
135  REGISTER_ENUM (ZoomFocusEdit);
136  REGISTER (zoom_focus);
137 
176  REGISTER (item_type);
177 
178  REGISTER_ENUM(MouseObject);
179  REGISTER_ENUM(MouseRange);
180  REGISTER_ENUM(MouseDraw);
181  REGISTER_ENUM(MouseTimeFX);
182  REGISTER_ENUM(MouseAudition);
183  REGISTER_ENUM(MouseCut);
184  REGISTER_ENUM(MouseContent);
185  REGISTER (mouse_mode);
186 
187 }
MouseMode
Definition: editing.h:91
ItemType
Definition: editor_items.h:23
#define REGISTER_ENUM(e)
Definition: Beats.hpp:239
ZoomFocus
Definition: editing.h:119
SnapType
Definition: editing.h:49
Definition: enums.h:35
#define REGISTER(e)
Definition: amp.h:29
Definition: enums.h:36
ImportMode
Definition: editing.h:148
SnapMode
Definition: editing.h:63
EditPoint
Definition: editing.h:178
void setup_gtk_ardour_enums()
Definition: enums.cc:33
Width
Definition: enums.h:25
Definition: debug.h:30
LayerDisplay
Definition: enums.h:34
Definition: enums.h:27
Definition: enums.h:26
#define REGISTER_CLASS_ENUM(t, e)
RegionListSortType
Definition: editing.h:77