Commit Graph

341 Commits

Author SHA1 Message Date
jansol 393206bde9 examples: Avoid f32 precision loss in beep example (#167) 2017-10-20 17:12:01 +02:00
tomaka c28407b26d Fix warnings and reduce scope of libc (#166) 2017-10-19 12:44:14 +02:00
tomaka 6ae01f437c RFC: Rework the API [WIP] (#165)
* Rework the API to not use futures anymore

* Add some comments

* Update the MacOS backend

* Restore the null implementation

* Add an emscripten backend

* Remove erroneously added feature

* Fix to_f32 formula

* [WIP] Alsa backend

* Alsa backend compiling

* Working ALSA backend

* Fix tests

* Move WASAPI endpoint to endpoint module

* Fix WASAPI warnings

* Rework the WASAPI backend

* Check overflows for voice ID

* Add comments and minor fixes to WASAPI backend

* Add a changelog
2017-10-18 20:24:05 +02:00
tomaka 4b019243c2 Rename the methods of the backend as well (#164) 2017-10-12 11:54:09 +02:00
tomaka 84f0acbd65 Publish 0.4.6 (#163) 2017-10-11 14:34:40 +02:00
tomaka 2028d5907f Run rustfmt on the code (#162) 2017-10-11 13:24:49 +02:00
tomaka cdcef96279 Remove the `get_` prefix of methods (#151)
* Remove the `get_` prefix of methods

* Fix overlooks
2017-10-11 10:39:44 +02:00
tomaka 35d9201b85 Merge pull request #161 from matwork/ios
Minimal ios support
2017-10-11 09:31:16 +02:00
egnehots bd88d9d6ff Document RemoteIO as ios unit fallback
iOS provides three I/O (input/output) units. The vast majority of audio-unit applications use the Remote I/O unit, which connects to input and output audio hardware and provides low-latency access to individual incoming and outgoing audio sample values. For VoIP apps, the Voice-Processing I/O unit extends the Remote I/O unit by adding acoustic echo cancelation and other features. To send audio back to your application rather than to output audio hardware, use the Generic Output unit.

See https://developer.apple.com/library/content/documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/UsingSpecificAudioUnits/UsingSpecificAudioUnits.html
2017-10-10 20:43:37 +02:00
egnehots 33a8cde056 Minimal ios support 2017-10-10 18:24:53 +02:00
tomaka 7a2069f249 Merge pull request #159 from gmorenz/master
Update version number in readme
2017-07-18 20:31:49 +02:00
gmorenz 276722cc7b Update version number in readme 2017-07-18 14:00:21 -04:00
tomaka 0245754cd0 Merge pull request #158 from johalun/alsa-pipe
Fixes for *BSDs
2017-07-13 16:11:24 +02:00
Johannes Lundberg e86ffce712 Fixes for *BSDs
Replace linux-only eventfd() with pipe() to enable use on *BSDs for alsa.
Add FreeBSD to supported OSes.
2017-07-13 15:59:40 +02:00
tomaka e1380e0d57 Merge pull request #155 from mitchmindtree/publish
Publish 0.4.5 with recent macOS fix
2017-04-28 17:25:29 +02:00
mitchmindtree 381d599155 Publish 0.4.5 2017-04-29 01:04:13 +10:00
tomaka 95e3bc41e6 Merge pull request #154 from shockham/master
Fix for loop in EventLoop::run optimised out in a release build on macOS
2017-04-20 13:49:45 +02:00
shockham 97657fae4a SampleStream also holds on to the AudioUnit so it is not dropped 2017-04-19 11:44:42 +01:00
shockham 8cfe176e52 Fix for loop in EventLoop::run being optimised out in a release build on macOS 2017-04-07 11:06:00 +01:00
tomaka 22884f70c3 Merge pull request #153 from plietar/patch-2
Bump alsa-sys version number
2017-03-06 22:33:41 +01:00
Paul Liétar 9c20ab27a7 Bump alsa-sys version number
See #152
2017-03-06 15:57:18 +00:00
tomaka 1e6e027042 Merge pull request #152 from plietar/patch-1
Mark alsa-sys as linking to alsa
2017-02-24 20:33:17 +01:00
Paul Lietar 321673278f Mark alsa-sys as linking to alsa
The build script requires pkg-config, which isn't available when cross compiling.
Mark alsa-sys as linking to alsa allows cargo configuration to bypass the build script.

cf http://doc.crates.io/build-script.html#the-links-manifest-key
2017-02-24 16:57:44 +00:00
tomaka 37cc8f5e64 Merge pull request #149 from tomaka/deps
Simplify the Cargo.toml
2017-02-10 10:06:30 +01:00
Pierre Krieger 263039412e Simplify the Cargo.toml 2017-02-10 09:56:53 +01:00
tomaka 89b55e9eda Merge pull request #150 from tomaka/no-publish
Stop publishing on gh-pages
2017-02-10 09:56:00 +01:00
Pierre Krieger 937f301f3d Stop publishing on gh-pages 2017-02-10 09:45:41 +01:00
tomaka 80c008c0a0 Merge pull request #146 from nchashch/sw_params_set_avail_min-fix
alsa: Pass period instead of buffer to snd_pcm_sw_params_set_avail_min
2017-02-04 08:46:57 +01:00
Nikita Chashchinskii 5c33787f48 Bump crate version to 0.4.4 2017-02-04 08:20:21 +03:00
Nikita Chashchinskii 0f8babe8bd Pass period instead of buffer to snd_pcm_sw_params_set_avail_min
* Also bump version from 0.4.2 to 0.4.3
2017-02-04 08:20:21 +03:00
tomaka 9dca830d35 Merge pull request #147 from jwestfall69/version-bump
bump crate to 0.4.3
2017-02-02 08:56:40 +01:00
jwestfall d167bbc206 bump crate to 0.4.3 2017-02-01 20:51:41 -08:00
tomaka 13cc45234c Merge pull request #145 from jwestfall69/alsa-avail-min-fix
alsa: set sw_params_set_avail_min based on get_params buffer size
2017-01-25 07:11:48 +01:00
jwestfall 7c03219451 alsa: set sw_params_set_avail_min based on get_params buffer size
snd_pcm_sw_params_set_avail_min was being hardcoded to 4096, which
seems to be problematic for lower sample rates.  This update sets
the value to the buffer size as supplied by snd_pcm_get_params(),
which is what alsa own sample code does.

This should fix https://github.com/tomaka/cpal/issues/142
2017-01-23 16:10:44 -08:00
tomaka 76f173217c Merge pull request #143 from yupferris/master
Add coreaudio-rs dependency for i686-apple-darwin
2017-01-19 17:04:06 +01:00
ferris 6e8f51de09 Bump crate version to 0.4.2 2017-01-19 16:06:17 +01:00
ferris 929bc1b8be Add coreaudio-rs dependency for i686-apple-darwin
Fixes build for 32-bit mac
2017-01-19 14:51:50 +01:00
tomaka c422931255 Merge pull request #140 from tomaka/deprecated
Mark deprecated functions as deprecated
2016-11-16 08:38:12 +01:00
Pierre Krieger c291ab13f1 Mark deprecated functions as deprecated 2016-11-16 08:32:02 +01:00
tomaka 871352ce60 Merge pull request #139 from tomaka/win-fix
Fix compilation on windows
2016-11-16 08:26:48 +01:00
Pierre Krieger 4511ac5b56 Publish 0.4.1 2016-11-16 08:18:14 +01:00
Pierre Krieger a26a9f5337 Fix compilation on windows 2016-11-16 08:17:11 +01:00
tomaka d6f22f4ceb Merge pull request #136 from HybridEidolon/coreaudio-play-pause
[osx] Implement play/pause for coreaudio
2016-10-18 08:33:24 +02:00
Ronald Kinard b44a2ab515 [osx] Implement play/pause for coreaudio 2016-10-18 01:20:40 -05:00
tomaka bb65200745 Merge pull request #135 from thiolliere/alsa_play_pause
impl play and pause for ALSA
2016-10-02 16:38:25 +02:00
thiolliere 25bb025a9a arc not necessary 2016-10-02 14:24:30 +02:00
thiolliere 5c86eec4f3 line not necessary 2016-10-02 14:21:33 +02:00
thiolliere 1b0c9f2c54 syntax: space after comma 2016-10-02 14:19:58 +02:00
thiolliere f822631bc4 impl play and pause for ALSA
snd_pcm_pause could have been used but not all hardware implement it, so
I propose not to use it.

In this implementation:

there are two kind of scheduling: wait for resume signal and wait for
pcm to be available

if the stream is paused then it return notready and wait for resume

the event loop is different as it manages descriptors corresponding to
voices according to the nature of the scheduling.

there is still a FIXME: in voice.play the is signal is send even if
the event loop wasn't waiting for resume.
It doesn't seem to create any issue. But it happens when you write
voice.pause();voice.play();
2016-10-02 13:29:01 +02:00
tomaka f68509982a Merge pull request #134 from tomaka/0.4.0
Publish 0.4.0
2016-10-01 10:37:21 +02:00