From 003e45e9d90c901567bb60388e7a0486e79d430a Mon Sep 17 00:00:00 2001 From: Kai Blaschke Date: Sun, 20 Nov 2022 14:32:02 +0100 Subject: [PATCH] API: Add missing getter for preset duration value. --- src/libprojectM/ProjectM.cpp | 5 +++++ src/libprojectM/ProjectM.hpp | 6 ++++++ src/libprojectM/ProjectMCWrapper.cpp | 6 ++++++ src/libprojectM/TimeKeeper.hpp | 5 +++++ src/libprojectM/projectM.h | 11 +++++++++++ 5 files changed, 33 insertions(+) diff --git a/src/libprojectM/ProjectM.cpp b/src/libprojectM/ProjectM.cpp index 99409f39f..3be5e96a9 100644 --- a/src/libprojectM/ProjectM.cpp +++ b/src/libprojectM/ProjectM.cpp @@ -900,6 +900,11 @@ void ProjectM::SetPresetDuration(int seconds) m_timeKeeper->ChangePresetDuration(seconds); } +auto ProjectM::PresetDuration() const -> double +{ + return m_timeKeeper->PresetDuration(); +} + void ProjectM::SetPresetDuration(double seconds) { m_timeKeeper->ChangePresetDuration(seconds); diff --git a/src/libprojectM/ProjectM.hpp b/src/libprojectM/ProjectM.hpp index 24a80435e..7b7e383d2 100644 --- a/src/libprojectM/ProjectM.hpp +++ b/src/libprojectM/ProjectM.hpp @@ -151,6 +151,12 @@ public: void SetHardCutSensitivity(float sensitivity); + /** + * @brief Returns the currently set preset duration in seconds. + * @return The currently set preset duration in seconds. + */ + auto PresetDuration() const -> double; + void SetPresetDuration(int seconds); void SetPresetDuration(double seconds); diff --git a/src/libprojectM/ProjectMCWrapper.cpp b/src/libprojectM/ProjectMCWrapper.cpp index 71978784d..67f4cd411 100644 --- a/src/libprojectM/ProjectMCWrapper.cpp +++ b/src/libprojectM/ProjectMCWrapper.cpp @@ -300,6 +300,12 @@ void projectm_set_soft_cut_duration(projectm_handle instance, double seconds) projectMInstance->SetSoftCutDuration(seconds); } +double projectm_get_preset_duration(projectm_handle instance) +{ + auto projectMInstance = handle_to_instance(instance); + return projectMInstance->PresetDuration(); +} + void projectm_set_preset_duration(projectm_handle instance, double seconds) { auto projectMInstance = handle_to_instance(instance); diff --git a/src/libprojectM/TimeKeeper.hpp b/src/libprojectM/TimeKeeper.hpp index 03abb9cbc..c79e6c488 100644 --- a/src/libprojectM/TimeKeeper.hpp +++ b/src/libprojectM/TimeKeeper.hpp @@ -64,6 +64,11 @@ public: m_presetDuration = seconds; } + inline auto PresetDuration() const -> double + { + return m_presetDuration; + } + inline void ChangePresetDuration(double seconds) { m_presetDuration = seconds; diff --git a/src/libprojectM/projectM.h b/src/libprojectM/projectM.h index 29a403a07..a06879cb1 100644 --- a/src/libprojectM/projectM.h +++ b/src/libprojectM/projectM.h @@ -473,6 +473,17 @@ PROJECTM_EXPORT double projectm_get_soft_cut_duration(projectm_handle instance); */ PROJECTM_EXPORT void projectm_set_soft_cut_duration(projectm_handle instance, double seconds); +/** + * @brief Returns the preset display duration before switching to the next using a soft cut. + * + * This can be considered as the maximum time a preset is displayed. If this time is reached, + * a smooth cut will be initiated. A hard cut, if any, will always happen before this time. + * + * @param instance The projectM instance handle. + * @return The currently set preset display duration in seconds. + */ +PROJECTM_EXPORT double projectm_get_preset_duration(projectm_handle instance); + /** * @brief Sets the preset display duration before switching to the next using a soft cut. *