Skip to content

Commit 33edef3

Browse files
committed
Fix issues #56 and #55 build with FREEBSD/clang
1 parent 49d88eb commit 33edef3

File tree

7 files changed

+31
-50
lines changed

7 files changed

+31
-50
lines changed

src/Makefile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,15 @@
4242
LOCAL_DIR ?= $(SHARE_DIR)/locale
4343

4444
# set compile flags
45-
CXXFLAGS += -std=gnu++17 -O3 -D_FORTIFY_SOURCE=2 -Wall -fstack-protector -funroll-loops -ffast-math -fomit-frame-pointer \
46-
-fstrength-reduce -fschedule-insns -MMD $(SSE_CFLAGS)
45+
46+
CXXFLAGS += -std=gnu++17 -O3 -D_FORTIFY_SOURCE=2 -Wall -fstack-protector -funroll-loops \
47+
-ffast-math -fomit-frame-pointer -MMD $(SSE_CFLAGS)
48+
ifneq ($(CXX), clang)
49+
CXXFLAGS += -fstrength-reduce -fschedule-insns
50+
endif
4751
DEBUG_CXXFLAGS += -g -D DEBUG
4852
LDFLAGS += -Wl,-z,noexecstack -Wl,--no-undefined \
49-
`pkg-config --libs jack cairo x11 sigc++-2.0 liblo smf fluidsynth` -lm -pthread -lasound
53+
`pkg-config --libs jack cairo x11 sigc++-2.0 liblo smf fluidsynth` -lm -pthread -lasound -lstdc++
5054
INCFLAGS = -I./ -I../libxputty/libxputty/include/ -I../libscala-file/ \
5155
`pkg-config --cflags jack cairo x11 sigc++-2.0 liblo smf fluidsynth`\
5256
-DVERSION=\"$(VER)\"

