ampler/ampler.h

48 lines
901 B
C
Raw Normal View History

2021-12-19 22:44:48 +00:00
// ampler.h
#define if if(
#define while while(
#define for for(
#define do )
2021-12-20 02:06:02 +00:00
#define or ||
2021-12-19 22:44:48 +00:00
typedef int8_t s8;
typedef int16_t s16;
typedef int32_t s32;
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef float f32;
typedef double f64;
#define arraylen(a) (sizeof (a) / sizeof ((a)[0]))
#define SAMPLE_RATE (44100)
#define CHANNELS (2)
#define FRAME_SAMPLES (SAMPLE_RATE / 60)
2021-12-20 02:06:02 +00:00
typedef struct Sound_src Sound_src;
struct Sound_src {
s32 start; // in samples
s32 len; // in samples
f32 pos; // position in samples
f32 speed; // in samples, per sample, can be negative
enum { FREE = 0, STOPPED, PLAYING, LOOPING } state;
};
2021-12-19 22:44:48 +00:00
typedef struct Ampler_state Ampler_state;
struct Ampler_state {
u32 size; // in bytes, off this struct
2021-12-19 22:44:48 +00:00
SDL_AudioDeviceID playdev;
s8 tracks[CHANNELS][SAMPLE_RATE * 480]; // 8 minutes
2021-12-20 02:06:02 +00:00
Sound_src sounds[64];
s32 played_audio_last_frame;
2021-12-19 22:44:48 +00:00
};