[alsa-devel] Blacklist (Re: ALSA API as standards)

Takashi Iwai tiwai at suse.de
Fri Nov 23 16:25:42 CET 2007


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



More information about the Alsa-devel mailing list