src/Mamba.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ bool MidiLoad::load_file(std::vector<MidiEvent> *play, int *song_bpm, const char
121121
}
122122
}
123123
// filter out 0xFF system reset message
124-
if ((smf_event->midi_buffer[0] == 0xff)) {
124+
if (smf_event->midi_buffer[0] == 0xff) {
125125
continue;
126126
}
127127
ev = {{smf_event->midi_buffer[0], smf_event->midi_buffer[1], smf_event->midi_buffer[2]},

src/MidiKeyBoard.cpp

Lines changed: 22 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3293,8 +3293,7 @@ void XKeyBoard::set_on_off_label(void *w_, void* user_data) noexcept{
32933293
//static
32943294
void XKeyBoard::instrument_callback(void *w_, void* user_data) {
32953295
Widget_t *w = (Widget_t*)w_;
3296-
Widget_t *win = get_toplevel_widget(w->app);
3297-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3296+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
32983297
int i = (int)adj_get_value(xjmkb->fs_instruments->adj);
32993298
xjmkb->xsynth->channel_instrument[xjmkb->mchannel] = i;
33003299
std::istringstream buf(xjmkb->xsynth->instruments[i]);
@@ -3323,8 +3322,7 @@ void XKeyBoard::rebuild_instrument_list() {
33233322
//static
33243323
void XKeyBoard::soundfont_callback(void *w_, void* user_data) {
33253324
Widget_t *w = (Widget_t*)w_;
3326-
Widget_t *win = get_toplevel_widget(w->app);
3327-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3325+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
33283326
if (!strstr(xjmkb->soundfontname.data(), w->label)) {
33293327
std::string sf = xjmkb->soundfontpath;
33303328
sf +="/";
@@ -3370,8 +3368,7 @@ int XKeyBoard::get_edo_steps() {
33703368
//static
33713369
void XKeyBoard::edo_callback(void *w_, void* user_data) noexcept{
33723370
Widget_t *w = (Widget_t*)w_;
3373-
Widget_t *win = get_toplevel_widget(w->app);
3374-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3371+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
33753372
int i = (int)adj_get_value(w->adj);
33763373
if ( xjmkb->mchannel > 15) xjmkb->xsynth->activate_tunning_for_all_channel(i);
33773374
else xjmkb->xsynth->activate_tuning_for_channel(xjmkb->mchannel, i);
@@ -3382,8 +3379,7 @@ void XKeyBoard::edo_callback(void *w_, void* user_data) noexcept{
33823379
//static
33833380
void XKeyBoard::synth_hide_callback(void *w_, void* user_data) noexcept{
33843381
Widget_t *w = (Widget_t*)w_;
3385-
Widget_t *win = get_toplevel_widget(w->app);
3386-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3382+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
33873383
adj_set_value(xjmkb->fs[0]->adj, 0.0);
33883384
}
33893385

@@ -3572,8 +3568,7 @@ void XKeyBoard::draw_looper_ui(void *w_, void* user_data) noexcept{
35723568
XWindowAttributes attrs;
35733569
XGetWindowAttributes(w->app->dpy, (Window)w->widget, &attrs);
35743570
if (attrs.map_state != IsViewable) return;
3575-
Widget_t *win = get_toplevel_widget(w->app);
3576-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3571+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
35773572
set_pattern(w,&w->app->color_scheme->selected,&w->app->color_scheme->normal,BACKGROUND_);
35783573
cairo_paint (w->crb);
35793574
widget_set_scale(w);
@@ -3611,135 +3606,118 @@ void XKeyBoard::show_looper_ui(int present) {
36113606
//static
36123607
void XKeyBoard::looper_hide_callback(void *w_, void* user_data) noexcept{
36133608
Widget_t *w = (Widget_t*)w_;
3614-
Widget_t *win = get_toplevel_widget(w->app);
3615-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3609+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36163610
adj_set_value(xjmkb->lmc->adj, 0.0);
36173611
}
36183612

36193613
static void play_channel1_callback(void *w_, void* user_data) noexcept{
36203614
Widget_t *w = (Widget_t*)w_;
3621-
Widget_t *win = get_toplevel_widget(w->app);
3622-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3615+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36233616
int i = (int)adj_get_value(w->adj);
36243617
xjmkb->xjack->channel_matrix[0].store(i, std::memory_order_release);
36253618
}
36263619

36273620
static void play_channel2_callback(void *w_, void* user_data) noexcept{
36283621
Widget_t *w = (Widget_t*)w_;
3629-
Widget_t *win = get_toplevel_widget(w->app);
3630-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3622+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36313623
int i = (int)adj_get_value(w->adj);
36323624
xjmkb->xjack->channel_matrix[1].store(i, std::memory_order_release);
36333625
}
36343626

36353627
static void play_channel3_callback(void *w_, void* user_data) noexcept{
36363628
Widget_t *w = (Widget_t*)w_;
3637-
Widget_t *win = get_toplevel_widget(w->app);
3638-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3629+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36393630
int i = (int)adj_get_value(w->adj);
36403631
xjmkb->xjack->channel_matrix[2].store(i, std::memory_order_release);
36413632
}
36423633

36433634
static void play_channel4_callback(void *w_, void* user_data) noexcept{
36443635
Widget_t *w = (Widget_t*)w_;
3645-
Widget_t *win = get_toplevel_widget(w->app);
3646-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3636+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36473637
int i = (int)adj_get_value(w->adj);
36483638
xjmkb->xjack->channel_matrix[3].store(i, std::memory_order_release);
36493639
}
36503640

36513641
static void play_channel5_callback(void *w_, void* user_data) noexcept{
36523642
Widget_t *w = (Widget_t*)w_;
3653-
Widget_t *win = get_toplevel_widget(w->app);
3654-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3643+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36553644
int i = (int)adj_get_value(w->adj);
36563645
xjmkb->xjack->channel_matrix[4].store(i, std::memory_order_release);
36573646
}
36583647

36593648
static void play_channel6_callback(void *w_, void* user_data) noexcept{
36603649
Widget_t *w = (Widget_t*)w_;
3661-
Widget_t *win = get_toplevel_widget(w->app);
3662-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3650+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36633651
int i = (int)adj_get_value(w->adj);
36643652
xjmkb->xjack->channel_matrix[5].store(i, std::memory_order_release);
36653653
}
36663654

36673655
static void play_channel7_callback(void *w_, void* user_data) noexcept{
36683656
Widget_t *w = (Widget_t*)w_;
3669-
Widget_t *win = get_toplevel_widget(w->app);
3670-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3657+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36713658
int i = (int)adj_get_value(w->adj);
36723659
xjmkb->xjack->channel_matrix[6].store(i, std::memory_order_release);
36733660
}
36743661

36753662
static void play_channel8_callback(void *w_, void* user_data) noexcept{
36763663
Widget_t *w = (Widget_t*)w_;
3677-
Widget_t *win = get_toplevel_widget(w->app);
3678-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3664+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36793665
int i = (int)adj_get_value(w->adj);
36803666
xjmkb->xjack->channel_matrix[7].store(i, std::memory_order_release);
36813667
}
36823668

36833669
static void play_channel9_callback(void *w_, void* user_data) noexcept{
36843670
Widget_t *w = (Widget_t*)w_;
3685-
Widget_t *win = get_toplevel_widget(w->app);
3686-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3671+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36873672
int i = (int)adj_get_value(w->adj);
36883673
xjmkb->xjack->channel_matrix[8].store(i, std::memory_order_release);
36893674
}
36903675

36913676
static void play_channel10_callback(void *w_, void* user_data) noexcept{
36923677
Widget_t *w = (Widget_t*)w_;
3693-
Widget_t *win = get_toplevel_widget(w->app);
3694-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3678+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
36953679
int i = (int)adj_get_value(w->adj);
36963680
xjmkb->xjack->channel_matrix[9].store(i, std::memory_order_release);
36973681
}
36983682

36993683
static void play_channel11_callback(void *w_, void* user_data) noexcept{
37003684
Widget_t *w = (Widget_t*)w_;
3701-
Widget_t *win = get_toplevel_widget(w->app);
3702-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3685+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
37033686
int i = (int)adj_get_value(w->adj);
37043687
xjmkb->xjack->channel_matrix[10].store(i, std::memory_order_release);
37053688
}
37063689

37073690
static void play_channel12_callback(void *w_, void* user_data) noexcept{
37083691
Widget_t *w = (Widget_t*)w_;
3709-
Widget_t *win = get_toplevel_widget(w->app);
3710-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3692+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
37113693
int i = (int)adj_get_value(w->adj);
37123694
xjmkb->xjack->channel_matrix[11].store(i, std::memory_order_release);
37133695
}
37143696

37153697
static void play_channel13_callback(void *w_, void* user_data) noexcept{
37163698
Widget_t *w = (Widget_t*)w_;
3717-
Widget_t *win = get_toplevel_widget(w->app);
3718-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3699+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
37193700
int i = (int)adj_get_value(w->adj);
37203701
xjmkb->xjack->channel_matrix[12].store(i, std::memory_order_release);
37213702
}
37223703

37233704
static void play_channel14_callback(void *w_, void* user_data) noexcept{
37243705
Widget_t *w = (Widget_t*)w_;
3725-
Widget_t *win = get_toplevel_widget(w->app);
3726-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3706+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
37273707
int i = (int)adj_get_value(w->adj);
37283708
xjmkb->xjack->channel_matrix[13].store(i, std::memory_order_release);
37293709
}
37303710

37313711
static void play_channel15_callback(void *w_, void* user_data) noexcept{
37323712
Widget_t *w = (Widget_t*)w_;
3733-
Widget_t *win = get_toplevel_widget(w->app);
3734-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3713+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
37353714
int i = (int)adj_get_value(w->adj);
37363715
xjmkb->xjack->channel_matrix[14].store(i, std::memory_order_release);
37373716
}
37383717

37393718
static void play_channel16_callback(void *w_, void* user_data) noexcept{
37403719
Widget_t *w = (Widget_t*)w_;
3741-
Widget_t *win = get_toplevel_widget(w->app);
3742-
XKeyBoard *xjmkb = (XKeyBoard*) win->parent_struct;
3720+
XKeyBoard *xjmkb = XKeyBoard::get_instance(w);
37433721
int i = (int)adj_get_value(w->adj);
37443722
xjmkb->xjack->channel_matrix[15].store(i, std::memory_order_release);
37453723
}

src/MidiKeyBoard.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,6 @@ class XKeyBoard {
182182
Widget_t *file_remove_menu;
183183
Widget_t *load_midi;
184184
Widget_t *add_midi;
185-
Widget_t *load_scala;
186185
Widget_t *sfont_menu;
187186
Widget_t *fs_instruments;
188187
Widget_t *fs_soundfont;
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)