From 3cea11de7fd20e4d05d56d2334d74d88e81b76bb Mon Sep 17 00:00:00 2001 From: carlo-bramini Date: Sat, 21 Oct 2017 18:23:23 +0200 Subject: [PATCH 1/7] Replace use of glib types --- src/midi/fluid_seq.c | 8 ++++---- src/synth/fluid_synth.c | 7 +++---- src/utils/fluid_hash.c | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/midi/fluid_seq.c b/src/midi/fluid_seq.c index 02ebaf18..62cd8ade 100644 --- a/src/midi/fluid_seq.c +++ b/src/midi/fluid_seq.c @@ -42,8 +42,8 @@ /* Private data for SEQUENCER */ struct _fluid_sequencer_t { unsigned int startMs; - gint currentMs; - gboolean useSystemTimer; + int currentMs; + int useSystemTimer; double scale; // ticks per second fluid_list_t* clients; short clientsID; @@ -121,7 +121,7 @@ new_fluid_sequencer2 (int use_system_timer) FLUID_MEMSET(seq, 0, sizeof(fluid_sequencer_t)); seq->scale = 1000; // default value - seq->useSystemTimer = use_system_timer ? TRUE : FALSE; + seq->useSystemTimer = use_system_timer ? 1 : 0; seq->startMs = seq->useSystemTimer ? fluid_curtime() : 0; seq->clients = NULL; seq->clientsID = 0; @@ -196,7 +196,7 @@ delete_fluid_sequencer (fluid_sequencer_t* seq) int fluid_sequencer_get_use_system_timer (fluid_sequencer_t* seq) { - return seq->useSystemTimer ? 1 : 0; + return seq->useSystemTimer; } diff --git a/src/synth/fluid_synth.c b/src/synth/fluid_synth.c index 84fc31e0..24ca098c 100644 --- a/src/synth/fluid_synth.c +++ b/src/synth/fluid_synth.c @@ -3353,13 +3353,12 @@ fluid_synth_start_voice(fluid_synth_t* synth, fluid_voice_t* voice) void fluid_synth_add_sfloader(fluid_synth_t* synth, fluid_sfloader_t* loader) { - gboolean sfont_already_loaded; - fluid_return_if_fail (synth != NULL); fluid_return_if_fail (loader != NULL); fluid_synth_api_enter(synth); - sfont_already_loaded = synth->sfont_info != NULL; - if (!sfont_already_loaded) + + /* Test if sfont is already loaded */ + if (synth->sfont_info == NULL) synth->loaders = fluid_list_prepend(synth->loaders, loader); fluid_synth_api_exit(synth); } diff --git a/src/utils/fluid_hash.c b/src/utils/fluid_hash.c index af6fb704..e0c1cd7c 100644 --- a/src/utils/fluid_hash.c +++ b/src/utils/fluid_hash.c @@ -53,7 +53,7 @@ typedef struct /* Excerpt from glib gprimes.c */ -static const guint primes[] = +static const unsigned int primes[] = { 11, 19, From 7e238c543840401a5c1d41e88e3243c115cd8f2d Mon Sep 17 00:00:00 2001 From: carlo-bramini Date: Sat, 21 Oct 2017 18:26:55 +0200 Subject: [PATCH 2/7] Replace g_atomic_*() with fluid_atomic_*() --- src/midi/fluid_seq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/midi/fluid_seq.c b/src/midi/fluid_seq.c index 62cd8ade..0d6d0f95 100644 --- a/src/midi/fluid_seq.c +++ b/src/midi/fluid_seq.c @@ -500,7 +500,7 @@ fluid_sequencer_remove_events (fluid_sequencer_t* seq, short source, unsigned int fluid_sequencer_get_tick (fluid_sequencer_t* seq) { - unsigned int absMs = seq->useSystemTimer ? (int) fluid_curtime() : g_atomic_int_get(&seq->currentMs); + unsigned int absMs = seq->useSystemTimer ? (int) fluid_curtime() : fluid_atomic_int_get(&seq->currentMs); double nowFloat; unsigned int now; nowFloat = ((double)(absMs - seq->startMs))*seq->scale/1000.0f; @@ -846,7 +846,7 @@ fluid_sequencer_process(fluid_sequencer_t* seq, unsigned int msec) } /* send queued events */ - g_atomic_int_set(&seq->currentMs, msec); + fluid_atomic_int_set(&seq->currentMs, msec); _fluid_seq_queue_send_queued_events(seq); } From 82454b9fd5d74294182e3ccac38aaf7819182043 Mon Sep 17 00:00:00 2001 From: carlo-bramini Date: Sat, 21 Oct 2017 18:29:18 +0200 Subject: [PATCH 3/7] Remove useless code, it's identical for both LE & BE --- src/sfloader/fluid_defsfont.c | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/src/sfloader/fluid_defsfont.c b/src/sfloader/fluid_defsfont.c index 9ba05380..7cd9ba3c 100644 --- a/src/sfloader/fluid_defsfont.c +++ b/src/sfloader/fluid_defsfont.c @@ -2030,8 +2030,6 @@ fluid_sample_import_sfont(fluid_sample_t* sample, SFSample* sfsample, fluid_defs equivalent to the matching ID list in memory regardless of LE/BE machine */ -#if FLUID_IS_BIG_ENDIAN - #define READCHUNK(var,fd) G_STMT_START { \ if (!safe_fread(var, 8, fd)) \ return(FAIL); \ @@ -2052,31 +2050,6 @@ fluid_sample_import_sfont(fluid_sample_t* sample, SFSample* sfsample, fluid_defs var = GINT16_FROM_LE(_temp); \ } G_STMT_END -#else - -#define READCHUNK(var,fd) G_STMT_START { \ - if (!safe_fread(var, 8, fd)) \ - return(FAIL); \ - ((SFChunk *)(var))->size = GUINT32_FROM_LE(((SFChunk *)(var))->size); \ -} G_STMT_END - -#define READD(var,fd) G_STMT_START { \ - unsigned int _temp; \ - if (!safe_fread(&_temp, 4, fd)) \ - return(FAIL); \ - var = GINT32_FROM_LE(_temp); \ -} G_STMT_END - -#define READW(var,fd) G_STMT_START { \ - unsigned short _temp; \ - if (!safe_fread(&_temp, 2, fd)) \ - return(FAIL); \ - var = GINT16_FROM_LE(_temp); \ -} G_STMT_END - -#endif - - #define READID(var,fd) G_STMT_START { \ if (!safe_fread(var, 4, fd)) \ return(FAIL); \ From 122b249e2768dae1f7b219d0ecf37573bc4b80a9 Mon Sep 17 00:00:00 2001 From: carlo-bramini Date: Sat, 21 Oct 2017 18:32:17 +0200 Subject: [PATCH 4/7] Replace G_INT_TO_POINTER with FLUID_INT_TO_POINTER --- src/sfloader/fluid_defsfont.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sfloader/fluid_defsfont.c b/src/sfloader/fluid_defsfont.c index 7cd9ba3c..5fac37fc 100644 --- a/src/sfloader/fluid_defsfont.c +++ b/src/sfloader/fluid_defsfont.c @@ -2733,7 +2733,7 @@ load_pgen (int size, SFData * sf, FILE * fd) { /* inst is last gen */ level = 3; READW (genval.uword, fd); - ((SFZone *) (p2->data))->instsamp = GINT_TO_POINTER (genval.uword + 1); + ((SFZone *) (p2->data))->instsamp = FLUID_INT_TO_POINTER (genval.uword + 1); break; /* break out of generator loop */ } else @@ -3083,7 +3083,7 @@ load_igen (int size, SFData * sf, FILE * fd) { /* sample is last gen */ level = 3; READW (genval.uword, fd); - ((SFZone *) (p2->data))->instsamp = GINT_TO_POINTER (genval.uword + 1); + ((SFZone *) (p2->data))->instsamp = FLUID_INT_TO_POINTER (genval.uword + 1); break; /* break out of generator loop */ } else From 031c3671da5917ab1644fe3ca3b53868db7db974 Mon Sep 17 00:00:00 2001 From: carlo-bramini Date: Sat, 21 Oct 2017 18:33:27 +0200 Subject: [PATCH 5/7] Replace GPOINTER_TO_INT with FLUID_POINTER_TO_INT --- src/sfloader/fluid_defsfont.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sfloader/fluid_defsfont.c b/src/sfloader/fluid_defsfont.c index 5fac37fc..b677985b 100644 --- a/src/sfloader/fluid_defsfont.c +++ b/src/sfloader/fluid_defsfont.c @@ -3243,7 +3243,7 @@ fixup_pgen (SFData * sf) while (p2) { /* traverse this preset's zones */ z = (SFZone *) (p2->data); - if ((i = GPOINTER_TO_INT (z->instsamp))) + if ((i = FLUID_POINTER_TO_INT (z->instsamp))) { /* load instrument # */ p3 = fluid_list_nth (sf->inst, i - 1); if (!p3) @@ -3278,7 +3278,7 @@ fixup_igen (SFData * sf) while (p2) { /* traverse instrument's zones */ z = (SFZone *) (p2->data); - if ((i = GPOINTER_TO_INT (z->instsamp))) + if ((i = FLUID_POINTER_TO_INT (z->instsamp))) { /* load sample # */ p3 = fluid_list_nth (sf->sample, i - 1); if (!p3) From 6f7ec3b1fc3bcb6f68d11daa7f984522534f3256 Mon Sep 17 00:00:00 2001 From: carlo-bramini Date: Sat, 21 Oct 2017 18:40:57 +0200 Subject: [PATCH 6/7] Added FLUID_STMT_START and FLUID_STMT_END --- src/sfloader/fluid_defsfont.c | 36 +++++++++++++++++------------------ src/utils/fluid_sys.h | 4 ++++ 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/sfloader/fluid_defsfont.c b/src/sfloader/fluid_defsfont.c index b677985b..a55667f0 100644 --- a/src/sfloader/fluid_defsfont.c +++ b/src/sfloader/fluid_defsfont.c @@ -2030,59 +2030,59 @@ fluid_sample_import_sfont(fluid_sample_t* sample, SFSample* sfsample, fluid_defs equivalent to the matching ID list in memory regardless of LE/BE machine */ -#define READCHUNK(var,fd) G_STMT_START { \ +#define READCHUNK(var,fd) FLUID_STMT_START { \ if (!safe_fread(var, 8, fd)) \ return(FAIL); \ ((SFChunk *)(var))->size = GUINT32_FROM_LE(((SFChunk *)(var))->size); \ -} G_STMT_END +} FLUID_STMT_END -#define READD(var,fd) G_STMT_START { \ +#define READD(var,fd) FLUID_STMT_START { \ unsigned int _temp; \ if (!safe_fread(&_temp, 4, fd)) \ return(FAIL); \ var = GINT32_FROM_LE(_temp); \ -} G_STMT_END +} FLUID_STMT_END -#define READW(var,fd) G_STMT_START { \ +#define READW(var,fd) FLUID_STMT_START { \ unsigned short _temp; \ if (!safe_fread(&_temp, 2, fd)) \ return(FAIL); \ var = GINT16_FROM_LE(_temp); \ -} G_STMT_END +} FLUID_STMT_END -#define READID(var,fd) G_STMT_START { \ +#define READID(var,fd) FLUID_STMT_START { \ if (!safe_fread(var, 4, fd)) \ return(FAIL); \ -} G_STMT_END +} FLUID_STMT_END -#define READSTR(var,fd) G_STMT_START { \ +#define READSTR(var,fd) FLUID_STMT_START { \ if (!safe_fread(var, 20, fd)) \ return(FAIL); \ (*var)[20] = '\0'; \ -} G_STMT_END +} FLUID_STMT_END -#define READB(var,fd) G_STMT_START { \ +#define READB(var,fd) FLUID_STMT_START { \ if (!safe_fread(&var, 1, fd)) \ return(FAIL); \ -} G_STMT_END +} FLUID_STMT_END -#define FSKIP(size,fd) G_STMT_START { \ +#define FSKIP(size,fd) FLUID_STMT_START { \ if (!safe_fseek(fd, size, SEEK_CUR)) \ return(FAIL); \ -} G_STMT_END +} FLUID_STMT_END -#define FSKIPW(fd) G_STMT_START { \ +#define FSKIPW(fd) FLUID_STMT_START { \ if (!safe_fseek(fd, 2, SEEK_CUR)) \ return(FAIL); \ -} G_STMT_END +} FLUID_STMT_END /* removes and advances a fluid_list_t pointer */ -#define SLADVREM(list, item) G_STMT_START { \ +#define SLADVREM(list, item) FLUID_STMT_START { \ fluid_list_t *_temp = item; \ item = fluid_list_next(item); \ list = fluid_list_remove_link(list, _temp); \ delete1_fluid_list(_temp); \ -} G_STMT_END +} FLUID_STMT_END static int chunkid (unsigned int id); static int load_body (unsigned int size, SFData * sf, FILE * fd); diff --git a/src/utils/fluid_sys.h b/src/utils/fluid_sys.h index b5034e9d..f3e41f2b 100644 --- a/src/utils/fluid_sys.h +++ b/src/utils/fluid_sys.h @@ -65,6 +65,10 @@ void fluid_time_config(void); #define FLUID_INT_TO_POINTER GINT_TO_POINTER #define FLUID_N_ELEMENTS(struct) (sizeof (struct) / sizeof (struct[0])) +/* Open/closes statement block */ +#define FLUID_STMT_START G_STMT_START +#define FLUID_STMT_END G_STMT_END + #define FLUID_IS_BIG_ENDIAN (G_BYTE_ORDER == G_BIG_ENDIAN) /* From 828fdb9744d18d67b7bf692806a76b4e4d08fef0 Mon Sep 17 00:00:00 2001 From: carlo-bramini Date: Sat, 21 Oct 2017 19:46:32 +0200 Subject: [PATCH 7/7] Completely remove G_STMT_* macros --- src/utils/fluid_sys.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/fluid_sys.h b/src/utils/fluid_sys.h index f3e41f2b..351d3803 100644 --- a/src/utils/fluid_sys.h +++ b/src/utils/fluid_sys.h @@ -66,8 +66,8 @@ void fluid_time_config(void); #define FLUID_N_ELEMENTS(struct) (sizeof (struct) / sizeof (struct[0])) /* Open/closes statement block */ -#define FLUID_STMT_START G_STMT_START -#define FLUID_STMT_END G_STMT_END +#define FLUID_STMT_START do +#define FLUID_STMT_END while (0) #define FLUID_IS_BIG_ENDIAN (G_BYTE_ORDER == G_BIG_ENDIAN)