./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:84: 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:65: 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:40: 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:42: 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:65: 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:82: 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:65: 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:42: 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:40: 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:44: 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:63: 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:73: 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:75: 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:71: 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:81: 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:62: 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:50: 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:52: 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:69: 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:73: 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:79: 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:62: 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:50: 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:48: 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:52: 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:69: 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:69: 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:32: 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:58: 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:36: 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:35: 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:56: 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:52: 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:57: 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:52: 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:17: 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:43: 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:25: 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:33: 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:21: 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:7: 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:80: 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:3: 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'