Adds in some derivation traits

This allows other structs to easily copy
the data around
This commit is contained in:
beau trepp 2020-01-12 16:43:08 +08:00
parent ad09837bbd
commit 468ce4ed39
5 changed files with 16 additions and 4 deletions

View file

@ -1,6 +1,6 @@
[package]
name = "usbd-midi"
version = "0.1.0"
version = "0.2.0"
authors = ["beau trepp <beautrepp@gmail.com>"]
edition = "2018"
description = "A usb-midi implementation for usb-device"

View file

@ -3,7 +3,7 @@ use core::convert::TryFrom;
/// The Channel is a value ranging from 0x0 to 0xF
/// This is a standard midi concept
/// Note Channel1 = 0 on the wire
#[derive(Debug)]
#[derive(Debug,Copy,Clone)]
#[repr(u8)]
pub enum Channel {
Channel1 = 0x0, Channel2 = 0x1, Channel3 = 0x2, Channel4 = 0x3,

View file

@ -4,7 +4,7 @@ use crate::data::byte::from_traits::FromOverFlow;
/// note the flat versions are associated constants
/// but can be referenced like Note::Bb3
/// C1m is the C-1
#[derive(Debug)]
#[derive(Debug,Copy,Clone)]
#[repr(u8)]
pub enum Note {
C1m, Cs1m, D1m, Ds1m, E1m, F1m, Fs1m, G1m, Gs1m, A1m, As1m, B1m,

View file

@ -4,7 +4,7 @@ use crate::data::byte::u4::U4;
/// The Cable Number (CN) is a value ranging from 0x0 to 0xF
/// indicating the number assignment of the Embedded MIDI Jack associated
/// with the endpoint that is transferring the data
#[derive(Debug)]
#[derive(Debug,Clone,Copy)]
#[repr(u8)]
pub enum CableNumber {
Cable0 = 0x0, Cable1 = 0x1, Cable2 = 0x2, Cable3 = 0x3,

View file

@ -4,6 +4,7 @@ use crate::data::midi::message::Message;
use crate::data::byte::u4::U4;
use crate::data::midi::message::raw::{Payload,Raw};
/// A packet that communicates with the host
/// Currently supported is sending the specified normal midi
/// message over the supplied cable number
@ -34,4 +35,15 @@ impl From<UsbMidiEventPacket> for [u8;4] {
[header,status,byte1.into(),byte2.into()]
}
}
}
impl UsbMidiEventPacket{
pub fn from_midi(cable:CableNumber, midi:Message)
-> UsbMidiEventPacket{
UsbMidiEventPacket{
cable_number : cable,
message : midi
}
}
}