Update for winapi
This commit is contained in:
parent
b0eeb2e6b8
commit
284f12f1cb
10
Cargo.toml
10
Cargo.toml
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
|
||||
name = "cpal"
|
||||
version = "0.0.9-pre"
|
||||
version = "0.0.10-pre"
|
||||
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>"]
|
||||
description = "Cross-platform audio playing library in pure Rust."
|
||||
repository = "https://github.com/tomaka/cpal"
|
||||
|
@ -11,11 +11,15 @@ keywords = ["audio", "sound"]
|
|||
|
||||
[target.i686-pc-windows-gnu.dependencies.winapi]
|
||||
version = "0"
|
||||
features = ["ole32"]
|
||||
|
||||
[target.x86_64-pc-windows-gnu.dependencies.winapi]
|
||||
version = "0"
|
||||
features = ["ole32"]
|
||||
|
||||
[target.i686-pc-windows-gnu.dependencies.ole32-sys]
|
||||
version = "0"
|
||||
|
||||
[target.x86_64-pc-windows-gnu.dependencies.ole32-sys]
|
||||
version = "0"
|
||||
|
||||
[target.i686-unknown-linux-gnu.dependencies.alsa-sys]
|
||||
version = "0"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
extern crate libc;
|
||||
extern crate winapi;
|
||||
extern crate "ole32-sys" as ole32;
|
||||
|
||||
use std::{slice, mem, ptr};
|
||||
|
||||
|
@ -156,13 +157,13 @@ impl<'a, T> Buffer<'a, T> {
|
|||
fn init() -> Result<Voice, String> {
|
||||
// FIXME: release everything
|
||||
unsafe {
|
||||
try!(check_result(winapi::CoInitializeEx(::std::ptr::null_mut(), 0)));
|
||||
try!(check_result(ole32::CoInitializeEx(::std::ptr::null_mut(), 0)));
|
||||
|
||||
// building the devices enumerator object
|
||||
let enumerator = {
|
||||
let mut enumerator: *mut winapi::IMMDeviceEnumerator = ::std::mem::uninitialized();
|
||||
|
||||
let hresult = winapi::CoCreateInstance(&winapi::CLSID_MMDeviceEnumerator,
|
||||
let hresult = ole32::CoCreateInstance(&winapi::CLSID_MMDeviceEnumerator,
|
||||
ptr::null_mut(), winapi::CLSCTX_ALL,
|
||||
&winapi::IID_IMMDeviceEnumerator,
|
||||
mem::transmute(&mut enumerator));
|
||||
|
@ -221,7 +222,7 @@ fn init() -> Result<Voice, String> {
|
|||
0, 10000000, 0, format, ptr::null());
|
||||
|
||||
if !format_ptr.is_null() {
|
||||
winapi::CoTaskMemFree(format_ptr as *mut libc::c_void);
|
||||
ole32::CoTaskMemFree(format_ptr as *mut libc::c_void);
|
||||
}
|
||||
|
||||
try!(check_result(hresult));
|
||||
|
|
Loading…
Reference in New Issue