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
// SPDX-License-Identifier: LGPL-3.0-or-later
// Copyright (c) 2021 Takashi Sakamoto
//! Protocol implementation for Behringer Firepower series.
//!
//! The module includes structure, enumeration, and trait and its implementation for protocol
//! defined by Behringer for Firepower series.
//!
//! DM1500 is used for Behringer Firepower FCA610.
//!
//! ## Diagram of internal signal flow for FCA610
//!
//! ```text
//! analog-input-1/2 ----------+--------------> stream-output-1/2
//! analog-input-3/4 ----------|-+------------> stream-output-3/4
//! digital-input-1/2 ----------|-|-+----------> stream-output-5/6
//! | | |
//! v v v
//! ++=======++
//! stream-input-1/2 ------> || 8 x 2 ||
//! || mixer ||-------> analog-output-1/2
//! ++=======++
//! stream-input-3/4 --------------------------> analog-output-3/4
//! stream-input-5/6 --------------------------> analog-output-5/6
//! stream-input-7/8 --------------------------> digital-output-1/2
//! ```
//!
//! The protocol implementation for Behringer FCA610 was written with firmware version below:
//!
//! ```sh
//! $ cargo run --bin bco-bootloader-info -- /dev/fw1
//! protocol:
//! version: 3
//! bootloader:
//! timestamp: 2012-10-15T10:47:10+0000
//! version: 0.0.0
//! hardware:
//! GUID: 0x0002ad7300156400
//! model ID: 0x000003
//! revision: 0.0.0
//! software:
//! timestamp: 2012-11-02T03:34:31+0000
//! ID: 0x00000610
//! revision: 0.0.8348
//! image:
//! base address: 0x400c0080
//! maximum size: 0x15b520
//! ```
use *;
/// The protocol implementation for media and sampling clock of FCA 610.
;