#pragma once #include namespace audio { void select_register(int port, int val); int read_register(int port); void write_register(int port, int val); void init(); void reset(); void update(uint32_t dt); uint8_t get_sample(); namespace debug { uint8_t get_register(uint8_t num); uint32_t get_channel_a_tone_freq(); uint32_t get_channel_a_tone_freq_counter(); uint8_t get_channel_a_tone_level(); uint8_t get_channel_a_level(); uint32_t get_channel_b_tone_freq(); uint32_t get_channel_b_tone_freq_counter(); uint8_t get_channel_b_tone_level(); uint8_t get_channel_b_level(); uint32_t get_channel_c_tone_freq(); uint32_t get_channel_c_tone_freq_counter(); uint8_t get_channel_c_tone_level(); uint8_t get_channel_c_level(); uint32_t get_noise_freq(); uint32_t get_noise_freq_counter(); uint8_t get_noise_level(); uint32_t get_shiftreg(); uint32_t get_envelope_freq(); uint32_t get_envelope_freq_counter(); int8_t get_envelope_volume(); int8_t get_envelope_direction(); } }