Commit Graph

47 Commits

Author SHA1 Message Date
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
thiolliere e031025abe update to futures 0.1.1: alsa wasapi 2016-10-01 00:44:22 +02:00
Pierre Krieger 0c915cac8f Use a max buffer size in order to avoid problems 2016-08-03 10:31:02 +02:00
Pierre Krieger 7c587853ad Make it work on Linux 2016-08-03 10:17:23 +02:00
Pierre Krieger 752676c818 Be more relaxed with c_void 2016-04-25 13:33:12 +02:00
Mathijs van de Nes f3f194293a Fix underflow detection for alsa
The old method always returned _RUNNING on some machines.
This new method seems to produce the expected behaviour.

Note: -32 is probably -EPIPE, but the appropriate constant was not
available at this time.
2016-02-28 17:01:13 +01:00
Nicolas Koch 606bcf9fa6 Fix underflow bug on linux 2016-01-28 21:27:09 +01:00
psych0d0g 7c3aab71a2 Add some sane error messages 2016-01-15 21:16:34 +01:00
tomaka b049e80ca3 Merge pull request #84 from tomaka/alsa-channels
Use correct ALSA channels
2015-12-15 17:49:42 +01:00
Mathijs van de Nes 951b7f5e65 Catch another 'device not found' error code 2015-10-13 12:22:07 +02:00
Pierre Krieger 55dbfa881e Use correct ALSA channels 2015-09-27 13:27:00 +02:00
Pierre Krieger c93ffcff6c Add Voice::get_period() 2015-09-27 13:00:17 +02:00
Pierre Krieger 6bd28231ec Make sure that all writes succeed 2015-09-22 21:01:26 +02:00
Pierre Krieger 5fc346b34b Make the ALSA implementation more robust by recovering from underruns 2015-09-22 20:20:17 +02:00
Pierre Krieger 44e9dce43f Add Voice::get_pending_samples 2015-09-22 17:59:36 +02:00
Pierre Krieger 5fa41538a6 Various ALSA fixes 2015-09-22 15:46:56 +02:00
tomaka 0a13991f86 Merge pull request #75 from tomaka/alsa-format
Use the correct format in ALSA
2015-09-22 15:23:28 +02:00
Pierre Krieger 46151e09cc Use the correct format in ALSA 2015-09-22 15:20:11 +02:00
Pierre Krieger a2b8b4f4a7 Use the correct device name when enumerating formats 2015-09-22 15:12:41 +02:00
Pierre Krieger 73906885f9 Fix bug and filter out devices that are not "Output" 2015-09-22 15:04:32 +02:00
tomaka debb6c957c Merge pull request #73 from tomaka/example-enumerate
Example enumerate
2015-09-22 14:49:31 +02:00
Pierre Krieger ec48453b6f Add endpoint::get_name() and an enumerate example 2015-09-22 14:46:27 +02:00
tomaka d4c7d91fd7 Merge pull request #63 from tomaka/alsa-formats
Correctly enumerate supported formats on ALSA
2015-09-22 13:56:22 +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 c5f51183f4 Correctly enumerate supported formats on ALSA 2015-09-10 19:48:39 +02:00
Pierre Krieger 541af2f7f2 Fix compilation on ALSA 2015-09-10 12:43:37 +02:00
Pierre Krieger 3db17889a4 Make ALSA compile again 2015-09-01 17:15:49 +02:00
Pierre Krieger c71d9d74b3 Merge branch 'sample-format' of https://github.com/kmcallister/cpal into fix-signed 2015-07-22 14:28:13 +02:00
Pierre Krieger b813aa168a Calls to a single ALSA channel are not thread safe 2015-06-24 15:17:52 +02: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
Keegan McAllister 8692eb2fc6 Correct reported ALSA sample format 2015-02-24 14:02:22 -08:00
Pierre Krieger 28bd368658 Update for rustc 2015-02-22 11:24:49 +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 7adfdb4461 Update for changes in rustc 2014-12-30 08:35:13 +01:00
Pierre Krieger d947014084 Add play() and pause() functions 2014-12-23 15:25:25 +01:00
Pierre Krieger 04f9aac2c3 Rename `Channel` to `Voice` 2014-12-17 09:16:26 +01:00
Pierre Krieger c2ed846765 Add basic implementation for alsa 2014-12-16 16:54:58 +01:00