./midi_alsa.c:38:46: error: 'snd_seq_set_client_name' undeclared here (not in a function) #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:67:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_set_client_name); ^~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'findMidiDevice': ./midi_alsa.c:73:3: error: unknown type name 'snd_seq_client_info_t' snd_seq_client_info_t *clientInformation = malloc(midiAlsa_seq_client_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:73:53: error: called object 'midiAlsa_seq_client_info_sizeof' is not a function or function pointer snd_seq_client_info_t *clientInformation = malloc(midiAlsa_seq_client_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:47:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:76:34: error: called object 'midiAlsa_seq_client_info_sizeof' is not a function or function pointer memset(clientInformation, 0, midiAlsa_seq_client_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:47:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:77:5: error: called object 'midiAlsa_seq_client_info_set_client' is not a function or function pointer midiAlsa_seq_client_info_set_client(clientInformation, -1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:46:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_set_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:79:12: error: called object 'midiAlsa_seq_query_next_client' is not a function or function pointer while (midiAlsa_seq_query_next_client(midi->sequencer, clientInformation) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:62:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_query_next_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:80:30: error: called object 'midiAlsa_seq_client_info_get_client' is not a function or function pointer int clientIdentifier = midiAlsa_seq_client_info_get_client(clientInformation); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:44:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_get_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:81:7: error: unknown type name 'snd_seq_port_info_t' snd_seq_port_info_t *portInformation = malloc(midiAlsa_seq_port_info_sizeof()); ^~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:81:53: error: called object 'midiAlsa_seq_port_info_sizeof' is not a function or function pointer snd_seq_port_info_t *portInformation = malloc(midiAlsa_seq_port_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:61:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:84:36: error: called object 'midiAlsa_seq_port_info_sizeof' is not a function or function pointer memset(portInformation, 0, midiAlsa_seq_port_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:61:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:85:9: error: called object 'midiAlsa_seq_port_info_set_client' is not a function or function pointer midiAlsa_seq_port_info_set_client(portInformation, clientIdentifier); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:59:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_set_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:86:9: error: called object 'midiAlsa_seq_port_info_set_port' is not a function or function pointer midiAlsa_seq_port_info_set_port(portInformation, -1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:60:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_set_port); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:88:16: error: called object 'midiAlsa_seq_query_next_port' is not a function or function pointer while (midiAlsa_seq_query_next_port(midi->sequencer, portInformation) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:63:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_query_next_port); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:89:32: error: called object 'midiAlsa_seq_port_info_get_port' is not a function or function pointer int portIdentifier = midiAlsa_seq_port_info_get_port(portInformation); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:58:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_get_port); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:90:36: error: called object 'midiAlsa_seq_port_info_get_capability' is not a function or function pointer int actualCapabilities = midiAlsa_seq_port_info_get_capability(portInformation); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:56:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_get_capability); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:91:41: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function) const int neededCapabilties = SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE; ^~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:91:41: note: each undeclared identifier is reported only once for each function it appears in ./midi_alsa.c:91:66: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function) const int neededCapabilties = SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE; ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:94:38: error: 'SND_SEQ_PORT_CAP_NO_EXPORT' undeclared (first use in this function) !(actualCapabilities & SND_SEQ_PORT_CAP_NO_EXPORT)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:98:42: error: called object 'midiAlsa_seq_client_info_get_name' is not a function or function pointer clientIdentifier, midiAlsa_seq_client_info_get_name(clientInformation), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:45:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_get_name); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:99:40: error: called object 'midiAlsa_seq_port_info_get_name' is not a function or function pointer portIdentifier, midiAlsa_seq_port_info_get_name(portInformation)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:57:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_get_name); ^~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'parseMidiDevice': ./midi_alsa.c:142:13: error: unknown type name 'snd_seq_client_info_t' snd_seq_client_info_t *info = malloc(midiAlsa_seq_client_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:142:50: error: called object 'midiAlsa_seq_client_info_sizeof' is not a function or function pointer snd_seq_client_info_t *info = malloc(midiAlsa_seq_client_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:47:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:145:31: error: called object 'midiAlsa_seq_client_info_sizeof' is not a function or function pointer memset(info, 0, midiAlsa_seq_client_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:47:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:146:15: error: called object 'midiAlsa_seq_client_info_set_client' is not a function or function pointer midiAlsa_seq_client_info_set_client(info, -1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:46:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_set_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:148:22: error: called object 'midiAlsa_seq_query_next_client' is not a function or function pointer while (midiAlsa_seq_query_next_client(midi->sequencer, info) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:62:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_query_next_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:149:36: error: called object 'midiAlsa_seq_client_info_get_name' is not a function or function pointer const char *name = midiAlsa_seq_client_info_get_name(info); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:45:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_get_name); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:152:38: error: called object 'midiAlsa_seq_client_info_get_client' is not a function or function pointer clientIdentifier = midiAlsa_seq_client_info_get_client(info); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:44:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_client_info_get_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:173:15: error: unknown type name 'snd_seq_port_info_t' snd_seq_port_info_t *info = malloc(midiAlsa_seq_port_info_sizeof()); ^~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:173:50: error: called object 'midiAlsa_seq_port_info_sizeof' is not a function or function pointer snd_seq_port_info_t *info = malloc(midiAlsa_seq_port_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:61:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:176:33: error: called object 'midiAlsa_seq_port_info_sizeof' is not a function or function pointer memset(info, 0, midiAlsa_seq_port_info_sizeof()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:61:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_sizeof); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:177:17: error: called object 'midiAlsa_seq_port_info_set_client' is not a function or function pointer midiAlsa_seq_port_info_set_client(info, clientIdentifier); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:59:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_set_client); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:178:17: error: called object 'midiAlsa_seq_port_info_set_port' is not a function or function pointer midiAlsa_seq_port_info_set_port(info, -1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:60:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_set_port); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:180:24: error: called object 'midiAlsa_seq_query_next_port' is not a function or function pointer while (midiAlsa_seq_query_next_port(midi->sequencer, info) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:63:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_query_next_port); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:181:38: error: called object 'midiAlsa_seq_port_info_get_name' is not a function or function pointer const char *name = midiAlsa_seq_port_info_get_name(info); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:57:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_get_name); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:184:38: error: called object 'midiAlsa_seq_port_info_get_port' is not a function or function pointer portIdentifier = midiAlsa_seq_port_info_get_port(info); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:58:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_port_info_get_port); ^~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'updateMidiStatus': ./midi_alsa.c:230:3: error: called object 'midiAlsa_seq_get_queue_status' is not a function or function pointer midiAlsa_seq_get_queue_status(midi->sequencer, midi->queue, midi->status); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:54:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_get_queue_status); ^~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'startMidiTimer': ./midi_alsa.c:235:18: error: request for member 'tv_sec' in something not a structure or union if (!midi->time.tv_sec && !midi->time.tv_nsec) { ^ ./midi_alsa.c:235:40: error: request for member 'tv_nsec' in something not a structure or union if (!midi->time.tv_sec && !midi->time.tv_nsec) { ^ ./midi_alsa.c:237:19: error: called object 'midiAlsa_seq_queue_status_get_real_time' is not a function or function pointer midi->time = *midiAlsa_seq_queue_status_get_real_time(midi->status); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:65:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_queue_status_get_real_time); ^~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'stopMidiTimer': ./midi_alsa.c:243:13: error: request for member 'tv_sec' in something not a structure or union midi->time.tv_sec = 0; ^ ./midi_alsa.c:244:13: error: request for member 'tv_nsec' in something not a structure or union midi->time.tv_nsec = 0; ^ ./midi_alsa.c: In function 'openMidiDevice': ./midi_alsa.c:289:70: error: 'SND_SEQ_OPEN_OUTPUT' undeclared (first use in this function) if ((result = midiAlsa_seq_open(&midi->sequencer, sequencerName, SND_SEQ_OPEN_OUTPUT, 0)) >= 0) { ^~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:289:19: error: called object 'midiAlsa_seq_open' is not a function or function pointer if ((result = midiAlsa_seq_open(&midi->sequencer, sequencerName, SND_SEQ_OPEN_OUTPUT, 0)) >= 0) { ^~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:55:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_open); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:290:7: error: called object 'midiAlsa_seq_set_client_name' is not a function or function pointer midiAlsa_seq_set_client_name(midi->sequencer, PACKAGE_NAME); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:67:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_set_client_name); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:293:57: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function) SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ, ^~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:293:79: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function) SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ, ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:294:57: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function) SND_SEQ_PORT_TYPE_APPLICATION)) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:292:25: error: called object 'midiAlsa_seq_create_simple_port' is not a function or function pointer if ((midi->port = midiAlsa_seq_create_simple_port(midi->sequencer, "out0", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:51:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_create_simple_port); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:295:28: error: called object 'midiAlsa_seq_alloc_queue' is not a function or function pointer if ((midi->queue = midiAlsa_seq_alloc_queue(midi->sequencer)) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:43:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_alloc_queue); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:296:25: error: called object 'midiAlsa_seq_queue_status_malloc' is not a function or function pointer if ((result = midiAlsa_seq_queue_status_malloc(&midi->status)) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:66:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_queue_status_malloc); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:310:29: error: called object 'midiAlsa_seq_connect_to' is not a function or function pointer if ((result = midiAlsa_seq_connect_to(midi->sequencer, midi->port, client, port)) >= 0) { ^~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:49:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_connect_to); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:311:31: warning: implicit declaration of function 'snd_seq_start_queue' [-Wimplicit-function-declaration] if ((result = snd_seq_start_queue(midi->sequencer, midi->queue, NULL)) >= 0) { ^~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:324:13: error: called object 'midiAlsa_seq_queue_status_free' is not a function or function pointer midiAlsa_seq_queue_status_free(midi->status); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:64:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_queue_status_free); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:338:7: error: called object 'midiAlsa_seq_close' is not a function or function pointer midiAlsa_seq_close(midi->sequencer); ^~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:48:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_close); ^~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'closeMidiDevice': ./midi_alsa.c:353:3: error: called object 'midiAlsa_seq_queue_status_free' is not a function or function pointer midiAlsa_seq_queue_status_free(midi->status); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:64:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_queue_status_free); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:354:3: error: called object 'midiAlsa_seq_close' is not a function or function pointer midiAlsa_seq_close(midi->sequencer); ^~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:48:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_close); ^~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'flushMidiDevice': ./midi_alsa.c:365:13: error: unknown type name 'snd_seq_real_time_t' const snd_seq_real_time_t *time = midiAlsa_seq_queue_status_get_real_time(midi->status); ^~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:365:41: error: called object 'midiAlsa_seq_queue_status_get_real_time' is not a function or function pointer const snd_seq_real_time_t *time = midiAlsa_seq_queue_status_get_real_time(midi->status); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:38:59: note: declared here #define MIDI_ALSA_SYMBOL(name) static typeof(snd_##name) *midiAlsa_##name ^ ./midi_alsa.c:65:1: note: in expansion of macro 'MIDI_ALSA_SYMBOL' MIDI_ALSA_SYMBOL(seq_queue_status_get_real_time); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:366:31: error: request for member 'tv_sec' in something not a structure or union int seconds = midi->time.tv_sec - time->tv_sec; ^ ./midi_alsa.c:366:45: error: request for member 'tv_sec' in something not a structure or union int seconds = midi->time.tv_sec - time->tv_sec; ^~ ./midi_alsa.c:367:35: error: request for member 'tv_nsec' in something not a structure or union int nanoseconds = midi->time.tv_nsec - time->tv_nsec; ^ ./midi_alsa.c:367:50: error: request for member 'tv_nsec' in something not a structure or union int nanoseconds = midi->time.tv_nsec - time->tv_nsec; ^~ ./midi_alsa.c: At top level: ./midi_alsa.c:380:37: error: unknown type name 'snd_seq_event_t' prepareMidiEvent (MidiDevice *midi, snd_seq_event_t *event) { ^~~~~~~~~~~~~~~ ./midi_alsa.c:387:38: error: unknown type name 'snd_seq_event_t' scheduleMidiEvent (MidiDevice *midi, snd_seq_event_t *event) { ^~~~~~~~~~~~~~~ ./midi_alsa.c:392:34: error: unknown type name 'snd_seq_event_t' sendMidiEvent (MidiDevice *midi, snd_seq_event_t *event) { ^~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'setMidiInstrument': ./midi_alsa.c:406:3: error: unknown type name 'snd_seq_event_t' snd_seq_event_t event; ^~~~~~~~~~~~~~~ ./midi_alsa.c:408:3: warning: implicit declaration of function 'prepareMidiEvent' [-Wimplicit-function-declaration] prepareMidiEvent(midi, &event); ^~~~~~~~~~~~~~~~ ./midi_alsa.c:409:3: warning: implicit declaration of function 'snd_seq_ev_set_pgmchange' [-Wimplicit-function-declaration] snd_seq_ev_set_pgmchange(&event, channel, instrument); ^~~~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:410:10: warning: implicit declaration of function 'sendMidiEvent' [-Wimplicit-function-declaration] return sendMidiEvent(midi, &event); ^~~~~~~~~~~~~ ./midi_alsa.c: In function 'startMidiNote': ./midi_alsa.c:426:3: error: unknown type name 'snd_seq_event_t' snd_seq_event_t event; ^~~~~~~~~~~~~~~ ./midi_alsa.c:429:3: warning: implicit declaration of function 'snd_seq_ev_set_noteon' [-Wimplicit-function-declaration] snd_seq_ev_set_noteon(&event, channel, note, volume); ^~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c:431:3: warning: implicit declaration of function 'scheduleMidiEvent' [-Wimplicit-function-declaration] scheduleMidiEvent(midi, &event); ^~~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'stopMidiNote': ./midi_alsa.c:437:3: error: unknown type name 'snd_seq_event_t' snd_seq_event_t event; ^~~~~~~~~~~~~~~ ./midi_alsa.c:440:3: warning: implicit declaration of function 'snd_seq_ev_set_noteoff' [-Wimplicit-function-declaration] snd_seq_ev_set_noteoff(&event, channel, midi->note, 0); ^~~~~~~~~~~~~~~~~~~~~~ ./midi_alsa.c: In function 'insertMidiWait': ./midi_alsa.c:448:13: error: request for member 'tv_sec' in something not a structure or union midi->time.tv_sec += duration / 1000; ^ ./midi_alsa.c:449:13: error: request for member 'tv_nsec' in something not a structure or union midi->time.tv_nsec += (duration % 1000) * 1000000; ^ ./midi_alsa.c:451:20: error: request for member 'tv_nsec' in something not a structure or union while (midi->time.tv_nsec >= 1000000000) { ^ ./midi_alsa.c:452:15: error: request for member 'tv_nsec' in something not a structure or union midi->time.tv_nsec -= 1000000000; ^ ./midi_alsa.c:453:15: error: request for member 'tv_sec' in something not a structure or union midi->time.tv_sec++; ^ make[3]: *** [midi_alsa.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [all] Error 2 make[1]: *** [/home/buildroot/buildroot-test/instance-1/output/build/brltty-5.5/.stamp_built] Error 2 make: *** [_all] Error 2 make: Leaving directory `/home/buildroot/buildroot-test/instance-1/buildroot'