[alsa-devel] ALSA API as standards
Hi,
I've talked with some people workiong on LSB about the possibility to put libasound as a part of the next LSB (surprisingly, they would like it more than I). I proposed that we should define the minimal set at first as the standard instead of taking all existing API functions.
An interesting input was that they did some statistics and counted the actual used functions/variables in ALSA API over distros. The data is attached below. I just put the number of apps and functions there to simplify. (It includes __* functions that are actaully internal ones, and I'm wondering why their numbers are so high. Anyway, they shouldn't be a part of standard.)
So, first, just take a look at it. You'll see how many functions are not actually used at all.
What I'd like to do now are:
- create a list of "standard" functions to be passed to LSB - clean up and actually drop some non-used functions - remove some functions from export list (in Versions file)
I'll try to create a list. Basically it'll be almost as same as the list of functions with count > 0, plus some related ones. Then, let's discuss and clean up...
BTW, regarding Versions. The versioned symbols for newly added functions seem not set properly as expected. We have entries
ALSA_0.9 { global: __snd_*; _snd_*; snd_*; local: *; };
and thus the rest functions after this all belong to ALSA_0.9 in the end (except for functions explicitly defined with obsolete macros in pcm.c). It means, we'll need to stick with ALSA_0.9 tag no matter which version is added. Only if the function API is changed and double definitions are needed, we'll tag to another version... Oh well.
Takashi
AppUsage Iname 36 snd_pcm_hw_params_set_format 36 snd_pcm_hw_params_set_access 36 snd_pcm_hw_params_any 36 snd_pcm_open 36 snd_pcm_hw_params 36 snd_pcm_prepare 35 snd_strerror 35 snd_pcm_close 35 snd_pcm_writei 34 snd_pcm_hw_params_set_channels 29 snd_pcm_sw_params_current 28 snd_pcm_sw_params 28 snd_pcm_sw_params_set_start_threshold 27 snd_pcm_readi 25 snd_pcm_drop 24 snd_pcm_avail_update 23 snd_pcm_state 23 snd_pcm_resume 22 snd_ctl_open 22 snd_ctl_close 22 snd_card_next 22 snd_pcm_sw_params_set_avail_min 22 snd_pcm_start 21 snd_ctl_pcm_next_device 21 snd_pcm_hw_params_malloc 20 snd_pcm_hw_params_free 20 snd_pcm_nonblock 19 snd_pcm_pause 19 snd_pcm_info_set_stream 19 snd_ctl_pcm_info 19 snd_pcm_info_get_name 19 snd_pcm_status 19 snd_pcm_info_set_device 18 snd_pcm_hw_params_set_rate_near 18 snd_pcm_sw_params_set_xfer_align 18 snd_pcm_info_set_subdevice 17 snd_ctl_card_info_get_name 17 snd_ctl_card_info 17 snd_pcm_hw_params_sizeof 16 snd_pcm_hw_params_get_format_mask 16 snd_pcm_status_get_avail 16 snd_pcm_hw_params_set_period_size_near 16 snd_pcm_format_physical_width 16 snd_lib_error_set_handler 16 snd_pcm_format_mask_test 15 snd_pcm_sw_params_free 15 snd_pcm_info_free 15 snd_ctl_card_info_get_id 15 snd_pcm_sw_params_malloc 15 snd_pcm_info_malloc 14 snd_pcm_format_mask_malloc 14 snd_pcm_sw_params_sizeof 14 snd_seq_set_client_name 14 snd_seq_open 14 snd_pcm_format_mask_free 13 snd_pcm_format_width 13 snd_pcm_format_big_endian 13 snd_pcm_format_linear 13 snd_pcm_build_linear_format 13 snd_ctl_card_info_free 13 snd_pcm_info_get_id 13 snd_seq_create_simple_port 13 snd_seq_close 13 snd_ctl_card_info_malloc 13 snd_pcm_status_free 13 snd_pcm_format_signed 13 snd_pcm_info_get_subdevices_count 13 snd_pcm_status_malloc 13 __snd_pcm_hw_params_set_tick_time_last 13 __snd_pcm_hw_params_get_period_time 13 __snd_pcm_hw_params_get_periods 13 __snd_pcm_hw_params_set_access_last 13 __snd_pcm_hw_params_set_buffer_size_near 13 __snd_pcm_hw_params_get_periods_max 13 __snd_pcm_hw_params_get_period_size_min 13 __snd_pcm_hw_params_set_format_last 13 __snd_pcm_hw_params_set_period_time_first 13 __snd_pcm_hw_params_set_period_time_last 13 __snd_pcm_hw_params_set_channels_last 13 __snd_pcm_hw_params_get_tick_time_min 13 __snd_pcm_hw_params_set_buffer_size_first 13 __snd_pcm_hw_params_get_period_time_max 13 __snd_pcm_hw_params_get_tick_time_max 13 __snd_pcm_hw_params_get_rate 13 __snd_pcm_hw_params_get_subformat 13 __snd_pcm_hw_params_get_tick_time 13 __snd_pcm_hw_params_get_rate_max 13 __snd_pcm_hw_params_get_period_size 13 __snd_pcm_hw_params_set_periods_first 13 __snd_pcm_hw_params_get_access 13 __snd_pcm_hw_params_set_rate_near 13 __snd_pcm_hw_params_set_buffer_size_last 13 __snd_pcm_hw_params_set_tick_time_first 13 __snd_pcm_hw_params_get_periods_min 13 __snd_pcm_hw_params_get_rate_min 13 __snd_pcm_hw_params_set_channels_first 13 __snd_pcm_hw_params_get_channels_max 13 __snd_pcm_hw_params_get_buffer_time_min 13 __snd_pcm_hw_params_get_period_size_max 13 __snd_pcm_hw_params_get_channels_min 13 __snd_pcm_hw_params_get_buffer_time_max 13 __snd_pcm_hw_params_get_buffer_size_max 13 __snd_pcm_hw_params_get_buffer_size 13 __snd_pcm_hw_params_get_buffer_time 13 __snd_pcm_hw_params_get_period_time_min 13 __snd_pcm_hw_params_set_format_first 13 __snd_pcm_hw_params_set_period_size_first 13 __snd_pcm_hw_params_get_channels 13 __snd_pcm_hw_params_set_rate_last 13 __snd_pcm_hw_params_get_format 13 __snd_pcm_hw_params_set_buffer_time_near 13 __snd_pcm_hw_params_get_buffer_size_min 13 __snd_pcm_hw_params_set_channels_near 13 __snd_pcm_hw_params_set_subformat_last 13 __snd_pcm_hw_params_set_subformat_first 13 __snd_pcm_hw_params_set_rate_first 13 __snd_pcm_hw_params_set_period_size_last 13 __snd_pcm_hw_params_set_period_size_near 13 __snd_pcm_hw_params_set_period_time_near 13 __snd_pcm_hw_params_set_tick_time_near 13 __snd_pcm_hw_params_set_periods_near 13 __snd_pcm_hw_params_set_buffer_time_last 13 __snd_pcm_hw_params_set_periods_last 13 __snd_pcm_hw_params_set_buffer_time_first 11 snd_seq_event_input 11 snd_pcm_drain 11 snd_pcm_hw_params_get_buffer_size 10 snd_mixer_selem_get_playback_volume 10 snd_mixer_selem_register 10 snd_mixer_attach 10 snd_mixer_selem_get_playback_volume_range 10 snd_pcm_hw_params_set_periods_near 10 snd_pcm_hw_params_get_period_size 10 snd_mixer_open 10 snd_mixer_load 10 snd_mixer_close 9 snd_mixer_elem_next 9 snd_mixer_selem_has_playback_volume 9 snd_pcm_delay 9 snd_rawmidi_read 9 snd_seq_client_id 9 snd_rawmidi_close 9 snd_mixer_selem_has_playback_switch 9 snd_midi_event_new 9 snd_mixer_first_elem 9 snd_rawmidi_open 8 snd_pcm_hw_params_get_rate 8 snd_seq_poll_descriptors 8 snd_mixer_selem_set_playback_switch_all 8 snd_mixer_selem_get_name 8 snd_mixer_selem_get_capture_volume 8 snd_rawmidi_write 8 snd_mixer_selem_set_playback_volume 8 snd_seq_port_info_sizeof 8 snd_mixer_selem_has_capture_volume 8 snd_mixer_selem_has_capture_switch 8 snd_midi_event_free 8 snd_mixer_selem_set_capture_switch_all 8 snd_rawmidi_nonblock 7 snd_rawmidi_info_free 7 snd_seq_client_info_sizeof 7 snd_pcm_sw_params_set_silence_size 7 snd_rawmidi_info_malloc 7 snd_ctl_rawmidi_info 7 snd_rawmidi_info_get_name 7 snd_midi_event_encode_byte 7 snd_ctl_rawmidi_next_device 7 snd_rawmidi_info_set_device 7 snd_seq_port_info_set_port 7 snd_rawmidi_info_set_stream 7 snd_pcm_hw_params_set_buffer_size_near 7 snd_rawmidi_info_set_subdevice 7 snd_rawmidi_info_get_id 7 snd_rawmidi_info_get_subdevices_count 7 snd_mixer_selem_get_capture_volume_range 7 snd_mixer_selem_is_playback_mono 7 snd_pcm_sw_params_set_stop_threshold 7 snd_pcm_hw_params_can_pause 6 snd_ctl_card_info_get_mixername 6 snd_seq_free_event 6 snd_pcm_hw_params_set_buffer_time_near 6 snd_pcm_hw_params_get_channels_max 6 snd_seq_poll_descriptors_count 6 snd_mixer_selem_get_capture_switch 6 snd_pcm_sw_params_set_silence_threshold 6 snd_mixer_selem_has_playback_channel 6 snd_pcm_status_sizeof 6 snd_pcm_hw_params_set_period_time_near 6 snd_mixer_selem_set_capture_volume 6 snd_config_search 6 snd_mixer_selem_channel_name 6 snd_seq_query_next_port 6 snd_pcm_info_sizeof 6 snd_pcm_hw_params_get_channels_min 6 snd_pcm_hw_params_set_rate 6 snd_mixer_selem_get_playback_switch 6 snd_mixer_selem_is_capture_mono 6 snd_seq_port_info_set_client 6 snd_mixer_selem_is_active 6 snd_mixer_selem_has_capture_channel 6 snd_pcm_hw_params_test_format 6 snd_config_update 5 snd_seq_port_subscribe_set_sender 5 snd_seq_port_subscribe_set_dest 5 snd_config_iterator_end 5 snd_config_iterator_next 5 snd_seq_port_info_get_name 5 snd_seq_port_info_get_capability 5 snd_config_iterator_first 5 snd_seq_connect_to 5 snd_pcm_hw_params_get_channels 5 snd_pcm_hw_params_get_buffer_size_min 5 snd_seq_subscribe_port 5 snd_pcm_hw_params_get_period_size_min 5 snd_seq_port_info_get_addr 5 snd_seq_event_input_pending 5 snd_seq_query_next_client 5 snd_seq_event_output 5 snd_config_iterator_entry 5 snd_seq_client_info_get_client 5 snd_seq_drain_output 5 snd_seq_client_info_set_client 5 snd_config_get_string 5 snd_seq_port_info_get_port 4 snd_pcm_hw_params_get_buffer_size_max 4 snd_pcm_hw_params_get_rate_min 4 snd_pcm_bytes_to_frames 4 snd_ctl_card_info_sizeof 4 snd_pcm_hw_params_get_rate_max 4 snd_pcm_hw_params_can_resume 4 snd_card_get_name 4 snd_pcm_hw_params_get_period_size_max 4 snd_pcm_frames_to_bytes 4 snd_pcm_status_get_trigger_tstamp 4 snd_pcm_wait 3 snd_pcm_poll_descriptors 3 snd_pcm_hw_params_is_double 3 snd_pcm_hw_params_is_batch 3 snd_pcm_hw_params_get_tick_time 3 snd_pcm_hw_params_can_sync_start 3 snd_pcm_status_get_state 3 snd_seq_port_info_set_name 3 snd_pcm_hw_params_get_periods_max 3 snd_pcm_hw_params_get_period_time 3 snd_async_add_pcm_handler 3 snd_seq_port_subscribe_sizeof 3 snd_pcm_mmap_commit 3 snd_pcm_hw_params_test_rate 3 snd_pcm_hw_params_get_access 3 snd_pcm_hw_params_can_overrange 3 snd_pcm_writen 3 snd_pcm_hw_params_get_format 3 snd_pcm_hw_params_is_half_duplex 3 snd_seq_event_output_direct 3 snd_pcm_hw_params_is_joint_duplex 3 snd_seq_connect_from 3 snd_pcm_hw_params_get_buffer_time 3 snd_config_get_id 3 snd_seq_client_info_get_name 3 snd_pcm_mmap_begin 3 snd_seq_port_info_set_capability 3 snd_pcm_hw_params_can_mmap_sample_resolution 3 snd_pcm_poll_descriptors_count 3 snd_pcm_link 3 snd_config 3 snd_pcm_hw_params_get_periods 3 snd_pcm_hw_params_set_channels_near 3 snd_pcm_hw_params_test_access 3 snd_pcm_hw_params_is_block_transfer 3 snd_pcm_hw_params_set_rate_resample 2 snd_seq_disconnect_from 2 snd_config_get_type 2 snd_mixer_selem_id_sizeof 2 snd_pcm_hw_params_get_period_time_max 2 snd_pcm_poll_descriptors_revents 2 snd_seq_delete_simple_port 2 snd_pcm_access_mask_test 2 snd_ctl_elem_value_clear 2 snd_config_get_integer 2 snd_pcm_access_name 2 snd_seq_port_info_get_client 2 snd_ctl_elem_value_set_integer 2 snd_mixer_selem_id_get_name 2 snd_pcm_mmap_readi 2 snd_ctl_elem_info_is_readable 2 snd_hctl_close 2 snd_ctl_elem_info_malloc 2 snd_pcm_mmap_writei 2 snd_ctl_name 2 snd_hwdep_close 2 snd_hwdep_open 2 snd_hwdep_info 2 snd_pcm_hw_params_get_access_mask 2 snd_pcm_format_set_silence 2 snd_hctl_load 2 snd_hctl_find_elem 2 snd_hctl_free 2 snd_pcm_sw_params_set_tstamp_mode 2 snd_pcm_hw_params_get_periods_min 2 snd_pcm_hw_params_test_channels 2 snd_pcm_sw_params_set_xrun_mode 2 snd_ctl_elem_value_get_integer 2 snd_pcm_hw_params_get_tick_time_max 2 snd_async_handler_get_callback_private 2 snd_hctl_open 2 snd_pcm_hw_params_get_tick_time_min 2 snd_pcm_readn 2 snd_seq_unsubscribe_port 2 snd_hctl_elem_info 2 snd_pcm_access_mask_sizeof 2 snd_seq_disconnect_to 2 snd_pcm_hw_params_dump 2 snd_pcm_hw_params_get_period_time_min 2 snd_pcm_rewind 2 snd_seq_client_info_get_type 2 snd_pcm_hw_params_copy 2 snd_seq_create_port 2 snd_pcm_type 2 snd_hwdep_info_sizeof 2 snd_hctl_elem_write 2 snd_ctl_elem_value_free 2 snd_ctl_elem_info_get_count 2 snd_pcm_hw_params_set_period_size 2 snd_seq_port_info_get_type 2 snd_ctl_elem_id_set_name 2 snd_ctl_elem_id_clear 2 snd_ctl_elem_info_free 2 snd_pcm_hwsync 2 snd_pcm_info 2 snd_seq_port_info_set_type 2 snd_mixer_selem_set_playback_volume_all 2 snd_ctl_elem_info_clear 2 snd_pcm_state_name 2 snd_pcm_sw_params_get_boundary 2 snd_hctl_elem_read 2 snd_ctl_elem_id_malloc 2 snd_ctl_elem_id_set_interface 2 snd_pcm_format_mask_sizeof 2 snd_ctl_elem_id_free 2 snd_rawmidi_poll_descriptors_count 2 snd_rawmidi_poll_descriptors 2 snd_pcm_hw_params_get_buffer_time_max 2 snd_midi_event_decode 2 snd_pcm_format_cpu_endian 2 snd_ctl_elem_value_malloc 2 snd_mixer_selem_set_capture_volume_all 2 snd_ctl_elem_info_get_step 2 snd_seq_port_subscribe_free 2 snd_output_stdio_attach 2 snd_ctl_elem_info_get_min 2 snd_seq_port_subscribe_malloc 2 snd_mixer_selem_id_get_index 2 snd_pcm_status_get_tstamp 2 snd_pcm_hw_params_get_buffer_time_min 2 snd_pcm_format_name 2 snd_ctl_elem_info_get_max 1 snd_seq_port_subscribe_copy 1 snd_pcm_sw_params_set_sleep_min 1 snd_timer_info_get_resolution 1 snd_ctl_hwdep_next_device 1 snd_midi_event_init 1 snd_mixer_selem_get_id 1 snd_pcm_forward 1 snd_pcm_hw_params_test_period_size 1 snd_mixer_find_selem 1 snd_config_add 1 snd_pcm_areas_silence 1 snd_timer_poll_descriptors_count 1 snd_pcm_hw_free 1 snd_timer_params_set_ticks 1 snd_seq_poll_descriptors_revents 1 snd_seq_port_info_free 1 snd_pcm_hw_params_get_sbits 1 snd_seq_query_subscribe_set_root 1 snd_pcm_format_description 1 snd_pcm_status_dump 1 snd_pcm_sw_params_dump 1 snd_seq_get_client_info 1 snd_seq_query_subscribe_get_root 1 snd_timer_params_set_auto_start 1 snd_timer_params 1 snd_timer_open 1 snd_mixer_selem_id_set_name 1 snd_pcm_area_copy 1 snd_rawmidi_poll_descriptors_revents 1 snd_timer_read 1 snd_timer_id_malloc 1 snd_seq_port_subscribe_get_exclusive 1 snd_mixer_selem_has_common_volume 1 snd_timer_params_get_ticks 1 snd_seq_alloc_queue 1 snd_asoundlib_version 1 snd_seq_port_info_set_port_specified 1 snd_timer_close 1 snd_mixer_detach 1 snd_timer_info_malloc 1 snd_seq_client_info_set_name 1 snd_seq_port_subscribe_get_sender 1 snd_seq_query_subscribe_get_addr 1 snd_seq_query_subscribe_get_queue 1 snd_seq_port_subscribe_get_time_real 1 snd_seq_port_subscribe_set_exclusive 1 snd_config_substitute 1 snd_seq_query_subscribe_get_time_real 1 snd_timer_stop 1 snd_timer_info 1 snd_seq_query_subscribe_get_exclusive 1 snd_output_close 1 snd_seq_port_subscribe_get_time_update 1 snd_seq_port_subscribe_set_time_update 1 snd_seq_port_subscribe_get_dest 1 snd_timer_params_malloc 1 snd_seq_port_subscribe_get_queue 1 snd_config_copy 1 snd_seq_query_subscribe_get_index 1 snd_seq_set_client_info 1 snd_seq_port_subscribe_set_queue 1 snd_seq_port_info_malloc 1 snd_config_get_ascii 1 snd_seq_queue_tempo_set_ppq 1 snd_seq_query_subscribe_set_type 1 snd_pcm_hw_params_get_rate_numden 1 snd_midi_event_reset_encode 1 snd_seq_queue_tempo_sizeof 1 snd_pcm_open_lconf 1 snd_ctl_hwdep_info 1 snd_pcm_hw_params_get_subformat 1 snd_pcm_hw_params_set_periods 1 snd_seq_query_subscribe_sizeof 1 snd_mixer_elem_get_type 1 snd_seq_query_subscribe_get_time_update 1 snd_seq_query_subscribe_set_index 1 snd_config_search_alias_hooks 1 snd_card_get_longname 1 snd_config_imake_integer 1 snd_seq_query_port_subscribers 1 snd_seq_queue_tempo_set_tempo 1 snd_config_update_free_global 1 snd_hwdep_info_set_device 1 snd_seq_get_any_client_info 1 snd_pcm_dump 1 snd_seq_set_port_info 1 snd_seq_get_port_info 1 snd_mixer_selem_has_playback_switch_joined 1 snd_hwdep_poll_descriptors 1 snd_pcm_format_size 1 snd_seq_delete_port 1 snd_seq_control_queue 1 snd_seq_event_length 1 snd_config_delete 1 snd_mixer_selem_id_set_index 1 snd_pcm_hw_params_set_periods_min 1 snd_seq_port_info_set_midi_channels 1 snd_mixer_selem_has_playback_volume_joined 1 snd_seq_free_queue 1 snd_hwdep_ioctl 1 snd_pcm_hw_params_set_periods_integer 1 snd_seq_parse_address 1 snd_timer_poll_descriptors 1 snd_async_del_handler 1 snd_pcm_status_get_avail_max 1 snd_seq_get_any_port_info 1 snd_hwdep_info_get_iface 1 snd_mixer_selem_set_playback_switch 1 snd_seq_port_subscribe_set_time_real 1 snd_timer_start 1 snd_hwdep_info_get_name 1 snd_midi_event_encode 1 snd_pcm_status_get_delay 1 snd_hwdep_read 1 snd_seq_set_queue_tempo 0 snd_instr_header_get_id 0 snd_pcm_unlink 0 snd_pcm_hw_params_set_access_first 0 snd_ctl_rawmidi_prefer_subdevice 0 snd_pcm_hw_params_test_buffer_size 0 snd_pcm_info_get_subdevices_avail 0 snd_pcm_sw_params_get_silence_size 0 snd_ctl_elem_list_malloc 0 snd_output_buffer_open 0 snd_pcm_samples_to_bytes 0 snd_pcm_null_open 0 snd_pcm_hook_get_private 0 snd_pcm_status_get_htstamp 0 snd_ctl_elem_value_get_bytes 0 snd_ctl_elem_list_set_offset 0 snd_ctl_elem_value_get_name 0 snd_timer_params_set_early_event 0 snd_pcm_meter_get_rate 0 snd_config_save 0 snd_pcm_meter_get_boundary 0 snd_pcm_meter_get_bufsize 0 snd_seq_remove_events_get_queue 0 snd_pcm_mulaw_open 0 snd_hwdep_info_get_id 0 snd_hctl_elem_prev 0 snd_pcm_info_get_sync 0 snd_config_search_definition 0 snd_pcm_multi_open 0 snd_pcm_meter_search_scope 0 snd_hwdep_dsp_status_get_dsp_loaded 0 snd_ctl_event_elem_get_numid 0 snd_hctl_poll_descriptors 0 snd_pcm_mmap_writen 0 snd_mixer_elem_empty 0 snd_pcm_info_get_device 0 snd_instr_header_get_alias 0 snd_pcm_hw_params_set_period_size_max 0 snd_pcm_hw_params_set_period_size_integer 0 snd_pcm_hw_params_set_period_size_first 0 snd_pcm_hw_params_set_buffer_time_min 0 snd_pcm_hw_params_get_fifo_size 0 snd_mixer_elem_get_callback_private 0 snd_ctl_elem_info_set_id 0 snd_pcm_hw_params_set_format_last 0 snd_seq_port_info_get_timestamp_real 0 snd_pcm_hw_params_set_period_time_min 0 snd_pcm_scope_set_name 0 snd_seq_set_client_pool 0 snd_pcm_hw_params_set_periods_last 0 snd_pcm_hw_params_set_periods_first 0 snd_pcm_hw_params_set_period_time_minmax 0 snd_pcm_hw_params_set_period_time_max 0 snd_pcm_hw_params_set_period_size_minmax 0 snd_pcm_hw_params_set_period_size_min 0 snd_pcm_hw_params_set_period_time_last 0 snd_pcm_hw_params_set_period_time_first 0 snd_pcm_hw_params_set_period_time 0 snd_config_get_integer64 0 snd_pcm_hw_params_set_access_last 0 snd_pcm_meter_get_now 0 snd_pcm_hw_params_set_buffer_size_last 0 snd_pcm_hw_open_fd 0 snd_pcm_hw_params_set_buffer_size 0 snd_seq_reset_pool_input 0 snd_ctl_card_info_get_card 0 snd_pcm_hw_params_get_subformat_mask 0 snd_ctl_elem_remove 0 snd_pcm_scope_s16_get_channel_buffer 0 snd_timer_query_next_device 0 snd_pcm_hw_params_set_channels_first 0 snd_pcm_hw_params_set_buffer_time_minmax 0 snd_pcm_hw_params_set_buffer_time_max 0 snd_pcm_scope_set_ops 0 snd_pcm_hw_params_set_channels_min 0 snd_pcm_hw_params_set_channels_last 0 snd_ctl_elem_info_set_interface 0 snd_pcm_hw_params_set_buffer_size_min 0 snd_pcm_hw_params_set_buffer_size_max 0 snd_hctl_elem_get_index 0 snd_pcm_hw_params_set_buffer_time_first 0 snd_pcm_hw_params_set_buffer_time 0 snd_pcm_hw_params_test_tick_time 0 snd_pcm_hw_params_test_subformat 0 snd_seq_get_input_buffer_size 0 snd_pcm_info_copy 0 snd_dlclose 0 snd_config_get_bool 0 snd_pcm_hw_params_set_buffer_size_first 0 snd_seq_queue_timer_get_type 0 snd_ctl_elem_info_get_device 0 snd_instr_fm_convert_from_stream 0 snd_pcm_hw_open 0 snd_pcm_hw_params_test_period_time 0 snd_ctl_poll_descriptors_revents 0 snd_pcm_hook_get_pcm 0 snd_pcm_info_get_stream 0 snd_pcm_info_get_subdevice 0 snd_ctl_elem_value_set_enumerated 0 snd_pcm_info_get_subclass 0 snd_pcm_info_get_class 0 snd_ctl_elem_value_set_name 0 snd_pcm_hw_params_set_period_size_last 0 snd_pcm_hook_set_private 0 snd_pcm_hooks_open 0 snd_pcm_hw_params_set_format_mask 0 snd_pcm_hw_params_set_subformat_first 0 snd_timer_query_open_lconf 0 snd_pcm_hw_params_set_rate_minmax 0 snd_hctl_elem_get_subdevice 0 snd_instr_header_set_name 0 snd_pcm_hw_params_set_subformat_mask 0 snd_ctl_elem_info_get_index 0 snd_pcm_hw_params_set_periods_minmax 0 snd_ctl_elem_list_get_numid 0 snd_pcm_hw_params_set_rate_max 0 snd_pcm_hw_params_set_rate_last 0 snd_pcm_hw_params_set_rate_first 0 snd_pcm_format_silence_64 0 snd_ctl_elem_info_is_locked 0 snd_input_gets 0 snd_pcm_iec958_open 0 snd_pcm_name 0 snd_pcm_hw_params_test_buffer_time 0 snd_pcm_hw_params_set_tick_time_max 0 snd_ctl_elem_info_is_volatile 0 snd_pcm_hw_params_set_tick_time_first 0 snd_pcm_hw_params_set_tick_time_near 0 snd_seq_client_info_get_event_lost 0 snd_pcm_hw_params_set_tick_time_minmax 0 snd_seq_queue_tempo_set_skew 0 snd_seq_queue_timer_free 0 snd_seq_queue_timer_get_queue 0 snd_ctl_event_clear 0 snd_seq_queue_timer_copy 0 snd_seq_queue_timer_set_id 0 snd_seq_queue_timer_set_resolution 0 snd_seq_queue_timer_get_resolution 0 snd_seq_port_info_copy 0 snd_seq_queue_status_get_status 0 snd_seq_queue_tempo_copy 0 snd_seq_queue_tempo_free 0 snd_seq_queue_status_get_tick_time 0 snd_seq_queue_status_malloc 0 snd_seq_queue_tempo_get_skew_base 0 snd_seq_queue_tempo_get_tempo 0 snd_seq_queue_tempo_get_ppq 0 snd_seq_queue_tempo_get_skew 0 snd_seq_remove_events_get_time 0 snd_seq_remove_events_set_condition 0 snd_seq_remove_events_set_dest 0 snd_seq_remove_events_malloc 0 snd_config_searchva 0 snd_seq_remove_events_set_tag 0 snd_timer_info_get_ticks 0 snd_seq_remove_events_set_event_type 0 snd_seq_type 0 snd_seq_queue_timer_set_type 0 snd_seq_remove_events_free 0 snd_seq_queue_timer_sizeof 0 snd_seq_remove_events 0 snd_hwdep_dsp_status_malloc 0 snd_seq_remove_events_get_event_type 0 snd_seq_remove_events_get_tag 0 snd_seq_remove_events_get_condition 0 snd_ctl_event_elem_get_index 0 snd_pcm_format_mask_copy 0 snd_instr_iwffff_open 0 snd_seq_query_named_queue 0 snd_config_set_string 0 snd_config_test_id 0 snd_seq_query_subscribe_get_port 0 snd_mixer_poll_descriptors_revents 0 snd_seq_query_subscribe_get_client 0 snd_seq_query_subscribe_get_num_subs 0 snd_seq_port_info_get_synth_voices 0 snd_seq_port_info_set_addr 0 snd_seq_port_info_set_midi_voices 0 snd_seq_port_info_get_timestamp_queue 0 snd_seq_port_info_get_timestamping 0 snd_seq_client_pool_get_output_room 0 snd_seq_port_info_set_timestamp_real 0 snd_timer_params_get_queue_size 0 snd_seq_port_info_set_synth_voices 0 snd_seq_queue_info_get_queue 0 snd_pcm_access_mask_empty 0 snd_seq_queue_info_set_owner 0 snd_seq_queue_info_malloc 0 snd_seq_queue_info_set_flags 0 snd_seq_queue_status_free 0 snd_seq_queue_status_get_events 0 snd_seq_queue_info_sizeof 0 snd_instr_fm_convert_to_stream 0 snd_seq_query_subscribe_get_type 0 snd_rawmidi_params_sizeof 0 snd_seq_queue_info_copy 0 snd_seq_extract_output 0 snd_seq_query_subscribe_set_client 0 snd_seq_queue_info_get_name 0 snd_pcm_dsnoop_open 0 snd_seq_queue_info_get_flags 0 snd_seq_queue_info_get_locked 0 snd_timer_open_lconf 0 snd_timer_params_free 0 snd_timer_info_sizeof 0 snd_timer_name 0 snd_timer_params_set_exclusive 0 snd_timer_params_set_queue_size 0 snd_timer_params_get_auto_start 0 snd_timer_params_get_early_event 0 snd_timer_id_set_card 0 snd_timer_id_set_subdevice 0 snd_timer_id_sizeof 0 snd_timer_id_set_class 0 snd_timer_id_set_sclass 0 snd_timer_info_get_card 0 snd_timer_info_get_name 0 snd_instr_simple_convert_to_stream 0 snd_rawmidi_status_get_avail 0 snd_instr_iwffff_load 0 snd_timer_status_get_resolution 0 snd_config_imake_string 0 snd_timer_status_get_overrun 0 snd_timer_status_get_queue 0 snd_timer_type 0 snd_user_file 0 snd_timer_status_malloc 0 snd_timer_status_sizeof 0 snd_timer_params_sizeof 0 snd_timer_query_params 0 snd_timer_query_status 0 snd_timer_poll_descriptors_revents 0 snd_timer_query_close 0 snd_rawmidi_open_lconf 0 snd_timer_status_free 0 snd_seq_port_info_set_timestamp_queue 0 snd_timer_status 0 snd_seq_set_input_buffer_size 0 snd_ctl_elem_value_get_interface 0 snd_seq_system_info 0 snd_seq_set_queue_info 0 snd_timer_id_set_device 0 snd_seq_system_info_get_clients 0 snd_ctl_elem_value_set_device 0 snd_seq_system_info_free 0 snd_seq_system_info_get_channels 0 snd_seq_remove_events_set_time 0 snd_seq_set_bit 0 snd_seq_set_client_event_filter 0 snd_seq_remove_events_sizeof 0 snd_seq_reset_pool_output 0 snd_ctl_elem_value_copy 0 snd_seq_set_client_pool_output_room 0 snd_pcm_hw_params_set_format_first 0 snd_hctl_poll_descriptors_count 0 snd_spcm_init_duplex 0 snd_seq_remove_events_copy 0 snd_pcm_sw_params_get_start_threshold 0 snd_spcm_init_get_params 0 snd_ctl_elem_info_get_step64 0 snd_timer_id_get_device 0 snd_timer_id_get_sclass 0 snd_timer_id_free 0 snd_timer_id_get_class 0 snd_seq_system_info_get_cur_queues 0 snd_pcm_dshare_open 0 snd_seq_system_info_sizeof 0 snd_seq_system_info_get_ports 0 snd_seq_system_info_get_queues 0 snd_seq_port_info_get_port_specified 0 snd_shm_area_share 0 snd_seq_remove_events_set_queue 0 snd_seq_client_pool_set_input_pool 0 snd_ctl_elem_info_set_name 0 snd_pcm_tstamp_mode_name 0 snd_pcm_type_name 0 snd_async_add_ctl_handler 0 snd_timer_query_info 0 snd_rawmidi_drain 0 snd_dlopen 0 snd_ctl_elem_value_set_byte 0 snd_ctl_elem_list_get_id 0 snd_pcm_sw_params_get_avail_min 0 snd_pcm_sw_params_get_sleep_min 0 snd_pcm_sw_params_get_stop_threshold 0 snd_timer_params_copy 0 snd_pcm_sw_params_get_silence_threshold 0 snd_ctl_elem_iface_name 0 snd_config_hook_load_for_all_cards 0 snd_pcm_sw_params_get_tstamp_mode 0 snd_pcm_sw_params_get_xfer_align 0 snd_mixer_get_count 0 snd_rawmidi_name 0 snd_timer_status_copy 0 snd_mixer_get_callback_private 0 _snd_pcm_file_open 0 snd_rawmidi_params_get_avail_min 0 snd_shm_area_create 0 snd_rawmidi_params_copy 0 snd_rawmidi_params_current 0 snd_input_ungetc 0 snd_rawmidi_info_get_card 0 snd_rawmidi_info_get_device 0 snd_rawmidi_info 0 snd_ctl_elem_value_set_numid 0 snd_rawmidi_info_get_subdevice_name 0 snd_rawmidi_info_get_subdevices_avail 0 snd_pcm_status_get_overrange 0 snd_rawmidi_info_get_stream 0 snd_pcm_scope_get_name 0 snd_pcm_scope_s16_open 0 snd_pcm_scope_set_callback_private 0 snd_pcm_scope_malloc 0 snd_seq_client_pool_get_input_free 0 snd_pcm_shm_open 0 snd_ctl_elem_value_get_index 0 snd_pcm_hw_params_set_channels_minmax 0 snd_seq_queue_status_sizeof 0 snd_rawmidi_info_sizeof 0 snd_seq_remove_events_get_channel 0 snd_pcm_reset 0 snd_hctl_set_compare 0 snd_seq_query_subscribe_malloc 0 snd_pcm_route_open 0 snd_pcm_scope_get_callback_private 0 snd_pcm_route_determine_ttable 0 snd_pcm_route_load_ttable 0 snd_pcm_subformat_description 0 snd_pcm_subformat_mask_free 0 snd_timer_status_get_timestamp 0 snd_pcm_subformat_mask_any 0 snd_pcm_subformat_mask_copy 0 snd_pcm_subformat_mask_test 0 snd_pcm_sw_params_copy 0 snd_pcm_subformat_mask_set 0 snd_pcm_area_silence 0 snd_pcm_start_mode_name 0 snd_timer_params_get_exclusive 0 snd_mixer_poll_descriptors_count 0 snd_pcm_status_copy 0 snd_sctl_free 0 snd_pcm_stream 0 snd_ctl_elem_info_get_name 0 snd_pcm_status_get_trigger_htstamp 0 _snd_pcm_hw_open 0 snd_pcm_subformat_mask_none 0 snd_seq_queue_timer_get_id 0 snd_seq_drop_output 0 snd_seq_drop_output_buffer 0 snd_seq_event_types 0 snd_hctl_elem_get_interface 0 snd_seq_event_output_pending 0 snd_seq_event_types 0 snd_seq_client_pool_get_output_pool 0 snd_seq_client_pool_set_output_pool 0 snd_ctl_elem_read 0 snd_hctl_async 0 snd_seq_drop_input_buffer 0 snd_ctl_elem_info_sizeof 0 snd_seq_drop_input 0 snd_seq_client_pool_sizeof 0 snd_instr_header_copy 0 snd_seq_name 0 snd_pcm_subformat_name 0 snd_seq_queue_timer_malloc 0 snd_instr_fm_free 0 snd_seq_query_subscribe_copy 0 snd_seq_port_info_get_midi_voices 0 snd_seq_port_info_get_read_use 0 snd_mixer_elem_detach 0 snd_output_buffer_string 0 snd_seq_set_output_buffer_size 0 snd_seq_get_output_buffer_size 0 snd_seq_get_port_subscription 0 snd_seq_get_bit 0 snd_func_private_card_driver 0 snd_seq_get_queue_timer 0 snd_mixer_elem_remove 0 snd_seq_get_queue_status 0 snd_hwdep_dsp_image_free 0 snd_rawmidi_status_free 0 snd_rawmidi_status_get_xruns 0 snd_rawmidi_status_malloc 0 snd_timer_info_free 0 snd_rawmidi_status_get_tstamp 0 snd_sctl_build 0 snd_sctl_install 0 snd_rawmidi_stream 0 snd_rawmidi_type 0 snd_rawmidi_params_get_buffer_size 0 snd_rawmidi_params_set_buffer_size 0 snd_rawmidi_params_set_no_active_sensing 0 snd_rawmidi_params_get_no_active_sensing 0 snd_rawmidi_params_set_avail_min 0 snd_rawmidi_status 0 snd_rawmidi_status_copy 0 snd_seq_query_subscribe_set_port 0 snd_timer_query_open 0 snd_seq_client_info_set_broadcast_filter 0 snd_timer_status_get_lost 0 snd_seq_client_pool_copy 0 snd_seq_client_info_set_error_bounce 0 snd_seq_client_info_set_event_filter 0 snd_seq_client_pool_get_input_pool 0 snd_seq_client_pool_get_output_free 0 snd_seq_client_pool_free 0 snd_seq_client_pool_get_client 0 snd_sctl_remove 0 snd_seq_queue_info_free 0 snd_seq_client_info_free 0 snd_ctl_elem_id_get_subdevice 0 snd_seq_change_bit 0 snd_rawmidi_info_get_flags 0 snd_ctl_elem_info_is_indirect 0 snd_timer_params_set_filter 0 snd_pcm_format_silence_16 0 snd_ctl_event_copy 0 snd_ctl_event_elem_get_device 0 snd_ctl_elem_value_sizeof 0 snd_ctl_elem_write 0 snd_seq_remove_events_get_dest 0 snd_ctl_event_elem_get_name 0 snd_ctl_event_elem_get_subdevice 0 snd_ctl_event_elem_get_interface 0 snd_ctl_event_elem_get_mask 0 snd_config_imake_real 0 snd_ctl_elem_value_set_iec958 0 snd_seq_system_info_get_cur_clients 0 snd_hctl_nonblock 0 snd_seq_queue_status_get_queue 0 snd_config_expand 0 snd_ctl_elem_value_set_subdevice 0 snd_ctl_elem_value_set_integer64 0 snd_ctl_elem_value_set_interface 0 snd_pcm_hw_params_set_periods_max 0 snd_ctl_wait 0 snd_seq_queue_tempo_malloc 0 snd_pcm_hook_add 0 snd_ctl_set_power_state 0 snd_dlsym 0 snd_func_card_id 0 snd_hwdep_dsp_status_copy 0 snd_pcm_hw_params_set_rate_min 0 snd_ctl_elem_list_get_subdevice 0 snd_ctl_event_sizeof 0 snd_ctl_event_type_name 0 snd_ctl_event_get_type 0 snd_ctl_elem_id_set_subdevice 0 snd_mixer_selem_set_enum_item 0 snd_ctl_pcm_prefer_subdevice 0 snd_ctl_poll_descriptors 0 snd_ctl_get_power_state 0 snd_ctl_open_lconf 0 snd_midi_event_no_status 0 snd_ctl_elem_list_get_index 0 snd_ctl_elem_list_get_interface 0 snd_ctl_elem_list_get_count 0 snd_ctl_elem_list_get_device 0 snd_ctl_elem_list_get_name 0 snd_ctl_elem_list_get_used 0 snd_hctl_get_count 0 snd_func_refer 0 snd_func_card_driver 0 snd_timer_info_get_id 0 snd_ctl_elem_info_set_numid 0 snd_ctl_elem_id_set_index 0 snd_ctl_elem_info_set_index 0 snd_ctl_elem_list_alloc_space 0 snd_pcm_hw_params_set_buffer_time_last 0 snd_ctl_elem_list_free_space 0 snd_ctl_elem_list_clear 0 snd_ctl_elem_list_copy 0 snd_ctl_elem_list_sizeof 0 snd_ctl_elem_value_get_enumerated 0 snd_ctl_elem_value_get_id 0 snd_timer_params_get_filter 0 snd_ctl_elem_value_get_device 0 snd_ctl_elem_value_get_integer64 0 snd_ctl_elem_value_get_subdevice 0 snd_ctl_elem_value_set_boolean 0 snd_seq_client_info_copy 0 snd_ctl_elem_value_get_numid 0 snd_ctl_elem_set_bytes 0 snd_hwdep_poll_descriptors_revents 0 snd_ctl_elem_lock 0 snd_seq_client_pool_set_output_room 0 snd_ctl_elem_type_name 0 snd_seq_set_client_pool_input 0 snd_ctl_event_malloc 0 snd_ctl_elem_unlock 0 snd_seq_queue_status_get_real_time 0 snd_input_stdio_open 0 snd_hwdep_name 0 snd_hwdep_dsp_image_set_length 0 snd_hwdep_info_malloc 0 snd_hwdep_open_lconf 0 snd_pcm_sw_params_get_xrun_mode 0 snd_input_buffer_open 0 snd_mixer_selem_has_capture_switch_exclusive 0 snd_rawmidi_info_copy 0 snd_pcm_mmap_readn 0 snd_hwdep_dsp_status_get_id 0 snd_hwdep_dsp_status_free 0 snd_hwdep_dsp_status_get_chip_ready 0 snd_hwdep_dsp_status_get_num_dsps 0 snd_hwdep_info_free 0 snd_hwdep_info_get_card 0 snd_hwdep_dsp_status_get_version 0 snd_hwdep_dsp_status_sizeof 0 snd_input_close 0 snd_pcm_hw_params_set_subformat 0 snd_instr_header_get_name 0 snd_instr_header_get_follow_alias 0 snd_instr_header_get_format 0 snd_instr_header_get_type 0 snd_instr_header_set_cmd 0 snd_config_make_compound 0 snd_instr_header_set_alias 0 snd_instr_header_set_cluster 0 snd_pcm_hw_params_test_periods 0 snd_seq_queue_status_copy 0 snd_hctl_first_elem 0 snd_input_scanf 0 snd_seq_nonblock 0 snd_pcm_access_mask_malloc 0 snd_instr_header_get_data 0 snd_instr_header_free 0 snd_instr_header_get_cluster 0 snd_func_concat 0 snd_pcm_subformat_mask_empty 0 snd_hctl_elem_next 0 snd_hctl_elem_get_name 0 snd_hctl_elem_get_numid 0 snd_hwdep_dsp_load 0 snd_hctl_handle_events 0 snd_hctl_get_callback_private 0 snd_hctl_elem_set_callback 0 snd_hctl_elem_set_callback_private 0 snd_ctl_elem_id_get_numid 0 snd_hctl_compare_fast 0 snd_func_datadir 0 snd_func_igetenv 0 snd_hctl_ctl 0 snd_mixer_selem_get_enum_item 0 snd_pcm_rate_open 0 snd_hctl_elem_get_hctl 0 snd_hctl_elem_get_id 0 snd_hctl_last_elem 0 snd_hwdep_dsp_image_get_index 0 snd_hwdep_dsp_image_get_length 0 snd_seq_get_queue_tempo 0 snd_hwdep_dsp_image_get_image 0 snd_hwdep_dsp_image_malloc 0 snd_hwdep_dsp_image_set_name 0 snd_hwdep_dsp_image_sizeof 0 snd_hwdep_dsp_image_set_image 0 snd_hwdep_dsp_image_set_index 0 snd_hctl_open_ctl 0 snd_config_make 0 snd_pcm_access_mask_reset 0 snd_hctl_name 0 snd_hctl_poll_descriptors_revents 0 snd_hctl_wait 0 snd_hwdep_dsp_image_copy 0 snd_hctl_set_callback 0 snd_card_get_index 0 _snd_pcm_route_open 0 _snd_pcm_share_open 0 _snd_pcm_mulaw_open 0 _snd_pcm_multi_open 0 _snd_pcm_shm_open 0 snd_pcm_hw_params_set_tick_time 0 snd_seq_set_queue_usage 0 snd_config_set_pointer 0 snd_ctl_elem_info_set_item 0 _snd_pcm_hooks_open 0 snd_hwdep_type 0 snd_seq_system_info_copy 0 _snd_pcm_hook_ctl_elems_install 0 snd_hwdep_nonblock 0 _snd_pcm_linear_open 0 snd_ctl_type 0 _snd_pcm_iec958_open 0 snd_ctl_elem_info_set_device 0 snd_async_handler_get_ctl 0 snd_pcm_info_get_card 0 snd_config_get_ctl_iface 0 snd_config_delete_compound_members 0 snd_config_evaluate 0 snd_config_get_bool_ascii 0 snd_config_get_ireal 0 snd_ctl_card_info_get_longname 0 snd_config_get_ctl_iface_ascii 0 snd_ctl_card_info_clear 0 snd_rawmidi_params_free 0 snd_hctl_set_callback_private 0 snd_async_handler_get_fd 0 snd_async_handler_get_signo 0 snd_seq_queue_info_set_locked 0 snd_output_printf 0 snd_config_make_pointer 0 snd_card_load 0 snd_timer_continue 0 snd_mixer_elem_value 0 snd_ctl_subscribe_events 0 snd_timer_nonblock 0 snd_seq_queue_tempo_get_queue 0 snd_ctl_elem_info_get_subdevice 0 snd_timer_id_get_subdevice 0 snd_instr_header_get_len 0 snd_pcm_info_get_subdevice_name 0 snd_async_handler_get_pcm 0 snd_seq_get_client_pool 0 snd_hwdep_info_copy 0 snd_seq_set_queue_timer 0 snd_config_set_id 0 snd_hctl_elem_get_device 0 snd_pcm_file_open 0 snd_instr_header_malloc 0 snd_seq_open_lconf 0 snd_ctl_elem_id_get_device 0 snd_async_add_handler 0 snd_mixer_selem_has_capture_switch_joined 0 snd_timer_id_get_card 0 snd_seq_sync_output_queue 0 snd_ctl_nonblock 0 snd_hctl_elem_get_callback_private 0 _snd_pcm_alaw_open 0 _snd_pcm_dmix_open 0 _snd_pcm_dshare_open 0 _snd_pcm_asym_open 0 _snd_pcm_copy_open 0 snd_seq_client_info_get_num_ports 0 snd_pcm_hw_params_set_tick_time_min 0 snd_config_searchv 0 snd_seq_event_output_buffer 0 snd_ctl_poll_descriptors_count 0 snd_ctl_elem_value_set_index 0 snd_pcm_meter_add_scope 0 _snd_pcm_null_open 0 snd_mixer_selem_get_enum_items 0 snd_seq_port_info_set_timestamping 0 snd_ctl_elem_id_set_numid 0 snd_seq_alloc_named_queue 0 snd_ctl_elem_id_set_device 0 snd_ctl_elem_value_get_boolean 0 snd_ctl_elem_info 0 snd_seq_port_info_get_write_use 0 snd_pcm_format_float 0 snd_hwdep_write 0 snd_hwdep_info_get_device 0 snd_ctl_read 0 snd_rawmidi_info_get_subdevice 0 snd_ctl_elem_list 0 snd_ctl_elem_id_copy 0 snd_ctl_elem_id_get_name 0 snd_seq_client_pool_malloc 0 snd_ctl_elem_id_get_index 0 snd_ctl_elem_id_get_interface 0 snd_ctl_elem_info_copy 0 snd_ctl_elem_info_get_owner 0 snd_ctl_elem_info_get_type 0 snd_seq_client_info_get_error_bounce 0 snd_ctl_elem_info_get_numid 0 snd_ctl_elem_info_is_inactive 0 snd_ctl_elem_info_is_writable 0 _snd_pcm_ladspa_open 0 snd_ctl_elem_info_is_owner 0 snd_pcm_hw_params_set_tick_time_last 0 snd_ctl_elem_info_get_id 0 snd_ctl_elem_info_get_interface 0 snd_ctl_elem_info_get_dimension 0 snd_ctl_elem_info_get_dimensions 0 snd_ctl_elem_info_get_item_name 0 snd_ctl_elem_info_get_max64 0 snd_ctl_elem_info_get_min64 0 snd_ctl_elem_info_get_items 0 snd_mixer_last_elem 0 snd_config_get_pointer 0 snd_func_getenv 0 snd_instr_header_set_follow_alias 0 snd_config_load 0 snd_config_load_override 0 snd_config_make_integer 0 snd_config_make_string 0 snd_config_remove 0 snd_config_make_integer64 0 snd_instr_iwffff_convert_from_stream 0 snd_config_hook_load 0 snd_pcm_meter_get_channels 0 snd_config_get_real 0 snd_config_get_type_ascii 0 snd_config_imake_integer64 0 snd_pcm_subformat_mask_reset 0 snd_pcm_subformat_mask_malloc 0 snd_config_imake_pointer 0 snd_ctl_elem_value_set_id 0 snd_spcm_init 0 snd_config_top 0 snd_config_update_free 0 snd_config_set_integer64 0 snd_config_set_real 0 snd_seq_set_client_pool_output 0 snd_ctl_card_info_copy 0 snd_ctl_card_info_get_driver 0 snd_config_update_r 0 snd_pcm_hw_params_set_access_mask 0 snd_config_searcha 0 snd_config_searcha_hooks 0 snd_config_search_alias 0 snd_config_search_hooks 0 snd_seq_remove_events_set_channel 0 snd_input_getc 0 snd_config_set_integer 0 snd_config_searchva_hooks 0 snd_pcm_ladspa_open 0 snd_mixer_selem_id_copy 0 snd_pcm_share_open 0 snd_pcm_hw_params_set_subformat_last 0 snd_mixer_elem_prev 0 snd_mixer_selem_id_malloc 0 snd_mixer_selem_id_free 0 snd_ctl_elem_info_set_subdevice 0 snd_seq_client_info_malloc 0 snd_mixer_selem_get_index 0 snd_mixer_selem_has_common_switch 0 snd_mixer_selem_has_capture_volume_joined 0 snd_hwdep_poll_descriptors_count 0 snd_mixer_set_compare 0 snd_mixer_set_callback_private 0 snd_mixer_selem_set_playback_volume_range 0 snd_output_flush 0 snd_seq_port_info_get_midi_channels 0 snd_mixer_wait 0 snd_func_private_string 0 snd_mixer_selem_set_capture_switch 0 snd_mixer_selem_is_enumerated 0 snd_ctl_event_free 0 snd_input_stdio_attach 0 snd_mixer_selem_set_capture_volume_range 0 snd_mixer_selem_get_enum_item_name 0 snd_pcm_format_mask_none 0 snd_mixer_elem_attach 0 snd_mixer_elem_add 0 snd_seq_get_queue_usage 0 snd_seq_client_info_get_event_filter 0 snd_mixer_elem_info 0 snd_seq_queue_tempo_set_skew_base 0 snd_mixer_class_register 0 snd_pcm_dump_sw_setup 0 snd_mixer_class_unregister 0 snd_pcm_hw_params_current 0 snd_pcm_hw_params_set_buffer_size_minmax 0 snd_pcm_sw_params_get_start_mode 0 snd_shm_area_destroy 0 snd_pcm_hw_params_get_min_align 0 snd_ctl_elem_list_free 0 snd_rawmidi_status_sizeof 0 snd_mixer_selem_get_capture_group 0 snd_pcm_linear_open 0 snd_mixer_elem_set_callback_private 0 snd_mixer_elem_set_callback 0 snd_mixer_poll_descriptors 0 snd_mixer_handle_events 0 snd_mixer_free 0 snd_pcm_sw_params_set_start_mode 0 snd_hwdep_dsp_status 0 snd_seq_create_queue 0 snd_pcm_dump_setup 0 snd_ctl_card_info_get_components 0 snd_pcm_hw_params_set_channels_max 0 snd_ctl_elem_value_get_iec958 0 snd_seq_system_info_malloc 0 _snd_pcm_rate_open 0 snd_output_puts 0 snd_pcm_dump_hw_setup 0 snd_seq_queue_info_get_owner 0 snd_seq_get_queue_info 0 snd_pcm_stream_name 0 snd_pcm_format_silence 0 snd_pcm_xrun_mode_name 0 snd_pcm_format_value 0 snd_pcm_format_unsigned 0 snd_pcm_format_silence_32 0 snd_pcm_format_mask_any 0 snd_pcm_format_little_endian 0 snd_ctl_elem_id_sizeof 0 snd_pcm_format_mask_set 0 snd_pcm_format_mask_reset 0 snd_pcm_format_mask_empty 0 snd_timer_id_copy 0 snd_pcm_access_mask_none 0 snd_instr_header_get_cmd 0 snd_pcm_access_mask_free 0 snd_pcm_adpcm_open 0 snd_ctl_event_elem_get_id 0 snd_pcm_access_mask_set 0 snd_output_vprintf 0 snd_rawmidi_drop 0 snd_output_putc 0 snd_seq_queue_info_set_name 0 snd_pcm_access_mask_copy 0 snd_pcm_access_mask_any 0 snd_pcm_copy_open 0 snd_pcm_bytes_to_samples 0 _snd_pcm_adpcm_open 0 snd_seq_client_info_get_broadcast_filter 0 snd_pcm_dmix_open 0 snd_ctl_elem_value_get_byte 0 snd_pcm_alaw_open 0 snd_output_stdio_open 0 snd_rawmidi_params_malloc 0 snd_pcm_areas_copy 0 snd_pcm_subformat_mask_sizeof 0 snd_hwdep_dsp_image_get_name 0 snd_midi_event_reset_decode 0 snd_mixer_set_callback 0 snd_instr_iwffff_close 0 snd_instr_simple_convert_from_stream 0 _snd_pcm_dsnoop_open 0 snd_config_make_real 0 snd_instr_header_set_len 0 snd_instr_header_set_id 0 snd_instr_header_set_format 0 snd_instr_header_sizeof 0 snd_instr_header_set_type 0 snd_midi_event_resize_buffer 0 snd_instr_iwffff_open_rom_file 0 snd_instr_iwffff_open_rom 0 snd_pcm_hook_remove 0 snd_instr_simple_free 0 snd_timer_info_copy 0 snd_lib_error 0 snd_rawmidi_params 0 snd_instr_iwffff_convert_to_stream 0 snd_timer_info_is_slave 0 snd_seq_query_subscribe_free 0 snd_instr_iwffff_free 0 snd_config_set_ascii 0 snd_pcm_direct_shm_discard 0 snd_pcm_direct_check_interleave 0 snd_pcm_plugin_undo_read_generic 0 snd_pcm_direct_server_discard 0 snd_pcm_hw_param_get 0 snd_pcm_plugin_undo_write_generic 0 __snd_pcm_forward 0 snd_rawmidi_hw_ops 0 __snd_pcm_sw_params_get_tstamp_mode 0 snd_pcm_direct_initialize_slave 0 snd_pcm_hw_param_refine_multiple 0 snd_interval_refine_last 0 snd_pcm_direct_hw_refine 0 snd_pcm_direct_poll_revents 0 snd_pcm_direct_server_create 0 _snd_hwdep_hw_open 0 snd_interval_mulkdiv 0 snd_rawmidi_virtual_open 0 snd_pcm_hw_param_set_max 0 snd_pcm_hw_param_set_mask 0 _snd_func_private_card_driver_dlsym_config_evaluate_001 0 __snd_hwdep_hw_open_dlsym_hwdep_001 0 snd_pcm_direct_semaphore_create_or_connect 0 snd_pcm_direct_client_discard 0 snd_rawmidi_virtual_ops 0 _snd_timer_query_hw_open 0 __snd_pcm_multi_open_dlsym_pcm_001 0 __snd_pcm_hooks_open_dlsym_pcm_001 0 snd_pcm_direct_shm_create_or_connect 0 __snd_pcm_hook_ctl_elems_install_dlsym_pcm_001 0 snd_pcm_hw_param_set_last 0 snd_atomic_read_wait 0 snd_pcm_hw_param_set_near 0 snd_pcm_slave_conf 0 _snd_pcm_boundary 0 __snd_pcm_adpcm_open_dlsym_pcm_001 0 snd_pcm_direct_initialize_poll_fd 0 __snd_ctl_shm_open_dlsym_control_001 0 __snd_timer_params_set_filter 0 snd_pcm_open_slave 0 __snd_pcm_asym_open_dlsym_pcm_001 0 _snd_pcm_hw_param_set_max 0 __snd_pcm_alaw_open_dlsym_pcm_001 0 __snd_ctl_hw_open_dlsym_control_001 0 snd_interval_add 0 snd_pcm_hw_param_get_min 0 snd_interval_div 0 snd_hwdep_hw_open 0 snd_timer_query_hw_open 0 snd_pcm_adpcm_decode 0 __snd_pcm_sw_params_get_silence_threshold 0 snd_pcm_new 0 _snd_pcm_mmap_hw_ptr 0 __snd_pcm_copy_open_dlsym_pcm_001 0 snd_pcm_direct_async 0 __snd_pcm_hw_open_dlsym_pcm_001 0 __snd_timer_query_info 0 snd_pcm_plugin_fast_ops 0 snd_pcm_direct_client_connect 0 __snd_pcm_shm_open_dlsym_pcm_001 0 snd_pcm_plug_open 0 snd_pcm_areas_from_buf 0 _snd_pcm_hw_param_set_interval 0 snd_pcm_linear_get_index 0 snd_pcm_areas_from_bufs 0 snd_pcm_async 0 __snd_pcm_dmix_open_dlsym_pcm_001 0 snd_pcm_read_mmap 0 snd_pcm_channel_info_shm 0 _snd_rawmidi_virtual_open 0 _snd_ctl_poll_descriptor 0 __snd_timer_query_status 0 __snd_timer_query_params 0 _snd_ctl_hw_open 0 _snd_config_hook_load_dlsym_config_hook_001 0 snd_pcm_direct_mmap 0 snd_pcm_set_appl_ptr 0 __snd_timer_query_hw_open_dlsym_timer_query_001 0 snd_timer_hw_open 0 _snd_func_private_string_dlsym_config_evaluate_001 0 _snd_func_datadir_dlsym_config_evaluate_001 0 __snd_pcm_mulaw_open_dlsym_pcm_001 0 _snd_func_private_pcm_subdevice_dlsym_config_evaluate_001 0 _snd_func_pcm_id_dlsym_config_evaluate_001 0 __snd_pcm_null_open_dlsym_pcm_001 0 __snd_pcm_plug_open_dlsym_pcm_001 0 snd_shm_area_destructor 0 snd_pcm_linear_get32_index 0 snd_pcm_direct_info 0 __snd_pcm_sw_params_get_silence_size 0 __snd_pcm_sw_params_get_start_threshold 0 __snd_pcm_sw_params_get_sleep_min 0 __snd_pcm_share_open_dlsym_pcm_001 0 __snd_timer_params_get_exclusive 0 __snd_pcm_sw_params_get_avail_min 0 __snd_pcm_status_get_trigger_htstamp 0 __snd_timer_params_set_exclusive 0 __snd_timer_hw_open_dlsym_timer_001 0 snd_pcm_mulaw_encode 0 snd_pcm_alaw_decode 0 snd_pcm_hw_param_always_eq 0 snd_pcm_hw_refine 0 __snd_pcm_sw_params_get_stop_threshold 0 __snd_rawmidi_hw_open_dlsym_rawmidi_001 0 snd_pcm_conf_generic_id 0 snd_pcm_hw_param_never_eq 0 _snd_seq_hw_open 0 snd_pcm_hw_param_get_max 0 snd_pcm_hw_param_name 0 snd_pcm_mmap_appl_forward 0 _snd_pcm_hw_params_refine 0 _snd_pcm_hw_param_refine 0 snd_pcm_hw_param_get_mask 0 _snd_pcm_hw_param_set_minmax 0 snd_pcm_hw_param_set_integer 0 snd_pcm_hw_param_set 0 snd_pcm_set_hw_ptr 0 snd_pcm_hw_param_set_first 0 _snd_rawmidi_hw_open 0 _snd_pcm_plug_open 0 __snd_seq_hw_open_dlsym_seq_001 0 snd_pcm_direct_sw_params 0 _snd_pcm_poll_descriptor 0 __snd_pcm_ladspa_open_dlsym_pcm_001 0 _snd_func_getenv_dlsym_config_evaluate_001 0 __snd_pcm_hw_params_set_access_first 0 snd_pcm_hw_param_dump 0 __snd_pcm_meter_open_dlsym_pcm_001 0 _snd_func_refer_dlsym_config_evaluate_001 0 snd_pcm_read_areas 0 __snd_pcm_route_open_dlsym_pcm_001 0 __snd_pcm_iec958_open_dlsym_pcm_001 0 __snd_pcm_dshare_open_dlsym_pcm_001 0 snd_pcm_adpcm_encode 0 _snd_pcm_hw_params_any 0 _snd_pcm_hw_param_set_min 0 _snd_pcm_hw_param_set_empty 0 _snd_pcm_hw_param_set 0 _snd_pcm_hw_param_set_mask 0 snd_pcm_hw_param_empty 0 snd_pcm_plugin_init 0 _snd_func_igetenv_dlsym_config_evaluate_001 0 snd_is_local 0 _snd_config_hook_load_for_all_cards_dlsym_config_hook_001 0 snd_interval_refine_min 0 snd_pcm_munmap 0 snd_interval_refine_set 0 snd_pcm_hw_param_set_minmax 0 snd_rawmidi_hw_open 0 snd_receive_fd 0 snd_pcm_direct_parse_bindings 0 snd_ctl_hw_ops 0 snd_ctl_hw_open 0 __snd_pcm_rate_open_dlsym_pcm_001 0 __snd_ctl_elem_info_get_dimensions 0 _snd_ctl_shm_open 0 snd_interval_refine_max 0 snd_pcm_meter_open 0 __snd_rawmidi_virtual_open_dlsym_rawmidi_001 0 snd_pcm_hw_param_get_interval 0 snd_pcm_write_areas 0 snd_pcm_direct_hw_params 0 snd_ctl_new 0 _snd_func_card_id_dlsym_config_evaluate_001 0 _snd_func_card_driver_dlsym_config_evaluate_001 0 snd_pcm_link_hw_ptr 0 snd_pcm_unlink_hw_ptr 0 __snd_ctl_elem_info_get_dimension 0 __snd_pcm_sw_params_get_xfer_align 0 snd_pcm_linear_convert_index 0 snd_pcm_direct_hw_free 0 __snd_timer_params_get_filter 0 snd_interval_sub 0 snd_ctl_async 0 _snd_timer_hw_open 0 snd_pcm_linear_getput 0 snd_pcm_unlink_appl_ptr 0 snd_pcm_linear_put_index 0 snd_pcm_direct_channel_info 0 snd_seq_create_event 0 __snd_pcm_status_get_htstamp 0 snd_send_fd 0 snd_pcm_linear_put32_index 0 snd_interval_muldiv 0 snd_pcm_write_mmap 0 snd_pcm_linear_convert 0 snd_pcm_hw_fast_tstamp 0 snd_pcm_hw_refine_soft 0 snd_pcm_hw_param_refine_near 0 snd_pcm_mmap_hw_forward 0 snd_pcm_direct_munmap 0 snd_determine_driver 0 snd_interval_refine 0 snd_pcm_free 0 snd_pcm_link_appl_ptr 0 snd_pcm_hw_params_slave 0 snd_pcm_hw_param_set_min 0 snd_pcm_hw_refine_slave 0 snd_pcm_mmap_hw_backward 0 snd_interval_refine_first 0 snd_interval_mul 0 snd_pcm_hw_param_any 0 snd_pcm_direct_nonblock 0 snd_func_private_pcm_subdevice 0 snd_func_pcm_id 0 __snd_pcm_type_name 0 snd_pcm_mulaw_decode 0 snd_interval_print 0 __snd_pcm_linear_open_dlsym_pcm_001 0 snd_interval_muldivk 0 snd_pcm_alaw_encode 0 __snd_pcm_dsnoop_open_dlsym_pcm_001 0 snd_seq_hw_open 0 _snd_func_concat_dlsym_config_evaluate_001 0 _snd_pcm_meter_open 0 snd_seq_hw_ops 0 snd_ctl_shm_ops 0 snd_pcm_mmap 0 __snd_pcm_file_open_dlsym_pcm_001 0 snd_pcm_mmap_appl_backward 0 snd_ctl_shm_open 0 snd_timer_async 0 snd_pcm_lfloat_open 0 _snd_pcm_lfloat_open 0 snd_pcm_lfloat_convert_integer_float 0 snd_pcm_lfloat_convert_float_integer 0 snd_pcm_lfloat_put_s32_index 0 __snd_pcm_lfloat_open_dlsym_pcm_001 0 snd_pcm_lfloat_get_s32_index 0 snd_ctl_elem_add_integer64 0 snd_pcm_softvol_open 0 _snd_pcm_softvol_open 0 snd_ctl_elem_add_integer 0 snd_ctl_elem_add_iec958 0 snd_ctl_elem_info_is_user 0 snd_ctl_elem_add_boolean 0 __snd_pcm_softvol_open_dlsym_pcm_001 0 snd_timer_ginfo_get_name 0 snd_timer_ginfo_get_resolution 0 snd_pcm_ioplug_set_param_minmax 0 snd_timer_ginfo_get_resolution_max 0 snd_pcm_ioplug_reinit_status 0 snd_async_handler_get_timer 0 snd_async_add_timer_handler 0 snd_pcm_ioplug_set_param_list 0 snd_timer_ginfo_get_card 0 snd_pcm_ioplug_params_reset 0 snd_err_msg 0 snd_timer_ginfo_malloc 0 snd_timer_ginfo_get_tid 0 snd_timer_ginfo_copy 0 snd_timer_ginfo_get_clients 0 snd_pcm_hw_params_set_export_buffer 0 snd_pcm_ioplug_delete 0 snd_pcm_ioplug_mmap_areas 0 snd_timer_ginfo_get_id 0 snd_timer_ginfo_set_tid 0 snd_timer_ginfo_get_flags 0 snd_pcm_ioplug_create 0 snd_pcm_extplug_create 0 snd_pcm_extplug_params_reset 0 snd_timer_ginfo_sizeof 0 snd_pcm_extplug_delete 0 snd_pcm_extplug_set_param_minmax 0 snd_pcm_hw_params_get_rate_resample 0 snd_timer_ginfo_get_resolution_min 0 snd_pcm_extplug_set_slave_param_list 0 snd_names_list 0 snd_pcm_extplug_set_param_list 0 snd_names_list_free 0 snd_timer_ginfo_free 0 snd_pcm_hw_params_get_export_buffer 0 snd_pcm_parse_control_id 0 snd_pcm_extplug_set_slave_param_minmax 0 snd_pcm_generic_rewind 0 snd_pcm_generic_sw_params 0 snd_pcm_generic_start 0 snd_pcm_direct_set_timer_params 0 snd_dlobj_cache_add 0 snd_pcm_generic_link 0 snd_ext_parm_set_minmax 0 snd_pcm_generic_state 0 snd_pcm_generic_writei 0 snd_pcm_generic_mmap 0 snd_pcm_generic_async 0 snd_pcm_generic_info 0 snd_pcm_direct_clear_timer_queue 0 snd_pcm_generic_drain 0 snd_pcm_generic_drop 0 snd_pcm_generic_close 0 snd_pcm_generic_hw_free 0 snd_pcm_generic_nonblock 0 snd_pcm_generic_munmap 0 snd_pcm_generic_hw_refine 0 snd_pcm_generic_hw_params 0 snd_pcm_generic_forward 0 snd_pcm_generic_writen 0 snd_ext_parm_clear 0 snd_pcm_generic_readi 0 snd_ext_parm_mask_refine 0 snd_dlobj_cache_cleanup 0 snd_dlobj_cache_lookup 0 snd_pcm_generic_channel_info 0 snd_pcm_generic_poll_descriptors 0 snd_pcm_generic_hwsync 0 snd_pcm_generic_prepare 0 snd_pcm_generic_avail_update 0 snd_ext_parm_set_list 0 snd_pcm_generic_poll_descriptors_count 0 snd_pcm_generic_status 0 snd_pcm_generic_readn 0 snd_pcm_generic_resume 0 snd_pcm_generic_pause 0 snd_interval_list 0 snd_pcm_generic_delay 0 snd_ext_parm_interval_refine 0 snd_pcm_generic_reset 0 snd_pcm_generic_unlink 0 snd_pcm_generic_poll_revents 0 snd_pcm_generic_mmap_commit 0 snd_pcm_direct_timer_stop 0 snd_pcm_wait_nocheck 0 snd_mixer_sbasic_get_private 0 snd_mixer_class_get_mixer 0 snd_mixer_get_hctl 0 snd_mixer_class_set_private_free 0 snd_mixer_class_copy 0 snd_mixer_elem_free 0 snd_mixer_simple_basic_register 0 snd_mixer_class_get_private 0 snd_mixer_selem_set_playback_dB_all 0 snd_mixer_class_get_event 0 snd_mixer_selem_is_enum_capture 0 snd_mixer_sbasic_set_private 0 snd_mixer_class_free 0 snd_mixer_sbasic_set_private_free 0 snd_mixer_selem_set_playback_dB 0 snd_mixer_elem_get_private 0 snd_mixer_class_sizeof 0 snd_mixer_elem_new 0 snd_mixer_selem_get_capture_dB_range 0 snd_mixer_class_get_compare 0 snd_mixer_selem_get_playback_dB_range 0 snd_mixer_sbasic_info 0 snd_mixer_class_set_event 0 snd_mixer_selem_get_capture_dB 0 snd_mixer_class_set_compare 0 snd_mixer_simple_none_register 0 snd_mixer_selem_set_capture_dB_all 0 snd_mixer_selem_is_enum_playback 0 snd_ctl_ext_delete 0 snd_mixer_selem_set_capture_dB 0 snd_mixer_class_set_private 0 snd_mixer_detach_hctl 0 snd_mixer_attach_hctl 0 snd_mixer_class_malloc 0 snd_mixer_selem_get_playback_dB 0 snd_ctl_ext_create 0 snd_pcm_direct_resume 0 _snd_func_pcm_args_by_class_dlsym_config_evaluate_001 0 snd_func_pcm_args_by_class 0 snd_pcm_direct_open_secondary_client 0 snd_mixer_selem_compare 0 snd_pcm_recover 0 snd_pcm_set_params 0 snd_pcm_get_params 0 snd_pcm_direct_parse_open_conf 0 _snd_seq_open_lconf 0 snd_config_check_hop 0 snd_config_set_hop 0 snd_pcm_generic_link_fd 0 _snd_pcm_link_descriptors 0 snd_pcm_generic_link2 0 snd_pcm_rate_get_default_converter 0 snd_hctl_elem_tlv_read 0 snd_ctl_elem_tlv_write 0 snd_ctl_elem_tlv_command 0 snd_hctl_elem_tlv_write 0 snd_ctl_elem_info_is_tlv_commandable 0 snd_ctl_elem_info_is_tlv_writable 0 snd_ctl_elem_info_is_tlv_readable 0 snd_hctl_elem_tlv_command 0 snd_ctl_elem_tlv_read 0 _snd_pcm_rate_linear_open 0 snd_pcm_direct_initialize_secondary_slave
At Wed, 21 Nov 2007 17:31:26 +0100, I wrote:
What I'd like to do now are:
- create a list of "standard" functions to be passed to LSB
- clean up and actually drop some non-used functions
- remove some functions from export list (in Versions file)
I'll try to create a list. Basically it'll be almost as same as the list of functions with count > 0, plus some related ones.
OK, here is the white list. I paste it below at this time.
It doesn't include the new functions regarding TLV and dB level. Also, some functions are not listed intentionally. They will be listed in the next mail.
Please review the names below. If you think it's not worth to include to the standard, just speak up. I'm willing to reduce the numbers!
LSB guys want to finish this soon, so I'll have to pass the list as soon as possible. So, if you have time, just check and give comments.
thanks,
Takashi
===
/* GLOBAL */
snd_asoundlib_version snd_lib_error_set_handler snd_strerror
/* I/O */
snd_input_stdio_open snd_input_stdio_attach snd_input_buffer_open snd_input_close snd_input_scanf snd_input_gets snd_input_getc snd_input_ungetc
snd_output_stdio_open snd_output_stdio_attach snd_output_buffer_open snd_output_buffer_string snd_output_close snd_output_printf snd_output_vprintf snd_output_puts snd_output_putc snd_output_flush
/* CONIFG */
snd_config snd_config_top snd_config_load snd_config_save snd_config_update snd_config_update_free_global
snd_config_search snd_config_searchv snd_config_search_definition snd_config_expand snd_config_evaluate
snd_config_add snd_config_delete snd_config_delete_compound_members snd_config_copy snd_config_make snd_config_make_integer snd_config_make_integer64 snd_config_make_real snd_config_make_string snd_config_make_pointer snd_config_make_compound snd_config_imake_integer snd_config_imake_integer64 snd_config_imake_real snd_config_imake_string snd_config_imake_pointer snd_config_get_type
snd_config_set_id snd_config_set_integer snd_config_set_integer64 snd_config_set_real snd_config_set_string snd_config_set_ascii snd_config_set_pointer snd_config_get_id snd_config_get_integer snd_config_get_integer64 snd_config_get_real snd_config_get_ireal snd_config_get_string snd_config_get_ascii snd_config_get_pointer snd_config_test_id
snd_config_iterator_first snd_config_iterator_next snd_config_iterator_end snd_config_iterator_entry
/* ASYNC */
snd_async_add_handler snd_async_del_handler snd_async_handler_get_fd snd_async_handler_get_signo snd_async_handler_get_callback_private
snd_async_add_ctl_handler snd_async_handler_get_ctl
snd_async_add_pcm_handler snd_async_handler_get_pcm
snd_async_add_timer_handler snd_async_handler_get_timer
/* CONTROL / GLOBAL */
snd_card_load snd_card_next snd_card_get_index snd_card_get_name snd_card_get_longname
snd_device_name_hint snd_device_name_free_hint snd_device_name_get_hint
snd_ctl_open snd_ctl_close snd_ctl_nonblock snd_ctl_poll_descriptors_count snd_ctl_poll_descriptors snd_ctl_poll_descriptors_revents snd_ctl_subscribe_events
snd_ctl_card_info snd_ctl_elem_list snd_ctl_elem_info snd_ctl_elem_read snd_ctl_elem_write snd_ctl_elem_lock snd_ctl_elem_unlock
snd_ctl_hwdep_next_device snd_ctl_hwdep_info snd_ctl_pcm_next_device snd_ctl_pcm_info snd_ctl_pcm_prefer_subdevice snd_ctl_rawmidi_next_device snd_ctl_rawmidi_info snd_ctl_rawmidi_prefer_subdevice
snd_ctl_read snd_ctl_wait snd_ctl_name snd_ctl_type
snd_ctl_elem_type_name snd_ctl_elem_iface_name snd_ctl_event_type_name
snd_ctl_event_elem_get_mask snd_ctl_event_elem_get_id
snd_ctl_elem_list_alloc_space snd_ctl_elem_list_free_space
snd_ctl_elem_id_sizeof snd_ctl_elem_id_malloc snd_ctl_elem_id_free snd_ctl_elem_id_clear snd_ctl_elem_id_copy snd_ctl_elem_id_get_numid snd_ctl_elem_id_get_interface snd_ctl_elem_id_get_device snd_ctl_elem_id_get_subdevice snd_ctl_elem_id_get_name snd_ctl_elem_id_get_index snd_ctl_elem_id_set_numid snd_ctl_elem_id_set_interface snd_ctl_elem_id_set_device snd_ctl_elem_id_set_subdevice snd_ctl_elem_id_set_name snd_ctl_elem_id_set_index
snd_ctl_card_info_sizeof snd_ctl_card_info_malloc snd_ctl_card_info_free snd_ctl_card_info_clear snd_ctl_card_info_copy snd_ctl_card_info_get_id snd_ctl_card_info_get_driver snd_ctl_card_info_get_name snd_ctl_card_info_get_longname snd_ctl_card_info_get_mixername snd_ctl_card_info_get_components
snd_ctl_event_sizeof snd_ctl_event_malloc snd_ctl_event_free snd_ctl_event_clear snd_ctl_event_copy snd_ctl_event_get_type
snd_ctl_elem_list_sizeof snd_ctl_elem_list_malloc snd_ctl_elem_list_free snd_ctl_elem_list_clear snd_ctl_elem_list_copy snd_ctl_elem_list_set_offset snd_ctl_elem_list_get_used snd_ctl_elem_list_get_count snd_ctl_elem_list_get_id snd_ctl_elem_list_get_numid snd_ctl_elem_list_get_name
snd_ctl_elem_info_sizeof snd_ctl_elem_info_malloc snd_ctl_elem_info_free snd_ctl_elem_info_clear snd_ctl_elem_info_copy snd_ctl_elem_info_get_type snd_ctl_elem_info_is_readable snd_ctl_elem_info_is_writable snd_ctl_elem_info_is_volatile snd_ctl_elem_info_is_inactive snd_ctl_elem_info_is_locked snd_ctl_elem_info_is_owner snd_ctl_elem_info_is_user snd_ctl_elem_info_get_owner snd_ctl_elem_info_get_count snd_ctl_elem_info_get_min snd_ctl_elem_info_get_max snd_ctl_elem_info_get_step snd_ctl_elem_info_get_min64 snd_ctl_elem_info_get_max64 snd_ctl_elem_info_get_step64 snd_ctl_elem_info_get_items snd_ctl_elem_info_set_item snd_ctl_elem_info_get_item_name snd_ctl_elem_info_get_id snd_ctl_elem_info_get_numid snd_ctl_elem_info_get_name snd_ctl_elem_info_set_id
snd_ctl_elem_add_integer snd_ctl_elem_add_integer64 snd_ctl_elem_add_boolean snd_ctl_elem_add_iec958 snd_ctl_elem_remove
snd_ctl_elem_value_sizeof snd_ctl_elem_value_malloc snd_ctl_elem_value_free snd_ctl_elem_value_clear snd_ctl_elem_value_copy snd_ctl_elem_value_get_id snd_ctl_elem_value_get_numid snd_ctl_elem_value_get_name snd_ctl_elem_value_set_id snd_ctl_elem_value_get_boolean snd_ctl_elem_value_get_integer snd_ctl_elem_value_get_integer64 snd_ctl_elem_value_get_enumerated snd_ctl_elem_value_get_byte snd_ctl_elem_value_set_boolean snd_ctl_elem_value_set_integer snd_ctl_elem_value_set_integer64 snd_ctl_elem_value_set_enumerated snd_ctl_elem_value_set_byte snd_ctl_elem_value_set_bytes snd_ctl_elem_value_get_bytes snd_ctl_elem_value_get_iec958 snd_ctl_elem_value_set_iec958
snd_hctl_open snd_hctl_open_ctl snd_hctl_close snd_hctl_nonblock snd_hctl_poll_descriptors_count snd_hctl_poll_descriptors snd_hctl_poll_descriptors_revents snd_hctl_get_count snd_hctl_set_compare
snd_hctl_first_elem snd_hctl_last_elem snd_hctl_find_elem snd_hctl_set_callback snd_hctl_set_callback_private snd_hctl_get_callback_private snd_hctl_load snd_hctl_free snd_hctl_handle_events snd_hctl_name snd_hctl_wait snd_hctl_ctl
snd_hctl_elem_next snd_hctl_elem_prev snd_hctl_elem_info snd_hctl_elem_read snd_hctl_elem_write
snd_hctl_elem_get_hctl
snd_hctl_elem_get_id snd_hctl_elem_set_callback snd_hctl_elem_get_callback_private snd_hctl_elem_set_callback_private
/* MIXER */
snd_mixer_open snd_mixer_close snd_mixer_first_elem snd_mixer_last_elem snd_mixer_handle_events snd_mixer_attach snd_mixer_attach_hctl snd_mixer_detach snd_mixer_detach_hctl snd_mixer_get_hctl snd_mixer_poll_descriptors_count snd_mixer_poll_descriptors snd_mixer_poll_descriptors_revents snd_mixer_load snd_mixer_free snd_mixer_wait snd_mixer_set_compare snd_mixer_set_callback snd_mixer_get_callback_private snd_mixer_set_callback_private snd_mixer_get_count
snd_mixer_elem_next snd_mixer_elem_prev snd_mixer_elem_set_callback snd_mixer_elem_get_callback_private snd_mixer_elem_set_callback_private snd_mixer_elem_get_type
snd_mixer_selem_channel_name snd_mixer_selem_register snd_mixer_selem_get_id snd_mixer_selem_get_name snd_mixer_selem_get_index snd_mixer_find_selem snd_mixer_selem_is_active snd_mixer_selem_is_playback_mono snd_mixer_selem_has_playback_channel snd_mixer_selem_is_capture_mono snd_mixer_selem_has_capture_channel snd_mixer_selem_get_capture_group snd_mixer_selem_has_common_volume snd_mixer_selem_has_playback_volume snd_mixer_selem_has_playback_volume_joined snd_mixer_selem_has_capture_volume snd_mixer_selem_has_capture_volume_joined snd_mixer_selem_has_common_switch snd_mixer_selem_has_playback_switch snd_mixer_selem_has_playback_switch_joined snd_mixer_selem_has_capture_switch snd_mixer_selem_has_capture_switch_joined snd_mixer_selem_has_capture_switch_exclusive
snd_mixer_selem_get_playback_volume snd_mixer_selem_get_capture_volume snd_mixer_selem_get_playback_switch snd_mixer_selem_get_capture_switch snd_mixer_selem_set_playback_volume snd_mixer_selem_set_capture_volume snd_mixer_selem_set_playback_volume_all snd_mixer_selem_set_capture_volume_all snd_mixer_selem_set_playback_switch snd_mixer_selem_set_capture_switch snd_mixer_selem_set_playback_switch_all snd_mixer_selem_set_capture_switch_all snd_mixer_selem_get_playback_volume_range snd_mixer_selem_set_playback_volume_range snd_mixer_selem_get_capture_volume_range snd_mixer_selem_set_capture_volume_range
snd_mixer_selem_is_enumerated snd_mixer_selem_is_enum_playback snd_mixer_selem_is_enum_capture snd_mixer_selem_get_enum_items snd_mixer_selem_get_enum_item_name snd_mixer_selem_get_enum_item snd_mixer_selem_set_enum_item
snd_mixer_selem_id_sizeof snd_mixer_selem_id_malloc snd_mixer_selem_id_free snd_mixer_selem_id_copy snd_mixer_selem_id_get_name snd_mixer_selem_id_get_index snd_mixer_selem_id_set_name snd_mixer_selem_id_set_index
/* HWDEP */
snd_hwdep_open snd_hwdep_close snd_hwdep_poll_descriptors snd_hwdep_poll_descriptors_revents snd_hwdep_nonblock snd_hwdep_info snd_hwdep_dsp_status snd_hwdep_dsp_load snd_hwdep_ioctl snd_hwdep_write snd_hwdep_read
snd_hwdep_info_sizeof snd_hwdep_info_malloc snd_hwdep_info_free snd_hwdep_info_copy snd_hwdep_info_get_device snd_hwdep_info_get_card snd_hwdep_info_get_id snd_hwdep_info_get_name snd_hwdep_info_get_iface snd_hwdep_info_set_device
snd_hwdep_dsp_status_sizeof snd_hwdep_dsp_status_malloc snd_hwdep_dsp_status_free snd_hwdep_dsp_status_copy snd_hwdep_dsp_status_get_version snd_hwdep_dsp_status_get_id snd_hwdep_dsp_status_get_num_dsps snd_hwdep_dsp_status_get_dsp_loaded snd_hwdep_dsp_status_get_chip_ready
snd_hwdep_dsp_image_sizeof snd_hwdep_dsp_image_malloc snd_hwdep_dsp_image_free snd_hwdep_dsp_image_copy snd_hwdep_dsp_image_get_index snd_hwdep_dsp_image_get_name snd_hwdep_dsp_image_get_image snd_hwdep_dsp_image_get_length snd_hwdep_dsp_image_set_index snd_hwdep_dsp_image_set_name snd_hwdep_dsp_image_set_image snd_hwdep_dsp_image_set_length
/* PCM */
snd_pcm_open snd_pcm_close snd_pcm_name snd_pcm_type snd_pcm_stream snd_pcm_poll_descriptors_count snd_pcm_poll_descriptors snd_pcm_poll_descriptors_revents snd_pcm_nonblock snd_pcm_info snd_pcm_hw_params_current snd_pcm_hw_params snd_pcm_hw_free snd_pcm_sw_params_current snd_pcm_sw_params snd_pcm_prepare snd_pcm_reset snd_pcm_status snd_pcm_start snd_pcm_drop snd_pcm_drain snd_pcm_pause snd_pcm_state snd_pcm_hwsync snd_pcm_delay snd_pcm_resume snd_pcm_avail_update snd_pcm_rewind snd_pcm_forward snd_pcm_writei snd_pcm_readi snd_pcm_writen snd_pcm_readn snd_pcm_wait snd_pcm_link snd_pcm_unlink snd_pcm_recover
snd_pcm_info_sizeof snd_pcm_info_malloc snd_pcm_info_free snd_pcm_info_copy snd_pcm_info_get_device snd_pcm_info_get_subdevice snd_pcm_info_get_stream snd_pcm_info_get_card snd_pcm_info_get_id snd_pcm_info_get_name snd_pcm_info_get_subdevice_name snd_pcm_info_get_class snd_pcm_info_get_subclass snd_pcm_info_get_subdevices_count snd_pcm_info_get_subdevices_avail snd_pcm_info_get_sync snd_pcm_info_set_device snd_pcm_info_set_subdevice snd_pcm_info_set_stream
snd_pcm_hw_params_sizeof snd_pcm_hw_params_malloc snd_pcm_hw_params_free snd_pcm_hw_params_copy snd_pcm_hw_params_any snd_pcm_hw_params_can_mmap_sample_resolution snd_pcm_hw_params_is_double snd_pcm_hw_params_can_pause snd_pcm_hw_params_can_resume snd_pcm_hw_params_is_half_duplex snd_pcm_hw_params_is_joint_duplex snd_pcm_hw_params_can_sync_start snd_pcm_hw_params_get_rate_numden snd_pcm_hw_params_get_sbits snd_pcm_hw_params_get_access snd_pcm_hw_params_test_access snd_pcm_hw_params_set_access snd_pcm_hw_params_set_access_mask snd_pcm_hw_params_get_access_mask snd_pcm_hw_params_get_format snd_pcm_hw_params_test_format snd_pcm_hw_params_set_format snd_pcm_hw_params_set_format_mask snd_pcm_hw_params_get_format_mask snd_pcm_hw_params_get_channels snd_pcm_hw_params_get_channels_min snd_pcm_hw_params_get_channels_max snd_pcm_hw_params_test_channels snd_pcm_hw_params_set_channels snd_pcm_hw_params_set_channels_near snd_pcm_hw_params_get_rate snd_pcm_hw_params_get_rate_min snd_pcm_hw_params_get_rate_max snd_pcm_hw_params_test_rate snd_pcm_hw_params_set_rate snd_pcm_hw_params_set_rate_near snd_pcm_hw_params_set_rate_resample snd_pcm_hw_params_get_rate_resample snd_pcm_hw_params_get_period_time snd_pcm_hw_params_get_period_time_min snd_pcm_hw_params_get_period_time_max snd_pcm_hw_params_test_period_time snd_pcm_hw_params_set_period_time snd_pcm_hw_params_set_period_time_near snd_pcm_hw_params_get_period_size snd_pcm_hw_params_get_period_size_min snd_pcm_hw_params_get_period_size_max snd_pcm_hw_params_test_period_size snd_pcm_hw_params_set_period_size snd_pcm_hw_params_set_period_size_near snd_pcm_hw_params_get_periods snd_pcm_hw_params_get_periods_min snd_pcm_hw_params_get_periods_max snd_pcm_hw_params_test_periods snd_pcm_hw_params_set_periods snd_pcm_hw_params_set_periods_near snd_pcm_hw_params_set_periods_integer snd_pcm_hw_params_get_buffer_time snd_pcm_hw_params_get_buffer_time_min snd_pcm_hw_params_get_buffer_time_max snd_pcm_hw_params_test_buffer_time snd_pcm_hw_params_set_buffer_time snd_pcm_hw_params_set_buffer_time_near snd_pcm_hw_params_get_buffer_size snd_pcm_hw_params_get_buffer_size_min snd_pcm_hw_params_get_buffer_size_max snd_pcm_hw_params_test_buffer_size snd_pcm_hw_params_set_buffer_size snd_pcm_hw_params_set_buffer_size_near
snd_pcm_sw_params_sizeof snd_pcm_sw_params_malloc snd_pcm_sw_params_free snd_pcm_sw_params_copy snd_pcm_sw_params_get_boundary snd_pcm_sw_params_set_tstamp_mode snd_pcm_sw_params_get_tstamp_mode snd_pcm_sw_params_set_avail_min snd_pcm_sw_params_get_avail_min snd_pcm_sw_params_set_start_threshold snd_pcm_sw_params_get_start_threshold snd_pcm_sw_params_set_stop_threshold snd_pcm_sw_params_get_stop_threshold snd_pcm_sw_params_set_silence_threshold snd_pcm_sw_params_get_silence_threshold snd_pcm_sw_params_set_silence_size snd_pcm_sw_params_get_silence_size
snd_pcm_access_mask_sizeof snd_pcm_access_mask_malloc snd_pcm_access_mask_free snd_pcm_access_mask_copy snd_pcm_access_mask_none snd_pcm_access_mask_any snd_pcm_access_mask_test snd_pcm_access_mask_empty snd_pcm_access_mask_set snd_pcm_access_mask_reset
snd_pcm_format_mask_sizeof snd_pcm_format_mask_malloc snd_pcm_format_mask_free snd_pcm_format_mask_copy snd_pcm_format_mask_none snd_pcm_format_mask_any snd_pcm_format_mask_test snd_pcm_format_mask_empty snd_pcm_format_mask_set snd_pcm_format_mask_reset
snd_pcm_status_sizeof snd_pcm_status_malloc snd_pcm_status_free snd_pcm_status_copy snd_pcm_status_get_state snd_pcm_status_get_trigger_tstamp snd_pcm_status_get_trigger_htstamp snd_pcm_status_get_tstamp snd_pcm_status_get_htstamp snd_pcm_status_get_delay snd_pcm_status_get_avail snd_pcm_status_get_avail_max
snd_pcm_type_name snd_pcm_stream_name snd_pcm_access_name snd_pcm_format_name snd_pcm_format_description snd_pcm_format_value snd_pcm_tstamp_mode_name snd_pcm_state_name
snd_pcm_dump snd_pcm_dump_hw_setup snd_pcm_dump_sw_setup snd_pcm_dump_setup snd_pcm_hw_params_dump snd_pcm_sw_params_dump snd_pcm_status_dump
snd_pcm_mmap_begin snd_pcm_mmap_commit snd_pcm_mmap_writei snd_pcm_mmap_readi snd_pcm_mmap_writen snd_pcm_mmap_readn
snd_pcm_format_signed snd_pcm_format_unsigned snd_pcm_format_linear snd_pcm_format_float snd_pcm_format_little_endian snd_pcm_format_big_endian snd_pcm_format_cpu_endian snd_pcm_format_width snd_pcm_format_physical_width snd_pcm_build_linear_format snd_pcm_format_set_silence snd_pcm_bytes_to_frames snd_pcm_frames_to_bytes snd_pcm_bytes_to_samples snd_pcm_samples_to_bytes snd_pcm_area_silence snd_pcm_areas_silence snd_pcm_area_copy snd_pcm_areas_copy
/* RAWMIDI */
snd_rawmidi_open snd_rawmidi_close snd_rawmidi_poll_descriptors_count snd_rawmidi_poll_descriptors snd_rawmidi_poll_descriptors_revents snd_rawmidi_nonblock snd_rawmidi_name snd_rawmidi_type snd_rawmidi_stream snd_rawmidi_drain snd_rawmidi_drop snd_rawmidi_write snd_rawmidi_read
snd_rawmidi_info snd_rawmidi_info_sizeof snd_rawmidi_info_malloc snd_rawmidi_info_free snd_rawmidi_info_copy snd_rawmidi_info_get_device snd_rawmidi_info_get_subdevice snd_rawmidi_info_get_stream snd_rawmidi_info_get_card snd_rawmidi_info_get_flags snd_rawmidi_info_get_id snd_rawmidi_info_get_name snd_rawmidi_info_get_subdevice_name snd_rawmidi_info_get_subdevices_count snd_rawmidi_info_get_subdevices_avail snd_rawmidi_info_set_device snd_rawmidi_info_set_subdevice snd_rawmidi_info_set_stream
snd_rawmidi_params snd_rawmidi_params_current snd_rawmidi_params_sizeof snd_rawmidi_params_malloc snd_rawmidi_params_free snd_rawmidi_params_copy snd_rawmidi_params_set_buffer_size snd_rawmidi_params_get_buffer_size snd_rawmidi_params_set_avail_min snd_rawmidi_params_get_avail_min snd_rawmidi_params_set_no_active_sensing snd_rawmidi_params_get_no_active_sensing
snd_rawmidi_status_sizeof snd_rawmidi_status_malloc snd_rawmidi_status_free snd_rawmidi_status_copy snd_rawmidi_status snd_rawmidi_status_get_tstamp snd_rawmidi_status_get_avail snd_rawmidi_status_get_xruns
/* TIMER */
snd_timer_open snd_timer_close
snd_timer_poll_descriptors_count snd_timer_poll_descriptors snd_timer_poll_descriptors_revents( snd_timer_info snd_timer_params snd_timer_status snd_timer_start snd_timer_stop snd_timer_continue snd_timer_read
snd_timer_id_sizeof snd_timer_id_malloc snd_timer_id_free snd_timer_id_copy snd_timer_id_set_class snd_timer_id_get_class snd_timer_id_set_sclass snd_timer_id_get_sclass snd_timer_id_set_card snd_timer_id_get_card snd_timer_id_set_device snd_timer_id_get_device snd_timer_id_set_subdevice snd_timer_id_get_subdevice
snd_timer_info_sizeof snd_timer_info_malloc snd_timer_info_free snd_timer_info_copy snd_timer_info_is_slave snd_timer_info_get_card snd_timer_info_get_id snd_timer_info_get_name snd_timer_info_get_resolution
snd_timer_params_sizeof snd_timer_params_malloc snd_timer_params_free snd_timer_params_copy snd_timer_params_set_auto_start snd_timer_params_get_auto_start snd_timer_params_set_exclusive snd_timer_params_get_exclusive snd_timer_params_set_early_event snd_timer_params_get_early_event snd_timer_params_set_ticks snd_timer_params_get_ticks snd_timer_params_set_queue_size snd_timer_params_get_queue_size snd_timer_params_set_filter snd_timer_params_get_filter
snd_timer_status_sizeof snd_timer_status_malloc snd_timer_status_free snd_timer_status_copy snd_timer_status_get_timestamp snd_timer_status_get_resolution snd_timer_status_get_lost snd_timer_status_get_overrun snd_timer_status_get_queue
/* SEQUENCER */
snd_seq_open snd_seq_name snd_seq_type snd_seq_close snd_seq_poll_descriptors_count snd_seq_poll_descriptors snd_seq_poll_descriptors_revents snd_seq_nonblock snd_seq_client_id
snd_seq_get_output_buffer_size snd_seq_get_input_buffer_size snd_seq_set_output_buffer_size snd_seq_set_input_buffer_size
snd_seq_system_info_sizeof snd_seq_system_info_malloc snd_seq_system_info_free snd_seq_system_info_copy snd_seq_system_info_get_queues snd_seq_system_info_get_clients snd_seq_system_info_get_ports snd_seq_system_info_get_channels snd_seq_system_info_get_cur_clients snd_seq_system_info_get_cur_queues snd_seq_system_info
snd_seq_client_info_sizeof snd_seq_client_info_malloc snd_seq_client_info_free snd_seq_client_info_copy
snd_seq_client_info_get_client snd_seq_client_info_get_type snd_seq_client_info_get_name snd_seq_client_info_get_num_ports snd_seq_client_info_get_event_lost
snd_seq_client_info_set_client snd_seq_client_info_set_name
snd_seq_get_client_info snd_seq_get_any_client_info snd_seq_set_client_info snd_seq_query_next_client
snd_seq_port_info_sizeof snd_seq_port_info_malloc snd_seq_port_info_free snd_seq_port_info_copy
snd_seq_port_info_get_client snd_seq_port_info_get_port snd_seq_port_info_get_addr snd_seq_port_info_get_name snd_seq_port_info_get_capability snd_seq_port_info_get_type snd_seq_port_info_get_midi_channels snd_seq_port_info_get_midi_voices snd_seq_port_info_get_synth_voices snd_seq_port_info_get_read_use snd_seq_port_info_get_write_use snd_seq_port_info_get_port_specified snd_seq_port_info_get_timestamping snd_seq_port_info_get_timestamp_real snd_seq_port_info_get_timestamp_queue
snd_seq_port_info_set_client snd_seq_port_info_set_port snd_seq_port_info_set_addr snd_seq_port_info_set_name snd_seq_port_info_set_capability snd_seq_port_info_set_type snd_seq_port_info_set_midi_channels snd_seq_port_info_set_midi_voices snd_seq_port_info_set_synth_voices snd_seq_port_info_set_port_specified snd_seq_port_info_set_timestamping snd_seq_port_info_set_timestamp_real snd_seq_port_info_set_timestamp_queue
snd_seq_create_port snd_seq_delete_port snd_seq_get_port_info snd_seq_get_any_port_info snd_seq_set_port_info snd_seq_query_next_port
snd_seq_port_subscribe_sizeof snd_seq_port_subscribe_malloc snd_seq_port_subscribe_free snd_seq_port_subscribe_copy
snd_seq_port_subscribe_get_sender snd_seq_port_subscribe_get_dest snd_seq_port_subscribe_get_queue snd_seq_port_subscribe_get_exclusive snd_seq_port_subscribe_get_time_update snd_seq_port_subscribe_get_time_real
snd_seq_port_subscribe_set_sender snd_seq_port_subscribe_set_dest snd_seq_port_subscribe_set_queue snd_seq_port_subscribe_set_exclusive snd_seq_port_subscribe_set_time_update snd_seq_port_subscribe_set_time_real
snd_seq_get_port_subscription snd_seq_subscribe_port snd_seq_unsubscribe_port
snd_seq_query_subscribe_sizeof snd_seq_query_subscribe_malloc snd_seq_query_subscribe_free snd_seq_query_subscribe_copy snd_seq_query_subscribe_get_client snd_seq_query_subscribe_get_port snd_seq_query_subscribe_get_root snd_seq_query_subscribe_get_type snd_seq_query_subscribe_get_index snd_seq_query_subscribe_get_num_subs snd_seq_query_subscribe_get_addr snd_seq_query_subscribe_get_queue snd_seq_query_subscribe_get_exclusive snd_seq_query_subscribe_get_time_update snd_seq_query_subscribe_get_time_real
snd_seq_query_subscribe_set_client snd_seq_query_subscribe_set_port snd_seq_query_subscribe_set_root snd_seq_query_subscribe_set_type snd_seq_query_subscribe_set_index snd_seq_query_port_subscribers
snd_seq_alloc_named_queue snd_seq_alloc_queue snd_seq_free_queue
snd_seq_queue_status_sizeof snd_seq_queue_status_malloc snd_seq_queue_status_free snd_seq_queue_status_copy snd_seq_queue_status_get_queue snd_seq_queue_status_get_events snd_seq_queue_status_get_tick_time snd_seq_queue_status_get_real_time snd_seq_queue_status_get_status snd_seq_get_queue_status
snd_seq_queue_tempo_sizeof snd_seq_queue_tempo_malloc snd_seq_queue_tempo_free snd_seq_queue_tempo_copy snd_seq_queue_tempo_get_queue snd_seq_queue_tempo_get_tempo snd_seq_queue_tempo_get_ppq snd_seq_queue_tempo_set_tempo snd_seq_queue_tempo_set_ppq snd_seq_get_queue_tempo snd_seq_set_queue_tempo
snd_seq_free_event snd_seq_event_length snd_seq_event_output snd_seq_event_output_buffer snd_seq_event_output_direct snd_seq_event_input snd_seq_event_input_pending snd_seq_drain_output snd_seq_event_output_pending snd_seq_extract_output snd_seq_drop_output snd_seq_drop_output_buffer snd_seq_drop_input snd_seq_drop_input_buffer
snd_seq_event_types
snd_seq_control_queue snd_seq_create_simple_port snd_seq_delete_simple_port snd_seq_connect_from snd_seq_connect_to snd_seq_disconnect_from snd_seq_disconnect_to snd_seq_set_client_name snd_seq_sync_output_queue
snd_seq_parse_address
snd_midi_event_new snd_midi_event_resize_buffer snd_midi_event_free snd_midi_event_init snd_midi_event_reset_encode snd_midi_event_reset_decode snd_midi_event_no_status snd_midi_event_encode snd_midi_event_encode_byte snd_midi_event_decode
At Fri, 23 Nov 2007 15:54:38 +0100, I wrote:
At Wed, 21 Nov 2007 17:31:26 +0100, I wrote:
What I'd like to do now are:
- create a list of "standard" functions to be passed to LSB
- clean up and actually drop some non-used functions
- remove some functions from export list (in Versions file)
I'll try to create a list. Basically it'll be almost as same as the list of functions with count > 0, plus some related ones.
OK, here is the white list. I paste it below at this time.
It doesn't include the new functions regarding TLV and dB level. Also, some functions are not listed intentionally. They will be listed in the next mail.
Here it is, the black list.
These are functions that are not worth to be in the standard list. They are never used or shouldn't be used any more. Some are functions / variables that are exported but supposed to be internal-only.
I think we can mark them deprecated and get rid of the header files in future.
Takashi
===
/* internal only */ snd_shm_area_create snd_shm_area_share snd_shm_area_destroy
/* internal only */ snd_dlopen snd_dlsym snd_dlclose
/* internal only */ snd_user_file snd_dlsym_start
/* conf.c - no use */ snd_config_load_override snd_config_update_r
/* internal */ snd_config_search_alias_hooks snd_config_substitute
/* deprecated */ snd_names_list snd_names_list_free
/* ctl - no use */ snd_ctl_open_lconf /* no use, and they can be redundant (retrieved from *_get_id()) */ snd_ctl_event_elem_get_numid snd_ctl_event_elem_get_interface snd_ctl_event_elem_get_device snd_ctl_event_elem_get_subdevice snd_ctl_event_elem_get_name snd_ctl_event_elem_get_index /* ditto */ snd_ctl_elem_list_get_interface snd_ctl_elem_list_get_device snd_ctl_elem_list_get_subdevice snd_ctl_elem_list_get_index
/* dimension feature isn't properly used */ snd_ctl_elem_info_get_dimensions snd_ctl_elem_info_get_dimension
/* no use, redundant */ snd_ctl_elem_info_get_interface snd_ctl_elem_info_get_device snd_ctl_elem_info_get_subdevice snd_ctl_elem_info_get_index snd_ctl_elem_info_set_numid /* ditto */ snd_ctl_elem_info_set_interface snd_ctl_elem_info_set_device snd_ctl_elem_info_set_subdevice snd_ctl_elem_info_set_name snd_ctl_elem_info_set_index /* ditto */ snd_ctl_elem_value_get_interface snd_ctl_elem_value_get_device snd_ctl_elem_value_get_subdevice snd_ctl_elem_value_get_index /* ditto */ snd_ctl_elem_value_set_numid snd_ctl_elem_value_set_interface snd_ctl_elem_value_set_device snd_ctl_elem_value_set_subdevice snd_ctl_elem_value_set_name snd_ctl_elem_value_set_index
/* a wrong symbol name */ snd_ctl_elem_set_bytes
/* no use, redundant */ snd_hctl_elem_get_numid snd_hctl_elem_get_interface snd_hctl_elem_get_device snd_hctl_elem_get_subdevice snd_hctl_elem_get_name snd_hctl_elem_get_index
/* deprecated */ snd_ctl_set_power_state snd_ctl_get_power_state
/* deprecated */ snd_sctl_build snd_sctl_free snd_sctl_install snd_sctl_remove
/* mixer class is never used properly */ snd_mixer_class_unregister snd_mixer_class_register snd_mixer_add_elem snd_mixer_remove_elem snd_mixer_elem_new snd_mixer_elem_add snd_mixer_elem_remove snd_mixer_elem_free snd_mixer_elem_info snd_mixer_elem_value snd_mixer_elem_attach snd_mixer_elem_detach snd_mixer_elem_empty snd_mixer_elem_get_private snd_mixer_class_sizeof snd_mixer_class_malloc snd_mixer_class_free snd_mixer_class_copy snd_mixer_class_get_mixer snd_mixer_class_get_event snd_mixer_class_get_private snd_mixer_class_get_compare snd_mixer_class_set_event snd_mixer_class_set_private snd_mixer_class_set_private_free snd_mixer_class_set_compare
/* deprecated */ snd_pcm_set_params snd_pcm_get_params
/* useless parameters, implemented on no driver properly */ snd_pcm_hw_params_is_batch snd_pcm_hw_params_is_block_transfer snd_pcm_hw_params_can_overrange snd_pcm_hw_params_get_fifo_size
/* *_set_first() and *_set_last() are almost useless */ snd_pcm_hw_params_set_access_first snd_pcm_hw_params_set_access_last snd_pcm_hw_params_set_format_first snd_pcm_hw_params_set_format_last
/* subformat is useless, so far; we have even no proper definition */ snd_pcm_hw_params_get_subformat snd_pcm_hw_params_test_subformat snd_pcm_hw_params_set_subformat snd_pcm_hw_params_set_subformat_first snd_pcm_hw_params_set_subformat_last snd_pcm_hw_params_set_subformat_mask snd_pcm_hw_params_get_subformat_mask
/* set_min(), set_max(), set_minmax() are useless, too */ snd_pcm_hw_params_set_channels_min snd_pcm_hw_params_set_channels_max snd_pcm_hw_params_set_channels_minmax snd_pcm_hw_params_set_channels_first snd_pcm_hw_params_set_channels_last snd_pcm_hw_params_set_rate_min snd_pcm_hw_params_set_rate_max snd_pcm_hw_params_set_rate_minmax snd_pcm_hw_params_set_rate_first snd_pcm_hw_params_set_rate_last
/* export_buffer feature is never used except for aserver */ snd_pcm_hw_params_set_export_buffer snd_pcm_hw_params_get_export_buffer
/* min, max */ snd_pcm_hw_params_set_period_time_min snd_pcm_hw_params_set_period_time_max snd_pcm_hw_params_set_period_time_minmax snd_pcm_hw_params_set_period_time_first snd_pcm_hw_params_set_period_time_last snd_pcm_hw_params_set_period_size_min snd_pcm_hw_params_set_period_size_max snd_pcm_hw_params_set_period_size_minmax snd_pcm_hw_params_set_period_size_first snd_pcm_hw_params_set_period_size_last snd_pcm_hw_params_set_period_size_integer snd_pcm_hw_params_set_periods_min snd_pcm_hw_params_set_periods_max snd_pcm_hw_params_set_periods_minmax snd_pcm_hw_params_set_periods_first snd_pcm_hw_params_set_periods_last snd_pcm_hw_params_set_buffer_time_min snd_pcm_hw_params_set_buffer_time_max snd_pcm_hw_params_set_buffer_time_minmax snd_pcm_hw_params_set_buffer_time_first snd_pcm_hw_params_set_buffer_time_last snd_pcm_hw_params_set_buffer_size_min snd_pcm_hw_params_set_buffer_size_max snd_pcm_hw_params_set_buffer_size_minmax snd_pcm_hw_params_set_buffer_size_first snd_pcm_hw_params_set_buffer_size_last
/* tick_time is never used by any apps */ snd_pcm_hw_params_get_tick_time snd_pcm_hw_params_get_tick_time_min snd_pcm_hw_params_get_tick_time_max snd_pcm_hw_params_test_tick_time snd_pcm_hw_params_set_tick_time snd_pcm_hw_params_set_tick_time_min snd_pcm_hw_params_set_tick_time_max snd_pcm_hw_params_set_tick_time_minmax snd_pcm_hw_params_set_tick_time_near snd_pcm_hw_params_set_tick_time_first snd_pcm_hw_params_set_tick_time_last snd_pcm_hw_params_get_min_align
/* sleep_min is never used by apps (except for aplay as an option) */ snd_pcm_sw_params_set_sleep_min snd_pcm_sw_params_get_sleep_min
/* xfer_align is also superfluous */ snd_pcm_sw_params_set_xfer_align snd_pcm_sw_params_get_xfer_align
/* subformat is not defined nor used */ snd_pcm_subformat_mask_sizeof snd_pcm_subformat_mask_malloc snd_pcm_subformat_mask_free snd_pcm_subformat_mask_copy snd_pcm_subformat_mask_none snd_pcm_subformat_mask_any snd_pcm_subformat_mask_test snd_pcm_subformat_mask_empty snd_pcm_subformat_mask_set snd_pcm_subformat_mask_reset snd_pcm_status_get_overrange snd_pcm_subformat_name snd_pcm_subformat_description
/* this can be in the whitelist */ snd_pcm_format_size
/* should use snd_pcm_format_set_silence() */ snd_pcm_format_silence snd_pcm_format_silence_16 snd_pcm_format_silence_32 snd_pcm_format_silence_64
/* no real use of hook plugin (for apps) */ snd_pcm_hook_get_pcm snd_pcm_hook_get_private snd_pcm_hook_set_private snd_pcm_hook_add snd_pcm_hook_remove
/* no real use of meter plugin (for apps) */ snd_pcm_meter_get_bufsize snd_pcm_meter_get_channels snd_pcm_meter_get_rate snd_pcm_meter_get_now snd_pcm_meter_get_boundary snd_pcm_meter_add_scope snd_pcm_meter_search_scope snd_pcm_scope_malloc snd_pcm_scope_set_ops snd_pcm_scope_set_name snd_pcm_scope_get_name snd_pcm_scope_get_callback_private snd_pcm_scope_set_callback_private snd_pcm_scope_s16_open snd_pcm_scope_s16_get_channel_buffer
/* unfinished API, deprecated */ snd_spcm_init snd_spcm_init_duplex snd_spcm_init_get_params
/* deprecated */ snd_pcm_start_mode_name snd_pcm_xrun_mode_name snd_pcm_sw_params_set_start_mode snd_pcm_sw_params_get_start_mode snd_pcm_sw_params_set_xrun_mode snd_pcm_sw_params_get_xrun_mode
/* timer_query is never used, so far */ snd_timer_query_open snd_timer_query_open_lconf snd_timer_query_close snd_timer_query_next_device snd_timer_query_info snd_timer_query_params snd_timer_query_status snd_timer_open_lconf
/* ditto for timer_ginfo */ snd_timer_ginfo_sizeof snd_timer_ginfo_malloc snd_timer_ginfo_free snd_timer_ginfo_copy snd_timer_ginfo_set_tid snd_timer_ginfo_get_tid snd_timer_ginfo_get_flags snd_timer_ginfo_get_card snd_timer_ginfo_get_id snd_timer_ginfo_get_name snd_timer_ginfo_get_resolution snd_timer_ginfo_get_resolution_min snd_timer_ginfo_get_resolution_max snd_timer_ginfo_get_clients snd_timer_info_get_ticks
/* no use */ snd_seq_open_lconf
/* the sequencer filters are never used by any apps */ snd_seq_client_info_get_broadcast_filter snd_seq_client_info_get_error_bounce snd_seq_client_info_get_event_filter snd_seq_client_info_set_broadcast_filter snd_seq_client_info_set_error_bounce snd_seq_client_info_set_event_filter
/* pool adjustment has little demand */ snd_seq_client_pool_sizeof snd_seq_client_pool_malloc snd_seq_client_pool_free snd_seq_client_pool_copy snd_seq_client_pool_get_client snd_seq_client_pool_get_output_pool snd_seq_client_pool_get_input_pool snd_seq_client_pool_get_output_room snd_seq_client_pool_get_output_free snd_seq_client_pool_get_input_free snd_seq_client_pool_set_output_pool snd_seq_client_pool_set_input_pool snd_seq_client_pool_set_output_room snd_seq_get_client_pool snd_seq_set_client_pool
/* ditto for queue_info */ snd_seq_queue_info_sizeof snd_seq_queue_info_malloc snd_seq_queue_info_free snd_seq_queue_info_copy snd_seq_queue_info_get_queue snd_seq_queue_info_get_name snd_seq_queue_info_get_owner snd_seq_queue_info_get_locked snd_seq_queue_info_get_flags snd_seq_queue_info_set_name snd_seq_queue_info_set_owner snd_seq_queue_info_set_locked snd_seq_queue_info_set_flags snd_seq_create_queue snd_seq_get_queue_info snd_seq_set_queue_info snd_seq_query_named_queue snd_seq_get_queue_usage snd_seq_set_queue_usage
/* the queue tempo skew isn't used */ snd_seq_queue_tempo_get_skew snd_seq_queue_tempo_get_skew_base snd_seq_queue_tempo_set_skew snd_seq_queue_tempo_set_skew_base
/* no use */ snd_seq_queue_timer_sizeof snd_seq_queue_timer_malloc snd_seq_queue_timer_free snd_seq_queue_timer_copy snd_seq_queue_timer_get_queue snd_seq_queue_timer_get_type snd_seq_queue_timer_get_id snd_seq_queue_timer_get_resolution snd_seq_queue_timer_set_type snd_seq_queue_timer_set_id snd_seq_queue_timer_set_resolution snd_seq_get_queue_timer snd_seq_set_queue_timer
/* no use */ snd_seq_remove_events_sizeof snd_seq_remove_events_malloc snd_seq_remove_events_free snd_seq_remove_events_copy snd_seq_remove_events_get_condition snd_seq_remove_events_get_queue snd_seq_remove_events_get_time snd_seq_remove_events_get_dest snd_seq_remove_events_get_channel snd_seq_remove_events_get_event_type snd_seq_remove_events_get_tag snd_seq_remove_events_set_condition snd_seq_remove_events_set_queue snd_seq_remove_events_set_time snd_seq_remove_events_set_dest snd_seq_remove_events_set_channel snd_seq_remove_events_set_event_type snd_seq_remove_events_set_tag snd_seq_remove_events
/* superfluous trivial functions */ snd_seq_set_bit snd_seq_change_bit snd_seq_get_bit
/* no use */ snd_seq_set_client_event_filter snd_seq_set_client_pool_output snd_seq_set_client_pool_output_room snd_seq_set_client_pool_input snd_seq_reset_pool_output snd_seq_reset_pool_input
Wow, Takashi!
What a mighty collection of stuff, tnx for taking the time to enumerate all of this!
On Fri, 23 Nov 2007 16:25:42 +0100 "Takashi Iwai" tiwai@suse.de wrote:
At Fri, 23 Nov 2007 15:54:38 +0100, I wrote:
At Wed, 21 Nov 2007 17:31:26 +0100, I wrote:
What I'd like to do now are:
- create a list of "standard" functions to be passed to LSB
- clean up and actually drop some non-used functions
- remove some functions from export list (in Versions file)
I'll try to create a list. Basically it'll be almost as same as the list of functions with count > 0, plus some related ones.
OK, here is the white list. I paste it below at this time.
It doesn't include the new functions regarding TLV and dB level. Also, some functions are not listed intentionally. They will be listed in the next mail.
Here it is, the black list.
These are functions that are not worth to be in the standard list. They are never used or shouldn't be used any more. Some are functions / variables that are exported but supposed to be internal-only.
I think we can mark them deprecated and get rid of the header files in future.
Takashi
===
/* internal only */ snd_shm_area_create snd_shm_area_share snd_shm_area_destroy
/* internal only */ snd_dlopen snd_dlsym snd_dlclose
/* internal only */ snd_user_file snd_dlsym_start
/* conf.c - no use */ snd_config_load_override snd_config_update_r
/* internal */ snd_config_search_alias_hooks snd_config_substitute
/* deprecated */ snd_names_list snd_names_list_free
/* ctl - no use */ snd_ctl_open_lconf /* no use, and they can be redundant (retrieved from *_get_id()) */ snd_ctl_event_elem_get_numid snd_ctl_event_elem_get_interface snd_ctl_event_elem_get_device snd_ctl_event_elem_get_subdevice snd_ctl_event_elem_get_name snd_ctl_event_elem_get_index /* ditto */ snd_ctl_elem_list_get_interface snd_ctl_elem_list_get_device snd_ctl_elem_list_get_subdevice snd_ctl_elem_list_get_index
/* dimension feature isn't properly used */ snd_ctl_elem_info_get_dimensions snd_ctl_elem_info_get_dimension
/* no use, redundant */ snd_ctl_elem_info_get_interface snd_ctl_elem_info_get_device snd_ctl_elem_info_get_subdevice snd_ctl_elem_info_get_index snd_ctl_elem_info_set_numid /* ditto */ snd_ctl_elem_info_set_interface snd_ctl_elem_info_set_device snd_ctl_elem_info_set_subdevice snd_ctl_elem_info_set_name snd_ctl_elem_info_set_index /* ditto */ snd_ctl_elem_value_get_interface snd_ctl_elem_value_get_device snd_ctl_elem_value_get_subdevice snd_ctl_elem_value_get_index /* ditto */ snd_ctl_elem_value_set_numid snd_ctl_elem_value_set_interface snd_ctl_elem_value_set_device snd_ctl_elem_value_set_subdevice snd_ctl_elem_value_set_name snd_ctl_elem_value_set_index
/* a wrong symbol name */ snd_ctl_elem_set_bytes
/* no use, redundant */ snd_hctl_elem_get_numid snd_hctl_elem_get_interface snd_hctl_elem_get_device snd_hctl_elem_get_subdevice snd_hctl_elem_get_name snd_hctl_elem_get_index
/* deprecated */ snd_ctl_set_power_state snd_ctl_get_power_state
/* deprecated */ snd_sctl_build snd_sctl_free snd_sctl_install snd_sctl_remove
/* mixer class is never used properly */ snd_mixer_class_unregister snd_mixer_class_register snd_mixer_add_elem snd_mixer_remove_elem snd_mixer_elem_new snd_mixer_elem_add snd_mixer_elem_remove snd_mixer_elem_free snd_mixer_elem_info snd_mixer_elem_value snd_mixer_elem_attach snd_mixer_elem_detach snd_mixer_elem_empty snd_mixer_elem_get_private snd_mixer_class_sizeof snd_mixer_class_malloc snd_mixer_class_free snd_mixer_class_copy snd_mixer_class_get_mixer snd_mixer_class_get_event snd_mixer_class_get_private snd_mixer_class_get_compare snd_mixer_class_set_event snd_mixer_class_set_private snd_mixer_class_set_private_free snd_mixer_class_set_compare
/* deprecated */ snd_pcm_set_params snd_pcm_get_params
/* useless parameters, implemented on no driver properly */ snd_pcm_hw_params_is_batch snd_pcm_hw_params_is_block_transfer snd_pcm_hw_params_can_overrange snd_pcm_hw_params_get_fifo_size
/* *_set_first() and *_set_last() are almost useless */ snd_pcm_hw_params_set_access_first snd_pcm_hw_params_set_access_last snd_pcm_hw_params_set_format_first snd_pcm_hw_params_set_format_last
/* subformat is useless, so far; we have even no proper definition */ snd_pcm_hw_params_get_subformat snd_pcm_hw_params_test_subformat snd_pcm_hw_params_set_subformat snd_pcm_hw_params_set_subformat_first snd_pcm_hw_params_set_subformat_last snd_pcm_hw_params_set_subformat_mask snd_pcm_hw_params_get_subformat_mask
/* set_min(), set_max(), set_minmax() are useless, too */ snd_pcm_hw_params_set_channels_min snd_pcm_hw_params_set_channels_max snd_pcm_hw_params_set_channels_minmax snd_pcm_hw_params_set_channels_first snd_pcm_hw_params_set_channels_last snd_pcm_hw_params_set_rate_min snd_pcm_hw_params_set_rate_max snd_pcm_hw_params_set_rate_minmax snd_pcm_hw_params_set_rate_first snd_pcm_hw_params_set_rate_last
/* export_buffer feature is never used except for aserver */ snd_pcm_hw_params_set_export_buffer snd_pcm_hw_params_get_export_buffer
/* min, max */ snd_pcm_hw_params_set_period_time_min snd_pcm_hw_params_set_period_time_max snd_pcm_hw_params_set_period_time_minmax snd_pcm_hw_params_set_period_time_first snd_pcm_hw_params_set_period_time_last snd_pcm_hw_params_set_period_size_min snd_pcm_hw_params_set_period_size_max snd_pcm_hw_params_set_period_size_minmax snd_pcm_hw_params_set_period_size_first snd_pcm_hw_params_set_period_size_last snd_pcm_hw_params_set_period_size_integer snd_pcm_hw_params_set_periods_min snd_pcm_hw_params_set_periods_max snd_pcm_hw_params_set_periods_minmax snd_pcm_hw_params_set_periods_first snd_pcm_hw_params_set_periods_last snd_pcm_hw_params_set_buffer_time_min snd_pcm_hw_params_set_buffer_time_max snd_pcm_hw_params_set_buffer_time_minmax snd_pcm_hw_params_set_buffer_time_first snd_pcm_hw_params_set_buffer_time_last snd_pcm_hw_params_set_buffer_size_min snd_pcm_hw_params_set_buffer_size_max snd_pcm_hw_params_set_buffer_size_minmax snd_pcm_hw_params_set_buffer_size_first snd_pcm_hw_params_set_buffer_size_last
/* tick_time is never used by any apps */ snd_pcm_hw_params_get_tick_time snd_pcm_hw_params_get_tick_time_min snd_pcm_hw_params_get_tick_time_max snd_pcm_hw_params_test_tick_time snd_pcm_hw_params_set_tick_time snd_pcm_hw_params_set_tick_time_min snd_pcm_hw_params_set_tick_time_max snd_pcm_hw_params_set_tick_time_minmax snd_pcm_hw_params_set_tick_time_near snd_pcm_hw_params_set_tick_time_first snd_pcm_hw_params_set_tick_time_last snd_pcm_hw_params_get_min_align
/* sleep_min is never used by apps (except for aplay as an option) */ snd_pcm_sw_params_set_sleep_min snd_pcm_sw_params_get_sleep_min
/* xfer_align is also superfluous */ snd_pcm_sw_params_set_xfer_align snd_pcm_sw_params_get_xfer_align
/* subformat is not defined nor used */ snd_pcm_subformat_mask_sizeof snd_pcm_subformat_mask_malloc snd_pcm_subformat_mask_free snd_pcm_subformat_mask_copy snd_pcm_subformat_mask_none snd_pcm_subformat_mask_any snd_pcm_subformat_mask_test snd_pcm_subformat_mask_empty snd_pcm_subformat_mask_set snd_pcm_subformat_mask_reset snd_pcm_status_get_overrange snd_pcm_subformat_name snd_pcm_subformat_description
/* this can be in the whitelist */ snd_pcm_format_size
/* should use snd_pcm_format_set_silence() */ snd_pcm_format_silence snd_pcm_format_silence_16 snd_pcm_format_silence_32 snd_pcm_format_silence_64
/* no real use of hook plugin (for apps) */ snd_pcm_hook_get_pcm snd_pcm_hook_get_private snd_pcm_hook_set_private snd_pcm_hook_add snd_pcm_hook_remove
/* no real use of meter plugin (for apps) */ snd_pcm_meter_get_bufsize snd_pcm_meter_get_channels snd_pcm_meter_get_rate snd_pcm_meter_get_now snd_pcm_meter_get_boundary snd_pcm_meter_add_scope snd_pcm_meter_search_scope snd_pcm_scope_malloc snd_pcm_scope_set_ops snd_pcm_scope_set_name snd_pcm_scope_get_name snd_pcm_scope_get_callback_private snd_pcm_scope_set_callback_private snd_pcm_scope_s16_open snd_pcm_scope_s16_get_channel_buffer
/* unfinished API, deprecated */ snd_spcm_init snd_spcm_init_duplex snd_spcm_init_get_params
/* deprecated */ snd_pcm_start_mode_name snd_pcm_xrun_mode_name snd_pcm_sw_params_set_start_mode snd_pcm_sw_params_get_start_mode snd_pcm_sw_params_set_xrun_mode snd_pcm_sw_params_get_xrun_mode
/* timer_query is never used, so far */ snd_timer_query_open snd_timer_query_open_lconf snd_timer_query_close snd_timer_query_next_device snd_timer_query_info snd_timer_query_params snd_timer_query_status snd_timer_open_lconf
/* ditto for timer_ginfo */ snd_timer_ginfo_sizeof snd_timer_ginfo_malloc snd_timer_ginfo_free snd_timer_ginfo_copy snd_timer_ginfo_set_tid snd_timer_ginfo_get_tid snd_timer_ginfo_get_flags snd_timer_ginfo_get_card snd_timer_ginfo_get_id snd_timer_ginfo_get_name snd_timer_ginfo_get_resolution snd_timer_ginfo_get_resolution_min snd_timer_ginfo_get_resolution_max snd_timer_ginfo_get_clients snd_timer_info_get_ticks
/* no use */ snd_seq_open_lconf
/* the sequencer filters are never used by any apps */ snd_seq_client_info_get_broadcast_filter snd_seq_client_info_get_error_bounce snd_seq_client_info_get_event_filter snd_seq_client_info_set_broadcast_filter snd_seq_client_info_set_error_bounce snd_seq_client_info_set_event_filter
/* pool adjustment has little demand */ snd_seq_client_pool_sizeof snd_seq_client_pool_malloc snd_seq_client_pool_free snd_seq_client_pool_copy snd_seq_client_pool_get_client snd_seq_client_pool_get_output_pool snd_seq_client_pool_get_input_pool snd_seq_client_pool_get_output_room snd_seq_client_pool_get_output_free snd_seq_client_pool_get_input_free snd_seq_client_pool_set_output_pool snd_seq_client_pool_set_input_pool snd_seq_client_pool_set_output_room snd_seq_get_client_pool snd_seq_set_client_pool
/* ditto for queue_info */ snd_seq_queue_info_sizeof snd_seq_queue_info_malloc snd_seq_queue_info_free snd_seq_queue_info_copy snd_seq_queue_info_get_queue snd_seq_queue_info_get_name snd_seq_queue_info_get_owner snd_seq_queue_info_get_locked snd_seq_queue_info_get_flags snd_seq_queue_info_set_name snd_seq_queue_info_set_owner snd_seq_queue_info_set_locked snd_seq_queue_info_set_flags snd_seq_create_queue snd_seq_get_queue_info snd_seq_set_queue_info snd_seq_query_named_queue snd_seq_get_queue_usage snd_seq_set_queue_usage
/* the queue tempo skew isn't used */ snd_seq_queue_tempo_get_skew snd_seq_queue_tempo_get_skew_base snd_seq_queue_tempo_set_skew snd_seq_queue_tempo_set_skew_base
/* no use */ snd_seq_queue_timer_sizeof snd_seq_queue_timer_malloc snd_seq_queue_timer_free snd_seq_queue_timer_copy snd_seq_queue_timer_get_queue snd_seq_queue_timer_get_type snd_seq_queue_timer_get_id snd_seq_queue_timer_get_resolution snd_seq_queue_timer_set_type snd_seq_queue_timer_set_id snd_seq_queue_timer_set_resolution snd_seq_get_queue_timer snd_seq_set_queue_timer
/* no use */ snd_seq_remove_events_sizeof snd_seq_remove_events_malloc snd_seq_remove_events_free snd_seq_remove_events_copy snd_seq_remove_events_get_condition snd_seq_remove_events_get_queue snd_seq_remove_events_get_time snd_seq_remove_events_get_dest snd_seq_remove_events_get_channel snd_seq_remove_events_get_event_type snd_seq_remove_events_get_tag snd_seq_remove_events_set_condition snd_seq_remove_events_set_queue snd_seq_remove_events_set_time snd_seq_remove_events_set_dest snd_seq_remove_events_set_channel snd_seq_remove_events_set_event_type snd_seq_remove_events_set_tag snd_seq_remove_events
/* superfluous trivial functions */ snd_seq_set_bit snd_seq_change_bit snd_seq_get_bit
/* no use */ snd_seq_set_client_event_filter snd_seq_set_client_pool_output snd_seq_set_client_pool_output_room snd_seq_set_client_pool_input snd_seq_reset_pool_output snd_seq_reset_pool_input
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Fri, 23.11.07 15:54, Takashi Iwai (tiwai@suse.de) wrote:
Just a few random comments:
/* I/O */
snd_input_stdio_open snd_input_stdio_attach snd_input_buffer_open snd_input_close snd_input_scanf snd_input_gets snd_input_getc snd_input_ungetc
snd_output_stdio_open snd_output_stdio_attach snd_output_buffer_open snd_output_buffer_string snd_output_close snd_output_printf snd_output_vprintf snd_output_puts snd_output_putc snd_output_flush
May I ask why these are exported at all? The seem to be some kind of STDOUT/STDIN abstraction, and have no place in a sound API I would say. Especially not in any "standardized" version of it.
snd_config
[...]
snd_config_iterator_entry
Same here, why does parsing config files of ALSA need to be part of the audio API? I see no need for this.
snd_pcm_dump snd_pcm_dump_hw_setup snd_pcm_dump_sw_setup snd_pcm_dump_setup snd_pcm_hw_params_dump snd_pcm_sw_params_dump snd_pcm_status_dump
And these? They are not even documented, or am I blind?
Lennart
Lennart Poettering wrote:
Just a few random comments:
/* I/O */
snd_input_stdio_open snd_input_stdio_attach snd_input_buffer_open snd_input_close snd_input_scanf snd_input_gets snd_input_getc snd_input_ungetc
snd_output_stdio_open snd_output_stdio_attach snd_output_buffer_open snd_output_buffer_string snd_output_close snd_output_printf snd_output_vprintf snd_output_puts snd_output_putc snd_output_flush
May I ask why these are exported at all? The seem to be some kind of STDOUT/STDIN abstraction, and have no place in a sound API I would say. Especially not in any "standardized" version of it.
The configuration code uses these functions to read and write .conf files.
It might be useful for an application to have some private ALSA config and to let ALSA read it from a file or from a string, but I don't think this is something that belongs in LSB.
snd_pcm_dump snd_pcm_dump_hw_setup snd_pcm_dump_sw_setup snd_pcm_dump_setup snd_pcm_hw_params_dump snd_pcm_sw_params_dump snd_pcm_status_dump
And these? They are not even documented, or am I blind?
Well, their documentation isn't less useful than that of most other functions. ;-(
These functions are very valuable when debugging. I wouldn't want to discourage anybody from using them.
If we include these functions, we'll have to include some of the snd_output_* functions.
Regards, Clemens
At Fri, 30 Nov 2007 08:34:00 +0100, Clemens Ladisch wrote:
Lennart Poettering wrote:
Just a few random comments:
/* I/O */
snd_input_stdio_open snd_input_stdio_attach snd_input_buffer_open snd_input_close snd_input_scanf snd_input_gets snd_input_getc snd_input_ungetc
snd_output_stdio_open snd_output_stdio_attach snd_output_buffer_open snd_output_buffer_string snd_output_close snd_output_printf snd_output_vprintf snd_output_puts snd_output_putc snd_output_flush
May I ask why these are exported at all? The seem to be some kind of STDOUT/STDIN abstraction, and have no place in a sound API I would say. Especially not in any "standardized" version of it.
The configuration code uses these functions to read and write .conf files.
It might be useful for an application to have some private ALSA config and to let ALSA read it from a file or from a string, but I don't think this is something that belongs in LSB.
Yeah, some are already used. So, they need to be listed. But, some of (directly-) unused functions were already removed from my new list.
snd_pcm_dump snd_pcm_dump_hw_setup snd_pcm_dump_sw_setup snd_pcm_dump_setup snd_pcm_hw_params_dump snd_pcm_sw_params_dump snd_pcm_status_dump
And these? They are not even documented, or am I blind?
Well, their documentation isn't less useful than that of most other functions. ;-(
These functions are very valuable when debugging. I wouldn't want to discourage anybody from using them.
snd_pcm_dump_*() are removed as they aren't used directly. snd_pcm_dump() remains (it is already used).
The below is the revised version of white list. The functions with '#' are to drop, and '*' are newly listed (but not recommended to use).
Takashi
===
/* GLOBAL */
snd_asoundlib_version snd_lib_error_set_handler snd_strerror
/* I/O */
snd_input_stdio_open snd_input_stdio_attach snd_input_buffer_open snd_input_close # snd_input_scanf # snd_input_gets # snd_input_getc # snd_input_ungetc
snd_output_stdio_open snd_output_stdio_attach snd_output_buffer_open snd_output_buffer_string snd_output_close # snd_output_printf # snd_output_vprintf snd_output_puts snd_output_putc # snd_output_flush
/* CONIFG */
snd_config snd_config_top snd_config_load snd_config_save snd_config_update snd_config_update_free_global
snd_config_search snd_config_searchv # snd_config_search_definition # snd_config_expand # snd_config_evaluate
snd_config_add snd_config_delete # snd_config_delete_compound_members snd_config_copy # snd_config_make snd_config_make_integer snd_config_make_integer64 # snd_config_make_real snd_config_make_string # snd_config_make_pointer snd_config_make_compound snd_config_imake_integer snd_config_imake_integer64 # snd_config_imake_real snd_config_imake_string # snd_config_imake_pointer snd_config_get_type
# snd_config_set_id snd_config_set_integer snd_config_set_integer64 # snd_config_set_real snd_config_set_string snd_config_set_ascii # snd_config_set_pointer snd_config_get_id snd_config_get_integer snd_config_get_integer64 # snd_config_get_real # snd_config_get_ireal snd_config_get_string snd_config_get_ascii # snd_config_get_pointer # snd_config_test_id
snd_config_iterator_first snd_config_iterator_next snd_config_iterator_end snd_config_iterator_entry
/* ASYNC */
snd_async_add_handler snd_async_del_handler # snd_async_handler_get_fd # snd_async_handler_get_signo snd_async_handler_get_callback_private
snd_async_add_ctl_handler snd_async_handler_get_ctl
snd_async_add_pcm_handler snd_async_handler_get_pcm
# snd_async_add_timer_handler # snd_async_handler_get_timer
/* CONTROL / GLOBAL */
snd_card_load snd_card_next snd_card_get_index snd_card_get_name snd_card_get_longname
snd_device_name_hint snd_device_name_free_hint snd_device_name_get_hint
snd_ctl_open snd_ctl_close snd_ctl_nonblock snd_ctl_poll_descriptors_count snd_ctl_poll_descriptors # snd_ctl_poll_descriptors_revents snd_ctl_subscribe_events
snd_ctl_card_info snd_ctl_elem_list snd_ctl_elem_info snd_ctl_elem_read snd_ctl_elem_write # snd_ctl_elem_lock # snd_ctl_elem_unlock
snd_ctl_hwdep_next_device snd_ctl_hwdep_info snd_ctl_pcm_next_device snd_ctl_pcm_info # snd_ctl_pcm_prefer_subdevice snd_ctl_rawmidi_next_device snd_ctl_rawmidi_info # snd_ctl_rawmidi_prefer_subdevice
snd_ctl_read # snd_ctl_wait snd_ctl_name # snd_ctl_type
snd_ctl_elem_type_name snd_ctl_elem_iface_name # snd_ctl_event_type_name
snd_ctl_event_elem_get_mask snd_ctl_event_elem_get_id
snd_ctl_elem_list_alloc_space snd_ctl_elem_list_free_space
snd_ctl_elem_id_sizeof snd_ctl_elem_id_malloc snd_ctl_elem_id_free snd_ctl_elem_id_clear snd_ctl_elem_id_copy snd_ctl_elem_id_get_numid snd_ctl_elem_id_get_interface snd_ctl_elem_id_get_device snd_ctl_elem_id_get_subdevice snd_ctl_elem_id_get_name snd_ctl_elem_id_get_index snd_ctl_elem_id_set_numid snd_ctl_elem_id_set_interface snd_ctl_elem_id_set_device snd_ctl_elem_id_set_subdevice snd_ctl_elem_id_set_name snd_ctl_elem_id_set_index
snd_ctl_card_info_sizeof snd_ctl_card_info_malloc snd_ctl_card_info_free snd_ctl_card_info_clear snd_ctl_card_info_copy snd_ctl_card_info_get_id snd_ctl_card_info_get_driver snd_ctl_card_info_get_name snd_ctl_card_info_get_longname snd_ctl_card_info_get_mixername snd_ctl_card_info_get_components
snd_ctl_event_sizeof snd_ctl_event_malloc snd_ctl_event_free snd_ctl_event_clear snd_ctl_event_copy # snd_ctl_event_get_type
snd_ctl_elem_list_sizeof snd_ctl_elem_list_malloc snd_ctl_elem_list_free snd_ctl_elem_list_clear snd_ctl_elem_list_copy snd_ctl_elem_list_set_offset snd_ctl_elem_list_get_used snd_ctl_elem_list_get_count snd_ctl_elem_list_get_id # snd_ctl_elem_list_get_numid snd_ctl_elem_list_get_name
snd_ctl_elem_info_sizeof snd_ctl_elem_info_malloc snd_ctl_elem_info_free snd_ctl_elem_info_clear snd_ctl_elem_info_copy snd_ctl_elem_info_get_type snd_ctl_elem_info_is_readable snd_ctl_elem_info_is_writable snd_ctl_elem_info_is_volatile snd_ctl_elem_info_is_inactive snd_ctl_elem_info_is_locked # snd_ctl_elem_info_is_owner snd_ctl_elem_info_is_user # snd_ctl_elem_info_get_owner snd_ctl_elem_info_get_count snd_ctl_elem_info_get_min snd_ctl_elem_info_get_max snd_ctl_elem_info_get_step snd_ctl_elem_info_get_min64 snd_ctl_elem_info_get_max64 snd_ctl_elem_info_get_step64 snd_ctl_elem_info_get_items snd_ctl_elem_info_set_item snd_ctl_elem_info_get_item_name snd_ctl_elem_info_get_id snd_ctl_elem_info_get_numid snd_ctl_elem_info_get_name snd_ctl_elem_info_set_id
snd_ctl_elem_add_integer # snd_ctl_elem_add_integer64 snd_ctl_elem_add_boolean snd_ctl_elem_add_iec958 snd_ctl_elem_remove
snd_ctl_elem_value_sizeof snd_ctl_elem_value_malloc snd_ctl_elem_value_free snd_ctl_elem_value_clear snd_ctl_elem_value_copy snd_ctl_elem_value_get_id # snd_ctl_elem_value_get_numid # snd_ctl_elem_value_get_name snd_ctl_elem_value_set_id snd_ctl_elem_value_get_boolean snd_ctl_elem_value_get_integer snd_ctl_elem_value_get_integer64 snd_ctl_elem_value_get_enumerated snd_ctl_elem_value_get_byte snd_ctl_elem_value_set_boolean snd_ctl_elem_value_set_integer snd_ctl_elem_value_set_integer64 snd_ctl_elem_value_set_enumerated snd_ctl_elem_value_set_byte # snd_ctl_elem_value_set_bytes snd_ctl_elem_value_get_bytes snd_ctl_elem_value_get_iec958 snd_ctl_elem_value_set_iec958
snd_hctl_open # snd_hctl_open_ctl snd_hctl_close # snd_hctl_nonblock # snd_hctl_poll_descriptors_count # snd_hctl_poll_descriptors # snd_hctl_poll_descriptors_revents # snd_hctl_get_count # snd_hctl_set_compare
snd_hctl_first_elem snd_hctl_last_elem snd_hctl_find_elem snd_hctl_set_callback snd_hctl_set_callback_private snd_hctl_get_callback_private snd_hctl_load snd_hctl_free # snd_hctl_handle_events # snd_hctl_name # snd_hctl_wait # snd_hctl_ctl
snd_hctl_elem_next snd_hctl_elem_prev snd_hctl_elem_info snd_hctl_elem_read snd_hctl_elem_write
# snd_hctl_elem_get_hctl
snd_hctl_elem_get_id snd_hctl_elem_set_callback snd_hctl_elem_get_callback_private snd_hctl_elem_set_callback_private
/* MIXER */
snd_mixer_open snd_mixer_close snd_mixer_first_elem snd_mixer_last_elem snd_mixer_handle_events snd_mixer_attach # snd_mixer_attach_hctl snd_mixer_detach # snd_mixer_detach_hctl # snd_mixer_get_hctl snd_mixer_poll_descriptors_count snd_mixer_poll_descriptors snd_mixer_poll_descriptors_revents snd_mixer_load snd_mixer_free snd_mixer_wait # snd_mixer_set_compare snd_mixer_set_callback snd_mixer_get_callback_private snd_mixer_set_callback_private snd_mixer_get_count
snd_mixer_elem_next snd_mixer_elem_prev snd_mixer_elem_set_callback snd_mixer_elem_get_callback_private snd_mixer_elem_set_callback_private snd_mixer_elem_get_type
snd_mixer_selem_channel_name snd_mixer_selem_register snd_mixer_selem_get_id snd_mixer_selem_get_name snd_mixer_selem_get_index snd_mixer_find_selem snd_mixer_selem_is_active snd_mixer_selem_is_playback_mono snd_mixer_selem_has_playback_channel snd_mixer_selem_is_capture_mono snd_mixer_selem_has_capture_channel snd_mixer_selem_get_capture_group snd_mixer_selem_has_common_volume snd_mixer_selem_has_playback_volume snd_mixer_selem_has_playback_volume_joined snd_mixer_selem_has_capture_volume snd_mixer_selem_has_capture_volume_joined snd_mixer_selem_has_common_switch snd_mixer_selem_has_playback_switch snd_mixer_selem_has_playback_switch_joined snd_mixer_selem_has_capture_switch snd_mixer_selem_has_capture_switch_joined snd_mixer_selem_has_capture_switch_exclusive
snd_mixer_selem_get_playback_volume snd_mixer_selem_get_capture_volume snd_mixer_selem_get_playback_switch snd_mixer_selem_get_capture_switch snd_mixer_selem_set_playback_volume snd_mixer_selem_set_capture_volume snd_mixer_selem_set_playback_volume_all snd_mixer_selem_set_capture_volume_all snd_mixer_selem_set_playback_switch snd_mixer_selem_set_capture_switch snd_mixer_selem_set_playback_switch_all snd_mixer_selem_set_capture_switch_all snd_mixer_selem_get_playback_volume_range snd_mixer_selem_set_playback_volume_range snd_mixer_selem_get_capture_volume_range snd_mixer_selem_set_capture_volume_range
snd_mixer_selem_is_enumerated snd_mixer_selem_is_enum_playback snd_mixer_selem_is_enum_capture snd_mixer_selem_get_enum_items snd_mixer_selem_get_enum_item_name snd_mixer_selem_get_enum_item snd_mixer_selem_set_enum_item
snd_mixer_selem_id_sizeof snd_mixer_selem_id_malloc snd_mixer_selem_id_free snd_mixer_selem_id_copy snd_mixer_selem_id_get_name snd_mixer_selem_id_get_index snd_mixer_selem_id_set_name snd_mixer_selem_id_set_index
/* HWDEP */
snd_hwdep_open snd_hwdep_close snd_hwdep_poll_descriptors # snd_hwdep_poll_descriptors_revents # snd_hwdep_nonblock snd_hwdep_info snd_hwdep_dsp_status snd_hwdep_dsp_load snd_hwdep_ioctl snd_hwdep_write snd_hwdep_read
snd_hwdep_info_sizeof snd_hwdep_info_malloc snd_hwdep_info_free snd_hwdep_info_copy snd_hwdep_info_get_device snd_hwdep_info_get_card snd_hwdep_info_get_id snd_hwdep_info_get_name snd_hwdep_info_get_iface snd_hwdep_info_set_device
snd_hwdep_dsp_status_sizeof snd_hwdep_dsp_status_malloc snd_hwdep_dsp_status_free snd_hwdep_dsp_status_copy snd_hwdep_dsp_status_get_version snd_hwdep_dsp_status_get_id snd_hwdep_dsp_status_get_num_dsps snd_hwdep_dsp_status_get_dsp_loaded snd_hwdep_dsp_status_get_chip_ready
snd_hwdep_dsp_image_sizeof snd_hwdep_dsp_image_malloc snd_hwdep_dsp_image_free snd_hwdep_dsp_image_copy snd_hwdep_dsp_image_get_index snd_hwdep_dsp_image_get_name snd_hwdep_dsp_image_get_image snd_hwdep_dsp_image_get_length snd_hwdep_dsp_image_set_index snd_hwdep_dsp_image_set_name snd_hwdep_dsp_image_set_image snd_hwdep_dsp_image_set_length
/* PCM */
snd_pcm_open snd_pcm_open_lconf snd_pcm_close snd_pcm_name snd_pcm_type snd_pcm_stream snd_pcm_poll_descriptors_count snd_pcm_poll_descriptors snd_pcm_poll_descriptors_revents snd_pcm_nonblock snd_pcm_info snd_pcm_hw_params_current snd_pcm_hw_params snd_pcm_hw_free snd_pcm_sw_params_current snd_pcm_sw_params snd_pcm_prepare snd_pcm_reset snd_pcm_status snd_pcm_start snd_pcm_drop snd_pcm_drain snd_pcm_pause snd_pcm_state snd_pcm_hwsync snd_pcm_delay snd_pcm_resume snd_pcm_avail_update snd_pcm_rewind snd_pcm_forward snd_pcm_writei snd_pcm_readi snd_pcm_writen snd_pcm_readn snd_pcm_wait snd_pcm_link snd_pcm_unlink snd_pcm_recover
snd_pcm_info_sizeof snd_pcm_info_malloc snd_pcm_info_free snd_pcm_info_copy snd_pcm_info_get_device snd_pcm_info_get_subdevice snd_pcm_info_get_stream snd_pcm_info_get_card snd_pcm_info_get_id snd_pcm_info_get_name snd_pcm_info_get_subdevice_name snd_pcm_info_get_class # snd_pcm_info_get_subclass snd_pcm_info_get_subdevices_count snd_pcm_info_get_subdevices_avail # snd_pcm_info_get_sync snd_pcm_info_set_device snd_pcm_info_set_subdevice snd_pcm_info_set_stream
snd_pcm_hw_params_sizeof snd_pcm_hw_params_malloc snd_pcm_hw_params_free snd_pcm_hw_params_copy snd_pcm_hw_params_any snd_pcm_hw_params_can_mmap_sample_resolution snd_pcm_hw_params_is_double snd_pcm_hw_params_can_pause snd_pcm_hw_params_can_resume snd_pcm_hw_params_is_half_duplex snd_pcm_hw_params_is_joint_duplex snd_pcm_hw_params_can_sync_start snd_pcm_hw_params_get_rate_numden snd_pcm_hw_params_get_sbits snd_pcm_hw_params_get_access snd_pcm_hw_params_test_access snd_pcm_hw_params_set_access snd_pcm_hw_params_set_access_mask snd_pcm_hw_params_get_access_mask snd_pcm_hw_params_get_format snd_pcm_hw_params_test_format snd_pcm_hw_params_set_format snd_pcm_hw_params_set_format_mask snd_pcm_hw_params_get_format_mask snd_pcm_hw_params_get_channels snd_pcm_hw_params_get_channels_min snd_pcm_hw_params_get_channels_max snd_pcm_hw_params_test_channels snd_pcm_hw_params_set_channels snd_pcm_hw_params_set_channels_near snd_pcm_hw_params_get_rate snd_pcm_hw_params_get_rate_min snd_pcm_hw_params_get_rate_max snd_pcm_hw_params_test_rate snd_pcm_hw_params_set_rate snd_pcm_hw_params_set_rate_near snd_pcm_hw_params_set_rate_resample snd_pcm_hw_params_get_rate_resample snd_pcm_hw_params_get_period_time snd_pcm_hw_params_get_period_time_min snd_pcm_hw_params_get_period_time_max snd_pcm_hw_params_test_period_time snd_pcm_hw_params_set_period_time snd_pcm_hw_params_set_period_time_near snd_pcm_hw_params_get_period_size snd_pcm_hw_params_get_period_size_min snd_pcm_hw_params_get_period_size_max snd_pcm_hw_params_test_period_size snd_pcm_hw_params_set_period_size snd_pcm_hw_params_set_period_size_near snd_pcm_hw_params_get_periods snd_pcm_hw_params_get_periods_min snd_pcm_hw_params_get_periods_max snd_pcm_hw_params_test_periods snd_pcm_hw_params_set_periods snd_pcm_hw_params_set_periods_near snd_pcm_hw_params_set_periods_integer snd_pcm_hw_params_get_buffer_time snd_pcm_hw_params_get_buffer_time_min snd_pcm_hw_params_get_buffer_time_max snd_pcm_hw_params_test_buffer_time snd_pcm_hw_params_set_buffer_time snd_pcm_hw_params_set_buffer_time_near snd_pcm_hw_params_get_buffer_size snd_pcm_hw_params_get_buffer_size_min snd_pcm_hw_params_get_buffer_size_max snd_pcm_hw_params_test_buffer_size snd_pcm_hw_params_set_buffer_size snd_pcm_hw_params_set_buffer_size_near * snd_pcm_hw_params_can_overrange * snd_pcm_hw_params_get_subformat * snd_pcm_hw_params_get_tick_time * snd_pcm_hw_params_get_tick_time_max * snd_pcm_hw_params_get_tick_time_min * snd_pcm_hw_params_is_batch * snd_pcm_hw_params_is_block_transfer * snd_pcm_hw_params_set_periods_min
snd_pcm_sw_params_sizeof snd_pcm_sw_params_malloc snd_pcm_sw_params_free snd_pcm_sw_params_copy snd_pcm_sw_params_get_boundary snd_pcm_sw_params_set_tstamp_mode snd_pcm_sw_params_get_tstamp_mode snd_pcm_sw_params_set_avail_min snd_pcm_sw_params_get_avail_min snd_pcm_sw_params_set_start_threshold snd_pcm_sw_params_get_start_threshold snd_pcm_sw_params_set_stop_threshold snd_pcm_sw_params_get_stop_threshold snd_pcm_sw_params_set_silence_threshold snd_pcm_sw_params_get_silence_threshold snd_pcm_sw_params_set_silence_size snd_pcm_sw_params_get_silence_size * snd_pcm_sw_params_set_sleep_min * snd_pcm_sw_params_set_xfer_align
snd_pcm_access_mask_sizeof snd_pcm_access_mask_malloc snd_pcm_access_mask_free snd_pcm_access_mask_copy snd_pcm_access_mask_none snd_pcm_access_mask_any snd_pcm_access_mask_test # snd_pcm_access_mask_empty snd_pcm_access_mask_set # snd_pcm_access_mask_reset
snd_pcm_format_mask_sizeof snd_pcm_format_mask_malloc snd_pcm_format_mask_free snd_pcm_format_mask_copy snd_pcm_format_mask_none snd_pcm_format_mask_any snd_pcm_format_mask_test # snd_pcm_format_mask_empty snd_pcm_format_mask_set # snd_pcm_format_mask_reset
snd_pcm_status_sizeof snd_pcm_status_malloc snd_pcm_status_free snd_pcm_status_copy snd_pcm_status_get_state snd_pcm_status_get_trigger_tstamp # snd_pcm_status_get_trigger_htstamp snd_pcm_status_get_tstamp # snd_pcm_status_get_htstamp snd_pcm_status_get_delay snd_pcm_status_get_avail snd_pcm_status_get_avail_max
snd_pcm_type_name snd_pcm_stream_name snd_pcm_access_name snd_pcm_format_name snd_pcm_format_description snd_pcm_format_value # snd_pcm_tstamp_mode_name snd_pcm_state_name
snd_pcm_dump # snd_pcm_dump_hw_setup # snd_pcm_dump_sw_setup # snd_pcm_dump_setup snd_pcm_hw_params_dump snd_pcm_sw_params_dump snd_pcm_status_dump
snd_pcm_mmap_begin snd_pcm_mmap_commit snd_pcm_mmap_writei snd_pcm_mmap_readi snd_pcm_mmap_writen snd_pcm_mmap_readn
snd_pcm_format_signed snd_pcm_format_unsigned snd_pcm_format_linear snd_pcm_format_float snd_pcm_format_little_endian snd_pcm_format_big_endian snd_pcm_format_cpu_endian snd_pcm_format_width snd_pcm_format_physical_width snd_pcm_format_size snd_pcm_build_linear_format snd_pcm_format_set_silence snd_pcm_bytes_to_frames snd_pcm_frames_to_bytes snd_pcm_bytes_to_samples snd_pcm_samples_to_bytes snd_pcm_area_silence snd_pcm_areas_silence snd_pcm_area_copy snd_pcm_areas_copy
/* deprecated */
/* RAWMIDI */
snd_rawmidi_open snd_rawmidi_close snd_rawmidi_poll_descriptors_count snd_rawmidi_poll_descriptors snd_rawmidi_poll_descriptors_revents snd_rawmidi_nonblock # snd_rawmidi_name # snd_rawmidi_type # snd_rawmidi_stream snd_rawmidi_drain snd_rawmidi_drop snd_rawmidi_write snd_rawmidi_read
# snd_rawmidi_info # snd_rawmidi_info_sizeof # snd_rawmidi_info_malloc # snd_rawmidi_info_free # snd_rawmidi_info_copy # snd_rawmidi_info_get_device # snd_rawmidi_info_get_subdevice # snd_rawmidi_info_get_stream # snd_rawmidi_info_get_card # snd_rawmidi_info_get_flags # snd_rawmidi_info_get_id # snd_rawmidi_info_get_name # snd_rawmidi_info_get_subdevice_name # snd_rawmidi_info_get_subdevices_count # snd_rawmidi_info_get_subdevices_avail # snd_rawmidi_info_set_device # snd_rawmidi_info_set_subdevice # snd_rawmidi_info_set_stream
# snd_rawmidi_params # snd_rawmidi_params_current # snd_rawmidi_params_sizeof # snd_rawmidi_params_malloc # snd_rawmidi_params_free # snd_rawmidi_params_copy # snd_rawmidi_params_set_buffer_size # snd_rawmidi_params_get_buffer_size # snd_rawmidi_params_set_avail_min # snd_rawmidi_params_get_avail_min # snd_rawmidi_params_set_no_active_sensing # snd_rawmidi_params_get_no_active_sensing
# snd_rawmidi_status_sizeof # snd_rawmidi_status_malloc # snd_rawmidi_status_free # snd_rawmidi_status_copy # snd_rawmidi_status # snd_rawmidi_status_get_tstamp # snd_rawmidi_status_get_avail # snd_rawmidi_status_get_xruns
/* TIMER */
snd_timer_open snd_timer_close
snd_timer_poll_descriptors_count snd_timer_poll_descriptors # snd_timer_poll_descriptors_revents snd_timer_info snd_timer_params snd_timer_status snd_timer_start snd_timer_stop snd_timer_continue snd_timer_read
snd_timer_id_sizeof snd_timer_id_malloc snd_timer_id_free snd_timer_id_copy snd_timer_id_set_class snd_timer_id_get_class snd_timer_id_set_sclass snd_timer_id_get_sclass snd_timer_id_set_card snd_timer_id_get_card snd_timer_id_set_device snd_timer_id_get_device snd_timer_id_set_subdevice snd_timer_id_get_subdevice
snd_timer_info_sizeof snd_timer_info_malloc snd_timer_info_free snd_timer_info_copy # snd_timer_info_is_slave snd_timer_info_get_card snd_timer_info_get_id snd_timer_info_get_name snd_timer_info_get_resolution
# snd_timer_params_sizeof # snd_timer_params_malloc # snd_timer_params_free # snd_timer_params_copy # snd_timer_params_set_auto_start # snd_timer_params_get_auto_start # snd_timer_params_set_exclusive # snd_timer_params_get_exclusive # snd_timer_params_set_early_event # snd_timer_params_get_early_event # snd_timer_params_set_ticks # snd_timer_params_get_ticks # snd_timer_params_set_queue_size # snd_timer_params_get_queue_size # snd_timer_params_set_filter # snd_timer_params_get_filter
# snd_timer_status_sizeof # snd_timer_status_malloc # snd_timer_status_free # snd_timer_status_copy # snd_timer_status_get_timestamp # snd_timer_status_get_resolution # snd_timer_status_get_lost # snd_timer_status_get_overrun # snd_timer_status_get_queue
/* SEQUENCER */
snd_seq_open # snd_seq_name # snd_seq_type snd_seq_close snd_seq_poll_descriptors_count snd_seq_poll_descriptors snd_seq_poll_descriptors_revents snd_seq_nonblock snd_seq_client_id
snd_seq_get_output_buffer_size snd_seq_get_input_buffer_size snd_seq_set_output_buffer_size snd_seq_set_input_buffer_size
snd_seq_system_info_sizeof snd_seq_system_info_malloc snd_seq_system_info_free snd_seq_system_info_copy snd_seq_system_info_get_queues snd_seq_system_info_get_clients snd_seq_system_info_get_ports # snd_seq_system_info_get_channels # snd_seq_system_info_get_cur_clients # snd_seq_system_info_get_cur_queues snd_seq_system_info
snd_seq_client_info_sizeof snd_seq_client_info_malloc snd_seq_client_info_free snd_seq_client_info_copy
snd_seq_client_info_get_client snd_seq_client_info_get_type snd_seq_client_info_get_name snd_seq_client_info_get_num_ports # snd_seq_client_info_get_event_lost
snd_seq_client_info_set_client snd_seq_client_info_set_name
snd_seq_get_client_info snd_seq_get_any_client_info snd_seq_set_client_info snd_seq_query_next_client
snd_seq_port_info_sizeof snd_seq_port_info_malloc snd_seq_port_info_free snd_seq_port_info_copy
snd_seq_port_info_get_client snd_seq_port_info_get_port snd_seq_port_info_get_addr snd_seq_port_info_get_name snd_seq_port_info_get_capability snd_seq_port_info_get_type # snd_seq_port_info_get_midi_channels # snd_seq_port_info_get_midi_voices # snd_seq_port_info_get_synth_voices # snd_seq_port_info_get_read_use # snd_seq_port_info_get_write_use # snd_seq_port_info_get_port_specified # snd_seq_port_info_get_timestamping # snd_seq_port_info_get_timestamp_real # snd_seq_port_info_get_timestamp_queue
snd_seq_port_info_set_client snd_seq_port_info_set_port # snd_seq_port_info_set_addr snd_seq_port_info_set_name snd_seq_port_info_set_capability snd_seq_port_info_set_type # snd_seq_port_info_set_midi_channels # snd_seq_port_info_set_midi_voices # snd_seq_port_info_set_synth_voices snd_seq_port_info_set_port_specified snd_seq_port_info_set_timestamping snd_seq_port_info_set_timestamp_real snd_seq_port_info_set_timestamp_queue
snd_seq_create_port snd_seq_delete_port snd_seq_get_port_info snd_seq_get_any_port_info snd_seq_set_port_info snd_seq_query_next_port
snd_seq_port_subscribe_sizeof snd_seq_port_subscribe_malloc snd_seq_port_subscribe_free snd_seq_port_subscribe_copy
snd_seq_port_subscribe_get_sender snd_seq_port_subscribe_get_dest snd_seq_port_subscribe_get_queue snd_seq_port_subscribe_get_exclusive snd_seq_port_subscribe_get_time_update snd_seq_port_subscribe_get_time_real
snd_seq_port_subscribe_set_sender snd_seq_port_subscribe_set_dest snd_seq_port_subscribe_set_queue snd_seq_port_subscribe_set_exclusive snd_seq_port_subscribe_set_time_update snd_seq_port_subscribe_set_time_real
snd_seq_get_port_subscription snd_seq_subscribe_port snd_seq_unsubscribe_port
snd_seq_query_subscribe_sizeof snd_seq_query_subscribe_malloc snd_seq_query_subscribe_free snd_seq_query_subscribe_copy # snd_seq_query_subscribe_get_client # snd_seq_query_subscribe_get_port snd_seq_query_subscribe_get_root # snd_seq_query_subscribe_get_type snd_seq_query_subscribe_get_index # snd_seq_query_subscribe_get_num_subs snd_seq_query_subscribe_get_addr snd_seq_query_subscribe_get_queue snd_seq_query_subscribe_get_exclusive snd_seq_query_subscribe_get_time_update snd_seq_query_subscribe_get_time_real
# snd_seq_query_subscribe_set_client # snd_seq_query_subscribe_set_port snd_seq_query_subscribe_set_root snd_seq_query_subscribe_set_type snd_seq_query_subscribe_set_index snd_seq_query_port_subscribers
snd_seq_alloc_named_queue snd_seq_alloc_queue snd_seq_free_queue
snd_seq_queue_status_sizeof snd_seq_queue_status_malloc snd_seq_queue_status_free snd_seq_queue_status_copy # snd_seq_queue_status_get_queue # snd_seq_queue_status_get_events snd_seq_queue_status_get_tick_time snd_seq_queue_status_get_real_time # snd_seq_queue_status_get_status snd_seq_get_queue_status
snd_seq_queue_tempo_sizeof snd_seq_queue_tempo_malloc snd_seq_queue_tempo_free snd_seq_queue_tempo_copy # snd_seq_queue_tempo_get_queue snd_seq_queue_tempo_get_tempo snd_seq_queue_tempo_get_ppq snd_seq_queue_tempo_set_tempo snd_seq_queue_tempo_set_ppq snd_seq_get_queue_tempo snd_seq_set_queue_tempo
snd_seq_free_event snd_seq_event_length snd_seq_event_output #snd_seq_event_output_buffer snd_seq_event_output_direct snd_seq_event_input snd_seq_event_input_pending snd_seq_drain_output # snd_seq_event_output_pending # snd_seq_extract_output snd_seq_drop_output snd_seq_drop_output_buffer # snd_seq_drop_input # snd_seq_drop_input_buffer
snd_seq_event_types
snd_seq_control_queue snd_seq_create_simple_port snd_seq_delete_simple_port snd_seq_connect_from snd_seq_connect_to snd_seq_disconnect_from snd_seq_disconnect_to snd_seq_set_client_name snd_seq_sync_output_queue
snd_seq_parse_address
snd_midi_event_new # snd_midi_event_resize_buffer snd_midi_event_free snd_midi_event_init snd_midi_event_reset_encode snd_midi_event_reset_decode # snd_midi_event_no_status snd_midi_event_encode snd_midi_event_encode_byte snd_midi_event_decode
participants (4)
-
Clemens Ladisch
-
John Utz
-
Lennart Poettering
-
Takashi Iwai