Copyright © Glensound Electronics Ltd and individual contributors. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Glensound nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Content based on github.com/github/opensource.guide used under the CC-BY-4.0 license.
The common Glensound protocol is documented in GsProtocol.html and defined in common header files Gs*.h. This document refers to device-specific details of the Glensound DARK8MAI, defined in the file Dark8Mai.h.
Analogue inputs feature discrete gain control. Gain values are expressed as indices to internal gain tables. The range and number of available gain steps depends on the input mode as follows:
Index range of 0 to 6 maps to gain of -9.0 to +9.0 dB, in 3 dB steps
Index range of 0 to 17 maps to gain of +10.0 to +61.0 dB, in 3 dB steps
The status structure extends Gs::Status
(file GsStatus.h). The generations
table in the base status use four entries, indexed with ReportId::Preset
, ReportId::Device
, ReportId::InChannelNames
and ReportId::OutChannelNames
.
The following fields are specific to DARK8MAI:
uint8_t outputMeters[cNumDanteOutChannels]
Meter values of all the Dante output channels, ordered by channel index. Note that Dante output channels transmit audio taken from the local device inputs so the meters reflect the levels on the device inputs.
uint8_t gains[cNumInputs]
Current gain indices for all the analogue inputs, ordered by input index.
uint16_t inputModes
Current modes of all the analogue inputs. The value has eight two-bit fields of the type
AnalogueInputMode
packed in an integer as follows:
bits 0..1: input 1
bits 2..3: input 2
...
bits 14..15: input 8
The following standard commands are supported (file GsCommands.h):
Command::AdcSettings
Command::RestoreDefaults
Command::ChannelName
Device-specific commands are:
Dark8Mai::Command::GainIndex
Sets gain index for the specified analogue input. Each input remembers gain indices for all three analogue modes (line, mic and phantom). This command sets the gain for the current mode of the input. As stated in [Analogue Gain Indices] the valid range of gain indices depend on the mode. The device will coerce values out of range.
The message is a
GainIndexMsg
structure with the following fields:command = Dark8Mai::Command::GainIndex index = input index (0 to 7) gainIndex = gain index value
Dark8Mai::Command::InputMode
Sets analogue input mode for an input. When switching modes the device will automatically apply the gain index previously stored for this mode.
The message is a
InputModeMsg
structure with the following fields:command = Dark8Mai::Command::InputMode index = input index (0 to 7) mode = the selected mode (enum AnalogueInputMode)
The following standard reports are supported (file GsReports.h):
ReportId::Device
ReportId::Preset
ReportId::OutChannelNames
The following standard presets are supported (file GsPresets.h):
PresetType::Device
PresetType::ChannelNames
The following device-specific preset types are defined:
Dark8Mai::PresetType::Inputs
Sets modes and gains for all the inputs.
The following standard factory defaults are supported:
SettingsPart::Device
SettingsPart::ChannelNames
The following device-specific settings parts are defined:
Dark8Mai::SettingsPart::Inputs
Restores modes and gains for all the inputs.
Updated 19/Jun/2023