@@ -292,6 +292,12 @@ struct libasound
292292 LIBREMIDI_SYMBOL_INIT (snd_seq, set_queue_tempo)
293293 LIBREMIDI_SYMBOL_INIT (snd_seq, subscribe_port)
294294 LIBREMIDI_SYMBOL_INIT (snd_seq, unsubscribe_port)
295+
296+ #if LIBREMIDI_ALSA_HAS_UMP
297+ LIBREMIDI_SYMBOL_INIT (snd_seq, set_client_midi_version)
298+ LIBREMIDI_SYMBOL_INIT (snd_seq, get_ump_endpoint_info)
299+ LIBREMIDI_SYMBOL_INIT (snd_seq, get_ump_block_info)
300+ #endif
295301 }
296302
297303 bool available{true };
@@ -336,6 +342,7 @@ struct libasound
336342 LIBREMIDI_SYMBOL_DEF (snd_seq, port_info_sizeof)
337343 LIBREMIDI_SYMBOL_DEF (snd_seq, port_subscribe_free)
338344 LIBREMIDI_SYMBOL_DEF (snd_seq, port_subscribe_malloc)
345+ LIBREMIDI_SYMBOL_DEF (snd_seq, port_subscribe_sizeof)
339346 LIBREMIDI_SYMBOL_DEF (snd_seq, port_subscribe_set_dest)
340347 LIBREMIDI_SYMBOL_DEF (snd_seq, port_subscribe_set_sender)
341348 LIBREMIDI_SYMBOL_DEF (snd_seq, port_subscribe_set_time_real)
@@ -352,6 +359,12 @@ struct libasound
352359 LIBREMIDI_SYMBOL_DEF (snd_seq, subscribe_port)
353360 LIBREMIDI_SYMBOL_DEF (snd_seq, unsubscribe_port)
354361
362+ #if LIBREMIDI_ALSA_HAS_UMP
363+ LIBREMIDI_SYMBOL_DEF (snd_seq, set_client_midi_version)
364+ LIBREMIDI_SYMBOL_DEF(snd_seq, get_ump_endpoint_info)
365+ LIBREMIDI_SYMBOL_DEF(snd_seq, get_ump_block_info)
366+ #endif
367+
355368#if LIBREMIDI_ALSA_HAS_UMP
356369 struct ump_t
357370 {
@@ -362,18 +375,17 @@ struct libasound
362375 available = false ;
363376 return ;
364377 }
365- LIBREMIDI_SYMBOL_INIT (snd_seq, set_client_midi_version)
366378 LIBREMIDI_SYMBOL_INIT (snd_seq_ump, event_input)
367379 LIBREMIDI_SYMBOL_INIT (snd_seq_ump, event_output)
368380 LIBREMIDI_SYMBOL_INIT (snd_seq_ump, event_output_direct)
369381 }
370382
371383 bool available{true };
372384
373- LIBREMIDI_SYMBOL_DEF (snd_seq, set_client_midi_version)
374385 LIBREMIDI_SYMBOL_DEF (snd_seq_ump, event_input)
375386 LIBREMIDI_SYMBOL_DEF (snd_seq_ump, event_output)
376387 LIBREMIDI_SYMBOL_DEF (snd_seq_ump, event_output_direct)
388+
377389 } ump;
378390#endif
379391 } seq{library};
@@ -389,39 +401,98 @@ struct libasound
389401 return ;
390402 }
391403
392- LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_name)
393- LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_sizeof)
394- LIBREMIDI_SYMBOL_INIT (snd_ump, close)
395- LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_name)
396- LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_sizeof)
404+ // Core UMP functions
397405 LIBREMIDI_SYMBOL_INIT (snd_ump, open)
398- LIBREMIDI_SYMBOL_INIT (snd_ump, poll_descriptors)
399- LIBREMIDI_SYMBOL_INIT (snd_ump, poll_descriptors_count)
400- LIBREMIDI_SYMBOL_INIT (snd_ump, poll_descriptors_revents)
406+ LIBREMIDI_SYMBOL_INIT (snd_ump, close)
401407 LIBREMIDI_SYMBOL_INIT (snd_ump, rawmidi)
402408 LIBREMIDI_SYMBOL_INIT (snd_ump, rawmidi_params)
403409 LIBREMIDI_SYMBOL_INIT (snd_ump, rawmidi_params_current)
404410 LIBREMIDI_SYMBOL_INIT (snd_ump, read)
405411 LIBREMIDI_SYMBOL_INIT (snd_ump, tread)
406412 LIBREMIDI_SYMBOL_INIT (snd_ump, write)
413+ LIBREMIDI_SYMBOL_INIT (snd_ump, poll_descriptors)
414+ LIBREMIDI_SYMBOL_INIT (snd_ump, poll_descriptors_count)
415+ LIBREMIDI_SYMBOL_INIT (snd_ump, poll_descriptors_revents)
416+
417+ // Endpoint info functions
418+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info)
419+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_sizeof)
420+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_card)
421+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_device)
422+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_flags)
423+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_protocol_caps)
424+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_protocol)
425+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_num_blocks)
426+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_version)
427+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_manufacturer_id)
428+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_family_id)
429+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_model_id)
430+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_sw_revision)
431+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_name)
432+ LIBREMIDI_SYMBOL_INIT (snd_ump, endpoint_info_get_product_id)
433+
434+ // Block info functions
435+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info)
436+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_sizeof)
437+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_set_block_id)
438+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_block_id)
439+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_active)
440+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_flags)
441+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_direction)
442+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_first_group)
443+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_num_groups)
444+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_midi_ci_version)
445+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_sysex8_streams)
446+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_ui_hint)
447+ LIBREMIDI_SYMBOL_INIT (snd_ump, block_info_get_name)
407448 }
408449
409450 bool available{true };
410- LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_name)
411- LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_sizeof)
412- LIBREMIDI_SYMBOL_DEF (snd_ump, close)
413- LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_name)
414- LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_sizeof)
451+
452+ // Core UMP functions
415453 LIBREMIDI_SYMBOL_DEF (snd_ump, open)
416- LIBREMIDI_SYMBOL_DEF (snd_ump, poll_descriptors)
417- LIBREMIDI_SYMBOL_DEF (snd_ump, poll_descriptors_count)
418- LIBREMIDI_SYMBOL_DEF (snd_ump, poll_descriptors_revents)
454+ LIBREMIDI_SYMBOL_DEF (snd_ump, close)
419455 LIBREMIDI_SYMBOL_DEF (snd_ump, rawmidi)
420456 LIBREMIDI_SYMBOL_DEF (snd_ump, rawmidi_params)
421457 LIBREMIDI_SYMBOL_DEF (snd_ump, rawmidi_params_current)
422458 LIBREMIDI_SYMBOL_DEF (snd_ump, read)
423459 LIBREMIDI_SYMBOL_DEF (snd_ump, tread)
424460 LIBREMIDI_SYMBOL_DEF (snd_ump, write)
461+ LIBREMIDI_SYMBOL_DEF (snd_ump, poll_descriptors)
462+ LIBREMIDI_SYMBOL_DEF (snd_ump, poll_descriptors_count)
463+ LIBREMIDI_SYMBOL_DEF (snd_ump, poll_descriptors_revents)
464+
465+ // Endpoint info functions
466+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info)
467+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_sizeof)
468+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_card)
469+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_device)
470+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_flags)
471+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_protocol_caps)
472+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_protocol)
473+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_num_blocks)
474+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_version)
475+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_manufacturer_id)
476+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_family_id)
477+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_model_id)
478+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_sw_revision)
479+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_name)
480+ LIBREMIDI_SYMBOL_DEF (snd_ump, endpoint_info_get_product_id)
481+
482+ // Block info functions
483+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info)
484+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_sizeof)
485+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_set_block_id)
486+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_block_id)
487+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_active)
488+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_flags)
489+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_direction)
490+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_first_group)
491+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_num_groups)
492+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_midi_ci_version)
493+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_sysex8_streams)
494+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_ui_hint)
495+ LIBREMIDI_SYMBOL_DEF (snd_ump, block_info_get_name)
425496 } ump{library};
426497#endif
427498};
@@ -449,6 +520,8 @@ struct libasound
449520#define snd_seq_client_info_alloca (ptr ) snd_dylib_alloca(ptr, seq, client_info)
450521#undef snd_seq_port_info_alloca
451522#define snd_seq_port_info_alloca (ptr ) snd_dylib_alloca(ptr, seq, port_info)
523+ #undef snd_seq_port_subscribe_alloca
524+ #define snd_seq_port_subscribe_alloca (ptr ) snd_dylib_alloca(ptr, seq, port_subscribe)
452525#undef snd_seq_queue_tempo_alloca
453526#define snd_seq_queue_tempo_alloca (ptr ) snd_dylib_alloca(ptr, seq, queue_tempo)
454527
0 commit comments