Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
miniaudio
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
miniaudio
Commits
ffa14e94
Commit
ffa14e94
authored
Mar 05, 2019
by
David Reid
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update revision history.
parent
51765a71
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
4 deletions
+57
-4
mini_al.h
mini_al.h
+57
-4
No files found.
mini_al.h
View file @
ffa14e94
/*
/*
Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file.
Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file.
mini_al - v0.
8.15 - 201x-xx
-xx
mini_al - v0.
9 - 2019-03
-xx
David Reid - davidreidsoftware@gmail.com
David Reid - davidreidsoftware@gmail.com
*/
*/
...
@@ -12,6 +12,10 @@ Version 0.9 includes major API changes, centered mostly around full-duplex. Befo
...
@@ -12,6 +12,10 @@ Version 0.9 includes major API changes, centered mostly around full-duplex. Befo
would like to apologize. I know it's annoying dealing with breaking API changes, but I think it's best to get these changes
would like to apologize. I know it's annoying dealing with breaking API changes, but I think it's best to get these changes
out of the way now while the library is still relatively young and unknown.
out of the way now while the library is still relatively young and unknown.
There's been a lot of refactoring with this release so there's a good chance a few bugs have been introduced. I apologize in
advance for this. You may want to hold off on upgrading for the short term if you're worried.
Full-Duplex Support
Full-Duplex Support
-------------------
-------------------
The major feature added to version 0.9 is full-duplex. This has necessitated a few API changes.
The major feature added to version 0.9 is full-duplex. This has necessitated a few API changes.
...
@@ -31304,13 +31308,62 @@ Device
...
@@ -31304,13 +31308,62 @@ Device
REVISION HISTORY
REVISION HISTORY
================
================
v0.8.15 - 201x-xx-xx
v0.9 - 2019-03-xx
- API CHANGE: mal_device_init() and mal_device_config_init() have changed significantly:
- The device type, device ID and user data pointer have moved from mal_device_init() to the config.
- All variations of mal_device_config_init_*() have been removed in favor of just mal_device_config_init().
- mal_device_config_init() now takes only one parameter which is the device type. All other properties need
to be set on the returned object directly.
- The onDataCallback and onStopCallback members of mal_device_config have been renamed to "dataCallback"
and "stopCallback".
- The ID of the physical device is now split into two: one for the playback device and the other for the
capture device. This is required for full-duplex. These are named "pPlaybackDeviceID" and "pCaptureDeviceID".
- API CHANGE: The data callback has changed. It now uses a unified callback for all device types rather than
being separate for each. It now takes two pointers - one containing input data and the other output data. This
design in required for full-duplex. The return value is now void instead of the number of frames written. The
new callback looks like the following:
void data_callback(mal_device* pDevice, void* pOutput, const void* pInput, mal_uint32 frameCount);
- API CHANGE: Remove the log callback parameter from mal_context_config_init(). With this change,
mal_context_config_init() now takes no parameters and the log callback is set via the structure directly. The
new policy for config initialization is that only mandatory settings are passed in to *_config_init(). The
"onLog" member of mal_context_config has been renamed to "logCallback".
- API CHANGE: Remove mal_device_get_buffer_size_in_bytes().
- API CHANGE: Rename decoding APIs to "pcm_frames" convention.
- mal_decoder_read() -> mal_decoder_read_pcm_frames()
- mal_decoder_seek_to_frame() -> mal_decoder_seek_to_pcm_frame()
- API CHANGE: Rename sine wave reading APIs to f32 convention.
- mal_sine_wave_read() -> mal_sine_wave_read_f32()
- mal_sine_wave_read_ex() -> mal_sine_wave_read_f32_ex()
- API CHANGE: Remove some deprecated APIs
- mal_device_set_recv_callback()
- mal_device_set_send_callback()
- mal_src_set_input_sample_rate()
- mal_src_set_output_sample_rate()
- API CHANGE: Add log level to the log callback. New signature:
- void on_log(mal_context* pContext, mal_device* pDevice, mal_uint32 logLevel, const char* message)
- API CHANGE: Changes to result codes. Constants have changed and unused codes have been removed. If you're
a binding mainainer you will need to update your result code constants.
- API CHANGE: Change the order of the mal_backend enums to priority order. If you are a binding maintainer, you
will need to update.
- API CHANGE: Rename mal_dsp to mal_pcm_converter. All functions have been renamed from mal_dsp_*() to
mal_pcm_converter_*(). All structures have been renamed from mal_dsp* to mal_pcm_converter*.
- API CHANGE: Reorder parameters of mal_decoder_read_pcm_frames() to be consistent with the new parameter order scheme.
- The resampling algorithm has been changed from sinc to linear. The rationale for this is that the sinc implementation
is too inefficient right now. This will hopefully be improved at a later date.
- Device initialization will no longer fall back to shared mode if exclusive mode is requested but is unusable.
With this change, if you request an device in exclusive mode, but exclusive mode is not supported, it will not
automatically fall back to shared mode. The client will need to reinitialize the device in shared mode if that's
what they want.
- Add ring buffer API. This is mal_rb and mal_pcm_rb, the difference being that mal_rb operates on bytes and
mal_pcm_rb operates on PCM frames.
- Add Web Audio backend. This is used when compiling with Emscripten. The SDL backend, which was previously
- Add Web Audio backend. This is used when compiling with Emscripten. The SDL backend, which was previously
used for web support, will be removed in a future version.
used for web support, will be removed in a future version.
- Add AAudio backend (Android Audio). This is the new priority backend for Android. Support for AAudio starts
- Add AAudio backend (Android Audio). This is the new priority backend for Android. Support for AAudio starts
with Android 8. OpenSL|ES is used as a fallback for older versions of Android.
with Android 8. OpenSL|ES is used as a fallback for older versions of Android.
- Deprecate the OpenAL backend.
- Remove OpenAL and SDL backends.
- Deprecate the SDL backend.
- Fix a possible deadlock when rapidly stopping the device after it has started.
- Update documentation.
- Change licensing to a choice of public domain _or_ MIT-0 (No Attribution).
v0.8.14 - 2018-12-16
v0.8.14 - 2018-12-16
- Core Audio: Fix a bug where the device state is not set correctly after stopping.
- Core Audio: Fix a bug where the device state is not set correctly after stopping.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment