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 bed2567..e67b552 100755 --- a/reaper_csurf_integrator/control_surface_integrator.cpp +++ b/reaper_csurf_integrator/control_surface_integrator.cpp @@ -1205,6 +1205,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());