mirror of
https://github.com/encounter/rust-sdl2.git
synced 2026-07-10 21:18:41 -07:00
Sync with master
This commit is contained in:
+5
-1
@@ -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" &&
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user