12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * PatternFindReplace.h
- * --------------------
- * Purpose: Implementation of the pattern search.
- * Notes : (currently none)
- * Authors: Olivier Lapicque
- * OpenMPT Devs
- * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
- */
- #pragma once
- #include "openmpt/all/BuildSettings.hpp"
- // Find/Replace data
- struct FindReplace
- {
- static FindReplace instance;
- enum Flags
- {
- Note = 0x01, // Search for note
- Instr = 0x02, // Search for instrument
- VolCmd = 0x04, // Search for volume effect
- Volume = 0x08, // Search for volume
- Command = 0x10, // Search for effect
- Param = 0x20, // Search for effect parameter
- PCParam = 0x40, // Parameter of PC event
- PCValue = 0x80, // Value of PC event
- InChannels = 0x100, // Limit search to channels
- FullSearch = 0x200, // Search whole song
- InPatSelection = 0x400, // Search in current pattern selection
- Replace = 0x800, // Replace
- ReplaceAll = 0x1000, // Replace all
- };
- enum ReplaceMode
- {
- ReplaceValue,
- ReplaceRelative,
- ReplaceMultiply,
- };
- enum
- {
- ReplaceOctaveUp = 12000,
- ReplaceOctaveDown = -12000,
- };
- FlagSet<Flags> findFlags, replaceFlags; // See Flags
- // Data to replace with
- ReplaceMode replaceNoteAction, replaceInstrAction, replaceVolumeAction, replaceParamAction;
- int replaceNote, replaceInstr, replaceVolume, replaceParam;
- ModCommand::VOLCMD replaceVolCmd;
- ModCommand::COMMAND replaceCommand;
- // Data to find
- ModCommand::NOTE findNoteMin, findNoteMax;
- ModCommand::INSTR findInstrMin, findInstrMax;
- ModCommand::VOLCMD findVolCmd;
- int findVolumeMin, findVolumeMax;
- ModCommand::COMMAND findCommand;
- int findParamMin, findParamMax;
- PatternRect selection; // Find in this selection (if FindReplace::InPatSelection is set)
- CHANNELINDEX findChnMin, findChnMax; // Find in these channels (if FindReplace::InChannels is set)
- FindReplace();
- };
- DECLARE_FLAGSET(FindReplace::Flags);
|