Skip to content

Commit 6e224a9

Browse files
dpezelyBenLeadbetter
authored andcommitted
fix: include trailing reserved bytes
1 parent 9a31d90 commit 6e224a9

13 files changed

+142
-85
lines changed

midi2/src/channel_voice2/per_note_management.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ pub(crate) const STATUS: u8 = 0b1111;
99
/// MIDI 2.0 Channel Voice Per Note Management Message
1010
///
1111
/// See the [module docs](crate::channel_voice2) for more info.
12-
#[midi2_proc::generate_message(Via(crate::channel_voice2::ChannelVoice2), FixedSize, MinSizeUmp(1))]
12+
#[midi2_proc::generate_message(Via(crate::channel_voice2::ChannelVoice2), FixedSize, MinSizeUmp(2))]
1313
struct PerNoteManagement {
1414
#[property(common_properties::UmpMessageTypeProperty<UMP_MESSAGE_TYPE>)]
1515
ump_type: (),
@@ -49,7 +49,7 @@ mod tests {
4949
#[test]
5050
fn note_number() {
5151
assert_eq!(
52-
PerNoteManagement::try_from(&[0x4BF9_1C03][..])
52+
PerNoteManagement::try_from(&[0x4BF9_1C03, 0x0][..])
5353
.unwrap()
5454
.note_number(),
5555
u7::new(0x1C),
@@ -58,14 +58,14 @@ mod tests {
5858

5959
#[test]
6060
fn detach() {
61-
assert!(PerNoteManagement::try_from(&[0x4BF9_1C03][..])
61+
assert!(PerNoteManagement::try_from(&[0x4BF9_1C03, 0x0][..])
6262
.unwrap()
6363
.detach(),);
6464
}
6565

6666
#[test]
6767
fn reset() {
68-
assert!(PerNoteManagement::try_from(&[0x4BF9_1C03][..])
68+
assert!(PerNoteManagement::try_from(&[0x4BF9_1C03, 0x0][..])
6969
.unwrap()
7070
.reset(),);
7171
}

midi2/src/flex_data.rs

100644100755
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,7 +1224,7 @@ mod tests {
12241224

12251225
#[test]
12261226
fn try_from_set_tempo() {
1227-
let buffer = [0xD710_0000_u32, 0xF751_FE05];
1227+
let buffer = [0xD710_0000_u32, 0xF751_FE05, 0x0, 0x0];
12281228
assert_eq!(
12291229
FlexData::try_from(&buffer[..]),
12301230
Ok(FlexData::SetTempo(
@@ -1235,8 +1235,9 @@ mod tests {
12351235

12361236
#[test]
12371237
fn read_bank() {
1238+
// Set Tempo
12381239
assert_eq!(
1239-
FlexData::try_from(&[0xD710_0000_u32, 0xF751_FE05][..])
1240+
FlexData::try_from(&[0xD710_0000_u32, 0xF751_FE05, 0x0, 0x0][..])
12401241
.unwrap()
12411242
.bank(),
12421243
Bank::SetupAndPerformance,

midi2/src/flex_data/set_key_signature.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const STATUS: u8 = 0x5;
99
/// MIDI 2.0 Flex Data Set Key Signature Message
1010
///
1111
/// See the [module docs](crate::flex_data) for more info.
12-
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(2))]
12+
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(4))]
1313
struct SetKeySignature {
1414
#[property(common_properties::UmpMessageTypeProperty<UMP_MESSAGE_TYPE>)]
1515
ump_type: (),
@@ -147,7 +147,7 @@ mod tests {
147147
#[test]
148148
fn tonic() {
149149
assert_eq!(
150-
SetKeySignature::try_from(&[0xD410_0005, 0x5400_0000][..])
150+
SetKeySignature::try_from(&[0xD410_0005, 0x5400_0000, 0x0, 0x0][..])
151151
.unwrap()
152152
.tonic(),
153153
flex_data::tonic::Tonic::D,
@@ -157,7 +157,7 @@ mod tests {
157157
#[test]
158158
fn sharps_flats() {
159159
assert_eq!(
160-
SetKeySignature::try_from(&[0xD410_0005, 0x5400_0000][..])
160+
SetKeySignature::try_from(&[0xD410_0005, 0x5400_0000, 0x0, 0x0][..])
161161
.unwrap()
162162
.sharps_flats(),
163163
SharpsFlats::Sharps(u3::new(5)),
@@ -167,7 +167,7 @@ mod tests {
167167
#[test]
168168
fn sharps_flats_with_flats() {
169169
assert_eq!(
170-
SetKeySignature::try_from(&[0xD410_0005, 0xB400_0000][..])
170+
SetKeySignature::try_from(&[0xD410_0005, 0xB400_0000, 0x0, 0x0][..])
171171
.unwrap()
172172
.sharps_flats(),
173173
SharpsFlats::Flats(u3::new(5)),
@@ -177,7 +177,7 @@ mod tests {
177177
#[test]
178178
fn sharps_flats_non_standard() {
179179
assert_eq!(
180-
SetKeySignature::try_from(&[0xD410_0005, 0x8000_0000][..])
180+
SetKeySignature::try_from(&[0xD410_0005, 0x8000_0000, 0x0, 0x0][..])
181181
.unwrap()
182182
.sharps_flats(),
183183
SharpsFlats::NonStandard,
@@ -187,7 +187,7 @@ mod tests {
187187
#[test]
188188
fn channel() {
189189
assert_eq!(
190-
SetKeySignature::try_from(&[0xD40D_0005, 0x8000_0000][..])
190+
SetKeySignature::try_from(&[0xD40D_0005, 0x8000_0000, 0x0, 0x0][..])
191191
.unwrap()
192192
.optional_channel(),
193193
Some(u4::new(0xD)),
@@ -197,7 +197,7 @@ mod tests {
197197
#[test]
198198
fn no_channel() {
199199
assert_eq!(
200-
SetKeySignature::try_from(&[0xD410_0005, 0x8000_0000][..])
200+
SetKeySignature::try_from(&[0xD410_0005, 0x8000_0000, 0x0, 0x0][..])
201201
.unwrap()
202202
.optional_channel(),
203203
None,

midi2/src/flex_data/set_metronome.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const STATUS: u8 = 0x2;
88
/// MIDI 2.0 Flex Data Set Metronome Message
99
///
1010
/// See the [module docs](crate::flex_data) for more info.
11-
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(3))]
11+
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(4))]
1212
struct SetMetronome {
1313
#[property(common_properties::UmpMessageTypeProperty<UMP_MESSAGE_TYPE>)]
1414
ump_type: (),
@@ -81,7 +81,7 @@ mod tests {
8181
#[test]
8282
fn number_of_clocks_per_primary_click() {
8383
assert_eq!(
84-
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000][..])
84+
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000, 0x0][..])
8585
.unwrap()
8686
.number_of_clocks_per_primary_click(),
8787
0x9B,
@@ -91,7 +91,7 @@ mod tests {
9191
#[test]
9292
fn bar_accent1() {
9393
assert_eq!(
94-
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000][..])
94+
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000, 0x0][..])
9595
.unwrap()
9696
.bar_accent1(),
9797
0x4A,
@@ -101,7 +101,7 @@ mod tests {
101101
#[test]
102102
fn bar_accent2() {
103103
assert_eq!(
104-
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000][..])
104+
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000, 0x0][..])
105105
.unwrap()
106106
.bar_accent2(),
107107
0xFE,
@@ -111,7 +111,7 @@ mod tests {
111111
#[test]
112112
fn bar_accent3() {
113113
assert_eq!(
114-
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000][..])
114+
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000, 0x0][..])
115115
.unwrap()
116116
.bar_accent3(),
117117
0x56,
@@ -121,7 +121,7 @@ mod tests {
121121
#[test]
122122
fn number_of_subdivision_clicks1() {
123123
assert_eq!(
124-
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000][..])
124+
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000, 0x0][..])
125125
.unwrap()
126126
.number_of_subdivision_clicks1(),
127127
0xB8,
@@ -131,7 +131,7 @@ mod tests {
131131
#[test]
132132
fn number_of_subdivision_clicks2() {
133133
assert_eq!(
134-
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000][..])
134+
SetMetronome::try_from(&[0xD110_0002, 0x9B4A_FE56, 0xB81B_0000, 0x0][..])
135135
.unwrap()
136136
.number_of_subdivision_clicks2(),
137137
0x1B,

midi2/src/flex_data/set_tempo.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const STATUS: u8 = 0x0;
88
/// MIDI 2.0 Flex Data Set Tempo Message
99
///
1010
/// See the [module docs](crate::flex_data) for more info.
11-
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(2))]
11+
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(4))]
1212
struct SetTempo {
1313
#[property(common_properties::UmpMessageTypeProperty<UMP_MESSAGE_TYPE>)]
1414
ump_type: (),
@@ -48,7 +48,7 @@ mod tests {
4848
#[test]
4949
fn number_of_10_nanosecond_units_per_quarter_note() {
5050
assert_eq!(
51-
SetTempo::try_from(&[0xD710_0000, 0xF751_FE05,][..])
51+
SetTempo::try_from(&[0xD710_0000, 0xF751_FE05, 0x0, 0x0][..])
5252
.unwrap()
5353
.number_of_10_nanosecond_units_per_quarter_note(),
5454
0xF751FE05,

midi2/src/flex_data/set_time_signature.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const STATUS: u8 = 0x1;
88
/// MIDI 2.0 Flex Data Set Time Signature Message
99
///
1010
/// See the [module docs](crate::flex_data) for more info.
11-
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(2))]
11+
#[midi2_proc::generate_message(Via(crate::flex_data::FlexData), FixedSize, MinSizeUmp(4))]
1212
struct SetTimeSignature {
1313
#[property(common_properties::UmpMessageTypeProperty<UMP_MESSAGE_TYPE>)]
1414
ump_type: (),
@@ -63,7 +63,7 @@ mod tests {
6363
#[test]
6464
fn numerator() {
6565
assert_eq!(
66-
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00,][..])
66+
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00, 0x0, 0x0][..])
6767
.unwrap()
6868
.numerator(),
6969
0xCD,
@@ -73,7 +73,7 @@ mod tests {
7373
#[test]
7474
fn denominator() {
7575
assert_eq!(
76-
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00,][..])
76+
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00, 0x0, 0x0][..])
7777
.unwrap()
7878
.denominator(),
7979
0x90,
@@ -83,7 +83,7 @@ mod tests {
8383
#[test]
8484
fn number_of_32nd_notes() {
8585
assert_eq!(
86-
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00,][..])
86+
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00, 0x0, 0x0][..])
8787
.unwrap()
8888
.number_of_32nd_notes(),
8989
0x7E,
@@ -93,7 +93,7 @@ mod tests {
9393
#[test]
9494
fn bank() {
9595
assert_eq!(
96-
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00,][..])
96+
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00, 0x0, 0x0][..])
9797
.unwrap()
9898
.bank(),
9999
flex_data::Bank::SetupAndPerformance,
@@ -103,7 +103,7 @@ mod tests {
103103
#[test]
104104
fn status() {
105105
assert_eq!(
106-
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00,][..])
106+
SetTimeSignature::try_from(&[0xDA10_0001, 0xCD90_7E00, 0x0, 0x0][..])
107107
.unwrap()
108108
.status(),
109109
STATUS,

midi2/src/ump_stream/end_of_clip.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::{detail::common_properties, ump_stream, ump_stream::UMP_MESSAGE_TYPE}
22

33
pub(crate) const STATUS: u16 = 0x21;
44

5-
#[midi2_proc::generate_message(Via(ump_stream::UmpStream), FixedSize, MinSizeUmp(1))]
5+
#[midi2_proc::generate_message(Via(ump_stream::UmpStream), FixedSize, MinSizeUmp(4))]
66
struct EndOfClip {
77
#[property(common_properties::UmpMessageTypeProperty<UMP_MESSAGE_TYPE>)]
88
ump_type: (),
@@ -28,8 +28,8 @@ mod tests {
2828
#[test]
2929
fn from_data() {
3030
assert_eq!(
31-
EndOfClip::try_from(&[0xF021_0000][..]),
32-
Ok(EndOfClip(&[0xF021_0000][..]))
31+
EndOfClip::try_from(&[0xF021_0000, 0x0, 0x0, 0x0][..]),
32+
Ok(EndOfClip(&[0xF021_0000, 0x0, 0x0, 0x0][..]))
3333
);
3434
}
3535
}

midi2/src/ump_stream/endpoint_discovery.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::{
66

77
pub(crate) const STATUS: u16 = 0x0;
88

9-
#[midi2_proc::generate_message(Via(ump_stream::UmpStream), FixedSize, MinSizeUmp(2))]
9+
#[midi2_proc::generate_message(Via(ump_stream::UmpStream), FixedSize, MinSizeUmp(4))]
1010
struct EndpointDiscovery {
1111
#[property(common_properties::UmpMessageTypeProperty<UMP_MESSAGE_TYPE>)]
1212
ump_type: (),
@@ -54,7 +54,7 @@ mod tests {
5454
#[test]
5555
fn ump_version_major() {
5656
assert_eq!(
57-
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F][..])
57+
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F, 0x0, 0x0][..])
5858
.unwrap()
5959
.ump_version_major(),
6060
0x1,
@@ -64,7 +64,7 @@ mod tests {
6464
#[test]
6565
fn ump_version_minor() {
6666
assert_eq!(
67-
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F][..])
67+
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F, 0x0, 0x0][..])
6868
.unwrap()
6969
.ump_version_minor(),
7070
0x1,
@@ -74,7 +74,7 @@ mod tests {
7474
#[test]
7575
fn request_endpoint_info() {
7676
assert_eq!(
77-
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F][..])
77+
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F, 0x0, 0x0][..])
7878
.unwrap()
7979
.request_endpoint_info(),
8080
true,
@@ -84,7 +84,7 @@ mod tests {
8484
#[test]
8585
fn request_device_identity() {
8686
assert_eq!(
87-
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F][..])
87+
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F, 0x0, 0x0][..])
8888
.unwrap()
8989
.request_device_identity(),
9090
true,
@@ -94,7 +94,7 @@ mod tests {
9494
#[test]
9595
fn request_endpoint_name() {
9696
assert_eq!(
97-
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F][..])
97+
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F, 0x0, 0x0][..])
9898
.unwrap()
9999
.request_endpoint_name(),
100100
true,
@@ -104,7 +104,7 @@ mod tests {
104104
#[test]
105105
fn request_product_instance_id() {
106106
assert_eq!(
107-
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F][..])
107+
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F, 0x0, 0x0][..])
108108
.unwrap()
109109
.request_product_instance_id(),
110110
true,
@@ -114,7 +114,7 @@ mod tests {
114114
#[test]
115115
fn request_stream_configuration() {
116116
assert_eq!(
117-
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F][..])
117+
EndpointDiscovery::try_from(&[0xF000_0101, 0x0000_001F, 0x0, 0x0][..])
118118
.unwrap()
119119
.request_stream_configuration(),
120120
true,

0 commit comments

Comments
 (0)