Scope Plugin Extension
Overview
See the PCM (digital audio) interface page for more details. More…
// structs struct snd_pcm_scope_ops_t; // global functions snd_pcm_uframes_t snd_pcm_meter_get_bufsize(snd_pcm_t* pcm); unsigned int snd_pcm_meter_get_channels(snd_pcm_t* pcm); unsigned int snd_pcm_meter_get_rate(snd_pcm_t* pcm); snd_pcm_uframes_t snd_pcm_meter_get_now(snd_pcm_t* pcm); snd_pcm_uframes_t snd_pcm_meter_get_boundary(snd_pcm_t* pcm); int snd_pcm_meter_add_scope( snd_pcm_t* pcm, snd_pcm_scope_t* scope ); snd_pcm_scope_t* snd_pcm_meter_search_scope( snd_pcm_t* pcm, const char* name ); int snd_pcm_scope_malloc(snd_pcm_scope_t** ptr); void snd_pcm_scope_set_ops( snd_pcm_scope_t* scope, const snd_pcm_scope_ops_t* val ); void snd_pcm_scope_set_name( snd_pcm_scope_t* scope, const char* val ); const char* snd_pcm_scope_get_name(snd_pcm_scope_t* scope); void* snd_pcm_scope_get_callback_private(snd_pcm_scope_t* scope); void snd_pcm_scope_set_callback_private( snd_pcm_scope_t* scope, void* val ); int snd_pcm_scope_s16_open( snd_pcm_t* pcm, const char* name, snd_pcm_scope_t** scopep ); int16_t* snd_pcm_scope_s16_get_channel_buffer( snd_pcm_scope_t* scope, unsigned int channel );
Detailed Documentation
See the PCM (digital audio) interface page for more details.
Global Functions
snd_pcm_uframes_t snd_pcm_meter_get_bufsize(snd_pcm_t* pcm)
Get meter buffer size from a SND_PCM_TYPE_METER PCM.
Parameters:
pcm |
PCM handle |
Returns:
meter buffer size in frames
unsigned int snd_pcm_meter_get_channels(snd_pcm_t* pcm)
Get meter channels from a SND_PCM_TYPE_METER PCM.
Parameters:
pcm |
PCM handle |
Returns:
meter channels count
unsigned int snd_pcm_meter_get_rate(snd_pcm_t* pcm)
Get meter rate from a SND_PCM_TYPE_METER PCM.
Parameters:
pcm |
PCM handle |
Returns:
approximate rate
snd_pcm_uframes_t snd_pcm_meter_get_now(snd_pcm_t* pcm)
Get meter “now” frame pointer from a SND_PCM_TYPE_METER PCM.
Parameters:
pcm |
PCM handle |
Returns:
“now” frame pointer in frames (0 … boundary - 1) see snd_pcm_meter_get_boundary
snd_pcm_uframes_t snd_pcm_meter_get_boundary(snd_pcm_t* pcm)
Get boundary for frame pointers from a SND_PCM_TYPE_METER PCM.
Parameters:
pcm |
PCM handle |
Returns:
boundary in frames
int snd_pcm_meter_add_scope( snd_pcm_t* pcm, snd_pcm_scope_t* scope )
Add a scope to a SND_PCM_TYPE_METER PCM.
Parameters:
pcm |
PCM handle |
scope |
Scope handle |
Returns:
0 on success otherwise a negative error code
snd_pcm_scope_t* snd_pcm_meter_search_scope( snd_pcm_t* pcm, const char* name )
Search an installed scope inside a SND_PCM_TYPE_METER PCM.
Parameters:
pcm |
PCM handle |
name |
scope name |
Returns:
pointer to found scope or NULL if none is found
int snd_pcm_scope_malloc(snd_pcm_scope_t** ptr)
allocate an invalid snd_pcm_scope_t using standard malloc
Parameters:
ptr |
returned pointer |
Returns:
0 on success otherwise negative error code
void snd_pcm_scope_set_ops( snd_pcm_scope_t* scope, const snd_pcm_scope_ops_t* val )
Set callbacks for a SND_PCM_TYPE_METER PCM scope.
Parameters:
scope |
PCM meter scope |
val |
callbacks |
void snd_pcm_scope_set_name( snd_pcm_scope_t* scope, const char* val )
Set name of a SND_PCM_TYPE_METER PCM scope.
Parameters:
scope |
PCM meter scope |
val |
scope name |
const char* snd_pcm_scope_get_name(snd_pcm_scope_t* scope)
Get name of a SND_PCM_TYPE_METER PCM scope.
Parameters:
scope |
PCM meter scope |
Returns:
scope name
void* snd_pcm_scope_get_callback_private(snd_pcm_scope_t* scope)
Get callbacks private value for a SND_PCM_TYPE_METER PCM scope.
Parameters:
scope |
PCM meter scope |
Returns:
Private data value
void snd_pcm_scope_set_callback_private( snd_pcm_scope_t* scope, void* val )
Get callbacks private value for a SND_PCM_TYPE_METER PCM scope.
Parameters:
scope |
PCM meter scope |
val |
Private data value |
int snd_pcm_scope_s16_open( snd_pcm_t* pcm, const char* name, snd_pcm_scope_t** scopep )
Add a s16 pseudo scope to a SND_PCM_TYPE_METER PCM.
s16 pseudo scope convert SND_PCM_TYPE_METER PCM frames in CPU endian 16 bit frames for use with other scopes. Don’t forget to insert it before and to not insert it more time (see snd_pcm_meter_search_scope)
Parameters:
pcm |
The pcm handle |
name |
Scope name |
scopep |
Pointer to newly created and added scope |
Returns:
0 on success otherwise a negative error code
int16_t* snd_pcm_scope_s16_get_channel_buffer( snd_pcm_scope_t* scope, unsigned int channel )
Get s16 pseudo scope frames buffer for a channel.
Parameters:
scope |
s16 pseudo scope handle |
channel |
Channel |
Returns:
Pointer to channel buffer