[alsa-devel] ALSA API as standards

Takashi Iwai tiwai at suse.de
Fri Nov 30 10:19:42 CET 2007


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



More information about the Alsa-devel mailing list