Mario Kart 64
Loading...
Searching...
No Matches
playback.h
Go to the documentation of this file.
1#ifndef AUDIO_PLAYBACK_H
2#define AUDIO_PLAYBACK_H
3
4#include <PR/ultratypes.h>
5
6#include "internal.h"
7
8// Mask bits denoting where to allocate notes from, according to a channel's
9// noteAllocPolicy. Despite being checked as bitmask bits, the bits are not
10// orthogonal; rather, the smallest bit wins, except for NOTE_ALLOC_LAYER,
11// which *is* orthogonal to the other. SEQ implicitly includes CHANNEL.
12// If none of the CHANNEL/SEQ/GLOBAL_FREELIST bits are set, all three locations
13// are tried.
14#define NOTE_ALLOC_LAYER 1
15#define NOTE_ALLOC_CHANNEL 2
16#define NOTE_ALLOC_SEQ 4
17#define NOTE_ALLOC_GLOBAL_FREELIST 8
18
19void note_set_vel_pan_reverb(struct Note* note, f32 velocity, u8 pan, u8 reverbVol);
20void note_set_resampling_rate(struct Note* note, f32 resamplingRateInput);
21s32 build_synthetic_wave(struct Note* note, struct SequenceChannelLayer* seqLayer, s32 waveId);
22void init_synthetic_wave(struct Note* note, struct SequenceChannelLayer* seqLayer);
23void init_note_list(struct AudioListItem* list);
24void init_note_lists(struct NotePool* pool);
25void init_note_free_list(void);
26void note_pool_clear(struct NotePool* pool);
27void note_pool_fill(struct NotePool* pool, s32 count);
28void audio_list_push_front(struct AudioListItem* list, struct AudioListItem* item);
29void audio_list_remove(struct AudioListItem* item);
30struct Note* pop_node_with_lower_prio(struct AudioListItem* list, s32 limit);
31void note_init_for_layer(struct Note* note, struct SequenceChannelLayer* seqLayer);
32void note_disable(struct Note* note);
33void process_notes(void);
34struct AudioBankSound* instrument_get_audio_bank_sound(struct Instrument* instrument, s32 semitone);
35struct Instrument* get_instrument_inner(s32 bankId, s32 instId);
36struct Drum* get_drum(s32 bankId, s32 drumId);
37void note_init(struct Note* note);
41void func_800BD8F4(struct Note* note, struct SequenceChannelLayer* seqLayer);
42void note_release_and_take_ownership(struct Note* note, struct SequenceChannelLayer* seqLayer);
43struct Note* alloc_note_from_disabled(struct NotePool* pool, struct SequenceChannelLayer* seqLayer);
44struct Note* alloc_note_from_decaying(struct NotePool* pool, struct SequenceChannelLayer* seqLayer);
45struct Note* alloc_note_from_active(struct NotePool* pool, struct SequenceChannelLayer* seqLayer);
46struct Note* alloc_note(struct SequenceChannelLayer* seqLayer);
47void note_init_all(void);
48
49#endif // AUDIO_PLAYBACK_H
void audio_list_remove(struct AudioListItem *item)
Definition playback.c:584
void note_init_for_layer(struct Note *note, struct SequenceChannelLayer *seqLayer)
Definition playback.c:621
void note_set_vel_pan_reverb(struct Note *note, f32 velocity, u8 pan, u8 reverbVol)
Definition playback.c:13
struct Drum * get_drum(s32 bankId, s32 drumId)
Definition playback.c:154
void init_synthetic_wave(struct Note *note, struct SequenceChannelLayer *seqLayer)
Definition playback.c:436
void seq_channel_layer_note_decay(struct SequenceChannelLayer *seqLayer)
Definition playback.c:390
void process_notes(void)
Definition playback.c:209
void seq_channel_layer_decay_release_internal(struct SequenceChannelLayer *seqLayer, s32 target)
Definition playback.c:332
struct Note * pop_node_with_lower_prio(struct AudioListItem *list, s32 limit)
Definition playback.c:595
void note_init(struct Note *note)
Definition playback.c:186
void note_pool_fill(struct NotePool *pool, s32 count)
Definition playback.c:522
void note_release_and_take_ownership(struct Note *note, struct SequenceChannelLayer *seqLayer)
Definition playback.c:661
void note_set_resampling_rate(struct Note *note, f32 resamplingRateInput)
Definition playback.c:90
struct Note * alloc_note(struct SequenceChannelLayer *seqLayer)
Definition playback.c:701
void note_init_all(void)
Definition playback.c:767
void audio_list_push_front(struct AudioListItem *list, struct AudioListItem *item)
Definition playback.c:570
void note_disable(struct Note *note)
Definition playback.c:196
void note_pool_clear(struct NotePool *pool)
Definition playback.c:477
struct Note * alloc_note_from_decaying(struct NotePool *pool, struct SequenceChannelLayer *seqLayer)
Definition playback.c:677
void init_note_free_list(void)
Definition playback.c:466
void init_note_lists(struct NotePool *pool)
Definition playback.c:455
s32 build_synthetic_wave(struct Note *note, struct SequenceChannelLayer *seqLayer, s32 waveId)
Definition playback.c:400
struct AudioBankSound * instrument_get_audio_bank_sound(struct Instrument *instrument, s32 semitone)
Definition playback.c:118
struct Note * alloc_note_from_disabled(struct NotePool *pool, struct SequenceChannelLayer *seqLayer)
Definition playback.c:668
void func_800BD8F4(struct Note *note, struct SequenceChannelLayer *seqLayer)
Definition playback.c:656
struct Note * alloc_note_from_active(struct NotePool *pool, struct SequenceChannelLayer *seqLayer)
Definition playback.c:686
void seq_channel_layer_note_release(struct SequenceChannelLayer *seqLayer)
Definition playback.c:394
struct Instrument * get_instrument_inner(s32 bankId, s32 instId)
Definition playback.c:130
void init_note_list(struct AudioListItem *list)
Definition playback.c:449
Definition internal.h:141
Definition internal.h:66
Definition internal.h:157
Definition internal.h:146
Definition internal.h:83
Definition internal.h:433
Definition internal.h:342
signed int s32
Definition ultratypes.h:15
float f32
Definition ultratypes.h:34
unsigned char u8
Definition ultratypes.h:12