66 lines
1.8 KiB
C
66 lines
1.8 KiB
C
|
/*
|
||
|
* SSEQ Player - Constants/Macros
|
||
|
* By Naram Qashat (CyberBotX) [cyberbotx@cyberbotx.com]
|
||
|
* Last modification on 2013-04-12
|
||
|
*
|
||
|
* Adapted from source code of FeOS Sound System
|
||
|
* By fincs
|
||
|
* https://github.com/fincs/FSS
|
||
|
*
|
||
|
* Some constants/macros also taken from libdns, part of the devkitARM portion of devkitPro
|
||
|
* http://devkitpro.org/
|
||
|
*/
|
||
|
|
||
|
#ifndef SSEQPLAYER_CONSTS_H
|
||
|
#define SSEQPLAYER_CONSTS_H
|
||
|
|
||
|
#include <cstdint>
|
||
|
|
||
|
const uint32_t ARM7_CLOCK = 33513982;
|
||
|
const double SecondsPerClockCycle = 64.0 * 2728.0 / ARM7_CLOCK;
|
||
|
|
||
|
inline uint32_t BIT(uint32_t n) { return 1 << n; }
|
||
|
|
||
|
enum { TS_ALLOCBIT, TS_NOTEWAIT, TS_PORTABIT, TS_TIEBIT, TS_END, TS_BITS };
|
||
|
|
||
|
enum { TUF_VOL, TUF_PAN, TUF_TIMER, TUF_MOD, TUF_LEN, TUF_BITS };
|
||
|
|
||
|
enum { CS_NONE, CS_START, CS_ATTACK, CS_DECAY, CS_SUSTAIN, CS_RELEASE };
|
||
|
|
||
|
enum { CF_UPDVOL, CF_UPDPAN, CF_UPDTMR, CF_BITS };
|
||
|
|
||
|
enum { TYPE_PCM, TYPE_PSG, TYPE_NOISE };
|
||
|
|
||
|
const int FSS_TRACKCOUNT = 16;
|
||
|
const int FSS_MAXTRACKS = 32;
|
||
|
const int FSS_TRACKSTACKSIZE = 3;
|
||
|
const int AMPL_K = 723;
|
||
|
const int AMPL_MIN = -AMPL_K;
|
||
|
const int AMPL_THRESHOLD = AMPL_MIN << 7;
|
||
|
|
||
|
inline int SOUND_FREQ(int n) { return -0x1000000 / n; }
|
||
|
|
||
|
inline uint32_t SOUND_VOL(int n) { return n; }
|
||
|
inline uint32_t SOUND_VOLDIV(int n) { return n << 8; }
|
||
|
inline uint32_t SOUND_PAN(int n) { return n << 16; }
|
||
|
inline uint32_t SOUND_DUTY(int n) { return n << 24; }
|
||
|
const uint32_t SOUND_REPEAT = BIT(27);
|
||
|
const uint32_t SOUND_ONE_SHOT = BIT(28);
|
||
|
inline uint32_t SOUND_LOOP(bool a) { return a ? SOUND_REPEAT : SOUND_ONE_SHOT; }
|
||
|
const uint32_t SOUND_FORMAT_PSG = 3 << 29;
|
||
|
inline uint32_t SOUND_FORMAT(int n) { return n << 29; }
|
||
|
const uint32_t SCHANNEL_ENABLE = BIT(31);
|
||
|
|
||
|
enum Interpolation
|
||
|
{
|
||
|
INTERPOLATION_NONE,
|
||
|
INTERPOLATION_LINEAR,
|
||
|
INTERPOLATION_COSINE,
|
||
|
INTERPOLATION_4POINTBSPLINE,
|
||
|
INTERPOLATION_6POINTOSCULATING,
|
||
|
INTERPOLATION_6POINTBSPLINE,
|
||
|
INTERPOLATION_LANCZOS
|
||
|
};
|
||
|
|
||
|
#endif
|