mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-03-01 21:16:01 +00:00
Added remaining API functions and preset change callback.
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user