diff --git a/src/Commands/SetActivePresetCmd.cpp b/src/Commands/SetActivePresetCmd.cpp new file mode 100644 index 0000000..d8239cc --- /dev/null +++ b/src/Commands/SetActivePresetCmd.cpp @@ -0,0 +1,24 @@ +#include "SetActivePresetCmd.h" + +namespace ofx { +namespace piMapper { + +SetActivePresetCmd::SetActivePresetCmd(Application * app, unsigned int pi){ + _app = app; + _newPresetIndex = pi; +} + +void SetActivePresetCmd::exec(){ + ofLogNotice("SetActivePresetCmd", "exec"); + _prevPresetIndex = _app->getSurfaceManager()->getActivePresetIndex(); + _app->getSurfaceManager()->setActivePreset(_newPresetIndex); +} + +void SetActivePresetCmd::undo(){ + ofLogNotice("SetActivePresetCmd", "undo"); + _app->getSurfaceManager()->setActivePreset(_prevPresetIndex); +} + +} // namespace piMapper +} // namespace ofx + diff --git a/src/Commands/SetActivePresetCmd.h b/src/Commands/SetActivePresetCmd.h new file mode 100644 index 0000000..cab6988 --- /dev/null +++ b/src/Commands/SetActivePresetCmd.h @@ -0,0 +1,32 @@ +// SetActivePresetCmd +// Sets active preset, stores previous preset index and restores it on undo. +// Created by Krisjanis Rijnieks 2016-10-07 +// At the ORA bar in Berlin. Waiting for Park to celebrate his birthday. + +#pragma once + +#include "BaseCmd.h" +#include "BaseSurface.h" +#include "Application.h" + +namespace ofx { +namespace piMapper { + +class Application; + +class SetActivePresetCmd : public BaseUndoCmd { + + public: + SetActivePresetCmd(Application * app, unsigned int pi); + void exec(); + void undo(); + + private: + Application * _app; + unsigned int _newPresetIndex; + unsigned int _prevPresetIndex; +}; + +} // namespace piMapper +} // namespace ofx +