-
Notifications
You must be signed in to change notification settings - Fork 0
/
aap-guitarix.patch
165 lines (150 loc) · 6.04 KB
/
aap-guitarix.patch
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
diff --git a/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.cpp b/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.cpp
index fcb96e04..91a3a302 100644
--- a/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.cpp
+++ b/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.cpp
@@ -143,8 +143,7 @@ bool PitchTracker::setParameters(int priority, int policy, int sampleRate, int b
}
void PitchTracker::stop_thread() {
- pthread_cancel (m_pthr);
- pthread_join (m_pthr, NULL);
+ shouldStop = true;
}
void PitchTracker::start_thread(int priority, int policy) {
@@ -153,7 +152,7 @@ void PitchTracker::start_thread(int priority, int policy) {
spar.sched_priority = priority;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_JOINABLE );
- pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL);
+ //pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL);
pthread_attr_setschedpolicy(&attr, policy);
pthread_attr_setschedparam(&attr, &spar);
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
@@ -309,6 +308,7 @@ static int findsubMaximum(float *input, int len, float threshold) {
void PitchTracker::run() {
for (;;) {
+if (shouldStop) break;
busy = false;
sem_wait(&m_trig);
if (error) {
diff --git a/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.h b/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.h
index 54333290..f2c59c91 100644
--- a/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.h
+++ b/trunk/src/LV2/gxtuner.lv2/gx_pitch_tracker.h
@@ -87,6 +87,8 @@ class PitchTracker {
fftwf_plan m_fftwPlanFFT;
// Plan to compute the IFFT of a given signal (with additional zero-padding).
fftwf_plan m_fftwPlanIFFT;
+// This is a dirty hack to support pthread_cancel() alternative
+bool shouldStop;
};
diff --git a/trunk/src/gx_head/engine/gx_pitch_tracker.cpp b/trunk/src/gx_head/engine/gx_pitch_tracker.cpp
index 3e3bd8a4..1d29e6ab 100644
--- a/trunk/src/gx_head/engine/gx_pitch_tracker.cpp
+++ b/trunk/src/gx_head/engine/gx_pitch_tracker.cpp
@@ -65,7 +65,8 @@ PitchTracker::PitchTracker()
m_input(new float[FFT_SIZE]),
m_audioLevel(false),
m_fftwPlanFFT(0),
- m_fftwPlanIFFT(0) {
+ m_fftwPlanIFFT(0),
+ shouldStop(false) {
const int size = FFT_SIZE + (FFT_SIZE+1) / 2;
m_fftwBufferTime = reinterpret_cast<float*>
(fftwf_malloc(size * sizeof(*m_fftwBufferTime)));
@@ -145,8 +146,7 @@ bool PitchTracker::setParameters(int priority, int policy, int sampleRate, int b
void PitchTracker::stop_thread() {
if (m_pthr) {
- pthread_cancel (m_pthr);
- pthread_join (m_pthr, NULL);
+ shouldStop = true;
m_pthr = 0;
}
}
@@ -322,6 +322,7 @@ static int findsubMaximum(float *input, int len, float threshold) {
void PitchTracker::run() {
for (;;) {
+if(shouldStop) break;
busy = false;
sem_wait(&m_trig);
if (error) {
diff --git a/trunk/src/plugins/wscript b/trunk/src/plugins/wscript
index 9e8fdf83..75f6cbd6 100644
--- a/trunk/src/plugins/wscript
+++ b/trunk/src/plugins/wscript
@@ -194,3 +194,4 @@ def build(bld):
def configure(conf):
conf.check_cfg(package='eigen3', args='--cflags', uselib_store="EIGEN3", mandatory=1)
+
diff --git a/trunk/wscript b/trunk/wscript
index c76a8263..9ad5fa70 100644
--- a/trunk/wscript
+++ b/trunk/wscript
@@ -116,10 +116,10 @@ def options(opt):
opt.gxload('lv2')
opt.gxload('robotofont')
- opt.recurse('pygxw')
- opt.recurse('glade-gxw')
+ #opt.recurse('pygxw')
+ #opt.recurse('glade-gxw')
- opt.load('compiler_c') # for pygxw and glade-gxw
+ #opt.load('compiler_c') # for pygxw and glade-gxw
opt.add_option('--dist-tree',
type='string',
@@ -305,8 +305,8 @@ def configure(conf):
conf.find_program('gcov')
conf.env['CXXFLAGS'] = conf.env['CFLAGS'] = ['-fprofile-arcs', '-ftest-coverage']
conf.env['LDFLAGS'] = ['-lgcov', '-coverage']
- if opt.python_wrapper or opt.glade_support:
- conf.load('compiler_c')
+ #if opt.python_wrapper or opt.glade_support:
+ # conf.load('compiler_c')
# linker flags
conf.env.append_value('LDFLAGS', opt.ldflags.split())
conf.env['LINKFLAGS'] = conf.env['LDFLAGS']
@@ -348,13 +348,13 @@ def configure(conf):
conf.check_cfg(package='lilv-0', args='--cflags --libs', uselib_store='LILV', mandatory=1)
check_boost(conf)
- conf.gxload('zita-convolver')
- conf.gxload('zita-resampler')
+ #conf.gxload('zita-convolver')
+ #conf.gxload('zita-resampler')
conf.find_program("gperf", var='HAVE_GPERF', mandatory=False)
conf.gxload('faust')
- if Options.options.generate_resources:
- conf.find_program('glib-compile-resources', var='HAVE_GLIB')
+ #if Options.options.generate_resources:
+ # conf.find_program('glib-compile-resources', var='HAVE_GLIB')
# defines for compilation
gxsharedir = os.path.normpath(os.path.join(conf.env['SHAREDIR'], 'gx_head'))
@@ -389,7 +389,7 @@ def configure(conf):
conf.env['DESKAPPS_DIR'] = os.path.normpath(os.path.join(conf.env['SHAREDIR'], 'applications'))
conf.env['BIN_NAME'] = APPNAME
if opt.lv2:
- conf.gxload('strip')
+ # conf.gxload('strip')
conf.gxload('lv2')
conf.env['LADSPA'] = opt.ladspa
conf.env['NEW_LADSPA'] = opt.new_ladspa
@@ -418,8 +418,8 @@ def configure(conf):
# config subdirs
if conf.env['STANDALONE'] or conf.env.NEW_LADSPA or conf.env.GX_PYTHON_WRAPPER or conf.env.GX_GLADE_SUPPORT:
- conf.recurse('pygxw')
- conf.recurse('glade-gxw')
+ #conf.recurse('pygxw')
+ #conf.recurse('glade-gxw')
conf.recurse('libgxwmm')
conf.recurse('libgxw/gxw')
conf.recurse('rcstyles')
@@ -580,9 +580,9 @@ def build(bld):
# process subfolders from here
bld.recurse('ladspa')
bld.recurse('libgxw/gxw')
- bld.recurse('libgxwmm')
- bld.recurse('glade-gxw')
- bld.recurse('pygxw')
+ #bld.recurse('libgxwmm')
+ #bld.recurse('glade-gxw')
+ #bld.recurse('pygxw')
bld.recurse('src/faust')
bld.recurse('src/plugins')
bld.recurse('rcstyles')