forked from Sneeds-Feed-and-Seed/sneedacity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExperimental.cmake
216 lines (160 loc) · 6.53 KB
/
Experimental.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
#[[
Sneedacity: A Digital Audio Editor
Experimental.cmake
Dominic Mazzoni
James Crook
Used at configuration time to generate compiler options that enable or disable
experimental features.
When the features become mainstream the options will then be retired.
JKC: This file solves a problem of how to avoid forking the
code base when working on NEW features e.g:
- Additional displays in Sneedacity
- Modular architecture.
Add options in here for the NEW features, and make your code
conditional on them with #ifdef.
For each name in the list, EXPERIMENTAL_{name} is the token to test with
#ifdef.
All the options are positive, i.e., when not commented out,
they enable the feature.
]]#
set( EXPERIMENTAL_OPTIONS_LIST
# ACH 08 Jan 2014
# EQ accelerated code
#EQ_SSE_THREADED
# LLL, 09 Nov 2013:
# Allow all WASAPI devices, not just loopback
FULL_WASAPI
# JKC (effect by Norm C, 02 Oct 2013)
SCIENCE_FILTERS
# JKC an experiement to work around bug 2709
# disabled.
#CEE_NUMBERS_OPTION
# LLL, 01 Oct 2013:
# NEW key assignment view for preferences
KEY_VIEW
# feature to link audio tracks to a label track
SYNC_LOCK
# DA: Enables dark sneedacity theme and customisations.
#DA
# Define this so that sync-lock tiles shine through spectrogram.
# The spectrogram pastes a bitmap over the tiles.
# This makes it use alpha blending, most transparent where least intense.
#SPECTROGRAM_OVERLAY
# Define this so that sync-lock tiles shine through note/MIDI track.
# The note track then relies on the same code for drawing background as
# Wavetrack, and draws its notes and lines over the top.
NOTETRACK_OVERLAY
# Define this, and the option to zoom to half wave is added in the VZoom menu.
# Also we go to half wave on collapse, full wave on restore.
HALF_WAVE
# THEMING is mostly mainstream now.
# the define is still present to mark out old code before theming, that we might
# conceivably need.
# TODO: Agree on and then tidy this code.
THEMING
#August 2009 - Theming not locked down enough for a stable release.
# This turns on the Theme panel in Prefs dialog. It is independent of THEMING.
#THEME_PREFS
# This shows the zoom toggle button on the edit toolbar.
ZOOM_TOGGLE_BUTTON
#ROLL_UP_DIALOG
#RIGHT_ALIGNED_TEXTBOXES
#VOICE_DETECTION
# Effect categorisation. Adds support for arranging effects in categories
# and displaying those categories as submenus in the Effect menu.
# This was a 2008 GSoC project that was making good progress at the half-way point
# but then the student didn't contribute after that. It needs a bit of work to finish it off.
# As a minimum, if this is turned on for a release,
# it should have an easy mechanism to disable it at run-time, such as a menu item or a pref,
# preferrably disabled until other work is done. Martyn 22/12/2008.
#
# JKC Apr 2015, Menu item to manage effects.
EFFECT_MANAGEMENT
# Andreas Micheler, 20.Nov 2007:
# A spectrumLogF-like view mode with notes quantization.
# Just select the "Find Notes" checkbox in the spectrum prefs
# to activate it instead of the Spectrum log(f) mode.
#FIND_NOTES
# AM, 22.Nov 2007:
# A Frequency Grid for the Spectrum Log(f) & Find Notes modes
#FFT_Y_GRID
# Andy Coder, 03.Mar 2009:
# Allow keyboard seeking before initial playback position
#SEEK_BEHIND_CURSOR
# Paul Licameli (PRL) 5 Oct 2014
SPECTRAL_EDITING
# Paul Licameli (PRL) 29 Nov 2014
#IMPROVED_SEEKING
#MIDI_IN
# RBD, 1 Sep 2008
# Enables MIDI Output of NoteTrack (MIDI) data during playback
# USE_MIDI must be defined in order for MIDI_OUT to work
MIDI_OUT
# JKC, 17 Aug 2017
# Enables the MIDI note stretching feature, which currently
# a) Is broken on Linux (Bug 1646)
# b) Crashes with Sync-Lock (Bug 1719)
# c) Needs UI design review.
#MIDI_STRETCHING
# USE_MIDI must be defined in order for SCOREALIGN to work
#SCOREALIGN
#NOTEBOOK
#Automatically tries to find an acceptable input volume
#AUTOMATED_INPUT_LEVEL_ADJUSTMENT
# Module prefs provides a panel in prefs where users can choose which modules
# to enable.
MODULE_PREFS
# Define to allow realtime processing in Sneedacity effects that have been converted.
REALTIME_SNEEDACITY_EFFECTS
# Define to include the effects rack (such as it is).
#EFFECTS_RACK
# Define to make the meters look like a row of LEDs
#METER_LED_STYLE
# Define to enable the device change handler
#DEVICE_CHANGE_HANDLER
# Define for NEW noise reduction effect from Paul Licameli.
NOISE_REDUCTION
# Define to enable Nyquist audio clip boundary control (Steve Daulton Dec 2014)
NYQUIST_SPLIT_CONTROL
# Paul Licameli (PRL) 16 Apr 2015
# Support for scrubbing in the AudioIO engine, without calls to it
SCRUBBING_SUPPORT
# Paul Licameli (PRL) 24 May 2015
# Allow scrolling up to one half of a screenful beyond either end of the project,
# if you turn on the appropriate Tracks preference.
# This allows smooth-scrolling scrub to work more reasonably at the ends.
SCROLLING_LIMITS
# Paul Licameli (PRL) 28 May 2015
# Draw negative numbers on the time ruler in a different color, when
# scrolling past zero is enabled. Perhaps that lessens confusion.
TWO_TONE_TIME_RULER
#Define to include crash reporting, if available in wxWidgets build
#This flag is used only in CrashReport.h; elsewhere use HAS_CRASH_REPORT
CRASH_REPORT
# Paul Licameli (PRL) 31 May 2015
# Zero-padding factor for spectrograms can smooth the display of spectrograms by
# interpolating in frequency domain.
ZERO_PADDED_SPECTROGRAMS
# PRL 11 Jul 2017
# Highlight more things in TrackPanel when the mouse moves over them,
# using delibrately ugly pens and brushes until there is better cooperation
# with themes
#TRACK_PANEL_HIGHLIGHTING
# Paul Licameli (PRL) 28 Dec 2017
# Easy drag-and-drop to add Nyquist, LADSPA, and VST plug-ins
#DRAG_DROP_PLUG_INS
# PRL 5 Jan 2018
# Easy change of keystroke bindings for menu items
EASY_CHANGE_KEY_BINDINGS
# PRL 1 Jun 2018
PUNCH_AND_ROLL
# PRL 31 July 2018
DRAGGABLE_PLAY_HEAD
)
# Some more flags that depend on other configuration options
if( "SCRUBBING_SUPPORT" IN_LIST EXPERIMENTAL_OPTIONS_LIST )
list( APPEND EXPERIMENTAL_OPTIONS_LIST SCRUBBING_SCROLL_WHEEL )
endif()
# Now define the flags
list( TRANSFORM EXPERIMENTAL_OPTIONS_LIST PREPEND "EXPERIMENTAL_" )
add_compile_definitions( ${EXPERIMENTAL_OPTIONS_LIST} )