Here are some of the new features introduced:
- The Audio Library provides new features and audio management. The Audio
Manager Library has been removed from this release. If you need audio management
features such as ramping volume, audio ducking, and preemption you can use the Audio Library.
For more information about audio management, see the
Audio Management chapter in this guide.
-
There's a new PCM state called SUSPENDED (SND_PCM_STATUS_SUSPENDED), which denotes that audio management has
suspended the play of an audio stream. Once you transition from that state, the
audio stream continues where it left off. For more information about the state and
how it works, see the PCM events in the
Audio Architecture chapter and the Understanding preemption section
in the Audio Management chapter of this guide.
- In this release, no separate device entry is created for the PCM software
mixer. A separate device is still created for the reference capture device. For more information, see the PCM software mixer section of the Audio Architecture chapter in this guide.
- If your applications need to be notified of changes to an audio stream, such as being muted or
a change in the audio stream's status, use PCM events.
For more information, see PCM events in the
Audio Architecture chapter of this guide.
- Audio management can cause your audio stream to be paused, requiring the application to explicitly, without an explicit
snd_*_pause() call. This requires that you call snd_*_resume() to continue playback.
-
If you call playback-related snd_*_write_*() and snd_*_flush_*() functions and
your audio stream is in the SUSPENDED (SND_PCM_STATUS_SUSPENDED) or
PAUSED (SND_PCM_STATUS_PAUSED) state, an error may be be returned.
- In previous releases, by default, io-audio could save the mixer settings to a file allowing you to restore the audio driver’s state. In this release, io-audio doesn’t save the mixer settings to a file by default, but to enable state restoration, you can use the config_write_delay global option when you start io-audio. For more information, see the deva-util-restore.so chapter in the QNX Neutrino Utilities Reference.
The following entries are new:
- snd_mixer_element_volume1_range_t
- This structure includes a db_scale_factor member that permits
applications to properly scale min_dB and max_dB
members in the structure. This allows you take advantage of updated decibel ranges
available in recent audio drivers.
- snd_pcm_chmap_query_t
- Entry in an array of channel maps
- snd_pcm_chmap_t
- Information about a channel map
- snd_pcm_free_chmaps()
- Free a list of channel mappings
- snd_pcm_get_chmap()
- Get the current channel mapping, accounting for voice conversion on the capture path
- snd_pcm_query_chmaps()
- Get a list of the available channel mappings for a PCM stream
- snd_pcm_set_chmap()
- Set the current channel mapping for a PCM stream
- snd_switch_t
- This structure now includes data for routing list switches and multiselection list switches.
-
snd_pcm_channel_audio_ducking()
- This function permits you to enable or disable audio ducking to occur on the specified
channel.
-
snd_pcm_channel_params_t
- This structure now includes audio_type_name member, which is used for
managing audio, such as audio ducking.
-
snd_pcm_chmap_t
- This structure allows you to assign positions to the channels.
-
snd_pcm_plugin_reset_voice_conversion
- This function allows you to reset the parameters in the voice conversation
plugin.
Other changes include the following:
- snd_pcm_plugin_set_disable()
- This function now returns the updated bitmap of disabled plugins.
- snd_pcm_plugin_set_enable()
- This function returns the updated bitmap of disabled plugins; we've corrected the documentation.
- snd_pcm_plugin_src_max_frag()
- This function was available in QNX SDP 6.6, but has been removed.
When asynchronous sample rate conversion (ASRC) is enabled by
the client, client applications can get the
max_frag_size member from the
snd_pcm_channel_setup_t handle from the
snd_pcm_plugin_setup() function.
- snd_pcm_hw_index()
- This function was available in QNX SDP 6.6, but has been removed.
- Removed PLUGIN_DISABLE_BUFFER_PARTIAL_BLOCKS,
PLUGIN_DISABLE_MMAP
- PLUGIN_DISABLE_BUFFER_PARTIAL_BLOCKS and
PLUGIN_DISABLE_MMAP have been removed.
Instead, use PLUGIN_BUFFER_PARTIAL_BLOCKS
and PLUGIN_MMAP, respectively.
- Removed ROUTING, SPLITTER, and AUDIO_SHARE plugins
- The ROUTING, SPLITTER, and AUDIO_SHARE plugins have been removed as they
used the Audio Manager, which isn't available in this release. Since
the ROUTING plugin has been removed, the Audio APIs that have file descriptors are no
longer transitory.
- Audio Manager integration APIs removed
- Audio Manager is no longer available in this release. The
snd_pcm_get_audio_handle(),
snd_pcm_set_audio_handle(), and
snd_pcm_set_audio_handle_type() functions have been removed
from this release.
- snd_pcm_channel_status_t
- The hw_device has been removed in this release.
- snd_pcm_channel_params_t
- The cross_core_handle has been removed in this release.