busmust_sys/
bitrate_builder.rs1use BMBitrate;
2
3impl BMBitrate {
4 pub fn builder() -> BMBitrateBuilder {
5 BMBitrateBuilder::default()
6 }
7}
8
9#[derive(Default)]
11pub struct BMBitrateBuilder {
12 n_bitrate: u16,
14 d_bitrate: u16,
16 n_sample_pos: u8,
18 d_sample_pos: u8
20}
21
22impl BMBitrateBuilder {
23 pub fn new() -> BMBitrateBuilder {
24 BMBitrateBuilder {
25 n_bitrate: 500,
26 d_bitrate: 2000,
27 n_sample_pos: 75,
28 d_sample_pos: 75
29 }
30 }
31
32 pub fn bitrate(mut self, n_bitrate: u16) -> BMBitrateBuilder {
33 self.n_bitrate = n_bitrate;
34 self
35 }
36
37 pub fn data_bitrate(mut self, d_bitrate: u16) -> BMBitrateBuilder {
38 self.d_bitrate = d_bitrate;
39 self
40 }
41
42 pub fn sample_pos(mut self, n_sample_pos: u8) -> BMBitrateBuilder {
43 self.n_sample_pos = n_sample_pos;
44 self
45 }
46
47 pub fn data_sample_pos(mut self, d_sample_pos: u8) -> BMBitrateBuilder {
48 self.d_sample_pos = d_sample_pos;
49 self
50 }
51
52 pub fn build(self) -> BMBitrate {
53 BMBitrate {
54 n_bitrate: self.n_bitrate,
55 d_bitrate: self.d_bitrate,
56 n_sample_pos: self.n_sample_pos,
57 d_sample_pos: self.d_sample_pos,
58 clock_freq: 0,
59 reserved: 0,
60 n_btr0: 0,
61 n_btr1: 0,
62 d_btr0: 0,
63 d_btr1: 0
64 }
65 }
66}