From 6991953a4ec151ee29e69a53122fc49b06db4030 Mon Sep 17 00:00:00 2001 From: kockie69 Date: Thu, 27 Oct 2022 15:58:49 +0100 Subject: [PATCH] Add get and set for beat sensitivy value to API --- src/libprojectM/ProjectM.cpp | 10 ++++++++++ src/libprojectM/ProjectM.hpp | 4 ++++ src/libprojectM/ProjectMCWrapper.cpp | 12 ++++++++++++ src/libprojectM/projectM.h | 17 +++++++++++++++++ 4 files changed, 43 insertions(+) diff --git a/src/libprojectM/ProjectM.cpp b/src/libprojectM/ProjectM.cpp index 7d99a509a..99409f39f 100644 --- a/src/libprojectM/ProjectM.cpp +++ b/src/libprojectM/ProjectM.cpp @@ -831,6 +831,16 @@ auto ProjectM::TextureSize() const -> size_t return m_settings.textureSize; } +void ProjectM::SetBeatSensitivity(float sensitivity) +{ + m_beatDetect->beatSensitivity = sensitivity; +} + +auto ProjectM::GetBeatSensitivity() const -> float +{ + return m_beatDetect->beatSensitivity; +} + auto ProjectM::SoftCutDuration() const -> double { return m_settings.softCutDuration; diff --git a/src/libprojectM/ProjectM.hpp b/src/libprojectM/ProjectM.hpp index 4e5527f72..24a80435e 100644 --- a/src/libprojectM/ProjectM.hpp +++ b/src/libprojectM/ProjectM.hpp @@ -127,6 +127,10 @@ public: auto TextureSize() const -> size_t; + void SetBeatSensitivity(float sensitivity); + + auto GetBeatSensitivity() const -> float; + auto SoftCutDuration() const -> double; void SetSoftCutDuration(int seconds); diff --git a/src/libprojectM/ProjectMCWrapper.cpp b/src/libprojectM/ProjectMCWrapper.cpp index 1f82ef36f..71978784d 100644 --- a/src/libprojectM/ProjectMCWrapper.cpp +++ b/src/libprojectM/ProjectMCWrapper.cpp @@ -240,6 +240,18 @@ void projectm_set_texture_size(projectm_handle instance, size_t size) projectMInstance->SetTextureSize(size); } +void projectm_set_beat_sensitivity(projectm_handle instance, float sensitivity) +{ + auto projectMInstance = handle_to_instance(instance); + projectMInstance->SetBeatSensitivity(sensitivity); +} + +float projectm_get_beat_sensitivity(projectm_handle instance) +{ + auto projectMInstance = handle_to_instance(instance); + return projectMInstance->GetBeatSensitivity(); +} + double projectm_get_hard_cut_duration(projectm_handle instance) { auto projectMInstance = handle_to_instance(instance); diff --git a/src/libprojectM/projectM.h b/src/libprojectM/projectM.h index 764799a32..36d7bac0a 100644 --- a/src/libprojectM/projectM.h +++ b/src/libprojectM/projectM.h @@ -383,6 +383,23 @@ PROJECTM_EXPORT size_t projectm_get_texture_size(projectm_handle instance); */ PROJECTM_EXPORT void projectm_set_texture_size(projectm_handle instance, size_t size); +/** + * @brief Sets the beat sensitivity. + * + * The beat sensitivity to be used. + * + * @param instance The projectM instance handle. + * @param sensitivity The sensitivity setting. + */ +PROJECTM_EXPORT void projectm_set_beat_sensitivity(projectm_handle instance, float sensitivity); + +/** + * @brief Returns the beat sensitivity. + * @param instance The projectM instance handle. + * @return The current sensitivity setting. + */ +PROJECTM_EXPORT void projectm_get_beat_sensitivity(projectm_handle instance, float sensitivity); + /** * @brief Returns the minimum display time before a hard cut can happen. * @param instance The projectM instance handle.