mitchmindtree
9095bbc00e
Merge pull request #292 from mitchmindtree/asio
...
Add ASIO Host for Windows (rebase and refactor of #221 )
2019-07-05 19:02:12 +02:00
mitchmindtree
714dab7270
Refactor asio message to use a match expr. Fix some typos.
2019-07-05 13:19:42 +02:00
mitchmindtree
64dc6accf9
Rebase for the trait refactor in #295 .
2019-07-05 06:03:33 +10:00
mitchmindtree
b7d40d2993
Handle timed buffer switch and messaging callbacks in asio-sys
...
This adds an implementation of ASIO message handling in a manner that
matches that demonstrated in the SDK's `hostsample.cpp` file.
Also refactors the code to ensure that both `buffer_switch` and
`buffer_switch_time_info` callbacks are handled.
2019-07-05 05:51:32 +10:00
mitchmindtree
cc5b0555c2
Refactor of asio-sys while reviewing for code correctness
...
Most of this is an attempt at improving readability and modularity of
the asio-sys crate while attempting to review it for correctness. Still
unsure why glitching is occasionally occuring on output, but recorded
input sounds perfectly clean.
2019-07-05 05:51:31 +10:00
mitchmindtree
91c5aa86b3
Fix Driver destructor behaviour in asio-sys
2019-07-05 05:51:31 +10:00
mitchmindtree
9182f00e20
Check that sample format is supported by ASIO when building streams
2019-07-05 05:51:31 +10:00
mitchmindtree
c432f2b18d
Update asio-sys to allow for having multiple handles to the same driver
...
ASIO has a limitation where it only supports loading a single audio
driver at a time. This fixes a common error where CPAL users would
request both the default input device and output device in separate
`load_driver` calls. Now, `load_driver` will return another handle to
the existing driver if the existing driver has the same name.
2019-07-05 05:51:31 +10:00
mitchmindtree
8b4ebeffff
Address README suggestions by @ishitatsuyuki
2019-07-05 05:51:31 +10:00
mitchmindtree
7d0f9c7265
Remove unreachable_patterns gate onto relevant fns so all platforms benefit
2019-07-05 05:51:31 +10:00
mitchmindtree
86e3366063
Remove unnecessary num crate from asio-sys
2019-07-05 05:51:30 +10:00
mitchmindtree
c2b7c7f648
Remove .DS_Store from asio-sys gitignore
2019-07-05 05:51:30 +10:00
mitchmindtree
8f95042b8d
Add `asio` cargo feature for optional ASIO support
...
ASIO introduces quite a few extra crates and requires a fairly
complicated setup process (see the readme), so this feature is disabled
by default.
2019-07-05 05:51:30 +10:00
mitchmindtree
76fab4f982
Update README for ASIO v2.3.3
2019-07-05 05:51:30 +10:00
mitchmindtree
191b90909a
Make Driver type responsible for managing user callbacks
2019-07-05 05:51:30 +10:00
mitchmindtree
4dafb212fb
Refactor build_input_stream callback to, like recent output refactor
2019-07-05 05:51:30 +10:00
mitchmindtree
cc70a10c12
Remove unused supported_formats_err function
2019-07-05 05:51:29 +10:00
mitchmindtree
dc6c5c5a7c
Remove unnecessary asio_utils mod
2019-07-05 05:51:29 +10:00
mitchmindtree
50aa0585be
Remove unwieldy macro from output stream callback
...
Instead, we use some traits and generics in an attempt to retain a
little readability. See the remaining TODOs in this section for required
future work.
2019-07-05 05:51:29 +10:00
mitchmindtree
b6181d4362
Add impl Send for AsioStream
2019-07-05 05:51:29 +10:00
mitchmindtree
0f510a9512
Update README for Host API tweaks. Fix typos in steps.
2019-07-05 05:51:29 +10:00
mitchmindtree
d739a5b79d
Majority of ASIO host update following refactor
...
Currently not compiling - still need to address some global items within
asio-sys, including the `set_callback` function and the double buffer
globals.
2019-07-05 05:51:29 +10:00
mitchmindtree
efe683133c
Refactor asio-sys to use less global state and more RAII
...
The asio-sys examples have been tested and still work nicely. The CPAL
asio host has not yet been updated for these changes.
2019-07-05 05:51:29 +10:00
mitchmindtree
05f8b7dc43
Fix remaining compile errors for ASIO host
...
Now runs the beep and enumerate examples nicely! Time to do a proper
code review of the ASIO stuff and see how to best take advantage of the
new `Host` API.
2019-07-05 05:51:28 +10:00
mitchmindtree
747caeee38
Get asio-sys examples working with latest API updates
2019-07-05 05:51:28 +10:00
mitchmindtree
09fd5562be
Update ASIO implementation for new error handling and Host API
...
This is currently untested and will almost certainly not build. I'm
about to move into a Windows VM to get everything running properly
again.
2019-07-05 05:51:28 +10:00
mitchmindtree
2bc9f85970
Update supported_formats methods for all sample rates and channel combos
...
Closes #32 .
2019-07-05 05:51:28 +10:00
Tom Gowan
bc94d167ae
fix endianess
2019-07-05 05:51:28 +10:00
Tom Gowan
49bc3ee367
remove release symbols
2019-07-05 05:51:28 +10:00
Tom Gowan
f2c8099810
bug fix and comment
2019-07-05 05:51:27 +10:00
Tom Gowan
5eb311d8be
float conversion fix
2019-07-05 05:51:27 +10:00
Tom Gowan
a3defde208
Checks formats
2019-07-05 05:51:27 +10:00
Tom Gowan
c255da24bf
stream id bug
2019-07-05 05:51:27 +10:00
Tom Gowan
fd808b95e9
indentation and no clean up on destroy stream
2019-07-05 05:51:27 +10:00
mitchmindtree
b70e27ed87
Change step 7. to refer to VCVARS.
...
Also adds a note about the `CPAL_ASIO_SDK` environment variable
determining whether or not cpal will attempt to build ASIO and generate
bindings to it.
2019-07-05 05:51:27 +10:00
mitchmindtree
0ff0b65647
Add ASIO guide to README
2019-07-05 05:51:27 +10:00
Tom Gowan
ab3b76ad75
fixes, remove transmute
2019-07-05 05:51:26 +10:00
Tom Gowan
7950045240
minor fixes
2019-07-05 05:51:26 +10:00
Tom Gowan
062205160c
remove build.bat
2019-07-05 05:51:26 +10:00
Tom Gowan
25070464f9
git ignore, temp files, fetch_add, os cfg
2019-07-05 05:51:26 +10:00
Tom Gowan
523d25ad49
remove u16
2019-07-05 05:51:26 +10:00
Tom Gowan
616974353b
opt in and bug fix
2019-07-05 05:51:26 +10:00
Tom Gowan
1f24c76e6a
commenting and rustfmt for device
2019-07-05 05:51:26 +10:00
Tom Gowan
5248455cb7
commets and rustfmt for stream
2019-07-05 05:51:25 +10:00
Tom Gowan
72c5e9a8c1
asio sys lib comments and rust fmt
2019-07-05 05:51:25 +10:00
Tom Gowan
f6d1a74be2
asio sys lib comments and rust fmt
2019-07-05 05:51:25 +10:00
Tom Gowan
ffcbc02e52
multi channels
2019-07-05 05:51:25 +10:00
Tom Gowan
6e0eb073d1
sample rate support
2019-07-05 05:51:25 +10:00
Tom Gowan
b0b0484d4b
endian conversion
2019-07-05 05:51:25 +10:00
Tom Gowan
5ec6da3aad
Fixed driver bug
2019-07-05 05:51:24 +10:00