Commit Graph

130 Commits

Author SHA1 Message Date
mitchmindtree fcc75f4566 Rename `SamplesRate` to `SampleRate` and `ChannelsCount` to `ChannelCount` (#199)
* Rename SamplesRate to SampleRate and samples_rate to sample_rate

* Rename ChannelsCount to ChannelCount

* Update CHANGELOG for SamplesRate and ChannelsCount renaming
2018-02-04 13:02:16 +01:00
mitchmindtree f2728f6bdf Remove unused `ChannelPosition` API (update all backends and examples accordingly) (#198)
* Remove ChannelPosition API

This removes the ChannelPosition API from the lib root and updates the
ALSA backend and examples accordingly. The other backends have not yet
been updated.

Related discussion at #187.

* Update windows backend to removal of ChannelPosition API

The windows backend now assumes the channel position order is equal to
the channel position mask order. E.g. channel 0 will always be front
left, channel 1 will always be front right, etc.

Compiled and ran both examples successfully.

* Update coreaudio backend to removal of ChannelPosition API

Compiled and ran both examples successfully.

* Update emscriptem backend for removal of ChannelPosition API

* Update CHANGELOG for ChannelPosition removal
2018-02-04 10:38:06 +01:00
Andriy Symonovych 37016e612c Fix macos build (#186)
* fix compile error

* fix missing function error

* fix undefined behavior issue

* require callback to be `Send`
2017-12-06 12:13:36 +01:00
Eidolon e9856c07ed [coreaudio] Remove intermediate buffer (#182)
* [coreaudio] Remove intermediate buffer

Fixes #181

* [coreaudio] Create voice id after setting format
2017-11-03 10:51:02 +01:00
tomaka 91adc3e380 Docs and style improvements (#174)
* Improve the crate root documentation

* Add entry in CHANGELOG

* Run rustfmt on the code

* More improvements to documentation
2017-10-23 16:41:38 +02:00
tomaka c524f63000 Improve the emscripten backend (#172)
* Use the js! macro from stdweb

* Rework the Buffer::finish method

* Use references from stdweb

* Fix emscripten warnings

* Rework the run() method to use stdweb

* Adjust timings

* Add entry in CHANGELOG
2017-10-22 14:17:25 +02:00
tomaka 87949d859b Add SupportedFormat (#168) 2017-10-20 21:18:40 +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 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
egnehots 33a8cde056 Minimal ios support 2017-10-10 18:24:53 +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
Pierre Krieger c291ab13f1 Mark deprecated functions as deprecated 2016-11-16 08:32:02 +01:00
thiolliere e031025abe update to futures 0.1.1: alsa wasapi 2016-10-01 00:44:22 +02:00
Pierre Krieger c2f89d8b2d Update documentation 2016-08-03 13:06:23 +02:00
Pierre Krieger be8310da51 Draft for switching to futures 2016-08-02 18:19:03 +02:00
Pierre Krieger c4bf6e91da Fix the android build 2016-04-22 17:31:24 +02:00
Pierre Krieger c93ffcff6c Add Voice::get_period() 2015-09-27 13:00:17 +02:00
Pierre Krieger 44e9dce43f Add Voice::get_pending_samples 2015-09-22 17:59:36 +02:00
Pierre Krieger 73906885f9 Fix bug and filter out devices that are not "Output" 2015-09-22 15:04:32 +02:00
Pierre Krieger ec48453b6f Add endpoint::get_name() and an enumerate example 2015-09-22 14:46:27 +02:00
Pierre Krieger 8d21f5ff25 Store the format in the public `Voice` struct 2015-09-22 13:34:06 +02:00
tomaka d3e610a614 Merge pull request #64 from tomaka/underflowed
Add an underflow() method to Voice
2015-09-22 10:02:41 +02:00
Pierre Krieger 75f828b04f Add #[inline] attributes 2015-09-11 10:55:29 +02:00
Pierre Krieger 3dd7a8abe7 Add UnknownBufferType::len() 2015-09-10 21:24:41 +02:00
Pierre Krieger c5e2cdd3c5 Add an underflow() method to Voice 2015-09-10 21:03:40 +02:00
Pierre Krieger d9eae23023 Restore the null implementation and compile it every time 2015-09-10 18:42:42 +02:00
Pierre Krieger 48282a068d Handle channels positionning 2015-09-10 11:44:19 +02:00
Pierre Krieger d7a31b4762 Fix doctests 2015-09-01 17:47:55 +02:00
Pierre Krieger 98b931edff Add proper error handling 2015-09-01 14:17:57 +02:00
Pierre Krieger 1985c346ac Add supported formats enumeration 2015-09-01 13:53:54 +02:00
Pierre Krieger 47f966bf75 Correctly enumerate audio devices (core + wasapi) 2015-09-01 11:29:00 +02:00
Pierre Krieger ca72d1d67e Remove the conversion system 2015-08-20 14:44:23 +02:00
Ronald Kinard 6389ab3ece Remove use of box syntax.
Allows build on stable/beta rust.
2015-07-25 17:13:51 -05:00
Ronald Kinard 157011182a Add box syntax feature annotation.
Fixes build.
2015-07-25 17:08:31 -05:00
Pierre Krieger 07b2009dae Update for Rustc 1.0.0 beta 2015-04-04 09:22:23 +02:00
Pierre Krieger 93073f1ff7 Update for change in rustc and winapi 2015-03-30 11:19:03 +02:00
Pierre Krieger a6c1b14d66 Rustup 2015-03-26 10:03:40 +01:00
mitchmindtree 1d66e18d7e Fixed coreaudio callback to send proper buffersize, removed code in lib where sampleformat affected buffersize 2015-03-03 18:17:21 +11:00
mitchmindtree 1347c7c99d Removed core_audio-sys local bindings in favour of new coreaudio-rs crate 2015-03-01 05:50:29 +11:00
mitchmindtree f212d85889 OSX support via the Apple Core Audio, Audio Unit C API. Only supports f32 so far. 2015-02-28 06:05:24 +11:00
mitchmindtree 2b86445c9a Merge remote-tracking branch 'upstream/master'
merging with upstream changes
2015-02-23 00:50:10 +11:00
mitchmindtree c9fe2a132a Commiting pre-merge 2015-02-23 00:50:06 +11:00
Pierre Krieger 28bd368658 Update for rustc 2015-02-22 11:24:49 +01:00
Pierre Krieger 48efe03661 Add a "null" implementation for platforms that aren't supported 2015-01-09 22:52:12 +01:00
Pierre Krieger 2bc50adf4d Update for rust-1.0 alpha 2015-01-09 21:25:51 +01:00
Pierre Krieger 23e1e0639c Update for Rustc 2015-01-08 21:24:04 +01:00
Pierre Krieger 420a0f0fd4 Update for rustc 2015-01-05 10:52:59 +01:00
Pierre Krieger 7389ebf84b Add `#[must_use]` marker for Buffer 2014-12-26 10:39:19 +01:00
tomaka 73cd809636 Merge pull request #5 from tomaka/add-play-pause
Add play() and pause() functions
2014-12-23 15:28:43 +01:00
Pierre Krieger d947014084 Add play() and pause() functions 2014-12-23 15:25:25 +01:00
Pierre Krieger aa83f64443 Cleanup and add tests for convert_samples_rate 2014-12-22 16:31:37 +01:00
Pierre Krieger 56cb67989e Update for rustc 2014-12-20 18:55:44 +01:00
Pierre Krieger e607e65379 Improve documentation 2014-12-17 09:45:14 +01:00
Pierre Krieger 04f9aac2c3 Rename `Channel` to `Voice` 2014-12-17 09:16:26 +01:00
Pierre Krieger 094dbef0e4 Add some documentation 2014-12-17 09:13:58 +01:00
Pierre Krieger 9721004ad0 Use Cow for formats conversions to avoid an allocation and copy 2014-12-17 08:53:09 +01:00
Pierre Krieger f4ac8a5492 Implement all samples formats 2014-12-17 08:47:19 +01:00
Pierre Krieger d3d6dd94db Implement samples formats conversions 2014-12-17 08:39:00 +01:00
Pierre Krieger c2ed846765 Add basic implementation for alsa 2014-12-16 16:54:58 +01:00
Pierre Krieger 302a1941ab Fix warnings 2014-12-15 16:41:57 +01:00
Pierre Krieger d06a67a97b Fix PCM formats conversions not working 2014-12-15 16:40:55 +01:00
Pierre Krieger 49636365d8 Switch back to using buffers 2014-12-15 16:32:13 +01:00
Pierre Krieger 1a556514b0 Sound output now works correctly 2014-12-15 16:26:55 +01:00
Pierre Krieger 9598f68d3c Minor fixes 2014-12-15 16:06:37 +01:00
Pierre Krieger 5c6fa4384f Fix issue when calling `buffer.samples()` multiple times with the same buffer 2014-12-15 15:48:30 +01:00
Pierre Krieger e26a8c4cb2 Minor nitpicking 2014-12-15 15:40:30 +01:00
Pierre Krieger 04d07c27dc Modify API to use a "samples" iterator 2014-12-15 15:29:59 +01:00
Pierre Krieger 081912c5fb Implement some samples rate conversions 2014-12-15 11:58:52 +01:00
Pierre Krieger 32bca93cc9 Implement some basic data conversion 2014-12-15 11:45:38 +01:00
Pierre Krieger b23857a57c Restore variable input format system 2014-12-15 10:29:29 +01:00
Pierre Krieger f00bb5a2b8 Update for rustc 2014-12-15 10:16:18 +01:00
Pierre Krieger 99c23327d8 Add some formats-related functions 2014-12-11 19:07:58 +01:00
Pierre Krieger 0bdafdab9b Buffer now always has the u8 format 2014-12-11 19:02:04 +01:00
Pierre Krieger b98ac14bf4 Add some documentation 2014-12-11 18:09:48 +01:00
Pierre Krieger 873779aaa8 Add basic API 2014-12-11 17:41:18 +01:00
Pierre Krieger 6b48a00758 Semi-working WASAPI example 2014-12-11 16:28:26 +01:00
Pierre Krieger 4f96e54e31 Initial commit 2014-12-11 14:23:51 +01:00