Added remaining API functions and preset change callback.

This commit is contained in:
Kai Blaschke
2022-11-17 16:34:41 +01:00
parent 5fe7e8c3aa
commit 94ee2a360b
4 changed files with 67 additions and 6 deletions

View File

@ -4,6 +4,7 @@
#include <cstring>
#include <utility>
#include <sstream>
projectMWrapper::projectMWrapper(std::string configFile)
: ProjectM(std::move(configFile))
@ -15,6 +16,14 @@ projectMWrapper::projectMWrapper(class ProjectM::Settings settings)
{
}
void projectMWrapper::PresetSwitchRequestedEvent(bool isHardCut) const
{
if (_presetSwitchRequestedEventCallback)
{
_presetSwitchRequestedEventCallback(isHardCut, _presetSwitchRequestedEventUserData);
}
}
void projectMWrapper::PresetSwitchFailedEvent(const std::string& presetFilename,
const std::string& failureMessage) const
{
@ -130,6 +139,29 @@ void projectm_destroy(projectm_handle instance)
delete projectMInstance;
}
void projectm_load_preset_file(projectm_handle instance, const char* filename,
bool smooth_transition)
{
auto projectMInstance = handle_to_instance(instance);
projectMInstance->LoadPresetFile(filename, smooth_transition);
}
void projectm_load_preset_data(projectm_handle instance, const char* data,
bool smooth_transition)
{
std::stringstream presetDataStream(data);
auto projectMInstance = handle_to_instance(instance);
projectMInstance->LoadPresetData(presetDataStream, smooth_transition);
}
void projectm_set_preset_switch_requested_event_callback(projectm_handle instance,
projectm_preset_switch_requested_event callback, void* user_data)
{
auto projectMInstance = handle_to_instance(instance);
projectMInstance->_presetSwitchRequestedEventCallback = callback;
projectMInstance->_presetSwitchRequestedEventUserData = user_data;
}
void projectm_set_preset_switch_failed_event_callback(projectm_handle instance,
projectm_preset_switch_failed_event callback, void* user_data)
{
@ -427,10 +459,12 @@ static auto PcmAdd(projectm_handle instance, const BufferType* samples, unsigned
{
auto* projectMInstance = handle_to_instance(instance);
if(channels == PROJECTM_MONO) {
if (channels == PROJECTM_MONO)
{
projectMInstance->Pcm().AddMono(samples, count);
}
else {
else
{
projectMInstance->Pcm().AddStereo(samples, count);
}
}