mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-24 05:25:12 +00:00
prepare to add effect descriptions
This commit is contained in:
parent
8d1e14e844
commit
751f6d025a
4 changed files with 75 additions and 1 deletions
|
@ -209,6 +209,13 @@ class DivDispatch {
|
||||||
*/
|
*/
|
||||||
virtual int getPortaFloor(int ch);
|
virtual int getPortaFloor(int ch);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get a description of a dispatch-specific effect.
|
||||||
|
* @param effect the effect.
|
||||||
|
* @return the description, or NULL if effect is invalid.
|
||||||
|
*/
|
||||||
|
virtual const char* getEffectName(unsigned char effect);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the region to PAL.
|
* set the region to PAL.
|
||||||
* @param pal whether to set it to PAL.
|
* @param pal whether to set it to PAL.
|
||||||
|
|
|
@ -573,6 +573,66 @@ DivInstrumentType DivEngine::getPreferInsType(int chan) {
|
||||||
return DIV_INS_FM;
|
return DIV_INS_FM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* DivEngine::getEffectDesc(unsigned char effect, int chan) {
|
||||||
|
switch (effect) {
|
||||||
|
case 0x00:
|
||||||
|
return "00xy: Arpeggio";
|
||||||
|
case 0x01:
|
||||||
|
return "01xx: Pitch slide up";
|
||||||
|
case 0x02:
|
||||||
|
return "02xx: Pitch slide down";
|
||||||
|
case 0x03:
|
||||||
|
return "03xx: Portamento";
|
||||||
|
case 0x04:
|
||||||
|
return "04xy: Vibrato";
|
||||||
|
case 0x08:
|
||||||
|
return "08xy: Set panning";
|
||||||
|
case 0x09:
|
||||||
|
return "09xx: Set speed 1";
|
||||||
|
case 0x0a:
|
||||||
|
return "0Axy: Volume slide";
|
||||||
|
case 0x0b:
|
||||||
|
return "0Bxx: Jump to pattern";
|
||||||
|
case 0x0c:
|
||||||
|
return "0Cxx: Retrigger";
|
||||||
|
case 0x0d:
|
||||||
|
return "0Dxx: Jump to next pattern";
|
||||||
|
case 0x0f:
|
||||||
|
return "0Fxx: Set speed 2";
|
||||||
|
case 0xe0:
|
||||||
|
return "E0xx: Set arp speed";
|
||||||
|
case 0xe1:
|
||||||
|
return "E1xy: Note slide up";
|
||||||
|
case 0xe2:
|
||||||
|
return "E2xy: Note slide down";
|
||||||
|
case 0xe3:
|
||||||
|
return "E3xx: Set vibrato shape";
|
||||||
|
case 0xe4:
|
||||||
|
return "E4xx: Set vibrato range";
|
||||||
|
case 0xe5:
|
||||||
|
return "E5xx: Set pitch";
|
||||||
|
case 0xea:
|
||||||
|
return "EAxx: Legato";
|
||||||
|
case 0xeb:
|
||||||
|
return "EBxx: Set sample bank";
|
||||||
|
case 0xec:
|
||||||
|
return "ECxx: Note cut";
|
||||||
|
case 0xed:
|
||||||
|
return "EDxx: Note delay";
|
||||||
|
case 0xee:
|
||||||
|
return "EExx: Send external command";
|
||||||
|
case 0xef:
|
||||||
|
return "EFxx: Set global tuning";
|
||||||
|
default:
|
||||||
|
if (chan>=0 && chan<chans) {
|
||||||
|
const char* ret=disCont[dispatchOfChan[chan]].dispatch->getEffectName(effect);
|
||||||
|
if (ret!=NULL) return ret;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return "Invalid effect";
|
||||||
|
}
|
||||||
|
|
||||||
bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
||||||
SafeReader reader=SafeReader(file,len);
|
SafeReader reader=SafeReader(file,len);
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -278,6 +278,9 @@ class DivEngine {
|
||||||
// get channel count
|
// get channel count
|
||||||
int getTotalChannelCount();
|
int getTotalChannelCount();
|
||||||
|
|
||||||
|
// get effect description
|
||||||
|
const char* getEffectDesc(unsigned char effect, int chan);
|
||||||
|
|
||||||
// get channel type
|
// get channel type
|
||||||
// - 0: FM
|
// - 0: FM
|
||||||
// - 1: pulse
|
// - 1: pulse
|
||||||
|
|
|
@ -39,6 +39,10 @@ int DivDispatch::getPortaFloor(int ch) {
|
||||||
return 0x00;
|
return 0x00;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* DivDispatch::getEffectName(unsigned char effect) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void DivDispatch::setPAL(bool pal) {
|
void DivDispatch::setPAL(bool pal) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,4 +82,4 @@ void DivDispatch::quit() {
|
||||||
}
|
}
|
||||||
|
|
||||||
DivDispatch::~DivDispatch() {
|
DivDispatch::~DivDispatch() {
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue