01-20-2006, 03:34 AM
EDIT: one ptr on ptr changed!
The FBSOUND lib will support Windows and Linux the Win part use DirectX or MMSystem currently i try to switch from Linux OSS (emulation mode) to the ALSA lib.
Please post here your result from test1.bas if you get an error message please post your kernel version 2.4 or 2.6. and ALSA version too.
thank you all for help.
Joshy
ALSA Lib Docu.
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
Joshy
alsa.bi
The FBSOUND lib will support Windows and Linux the Win part use DirectX or MMSystem currently i try to switch from Linux OSS (emulation mode) to the ALSA lib.
Please post here your result from test1.bas if you get an error message please post your kernel version 2.4 or 2.6. and ALSA version too.
thank you all for help.
Joshy
ALSA Lib Docu.
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
Joshy
alsa.bi
Code:
option explicit
#define __LITTLE_ENDIAN
#define EPIPE 32
' PCM access type
enum snd_pcm_access_t
' mmap access with simple interleaved channels
SND_PCM_ACCESS_MMAP_INTERLEAVED = 0
' mmap access with simple non interleaved channels
SND_PCM_ACCESS_MMAP_NONINTERLEAVED
' mmap access with complex placement
SND_PCM_ACCESS_MMAP_COMPLEX
' snd_pcm_readi/snd_pcm_writei access
SND_PCM_ACCESS_RW_INTERLEAVED
' snd_pcm_readn/snd_pcm_writen access
SND_PCM_ACCESS_RW_NONINTERLEAVED
end enum
' PCM state
enum snd_pcm_state_t
' Open
SND_PCM_STATE_OPEN = 0
' Setup installed
SND_PCM_STATE_SETUP
' Ready to start
SND_PCM_STATE_PREPARED
' Running
SND_PCM_STATE_RUNNING
' Stopped: underrun (playback) or overrun (capture) detected
SND_PCM_STATE_XRUN
' Draining: running (playback) or stopped (capture)
SND_PCM_STATE_DRAINING
' Paused
SND_PCM_STATE_PAUSED
' Hardware is suspended
SND_PCM_STATE_SUSPENDED
' Hardware is disconnected
SND_PCM_STATE_DISCONNECTED
end enum
' PCM sample format
enum snd_pcm_format_t
' Unknown
SND_PCM_FORMAT_UNKNOWN = -1
' Signed 8 bit */
SND_PCM_FORMAT_S8 = 0
' Unsigned 8 bit
SND_PCM_FORMAT_U8,
' Signed 16 bit Little Endian
SND_PCM_FORMAT_S16_LE
' Signed 16 bit Big Endian
SND_PCM_FORMAT_S16_BE
' Unsigned 16 bit Little Endian
SND_PCM_FORMAT_U16_LE
' Unsigned 16 bit Big Endian
SND_PCM_FORMAT_U16_BE
' Signed 24 bit Little Endian
SND_PCM_FORMAT_S24_LE
' Signed 24 bit Big Endian
SND_PCM_FORMAT_S24_BE
' Unsigned 24 bit Little Endian
SND_PCM_FORMAT_U24_LE
' Unsigned 24 bit Big Endian
SND_PCM_FORMAT_U24_BE
' Signed 32 bit Little Endian
SND_PCM_FORMAT_S32_LE
' Signed 32 bit Big Endian
SND_PCM_FORMAT_S32_BE
' Unsigned 32 bit Little Endian
SND_PCM_FORMAT_U32_LE
' Unsigned 32 bit Big Endian
SND_PCM_FORMAT_U32_BE
' Float 32 bit Little Endian, Range -1.0 to 1.0
SND_PCM_FORMAT_FLOAT_LE
' Float 32 bit Big Endian, Range -1.0 to 1.0
SND_PCM_FORMAT_FLOAT_BE
' Float 64 bit Little Endian, Range -1.0 to 1.0
SND_PCM_FORMAT_FLOAT64_LE
' Float 64 bit Big Endian, Range -1.0 to 1.0
SND_PCM_FORMAT_FLOAT64_BE
' IEC-958 Little Endian
SND_PCM_FORMAT_IEC958_SUBFRAME_LE
' IEC-958 Big Endian
SND_PCM_FORMAT_IEC958_SUBFRAME_BE
' Mu-Law
SND_PCM_FORMAT_MU_LAW
' A-Law
SND_PCM_FORMAT_A_LAW
' Ima-ADPCM
SND_PCM_FORMAT_IMA_ADPCM
' MPEG
SND_PCM_FORMAT_MPEG
' GSM
SND_PCM_FORMAT_GSM
' Special
SND_PCM_FORMAT_SPECIAL = 31
' Signed 24bit Little Endian in 3bytes format
SND_PCM_FORMAT_S24_3LE = 32
' Signed 24bit Big Endian in 3bytes format
SND_PCM_FORMAT_S24_3BE
' Unsigned 24bit Little Endian in 3bytes format
SND_PCM_FORMAT_U24_3LE
' Unsigned 24bit Big Endian in 3bytes format
SND_PCM_FORMAT_U24_3BE
' Signed 20bit Little Endian in 3bytes format
SND_PCM_FORMAT_S20_3LE
' Signed 20bit Big Endian in 3bytes format
SND_PCM_FORMAT_S20_3BE
' Unsigned 20bit Little Endian in 3bytes format
SND_PCM_FORMAT_U20_3LE
' Unsigned 20bit Big Endian in 3bytes format
SND_PCM_FORMAT_U20_3BE
' Signed 18bit Little Endian in 3bytes format
SND_PCM_FORMAT_S18_3LE
' Signed 18bit Big Endian in 3bytes format
SND_PCM_FORMAT_S18_3BE
' Unsigned 18bit Little Endian in 3bytes format
SND_PCM_FORMAT_U18_3LE
' Unsigned 18bit Big Endian in 3bytes format
SND_PCM_FORMAT_U18_3BE
#ifdef __LITTLE_ENDIAN
' Signed 16 bit CPU endian
SND_PCM_FORMAT_S16 = SND_PCM_FORMAT_S16_LE
' Unsigned 16 bit CPU endian
SND_PCM_FORMAT_U16 = SND_PCM_FORMAT_U16_LE
' Signed 24 bit CPU endian
SND_PCM_FORMAT_S24 = SND_PCM_FORMAT_S24_LE
' Unsigned 24 bit CPU endian
SND_PCM_FORMAT_U24 = SND_PCM_FORMAT_U24_LE
' Signed 32 bit CPU endian
SND_PCM_FORMAT_S32 = SND_PCM_FORMAT_S32_LE
' Unsigned 32 bit CPU endian
SND_PCM_FORMAT_U32 = SND_PCM_FORMAT_U32_LE
' Float 32 bit CPU endian
SND_PCM_FORMAT_FLOAT = SND_PCM_FORMAT_FLOAT_LE
' Float 64 bit CPU endian
SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_LE
' IEC-958 CPU Endian
SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_LE
#else
' Signed 16 bit CPU endian
SND_PCM_FORMAT_S16 = SND_PCM_FORMAT_S16_BE
' Unsigned 16 bit CPU endian
SND_PCM_FORMAT_U16 = SND_PCM_FORMAT_U16_BE
' Signed 24 bit CPU endian
SND_PCM_FORMAT_S24 = SND_PCM_FORMAT_S24_BE
' Unsigned 24 bit CPU endian
SND_PCM_FORMAT_U24 = SND_PCM_FORMAT_U24_BE
' Signed 32 bit CPU endian
SND_PCM_FORMAT_S32 = SND_PCM_FORMAT_S32_BE
' Unsigned 32 bit CPU endian
SND_PCM_FORMAT_U32 = SND_PCM_FORMAT_U32_BE
' Float 32 bit CPU endian
SND_PCM_FORMAT_FLOAT = SND_PCM_FORMAT_FLOAT_BE
' Float 64 bit CPU endian
SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_BE
' IEC-958 CPU Endian
SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_BE
#endif
end enum
enum snd_pcm_stream_t
' Playback stream
SND_PCM_STREAM_PLAYBACK = 0
' Capture stream
SND_PCM_STREAM_CAPTURE
end enum
' Non blocking mode (flag for open mode)
#define SND_PCM_NONBLOCK &H0001
' Async notification (flag for open mode)
#define SND_PCM_ASYNC &H0002
type snd_pcm_t as any ptr
type snd_pcm_hw_params_t as any ptr
type snd_pcm_sw_params_t as any ptr
' hardware
declare function snd_pcm_hw_params_malloc cdecl alias "snd_pcm_hw_params_malloc" ( _
byval lp_hw_params as snd_pcm_hw_params_t ptr) as integer
declare sub snd_pcm_hw_params_free cdecl alias "snd_pcm_hw_params_free" ( _
byval hw_params as snd_pcm_hw_params_t)
declare function snd_pcm_hw_params_any cdecl alias "snd_pcm_hw_params_any" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t) as integer
declare function snd_pcm_hw_params_set_access cdecl alias "snd_pcm_hw_params_set_access" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval access as snd_pcm_access_t) as integer
declare function snd_pcm_hw_params_set_format cdecl alias "snd_pcm_hw_params_set_format" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval format as snd_pcm_format_t) as integer
declare function snd_pcm_hw_params_get_rate cdecl alias "snd_pcm_hw_params_get_rate" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_get_rate_min cdecl alias "snd_pcm_hw_params_get_rate_min" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_get_rate_max cdecl alias "function snd_pcm_hw_params_get_rate_max" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_test_rate cdecl alias "snd_pcm_hw_params_test_rate" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger, _
byval direction as integer) as integer
declare function snd_pcm_hw_params_set_rate cdecl alias "snd_pcm_hw_params_set_rate" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger, _
byval direction as integer) as integer
declare function snd_pcm_hw_params_set_rate_min cdecl alias "snd_pcm_hw_params_set_rate_min" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_set_rate_max cdecl alias "snd_pcm_hw_params_set_rate_max" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_set_rate_minmax cdecl alias "snd_pcm_hw_params_set_rate_minmax" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval min as uinteger ptr,byval mindir as integer ptr, _
byval max as uinteger ptr,byval maxdir as integer ptr) as integer
declare function snd_pcm_hw_params_set_rate_near cdecl alias "snd_pcm_hw_params_set_rate_near" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_set_rate_first cdecl alias "snd_pcm_hw_params_set_rate_first" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_set_rate_last cdecl alias "snd_pcm_hw_params_set_rate_last" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr, _
byval direction as integer ptr) as integer
declare function snd_pcm_hw_params_set_rate_resample cdecl alias "snd_pcm_hw_params_set_rate_resample" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger) as integer
declare function snd_pcm_hw_params_get_rate_resample cdecl alias "snd_pcm_hw_params_get_rate_resample" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval rate as uinteger ptr) as integer
declare function snd_pcm_hw_params_get_channels cdecl alias "snd_pcm_hw_params_get_channels" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_get_channels_min cdecl alias "snd_pcm_hw_params_get_channels_min" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_get_channels_max cdecl alias "snd_pcm_hw_params_get_channels_max" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_test_channels cdecl alias "snd_pcm_hw_params_test_channels" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger) as integer
declare function snd_pcm_hw_params_set_channels cdecl alias "snd_pcm_hw_params_set_channels" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger) as integer
declare function snd_pcm_hw_params_set_channels_min cdecl alias "snd_pcm_hw_params_set_channels_min" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_set_channels_max cdecl alias "snd_pcm_hw_params_set_channels_max" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_set_channels_minmax cdecl alias "snd_pcm_hw_params_set_channels_minmax" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval min as uinteger ptr, _
byval max as uinteger ptr) as integer
declare function snd_pcm_hw_params_set_channels_near cdecl alias "snd_pcm_hw_params_set_channels_near" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_set_channels_firstcdecl alias "snd_pcm_hw_params_set_channels_firstcdecl" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_set_channels_last cdecl alias "snd_pcm_hw_params_set_channels_last" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t, _
byval n_channels as uinteger ptr) as integer
declare function snd_pcm_hw_params_current cdecl alias "snd_pcm_hw_params_current" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t) as integer
declare function snd_pcm_hw_params cdecl alias "snd_pcm_hw_params" ( _
byval pcm as snd_pcm_t, _
byval hw_params as snd_pcm_hw_params_t) as integer
' PCM timestamp mode
enum snd_pcm_tstamp_t
' No timestamp
SND_PCM_TSTAMP_NONE = 0
' Update mmap'ed timestamp
SND_PCM_TSTAMP_MMAP
end enum
' Unsigned frames quantity
type snd_pcm_uframes_t as uinteger
' Signed frames quantity
type snd_pcm_sframes_t as integer
type snd_pcm_status_t as any ptr '!!!
' software
declare function snd_pcm_sw_params_sizeof cdecl alias "snd_pcm_sw_params_sizeof" () as integer
declare function snd_pcm_sw_params_malloc cdecl alias "snd_pcm_sw_params_malloc" ( _
byval lp_sw_params as snd_pcm_sw_params_t ptr) as integer
declare sub snd_pcm_sw_params_free cdecl alias "snd_pcm_sw_params_free" ( _
byval sw_params as snd_pcm_sw_params_t)
declare sub snd_pcm_sw_params_copy cdecl alias "snd_pcm_sw_params_copy" ( _
byval des_swparams as snd_pcm_sw_params_t, _
byval src_swparams as snd_pcm_sw_params_t)
declare function snd_pcm_sw_params_get_boundary cdecl alias "snd_pcm_sw_params_get_boundary" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t ptr) as integer
declare function snd_pcm_sw_params_set_tstamp_mode cdecl alias "snd_pcm_sw_params_set_tstamp_mode" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_tstamp_t) as integer
declare function snd_pcm_sw_params_get_tstamp_mode cdecl alias "snd_pcm_sw_params_get_tstamp_mode" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_tstamp_t ptr) as integer
declare function snd_pcm_sw_params_set_sleep_min cdecl alias "snd_pcm_sw_params_set_sleep_min" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as uinteger) as integer
declare function snd_pcm_sw_params_get_sleep_min cdecl alias "snd_pcm_sw_params_get_sleep_min" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as uinteger ptr) as integer
declare function snd_pcm_sw_params_set_avail_min cdecl alias "snd_pcm_sw_params_set_avail_min" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t) as integer
declare function snd_pcm_sw_params_get_avail_min cdecl alias "snd_pcm_sw_params_get_avail_min" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t ptr) as integer
declare function snd_pcm_sw_params_set_xfer_align cdecl alias "snd_pcm_sw_params_set_xfer_align" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t) as integer
declare function snd_pcm_sw_params_get_xfer_align cdecl alias "snd_pcm_sw_params_get_xfer_align" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t ptr) as integer
declare function snd_pcm_sw_params_set_start_threshold cdecl alias "snd_pcm_sw_params_set_start_threshold" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t) as integer
declare function snd_pcm_sw_params_get_start_threshold cdecl alias "snd_pcm_sw_params_get_start_threshold" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t ptr) as integer
declare function snd_pcm_sw_params_set_stop_threshold cdecl alias "snd_pcm_sw_params_set_stop_threshold" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t) as integer
declare function snd_pcm_sw_params_get_stop_threshold cdecl alias "snd_pcm_sw_params_get_stop_threshold" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t ptr) as integer
declare function snd_pcm_sw_params_set_silence_threshold cdecl alias "snd_pcm_sw_params_set_silence_threshold" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t) as integer
declare function snd_pcm_sw_params_get_silence_threshold cdecl alias "snd_pcm_sw_params_get_silence_threshold" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t ptr) as integer
declare function snd_pcm_sw_params_set_silence_size cdecl alias "snd_pcm_sw_params_set_silence_size" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t) as integer
declare function snd_pcm_sw_params_get_silence_size cdecl alias "snd_pcm_sw_params_get_silence_size" ( _
byval sw_params as snd_pcm_sw_params_t, _
byval value as snd_pcm_uframes_t ptr) as integer
declare function snd_pcm_sw_params_current cdecl alias "snd_pcm_sw_params_current" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t) as integer
declare function snd_pcm_sw_params cdecl alias "snd_pcm_sw_params" ( _
byval pcm as snd_pcm_t, _
byval sw_params as snd_pcm_sw_params_t) as integer
' pcm device
declare function snd_pcm_open cdecl alias "snd_pcm_open" ( _
byval pcm as snd_pcm_t ptr,_
byval device as string,_
byval stream as snd_pcm_stream_t,_
byval mode as integer) as integer
declare function snd_pcm_close cdecl alias "snd_pcm_close" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_prepare cdecl alias "snd_pcm_prepare" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_reset cdecl alias "snd_pcm_reset" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_status cdecl alias "snd_pcm_status" ( _
byval pcm as snd_pcm_t, _
byval status as snd_pcm_status_t) as integer
declare function snd_pcm_start cdecl alias "snd_pcm_start" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_drop cdecl alias "snd_pcm_drop" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_drain cdecl alias "snd_pcm_drain" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_pause cdecl alias "snd_pcm_pause" ( _
byval pcm as snd_pcm_t, _
byval enable as integer) as integer
declare function snd_pcm_state cdecl alias "snd_pcm_state" ( _
byval pcm as snd_pcm_t) as snd_pcm_state_t
declare function snd_pcm_hwsync cdecl alias "snd_pcm_hwsync" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_delay cdecl alias "snd_pcm_delay" ( _
byval pcm as snd_pcm_t, _
byval delayp as snd_pcm_sframes_t ptr) as integer
declare function snd_pcm_resume cdecl alias "snd_pcm_resume" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_pcm_avail_update cdecl alias "snd_pcm_avail_update" ( _
byval pcm as snd_pcm_t) as snd_pcm_sframes_t
declare function snd_pcm_rewind cdecl alias "snd_pcm_rewind" ( _
byval pcm as snd_pcm_t, _
byval frames as snd_pcm_uframes_t) as snd_pcm_sframes_t
declare function snd_pcm_forward cdecl alias "snd_pcm_forward" ( _
byval pcm as snd_pcm_t, _
byval frames as snd_pcm_uframes_t) as snd_pcm_sframes_t
declare function snd_pcm_writei cdecl alias "snd_pcm_writei" ( _
byval pcm as snd_pcm_t, _
byval buffer as any ptr, _
byval size as snd_pcm_uframes_t) as snd_pcm_sframes_t
declare function snd_pcm_readi cdecl alias "snd_pcm_readi" ( _
byval pcm as snd_pcm_t, _
byval buffer as any ptr, _
byval size as snd_pcm_uframes_t) as snd_pcm_sframes_t
declare function snd_pcm_writen cdecl alias "snd_pcm_writen" ( _
byval pcm as snd_pcm_t, _
byval bufs as any ptr ptr, _
byval size as snd_pcm_uframes_t) as snd_pcm_sframes_t
declare function snd_pcm_readn cdecl alias "snd_pcm_readn" ( _
byval pcm as snd_pcm_t, _
byval bufs as any ptr ptr, _
byval size as snd_pcm_uframes_t) as snd_pcm_sframes_t
declare function snd_pcm_wait cdecl alias "snd_pcm_wait" ( _
byval pcm as snd_pcm_t, _
byval timeout as integer) as integer
declare function snd_pcm_link cdecl alias "snd_pcm_link" ( _
byval pcm1 as snd_pcm_t, _
byval pcm2 as snd_pcm_t) as integer
declare function snd_pcm_unlink cdecl alias "snd_pcm_unlink" ( _
byval pcm as snd_pcm_t) as integer
declare function snd_strerror cdecl alias "snd_strerror" ( _
byval errnum as integer) as zstring ptr
declare function snd_asoundlib_version cdecl alias "snd_asoundlib_version" () as zstring ptr
function strError(errnum) as string
dim as zstring ptr cstr
dim as string ret
cstr=snd_strerror(errnum)
ret=*cstr
return ret
end function
function strVersion() as string
dim as zstring ptr cstr
dim as string ret
cstr=snd_asoundlib_version()
ret=*cstr
return ret
end function
type snd_async_handler_t as any ptr
type snd_async_callback_t as sub (byval ahandler as snd_async_handler_t)
declare function snd_async_add_handler cdecl alias "snd_async_add_handler" ( _
byval handler as snd_async_handler_t ptr, _
byval fd as integer, _
byval callback as snd_async_callback_t, _
byval private_data as any ptr) as integer
declare function snd_async_add_pcm_handler cdecl alias "snd_async_add_pcm_handler" ( _
byval handler as snd_async_handler_t ptr, _
byval fd as integer, _
byval callback as snd_async_callback_t, _
byval private_data as any ptr) as integer
declare function snd_async_handler_get_pcm cdecl alias "snd_async_handler_get_pcm" ( _
byval handler as snd_async_handler_t) as snd_pcm_t
declare function snd_async_del_handler cdecl alias "snd_async_del_handler" ( _
byval handler as snd_async_handler_t) as integer
declare function snd_async_handler_get_callback_private cdecl alias "snd_async_handler_get_callback_private" ( _
byval handler as snd_async_handler_t) as any ptr
declare function snd_async_handler_get_fd cdecl alias "snd_async_handler_get_fd" ( _
byval handler as snd_async_handler_t) as integer
declare function snd_async_handler_get_signo cdecl alias "snd_async_handler_get_signo" ( _
byval handler as snd_async_handler_t) as integer
#inclib "asound"
sorry about my english