Deluge Firmware 1.3.0
Build date: 2025.06.05
Loading...
Searching...
No Matches
din.h
1/*
2 * Copyright © 2024 Synthstrom Audible Limited
3 *
4 * This file is part of The Synthstrom Audible Deluge Firmware.
5 *
6 * The Synthstrom Audible Deluge Firmware is free software: you can redistribute it and/or modify it under the
7 * terms of the GNU General Public License as published by the Free Software Foundation,
8 * either version 3 of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 * See the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along with this program.
15 * If not, see <https://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20#include "deluge/io/midi/midi_device.h"
21
22class MIDICableDINPorts final : public MIDICable {
23private:
24 using IntermediateMessageBuffer = std::array<uint8_t, 3>;
25 IntermediateMessageBuffer messageBytes_;
26 IntermediateMessageBuffer::size_type currentByte_;
27 bool currentlyReceivingSysex_{false};
28
29public:
30 MIDICableDINPorts() {
31 connectionFlags = 1; // DIN ports are always connected
32 }
33
35 [[nodiscard]] Error onReceiveByte(uint32_t timestamp, uint8_t byte);
36
37 [[nodiscard]] bool wantsToOutputMIDIOnChannel(MIDIMessage message, int32_t filter) const override;
38
39 void writeReferenceAttributesToFile(Serializer& writer) override;
40 void writeToFlash(uint8_t* memory) override;
41 [[nodiscard]] char const* getDisplayName() const override;
42
43 [[nodiscard]] Error sendMessage(MIDIMessage message) override;
44 [[nodiscard]] Error sendSysex(const uint8_t* data, int32_t len) override;
45 [[nodiscard]] size_t sendBufferSpace() const override;
46};
bool wantsToOutputMIDIOnChannel(MIDIMessage message, int32_t filter) const override
Used to decide if the given message should be output on a channel.
Definition din.cpp:169
Error onReceiveByte(uint32_t timestamp, uint8_t byte)
Called by the DIN root complex when a byte is received.
Definition din.cpp:83
Error sendMessage(MIDIMessage message) override
Send a MIDI message.
Definition din.cpp:42
Error sendSysex(const uint8_t *data, int32_t len) override
Definition din.cpp:67
size_t sendBufferSpace() const override
Get the number of bytes available in the send buffer.
Definition din.cpp:63
Definition storage_manager.h:119
Definition message.h:30