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
// SPDX-License-Identifier: LGPL-3.0-or-later
// Copyright (c) 2021 Takashi Sakamoto
//! Protocol implementation for Digidesign Mbox 2 Pro.
//!
//! The module includes structure, enumeration, and trait and its implementation for protocol
//! defined by Digidesign for Mbox 2 pro.
//!
//! ## Diagram of internal signal flow
//!
//! ```text
//! digital-input-1/2 -------------------------> stream-output-1/2
//! analog-input-1/2 ------------+-------------> stream-output-3/4
//! analog-input-3/4 ------------|-+-----------> stream-output-5/6
//! | |
//! v v
//! ++=======++
//! +--> || 6 x 2 ||-------> monitor-output-1/2
//! | || mixer ||
//! | ++=======++
//! stream-input-1/2 ---+----------------------> digital-output-1/2
//! stream-input-3/4 --------------------------> analog-output-1/2
//! stream-input-5/6 --------------------------> analog-output-3/4
//! ```
//!
//! None of the above audio signals is configurable by software.
//!
//! The protocol implementation for M-Audio FireWire 1814 was written with firmware version
//! below:
//!
//! ```sh
//! $ cargo run --bin bco-bootloader-info -- /dev/fw1
//! protocol:
//! version: 1
//! bootloader:
//! timestamp: 2005-12-07T08:55:54+0000
//! version: 0.0.0
//! hardware:
//! GUID: 0x00a9000000a07e01
//! model ID: 0x000001
//! revision: 0.0.1
//! software:
//! timestamp: 2007-10-31T03:44:02+0000
//! ID: 0x000000a9
//! revision: 0.255.65535
//! image:
//! base address: 0x20080000
//! maximum size: 0x180000
//! ```
use *;
/// The protocol implementation of operation for media clock and sampling clock.
;
/// The protocol implementation to initialize input/output.
;