Skip to content

App API

These pages cover the headers the Build an app recipes use, grouped by task. They are generated from the crosspad-core and crosspad-gui headers. Each member links the recipes whose code uses it.

PageWhat it coversHeader
AppRegistrarRegistration helpers and REGISTER_APP macros.crosspad/app/AppRegistrar.hpp
AppBaseThe base class of every app’s App object, with its lifecycle, back handler and destroyAppAsync().crosspad-gui/app/AppBase.hpp
PageWhat it coversHeader
IPadLogicHandlerThe callbacks an app implements to own the pads, from onActivate to pressure and pan.crosspad/pad/IPadLogicHandler.hpp
PadManagerThe pads, with pad colours, note mapping and the pad logic that receives presses.crosspad/pad/PadManager.hpp
PadLedControllerPer-pad LED colours, feedback modes and brightness.crosspad/pad/PadLedController.hpp
PadAnimatorWhole-grid LED animations, from progress and charging to single frames.crosspad/pad/PadAnimator.hpp
RgbColorAn RGB colour, with dimming and blending.crosspad/led/RgbColor.hpp
PageWhat it coversHeader
IEventBusPlatform-agnostic event bus interface for CrossPad.crosspad/event/IEventBus.hpp
EventTypesPortable event type and source enumerations for CrossPad event system.crosspad/event/EventTypes.hpp
EventDataPortable event data structures for CrossPad event system.crosspad/event/EventData.hpp
PageWhat it coversHeader
IAudioNodeA unit in the audio chain that makes or processes sound, and its real-time rules.crosspad/audio/IAudioNode.hpp
IOutputLevelsThe board’s audio outputs, with a level and a mute for each.crosspad/audio/IOutputLevels.hpp
IKitManagerKits, to list, select, load and save.crosspad/kit/IKitManager.hpp
ISampleToolsRecording, looking at and cutting samples, the platform side of the Recorder and the Slicer.crosspad/sampletools/ISampleTools.hpp
IInstrumentHostLends the pitched sample engine to an app that plays its own instrument.crosspad/instrument/IInstrumentHost.hpp
PageWhat it coversHeader
IMidiOutputMIDI out, with notes, control change, pitch bend, aftertouch, program change and SysEx.crosspad/midi/IMidiOutput.hpp
PageWhat it coversHeader
TransportOne transport for the whole instrument.crosspad/transport/Transport.hpp
transport_barThe transport, always at the top of the screen.crosspad-gui/components/transport_bar.h
PageWhat it coversHeader
ui_toastA short message at the bottom of the screen.crosspad-gui/components/ui_toast.h
ui_modalDialogs (confirm, choice and selection) that the encoder drives.crosspad-gui/components/ui_modal.h
mode_overlayMODE + pad: switch between apps from the pad grid.crosspad-gui/components/mode_overlay.h
power_gesturePortable resolution of the hardware power button’s two GUI gestures.crosspad-gui/components/power_gesture.h
gui_helpersLVGL helpers to hide an object and to restore or delete encoder groups safely.crosspad-gui/widgets/gui_helpers.h
cp_designThe CrossPad design language as the firmware uses it: palette, pixel fonts and icons.crosspad-gui/design/cp_design.h
IGuiPlatformWhat the platform gives the screen code, from the encoder and asset paths to postToGui().crosspad-gui/platform/IGuiPlatform.h
PageWhat it coversHeader
PlatformServicesCentralized service registry for all CrossPad platform services.crosspad/platform/PlatformServices.hpp
PlatformCapabilitiesPlatform capability flags — query what the current platform supports.crosspad/platform/PlatformCapabilities.hpp
IImuThe motion sensor, with readings, orientation, shake and free fall.crosspad/platform/IImu.hpp
IVibrationThe vibration motor, with presets and audio-driven vibration.crosspad/platform/IVibration.hpp
VibrationPresetThe vibration effects you can play.crosspad/platform/VibrationPreset.hpp
IClockA microsecond clock.crosspad/platform/IClock.hpp
IKeyValueStoreSmall saved settings (bool, 8-bit and 32-bit values) by namespace and key.crosspad/settings/IKeyValueStore.hpp

A badge under a member’s heading marks a rule for app code; the note next to it says what to do.

BadgeMeaning
Platform onlyThe firmware, the simulator or the framework calls it for you.
Do not callThe framework manages it; your app never calls it.