Load a test XM module, does not play it yet.
authorBernie Innocenti <bernie@codewiz.org>
Sat, 8 Apr 2017 13:46:40 +0000 (09:46 -0400)
committerBernie Innocenti <bernie@codewiz.org>
Sat, 8 Apr 2017 13:46:40 +0000 (09:46 -0400)
Cargo.toml
mandelwow.rs

index 706d69e42201eb06d081115e116114bb91c5c94d..0d51822eab0606e141ab3dcf4c8350f69a8950d7 100644 (file)
@@ -6,8 +6,9 @@ authors = ["Bernie Innocenti <bernie@codewiz.org>"]
 [dependencies]
 glium = "*"
 glutin = "*"
 [dependencies]
 glium = "*"
 glutin = "*"
-genmesh = "0.4"
+genmesh = "0.4.1"
 obj = { version = "0.5", features = ["usegenmesh"] }
 obj = { version = "0.5", features = ["usegenmesh"] }
+libxm = "1.0.0"
 
 [[bin]]
 name = "mandelwow"
 
 [[bin]]
 name = "mandelwow"
index 3c4da07d4f6064c4ba538416be0ebf9fc8c45bdf..f760a26266cf597c6db612d391f5a2a274f8ecf5 100644 (file)
@@ -4,12 +4,17 @@
 
 extern crate glium;
 extern crate glutin;
 
 extern crate glium;
 extern crate glutin;
+extern crate libxm;
 
 use glium::{DisplayBuild, Surface};
 use glium::index::{IndexBuffer, PrimitiveType};
 use glutin::ElementState::Pressed;
 use glutin::Event::KeyboardInput;
 use glutin::VirtualKeyCode;
 
 use glium::{DisplayBuild, Surface};
 use glium::index::{IndexBuffer, PrimitiveType};
 use glutin::ElementState::Pressed;
 use glutin::Event::KeyboardInput;
 use glutin::VirtualKeyCode;
+use libxm::XMContext;
+use std::fs::File;
+use std::io::Read;
+
 
 mod support;
 
 
 mod support;
 
@@ -268,8 +273,16 @@ fn mandelwow(display: &glium::Display,
         mandel(&display, &mut frame, &program, &uniforms, bounds, z0);
     }
 }
         mandel(&display, &mut frame, &program, &uniforms, bounds, z0);
     }
 }
+fn play_xm(raw_xm: &[u8]) {
+    let freq = 48000u32;
+    let mut xm = XMContext::new(&raw_xm, freq).unwrap();
+}
 
 fn main() {
 
 fn main() {
+    let mut xm = Vec::new();
+    File::open("flora.xm").unwrap().read_to_end(&mut xm).unwrap();
+    play_xm(&xm);
+
     let display = glium::glutin::WindowBuilder::new()
         //.with_dimensions(1024, 768)
         .with_fullscreen(glutin::get_primary_monitor())
     let display = glium::glutin::WindowBuilder::new()
         //.with_dimensions(1024, 768)
         .with_fullscreen(glutin::get_primary_monitor())