From e8a2ec4130b200019274bc92a564c64c2a07f568 Mon Sep 17 00:00:00 2001 From: Martin Profittlich Date: Sat, 7 Dec 2024 17:46:41 +0100 Subject: [PATCH] Added TrackRecordArmDisplay action. --- .../control_surface_Reaper_actions.h | 23 +++++++++++++++++++ .../control_surface_integrator.cpp | 1 + 2 files changed, 24 insertions(+) diff --git a/reaper_csurf_integrator/control_surface_Reaper_actions.h b/reaper_csurf_integrator/control_surface_Reaper_actions.h index 01a1b55..51172fb 100755 --- a/reaper_csurf_integrator/control_surface_Reaper_actions.h +++ b/reaper_csurf_integrator/control_surface_Reaper_actions.h @@ -1013,6 +1013,29 @@ class TrackRecordArm : public Action } }; +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +class TrackRecordArmDisplay : public Action +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +{ +public: + virtual const char *GetName() override { return "TrackRecordArmDisplay"; } + + virtual void RequestUpdate(ActionContext *context) override + { + if (MediaTrack *track = context->GetTrack()) + { + double state = GetMediaTrackInfo_Value(track, "I_RECARM"); + + if (state > 0.5) + context->UpdateWidgetValue("REC"); + else + context->UpdateWidgetValue(""); + } + else + context->ClearWidget(); + } +}; + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class TrackMute : public Action ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/reaper_csurf_integrator/control_surface_integrator.cpp b/reaper_csurf_integrator/control_surface_integrator.cpp index 6d58ef6..3f885d3 100755 --- a/reaper_csurf_integrator/control_surface_integrator.cpp +++ b/reaper_csurf_integrator/control_surface_integrator.cpp @@ -1312,6 +1312,7 @@ void CSurfIntegrator::InitActionsDictionary() actions_.Insert("TrackUniqueSelect", new TrackUniqueSelect()); actions_.Insert("TrackRangeSelect", new TrackRangeSelect()); actions_.Insert("TrackRecordArm", new TrackRecordArm()); + actions_.Insert("TrackRecordArmDisplay", new TrackRecordArmDisplay()); actions_.Insert("TrackMute", new TrackMute()); actions_.Insert("TrackSolo", new TrackSolo()); actions_.Insert("ClearAllSolo", new ClearAllSolo());