ddb_waveform_seekbar icon indicating copy to clipboard operation
ddb_waveform_seekbar copied to clipboard

Build fails with `waveform.c:690:18: error: ‘ddb_waveformat_t’ has no member named ‘is_bigendian’` (GCC 13.2.1)

Open dreirund opened this issue 1 year ago • 2 comments

Ahoj,

I try to build this software according to ↗ this recipe.

Build of the GTK2 variant fails for me with
waveform.c:690:18: error: ‘ddb_waveformat_t’ has no member named ‘is_bigendian’:

waveform.c: In function ‘waveform_generate_wavedata’:
waveform.c:690:18: error: ‘ddb_waveformat_t’ has no member named ‘is_bigendian’
  690 |                 .is_bigendian = 0
      |                  ^~~~~~~~~~~~
waveform.c: At top level:
waveform.c:1405:18: warning: initialization of ‘int (*)(struct DB_plugin_action_s *, ddb_action_context_t)’ {aka ‘int (*)(struct DB_plugin_action_s *, enum ddb_action_context_e)’} from incompatible pointer type ‘int (*)(DB_plugin_action_t *, int)’ {aka ‘int (*)(struct DB_plugin_action_s *, int)’} [-Wincompatible-pointer-types]
 1405 |     .callback2 = waveform_action_lookup,
      |                  ^~~~~~~~~~~~~~~~~~~~~~
waveform.c:1405:18: note: (near initialization for ‘lookup_action.callback2’)
make: *** [Makefile:96: gtk2/waveform.o] Error 1

GCC version: 13.2.1,
GTK2 version 2.24.33,
on Artix GNU/Linux (rolling release).

Regards!

dreirund avatar Sep 22 '23 20:09 dreirund

As a workaround you can add -DDDB_API_LEVEL=15 to CFLAGS The reason is deadbeef.h added this define:

#if (DDB_API_LEVEL >= 17)
    uint32_t flags;
#else
    int is_bigendian;
#endif

cbirchinger avatar Oct 12 '23 21:10 cbirchinger

As a workaround you can add -DDDB_API_LEVEL=15 to CFLAGS The reason is deadbeef.h added this define:

I can confirm that this workaround works.

I leave this issue open since it is only a workaround, and ddb_waveform_seekbar should be adapted to fit the new DDB_API_LEVEL.

Regards!

dreirund avatar Oct 14 '23 08:10 dreirund