cs-midi/cs_midi.h

97 lines
2.7 KiB
C

#pragma once
// cs_midi.h — Control Surface library for pico-sdk
// Extracted from tttapa/Control-Surface (GPL-3.0)
// Platform
#include <Settings/NamespaceSettings.hpp>
// MIDI message types & parsers
#include <MIDI_Parsers/MIDI_MessageTypes.hpp>
// MIDI address types
#include <Def/Cable.hpp>
#include <Def/Channel.hpp>
#include <Def/Def.hpp>
#include <Def/MIDIAddress.hpp>
// MIDI constants
#include <MIDI_Constants/Chords/Chords.hpp>
#include <MIDI_Constants/Control_Change.hpp>
#include <MIDI_Constants/Notes.hpp>
#include <MIDI_Constants/Program_Change.hpp>
// MIDI interfaces — common
#include <MIDI_Interfaces/MIDI_Pipes.hpp>
// MIDI interfaces — transport-specific
#ifdef CS_MIDI_BLE
#include <MIDI_Interfaces/GenericBLEMIDI_Interface.hpp>
#include <MIDI_Interfaces/BLEMIDI/BTstackBackgroundBackend.hpp>
#endif
#ifdef CS_MIDI_USB
#include <MIDI_Interfaces/USBMIDI_Interface.hpp>
#endif
#ifdef CS_MIDI_SERIAL
#include <MIDI_Interfaces/SerialMIDI_Interface.hpp>
#endif
#ifdef CS_MIDI_APPLEMIDI
#include <MIDI_Interfaces/AppleMIDI_Interface.hpp>
#endif
// Control Surface singleton
#include <Control_Surface/Control_Surface_Class.hpp>
// Banks & selectors
#include <Banks/Bank.hpp>
#include <Banks/BankConfig.hpp>
#include <Banks/Transposer.hpp>
#include <Selectors/EncoderSelector.hpp>
#include <Selectors/IncrementDecrementSelector.hpp>
#include <Selectors/IncrementSelector.hpp>
#include <Selectors/ManyButtonsSelector.hpp>
#include <Selectors/ProgramChangeSelector.hpp>
#include <Selectors/SwitchSelector.hpp>
// MIDI output elements
#include <MIDI_Outputs/NoteButton.hpp>
#include <MIDI_Outputs/NoteButtons.hpp>
#include <MIDI_Outputs/NoteButtonLatched.hpp>
#include <MIDI_Outputs/NoteButtonLatching.hpp>
#include <MIDI_Outputs/NoteButtonMatrix.hpp>
#include <MIDI_Outputs/NoteChordButton.hpp>
#include <MIDI_Outputs/CCButton.hpp>
#include <MIDI_Outputs/CCButtons.hpp>
#include <MIDI_Outputs/CCButtonLatched.hpp>
#include <MIDI_Outputs/CCButtonLatching.hpp>
#include <MIDI_Outputs/CCButtonMatrix.hpp>
#include <MIDI_Outputs/CCPotentiometer.hpp>
#include <MIDI_Outputs/PBPotentiometer.hpp>
#include <MIDI_Outputs/CCRotaryEncoder.hpp>
#include <MIDI_Outputs/CCAbsoluteEncoder.hpp>
#include <MIDI_Outputs/PBAbsoluteEncoder.hpp>
#include <MIDI_Outputs/PCButton.hpp>
#include <MIDI_Outputs/ProgramChanger.hpp>
#include <MIDI_Outputs/CCIncrementDecrementButtons.hpp>
// MIDI input elements
#include <MIDI_Inputs/NoteCCKPValue.hpp>
#include <MIDI_Inputs/NoteCCKPRange.hpp>
#include <MIDI_Inputs/PBValue.hpp>
#include <MIDI_Inputs/LEDs/NoteCCKPLED.hpp>
// Encoder
#include <Submodules/Encoder/AHEncoder.hpp>
BEGIN_CS_NAMESPACE
#ifdef CS_MIDI_BLE
using BluetoothMIDI_Interface =
GenericBLEMIDI_Interface<BTstackBackgroundBackend>;
#endif
END_CS_NAMESPACE