Sync with master

This commit is contained in:
Dario Ostuni
2017-09-23 20:55:45 +02:00
committed by Dario Ostuni
3 changed files with 33 additions and 2 deletions
+5 -1
View File
@@ -4,6 +4,9 @@ rust:
- beta
- nightly
- stable
os:
- linux
- osx
install:
- wget https://www.libsdl.org/release/SDL2-2.0.5.tar.gz -O sdl2.tar.gz
- tar xzf sdl2.tar.gz
@@ -24,7 +27,8 @@ install:
before_script:
- |
pip install 'travis-cargo<0.2' --user &&
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/bin:$PATH &&
export PATH=~/Library/Python/2.7/bin:$PATH
script:
- |
travis-cargo build -- --features "gfx image ttf mixer" &&
+5
View File
@@ -18,6 +18,11 @@ breaking exisitng code too much.
* Adds the `unsafe_textures` feature to this crate, allowing to get rid of the lifetimes
in `Texture`s in the `render` module.
[PR #704](https://github.com/Rust-SDL2/rust-sdl2/pull/704)
* Adds the `Music::from_static_bytes` function, which creates a Music instance with the
static lifetime from a buffer that also has a static lifetime.
### v0.30
Re-exported sdl2\_sys as sdl2::sys
+23 -1
View File
@@ -27,7 +27,7 @@ use std::ffi::{CString, CStr};
use std::str::from_utf8;
use std::borrow::ToOwned;
use std::path::Path;
use libc::{c_int, uint16_t, c_double, c_uint};
use libc::{c_int, uint16_t, c_double, c_uint, c_void};
use ::get_error;
use ::rwops::RWops;
use ::version::Version;
@@ -790,6 +790,28 @@ impl<'a> Music<'a> {
}
}
/// Load music from a static byte buffer.
pub fn from_static_bytes(buf: &'static [u8]) -> Result<Music<'static>, String> {
let rw = unsafe {
::sys::rwops::SDL_RWFromConstMem(buf.as_ptr() as *const c_void, buf.len() as c_int)
};
if rw.is_null() {
return Err(get_error());
}
let raw = unsafe { ffi::Mix_LoadMUS_RW(rw, 0) };
if raw.is_null() {
Err(get_error())
} else {
Ok(Music {
raw: raw,
owned: true,
_marker: PhantomData,
})
}
}
/// The file format encoding of the music.
pub fn get_type(&self) -> MusicType {
let ret = unsafe { ffi::Mix_GetMusicType(self.raw) as i32 } as c_uint;