68 lines
2.5 KiB
C
68 lines
2.5 KiB
C
|
/*
|
||
|
* EffectInfo.h
|
||
|
* ------------
|
||
|
* Purpose: Provide information about effect names, parameter interpretation to the tracker interface.
|
||
|
* Notes : (currently none)
|
||
|
* Authors: OpenMPT Devs
|
||
|
* The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
|
||
|
*/
|
||
|
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "openmpt/all/BuildSettings.hpp"
|
||
|
|
||
|
#include "modcommand.h"
|
||
|
|
||
|
OPENMPT_NAMESPACE_BEGIN
|
||
|
|
||
|
class CSoundFile;
|
||
|
|
||
|
class EffectInfo
|
||
|
{
|
||
|
protected:
|
||
|
const CSoundFile &sndFile;
|
||
|
|
||
|
public:
|
||
|
|
||
|
EffectInfo(const CSoundFile &sf) : sndFile(sf) {};
|
||
|
|
||
|
// Effects Description
|
||
|
|
||
|
bool GetEffectName(CString &pszDescription, ModCommand::COMMAND command, UINT param, bool bXX = false) const; // bXX: Nxx: ...
|
||
|
// Get size of list of known effect commands
|
||
|
UINT GetNumEffects() const;
|
||
|
// Get range information, effect name, etc... from a given effect.
|
||
|
bool GetEffectInfo(UINT ndx, CString *s, bool bXX = false, ModCommand::PARAM *prangeMin = nullptr, ModCommand::PARAM *prangeMax = nullptr) const;
|
||
|
// Get effect index in effect list from effect command + param
|
||
|
LONG GetIndexFromEffect(ModCommand::COMMAND command, ModCommand::PARAM param) const;
|
||
|
// Get effect command + param from effect index
|
||
|
EffectCommand GetEffectFromIndex(UINT ndx, ModCommand::PARAM &refParam) const;
|
||
|
EffectCommand GetEffectFromIndex(UINT ndx) const;
|
||
|
// Get parameter mask from effect (for extended effects)
|
||
|
UINT GetEffectMaskFromIndex(UINT ndx) const;
|
||
|
// Get precise effect name, also with explanation of effect parameter
|
||
|
bool GetEffectNameEx(CString &pszName, const ModCommand &m, uint32 param, CHANNELINDEX chn) const;
|
||
|
// Check whether an effect is extended (with parameter nibbles)
|
||
|
bool IsExtendedEffect(UINT ndx) const;
|
||
|
// Map an effect value to slider position
|
||
|
UINT MapValueToPos(UINT ndx, UINT param) const;
|
||
|
// Map slider position to an effect value
|
||
|
UINT MapPosToValue(UINT ndx, UINT pos) const;
|
||
|
|
||
|
// Volume column effects description
|
||
|
|
||
|
// Get size of list of known volume commands
|
||
|
UINT GetNumVolCmds() const;
|
||
|
// Get effect index in effect list from volume command
|
||
|
LONG GetIndexFromVolCmd(ModCommand::VOLCMD volcmd) const;
|
||
|
// Get volume command from effect index
|
||
|
VolumeCommand GetVolCmdFromIndex(UINT ndx) const;
|
||
|
// Get range information, effect name, etc... from a given effect.
|
||
|
bool GetVolCmdInfo(UINT ndx, CString *s, ModCommand::VOL *prangeMin = nullptr, ModCommand::VOL *prangeMax = nullptr) const;
|
||
|
// Get effect name and parameter description
|
||
|
bool GetVolCmdParamInfo(const ModCommand &m, CString *s) const;
|
||
|
};
|
||
|
|
||
|
OPENMPT_NAMESPACE_END
|