annotate cdd_fader.h @ 2278:5a21bc0ec583

Implement turbo/slo mo for Sega CD
author Michael Pavone <pavone@retrodev.com>
date Mon, 02 Jan 2023 13:08:49 -0800
parents 4fbe1e7c4a73
children 9ead0fe69d9b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2080
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #ifndef CDD_FADER_H_
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #define CDD_FADER_H_
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 #include "render_audio.h"
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 typedef struct {
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 audio_source *audio;
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 uint16_t cur_attenuation;
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 uint16_t dst_attenuation;
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 uint16_t attenuation_step;
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 uint8_t flags;
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 uint8_t bytes[4];
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 uint8_t byte_counter;
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 } cdd_fader;
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 void cdd_fader_init(cdd_fader *fader);
2164
4fbe1e7c4a73 Don't leak all Sega CD resources when freeing a Genesis instance
Michael Pavone <pavone@retrodev.com>
parents: 2080
diff changeset
17 void cdd_fader_deinit(cdd_fader *fader);
2278
5a21bc0ec583 Implement turbo/slo mo for Sega CD
Michael Pavone <pavone@retrodev.com>
parents: 2164
diff changeset
18 void cdd_fader_set_speed_percent(cdd_fader *fader, uint32_t percent);
2080
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 void cdd_fader_attenuation_write(cdd_fader *fader, uint16_t attenuation);
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 void cdd_fader_data(cdd_fader *fader, uint8_t byte);
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 void cdd_fader_pause(cdd_fader *fader);
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 #endif //CDD_FADER_H_