Mercurial > hg > svcore
diff base/Command.cpp @ 19:a7ed14263fe4
* Add Chromagram plugin, and make a number of fixes to the dense 3d model
and colour 3d plot class to accommodate it
* Add pitch-conversion methods in base/Pitch
* Commit previously overlooked Command.cpp
author | Chris Cannam |
---|---|
date | Wed, 01 Feb 2006 14:49:49 +0000 |
parents | |
children | bac8b14ab355 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base/Command.cpp Wed Feb 01 14:49:49 2006 +0000 @@ -0,0 +1,59 @@ +/* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ + +/* + A waveform viewer and audio annotation editor. + Chris Cannam, Queen Mary University of London, 2005-2006 + + This is experimental software. Not for distribution. +*/ + +#include "Command.h" + +MacroCommand::MacroCommand(QString name) : + m_name(name) +{ +} + +MacroCommand::~MacroCommand() +{ + for (size_t i = 0; i < m_commands.size(); ++i) { + delete m_commands[i]; + } +} + +void +MacroCommand::addCommand(Command *command) +{ + m_commands.push_back(command); +} + +void +MacroCommand::deleteCommand(Command *command) +{ + for (std::vector<Command *>::iterator i = m_commands.begin(); + i != m_commands.end(); ++i) { + + if (*i == command) { + m_commands.erase(i); + delete command; + return; + } + } +} + +void +MacroCommand::execute() +{ + for (size_t i = 0; i < m_commands.size(); ++i) { + m_commands[i]->execute(); + } +} + +void +MacroCommand::unexecute() +{ + for (size_t i = 0; i < m_commands.size(); ++i) { + m_commands[m_commands.size() - i - 1]->unexecute(); + } +} +