The Linux Foundation

 

Become an Individual Member

Talk:ALSA

From The Linux Foundation

The wording that "we can't add much since we are targeting SLES 10/RHEL 5" is not correct, indeed. When marking interfaces as 'included', we took into account presence in distros, usage by apps and alsa developers recommendations. There were a large set of functions that were present in all distros and approved by developers, but were not required by applications.

To be sure, all things necessary to mark such interfaces as included are already in the database (types, headers, etc.); one should only investigate which of them have to be turned on.

Since the time the first analysis was performed, we've uploaded data for much more apps; however, there are only 6 interfaces from the list approved by alsa developers that are used by applications analyzed by the moment:

snd_hctl_nonblock
snd_hctl_get_count
snd_rawmidi_info_get_subdevice_name
snd_rawmidi_info_sizeof
snd_hctl_handle_events
snd_hctl_wait

They are used by new skype and alsa-utils.

Bug 1981 created for tracking these symbols.

Below is a list of functions also aapproved by upstream developers and which are present in all distributions. If we'll see a need in their inclusion, there should be no problems with database data:

snd_midi_event_resize_buffer
snd_midi_event_no_status
snd_seq_port_info_get_midi_channels
snd_seq_port_info_get_write_use
snd_seq_query_subscribe_set_client
snd_seq_system_info_get_cur_queues
snd_seq_name
snd_seq_port_info_get_timestamping
snd_seq_query_subscribe_get_type
snd_seq_system_info_get_cur_clients
snd_seq_extract_output
snd_seq_port_info_get_timestamp_real
snd_seq_query_subscribe_get_port
snd_seq_system_info_get_channels
snd_seq_event_output_pending
snd_seq_port_info_get_timestamp_queue
snd_seq_query_subscribe_get_num_subs
snd_seq_queue_tempo_get_queue
snd_seq_event_output_buffer
snd_seq_port_info_get_synth_voices
snd_seq_query_subscribe_get_client
snd_seq_queue_status_get_status
snd_seq_port_info_get_read_use
snd_seq_port_info_set_synth_voices
snd_seq_queue_status_get_queue
snd_seq_drop_input_buffer
snd_seq_port_info_get_port_specified
snd_seq_port_info_set_midi_voices
snd_seq_queue_status_get_events
snd_seq_drop_input
snd_seq_port_info_get_midi_voices
snd_seq_port_info_set_addr
snd_seq_query_subscribe_set_port
snd_seq_type
snd_seq_client_info_get_event_lost
snd_rawmidi_info
snd_rawmidi_info_get_subdevices_avail
snd_rawmidi_params_get_buffer_size
snd_rawmidi_status_copy
snd_rawmidi_type
snd_rawmidi_params_get_avail_min
snd_rawmidi_status
snd_rawmidi_stream
snd_rawmidi_info_get_subdevice
snd_rawmidi_params_free
snd_rawmidi_params_sizeof
snd_rawmidi_status_sizeof
snd_rawmidi_info_get_stream
snd_rawmidi_params_current
snd_rawmidi_params_set_no_active_sensing
snd_rawmidi_status_malloc
snd_rawmidi_info_get_flags
snd_rawmidi_params_copy
snd_rawmidi_params_set_buffer_size
snd_rawmidi_status_get_xruns
snd_rawmidi_info_get_device
snd_rawmidi_params
snd_rawmidi_params_set_avail_min
snd_rawmidi_status_get_tstamp
snd_rawmidi_info_get_card
snd_rawmidi_name
snd_rawmidi_params_malloc
snd_rawmidi_status_get_avail
snd_rawmidi_info_copy
snd_rawmidi_params_get_no_active_sensing
snd_rawmidi_status_free
snd_async_handler_get_signo
snd_async_handler_get_fd
snd_config_evaluate
snd_config_make_pointer
snd_config_delete_compound_members
snd_config_make
snd_config_imake_real
snd_config_test_id
snd_config_imake_pointer
snd_config_set_real
snd_config_get_real
snd_config_set_pointer
snd_config_get_pointer
snd_config_set_id
snd_config_get_ireal
snd_config_search_definition
snd_config_expand
snd_config_make_real
snd_hwdep_poll_descriptors_revents
snd_hwdep_nonblock
snd_input_gets
snd_input_getc
snd_input_ungetc
snd_input_scanf
snd_output_vprintf
snd_output_printf
snd_output_flush
snd_timer_status_free
snd_timer_params_get_filter
snd_timer_status_sizeof
snd_timer_params_get_exclusive
snd_timer_status_copy
snd_timer_status_malloc
snd_timer_params_get_early_event
snd_timer_params_sizeof
snd_timer_status_get_timestamp
snd_timer_params_get_auto_start
snd_timer_params_set_queue_size
snd_timer_status_get_resolution
snd_timer_params_free
snd_timer_params_set_filter
snd_timer_status_get_queue
snd_timer_params_copy
snd_timer_params_set_exclusive
snd_timer_status_get_overrun
snd_timer_info_is_slave
snd_timer_params_set_early_event
snd_timer_status_get_lost
snd_timer_params_get_queue_size
snd_mixer_set_compare
snd_pcm_dump_sw_setup
snd_pcm_tstamp_mode_name
snd_pcm_dump_setup
snd_pcm_status_get_trigger_htstamp
snd_pcm_dump_hw_setup
snd_pcm_status_get_htstamp
snd_pcm_access_mask_reset
snd_pcm_info_get_sync
snd_pcm_access_mask_empty
snd_pcm_info_get_subclass
snd_pcm_format_mask_reset
snd_pcm_format_mask_empty
snd_ctl_event_type_name
snd_hctl_poll_descriptors
snd_ctl_elem_info_get_owner
snd_ctl_event_get_type
snd_hctl_open_ctl
snd_ctl_elem_value_get_numid
snd_ctl_elem_value_get_name
snd_ctl_wait
snd_hctl_name
snd_ctl_type
snd_ctl_elem_unlock
snd_ctl_rawmidi_prefer_subdevice
snd_hctl_set_compare
snd_ctl_elem_lock
snd_ctl_poll_descriptors_revents
snd_hctl_elem_get_hctl
snd_hctl_poll_descriptors_revents
snd_ctl_elem_list_get_numid
snd_ctl_pcm_prefer_subdevice
snd_hctl_ctl
snd_hctl_poll_descriptors_count
snd_ctl_elem_info_is_owner
snd_async_handler_get_timer
snd_async_add_timer_handler
snd_ctl_elem_add_integer64
snd_mixer_get_hctl
snd_mixer_detach_hctl
snd_mixer_attach_hctl

Finally, the following ones are desirable from upstream point of view, but they are too young - appeared in alsa 1.0.14 (used in openSUSE 10.3 and Fedora 7/8, so it is likely to meet them in SLES 11 and RHEL 6):

snd_device_name_hint
snd_device_name_get_hint
snd_device_name_free_hint

[Article] [Discussion] [View source] [History]