1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
extern crate lv2_sys as sys;
use urid::*;
pub mod time {
use urid::UriBound;
pub struct PositionClass;
unsafe impl UriBound for PositionClass {
const URI: &'static [u8] = sys::LV2_TIME__Position;
}
pub struct RateClass;
unsafe impl UriBound for RateClass {
const URI: &'static [u8] = sys::LV2_TIME__Rate;
}
pub struct TimeClass;
unsafe impl UriBound for TimeClass {
const URI: &'static [u8] = sys::LV2_TIME__Time;
}
pub struct Bar;
unsafe impl UriBound for Bar {
const URI: &'static [u8] = sys::LV2_TIME__bar;
}
pub struct BarBeat;
unsafe impl UriBound for BarBeat {
const URI: &'static [u8] = sys::LV2_TIME__barBeat;
}
pub struct Beat;
unsafe impl UriBound for Beat {
const URI: &'static [u8] = sys::LV2_TIME__beat;
}
pub struct BeatUnit;
unsafe impl UriBound for BeatUnit {
const URI: &'static [u8] = sys::LV2_TIME__beatUnit;
}
pub struct BeatsPerBar;
unsafe impl UriBound for BeatsPerBar {
const URI: &'static [u8] = sys::LV2_TIME__beatsPerBar;
}
pub struct BeatsPerMinute;
unsafe impl UriBound for BeatsPerMinute {
const URI: &'static [u8] = sys::LV2_TIME__beatsPerMinute;
}
pub struct Frame;
unsafe impl UriBound for Frame {
const URI: &'static [u8] = sys::LV2_TIME__frame;
}
pub struct FramesPerSecond;
unsafe impl UriBound for FramesPerSecond {
const URI: &'static [u8] = sys::LV2_TIME__framesPerSecond;
}
pub struct Speed;
unsafe impl UriBound for Speed {
const URI: &'static [u8] = sys::LV2_TIME__speed;
}
pub struct Position;
unsafe impl UriBound for Position {
const URI: &'static [u8] = sys::LV2_TIME__position;
}
}
use time::*;
#[derive(URIDCollection)]
pub struct TimeURIDCollection {
pub position_class: URID<PositionClass>,
pub rate_class: URID<RateClass>,
pub time_class: URID<TimeClass>,
pub bar: URID<Bar>,
pub bar_beat: URID<BarBeat>,
pub beat: URID<Beat>,
pub beat_unit: URID<BeatUnit>,
pub beats_per_bar: URID<BeatsPerBar>,
pub beats_per_minute: URID<BeatsPerMinute>,
pub frame: URID<Frame>,
pub frames_per_second: URID<FramesPerSecond>,
pub position: URID<Position>,
pub speed: URID<Speed>,
}
pub mod prelude {
pub use crate::time::*;
pub use crate::TimeURIDCollection;
}