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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel