ALSA_0.9 {
  global:
    snd_*;

    _snd_*_open;
    _snd_*_dlsym_*;
    _snd_*_poll_descriptor;
    _snd_pcm_hook_*;

    __snd_pcm_hw_params_*;
    __snd_pcm_sw_params_*;
    __snd_*_dlsym_*;

  local:
    *;
};

ALSA_0.9.0rc4 {
#ifdef HAVE_PCM_SYMS
  global:

    snd_pcm_hw_params_get_access;
    snd_pcm_hw_params_set_access_first;
    snd_pcm_hw_params_set_access_last;

    snd_pcm_hw_params_get_format;
    snd_pcm_hw_params_set_format_first;
    snd_pcm_hw_params_set_format_last;

    snd_pcm_hw_params_get_subformat;
    snd_pcm_hw_params_set_subformat_first;
    snd_pcm_hw_params_set_subformat_last;

    snd_pcm_hw_params_get_channels;
    snd_pcm_hw_params_get_channels_min;
    snd_pcm_hw_params_get_channels_max;
    snd_pcm_hw_params_set_channels_near;
    snd_pcm_hw_params_set_channels_first;
    snd_pcm_hw_params_set_channels_last;

    snd_pcm_hw_params_get_rate;
    snd_pcm_hw_params_get_rate_min;
    snd_pcm_hw_params_get_rate_max;
    snd_pcm_hw_params_set_rate_near;
    snd_pcm_hw_params_set_rate_first;

    snd_pcm_hw_params_set_rate_last;

    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_set_period_time_near;
    snd_pcm_hw_params_set_period_time_first;
    snd_pcm_hw_params_set_period_time_last;

    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_set_period_size_near;
    snd_pcm_hw_params_set_period_size_first;
    snd_pcm_hw_params_set_period_size_last;

    snd_pcm_hw_params_get_periods;
    snd_pcm_hw_params_get_periods_min;
    snd_pcm_hw_params_get_periods_max;
    snd_pcm_hw_params_set_periods_near;
    snd_pcm_hw_params_set_periods_first;
    snd_pcm_hw_params_set_periods_last;

    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_set_buffer_time_near;
    snd_pcm_hw_params_set_buffer_time_first;
    snd_pcm_hw_params_set_buffer_time_last;

    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_set_buffer_size_near;
    snd_pcm_hw_params_set_buffer_size_first;
    snd_pcm_hw_params_set_buffer_size_last;

    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_set_tick_time_near;
    snd_pcm_hw_params_set_tick_time_first;
    snd_pcm_hw_params_set_tick_time_last;
#endif

} ALSA_0.9;

ALSA_0.9.0rc8 {
#ifdef HAVE_PCM_SYMS
  global:

    snd_pcm_forward;
    snd_pcm_status_get_trigger_htstamp;
    snd_pcm_status_get_htstamp;
#endif

} ALSA_0.9.0rc4;

ALSA_0.9.0 {
#if defined HAVE_PCM_SYMS || defined HAVE_TIMER_SYMS
  global:

#if defined HAVE_PCM_SYMS
    snd_pcm_type_name;
#endif
#ifdef HAVE_TIMER_SYMS
    snd_timer_query_info;
    snd_timer_query_params;
    snd_timer_query_status;
    snd_timer_params_set_exclusive;
    snd_timer_params_get_exclusive;
    snd_timer_params_set_filter;
    snd_timer_params_get_filter;
#endif
#endif
} ALSA_0.9.0rc8;

ALSA_0.9.3 {
  global:

    snd_ctl_elem_info_get_dimensions;
    snd_ctl_elem_info_get_dimension;
} ALSA_0.9.0;

ALSA_0.9.5 {
#ifdef HAVE_ALISP_SYMS
  global:

    alsa_lisp;
#endif
} ALSA_0.9.3;

ALSA_0.9.7 {
#ifdef HAVE_ALISP_SYMS
  global:

    alsa_lisp_*;
#endif
} ALSA_0.9.5;

ALSA_1.1.6 {
  global:

    snd_dlopen;
} ALSA_0.9.7;

ALSA_1.2.6 {
  global:

    _snd_safe_strto*;
} ALSA_1.1.6;

ALSA_1.2.9 {
#ifdef HAVE_PCM_SYMS
  global:

    snd_pcm_hw_params_is_perfect_drain;
    snd_pcm_hw_params_set_drain_silence;
    snd_pcm_hw_params_get_drain_silence;
#endif
} ALSA_1.2.6;

ALSA_1.2.10 {
  global:

    snd_ump_*;
    snd_ctl_ump_next_device;
    snd_ctl_ump_endpoint_info;
    snd_ctl_ump_block_info;
    snd_seq_ump_*;
    snd_seq_client_info_get_midi_version;
    snd_seq_client_info_get_ump_group_enabled;
    snd_seq_client_info_get_ump_groupless_enabled;
    snd_seq_client_info_get_ump_conversion;
    snd_seq_client_info_set_midi_version;
    snd_seq_client_info_set_ump_group_enabled;
    snd_seq_client_info_set_ump_groupless_enabled;
    snd_seq_client_info_set_ump_conversion;
    snd_seq_get_ump_endpoint_info;
    snd_seq_get_ump_block_info;
    snd_seq_set_ump_endpoint_info;
    snd_seq_set_ump_block_info;
    snd_seq_port_info_get_direction;
    snd_seq_port_info_get_ump_group;
    snd_seq_port_info_set_direction;
    snd_seq_port_info_set_ump_group;
    snd_seq_set_client_midi_version;
    snd_seq_set_client_ump_conversion;
} ALSA_1.2.9;
