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]

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 {}

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 {}

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) {}
}