opcode_description.c 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. #include "opcode_description.h"
  2. static const OpcodeDescription opcode_desc[] =
  3. {
  4. {TE_EFFECT_ARPEGGIO, 0x7f00, "RELATIVE ARPEGGIO NOTE", ""},
  5. {TE_EFFECT_PORTAMENTO_UP, 0x7f00, "PORTAMENTO UP", "PORTUP"},
  6. {TE_EFFECT_PORTAMENTO_DOWN, 0x7f00, "PORTAMENTO DOWN", "PORTDN"},
  7. {TE_EFFECT_SLIDE, 0x7f00, "SLIDE", "SLIDE"},
  8. {TE_EFFECT_VIBRATO, 0x7f00, "VIBRATO", "VIB"},
  9. {TE_EFFECT_VOLUME_FADE, 0x7f00, "VOLUME FADE", "V.FADE"},
  10. {TE_EFFECT_SKIP_PATTERN, 0x7f00, "SKIP PATTERN", "P.SKIP"},
  11. {TE_EFFECT_SET_SPEED_PROG_PERIOD, 0x7f00, "SET SPEED (PROG.PER.IN PROGRAM)", "P.PER."},
  12. {TE_PROGRAM_LOOP_BEGIN, 0x7f00, "PROGRAM LOOP BEGIN", "L.BEG."},
  13. {TE_PROGRAM_LOOP_END, 0x7f00, "PROGRAM LOOP END", "L.END"},
  14. {TE_PROGRAM_NOP, 0x7fff, "NO OPERATION", ""},
  15. {TE_PROGRAM_END, 0x7fff, "PROGRAM END", "PR.END"},
  16. {TE_PROGRAM_JUMP, 0x7f00, "JUMP TO POSITION", "GOTO"},
  17. {0, 0, NULL, NULL},
  18. };
  19. char *get_opcode_description(uint16_t opcode, bool short_description)
  20. {
  21. for (int i = 0; opcode_desc[i].name != NULL; i++)
  22. {
  23. if (opcode_desc[i].opcode == (opcode & opcode_desc[i].mask))
  24. {
  25. return short_description ? opcode_desc[i].shortname : opcode_desc[i].name;
  26. }
  27. }
  28. return NULL;
  29. }