Extend REAPER extension to read/write automation items, wire desktop app to it over UDP

extension-reaper-macos: split main.cpp into tracking.cpp (polls selected
envelope/automation items, reads/writes D_BASELINE) and socket.cpp (basic
UDP listener, non-blocking, drains all pending packets per tick). Nudging
now applies to every selected automation item across every track in the
project, not just the first one found.

app-desktop-macos: new "Extension" column (mirrors the OSC/Remote columns)
to enable/disable the UDP connection and point it at a host/port, plus a
log window. FocusFaderWidget gets an OSC/Ext output-mode toggle (mirrors
TransportWidget's MIDI/OSC toggle) so a fader can drive the extension
directly instead of/alongside OSC. Also renamed the Remote/Tablet buttons
for clarity and split their status indicator into its own column.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Paul Lipscomb
2026-07-16 19:13:34 -04:00
parent cd5ebd84d6
commit 7d4f8a4cd2
11 changed files with 786 additions and 57 deletions
+14
View File
@@ -0,0 +1,14 @@
// A basic UDP socket listener for extension-reaper-macos — the eventual
// entry point for the desktop app to spray fader/control data at REAPER.
#ifndef EXTENSION_REAPER_MACOS_SOCKET_H
#define EXTENSION_REAPER_MACOS_SOCKET_H
#include "reaper_plugin.h"
// Opens a UDP socket and registers a REAPER timer to poll it
// non-blockingly. Call once from the entrypoint, after REAPERAPI_LoadAPI
// has succeeded.
void RegisterSocket(reaper_plugin_info_t *rec);
#endif