Struct ghakuf::reader::Reader
[−]
[src]
pub struct Reader { /* fields omitted */ }
ghakuf
's SMF parser.
Examples
use ghakuf::messages::*; use ghakuf::reader::*; let mut reader = Reader::new( Box::new(HogeHandler {}), "tests/test.mid", ).unwrap(); let _ = reader.read(); struct HogeHandler {} impl Handler for HogeHandler { fn header(&mut self, format: u16, track: u16, time_base: u16) { let _ = (format, track, time_base); } fn meta_event(&mut self, delta_time: u32, event: &MetaEvent, data: &Vec<u8>) { let _ = (delta_time, event, data); } fn midi_event(&mut self, delta_time: u32, event: &MidiEvent) { let _ = (delta_time, event); } fn sys_ex_event(&mut self, delta_time: u32, event: &SysExEvent, data: &Vec<u8>) { let _ = (delta_time, event, data); } fn track_change(&mut self) {} }
Methods
impl Reader
[src]
fn new(handler: Box<Handler>, path: &str) -> Result<Reader, ReadError>
Builds Reader with handler(observer) and SMF file path.
Examples
use ghakuf::messages::*; use ghakuf::reader::*; use std::path::PathBuf; let mut reader = Reader::new( Box::new(FugaHandler {}), "tests/test.mid", ); struct FugaHandler {} impl Handler for FugaHandler {}
fn push_hanlder(&mut self, handler: Box<Handler>)
Pushes Handler to Reader.
Examples
use ghakuf::messages::*; use ghakuf::reader::*; use std::path::PathBuf; let mut reader = Reader::new( Box::new(FugaHandler {}), "tests/test.mid", ).unwrap(); reader.push_hanlder(Box::new(NyanHandler {})); struct FugaHandler {} impl Handler for FugaHandler {} struct NyanHandler {} impl Handler for NyanHandler {}
fn read(&mut self) -> Result<(), ReadError>
Parses SMF messages and fires(broadcasts) handlers.
Examples
use ghakuf::messages::*; use ghakuf::reader::*; let mut reader = Reader::new( Box::new(HogeHandler {}), "tests/test.mid", ).unwrap(); let _ = reader.read(); struct HogeHandler {} impl Handler for HogeHandler { fn header(&mut self, format: u16, track: u16, time_base: u16) { let _ = (format, track, time_base); } fn meta_event(&mut self, delta_time: u32, event: &MetaEvent, data: &Vec<u8>) { let _ = (delta_time, event, data); } fn midi_event(&mut self, delta_time: u32, event: &MidiEvent) { let _ = (delta_time, event); } fn sys_ex_event(&mut self, delta_time: u32, event: &SysExEvent, data: &Vec<u8>) { let _ = (delta_time, event, data); } fn track_change(&mut self) {} }