1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-13 00:29:14 +00:00

Merge pull request #1428 from TomHarte/MoreIndentation

Adjust more dangling indentation changes.
This commit is contained in:
Thomas Harte 2024-12-04 22:40:30 -05:00 committed by GitHub
commit 88b31ea940
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
45 changed files with 5530 additions and 5528 deletions

View File

@ -70,7 +70,7 @@ private:
uint8_t track_;
std::shared_ptr<Sector> sector_cache_[65536];
void process_input_bit(const int value) {
void process_input_bit(const int value) override {
shift_register_ = ((shift_register_ << 1) | unsigned(value)) & 0x3ff;
bit_count_++;
}
@ -107,7 +107,7 @@ private:
}
}
void process_index_hole() {
void process_index_hole() override {
index_count_++;
}

View File

@ -24,7 +24,7 @@ namespace Apple::II {
Implementation observation: as implemented on the IIe, the zero page setting also affects what happens in the language card area.
*/
template <typename Machine> class AuxiliaryMemorySwitches {
public:
public:
static constexpr bool Auxiliary = true;
static constexpr bool Main = false;
static constexpr bool ROM = true;
@ -220,7 +220,7 @@ template <typename Machine> class AuxiliaryMemorySwitches {
set_card_paging();
}
private:
private:
Machine &machine_;
SwitchState switches_;

View File

@ -19,7 +19,7 @@
namespace Apple::IIgs::ADB {
class GLU: public InstructionSet::M50740::PortHandler {
public:
public:
GLU();
uint8_t get_keyboard_data();
@ -53,7 +53,7 @@ class GLU: public InstructionSet::M50740::PortHandler {
return mouse_;
}
private:
private:
InstructionSet::M50740::Executor executor_;
void run_ports_for(Cycles) override;

View File

@ -88,7 +88,7 @@ class ConcreteMachine:
public MachineTypes::TimedMachine,
public CPU::MOS6502Esque::BusHandler<uint32_t> {
public:
public:
ConcreteMachine(const Analyser::Static::AppleIIgs::Target &target, const ROMMachine::ROMFetcher &rom_fetcher) :
m65816_(*this),
memory_(target.model >= Analyser::Static::AppleIIgs::Target::Model::ROM03),
@ -133,43 +133,43 @@ class ConcreteMachine:
// rom_[0x36402] = 2;
// rom_[0x36403] = 0x7c; // ROM_CHECKSUM [working, when hacks like this are removed]
// rom_[0x36404] = 0x6c;
//
// rom_[0x36403] = 0x82; // MOVIRAM [working]
// rom_[0x36404] = 0x67;
//
// rom_[0x36403] = 0x2c; // SOFT_SW [working]
// rom_[0x36404] = 0x6a;
//
// rom_[0x36403] = 0xe8; // RAM_ADDR [working]
// rom_[0x36404] = 0x6f;
//
// rom_[0x36403] = 0xc7; // FPI_SPEED [working]
// rom_[0x36404] = 0x6a;
//
// rom_[0x36403] = 0xd7; // SER_TST [broken]
// rom_[0x36404] = 0x68;
//
// rom_[0x36403] = 0xdc; // CLOCK [broken]
// rom_[0x36404] = 0x6c;
//
// rom_[0x36403] = 0x1b; // BAT_RAM [broken]
// rom_[0x36404] = 0x6e;
//
// rom_[0x36403] = 0x11; // FDB (/ADB?) [broken]
// rom_[0x36404] = 0x6f;
//
// rom_[0x36403] = 0x41; // SHADOW_TST [working]
// rom_[0x36404] = 0x6d;
//
// rom_[0x36403] = 0x09; // CUSTOM_IRQ [broken?]
// rom_[0x36404] = 0x6b;
//
// rom_[0x36403] = 0xf4; // DOC_EXEC
// rom_[0x36404] = 0x70;
//
// rom_[0x36403] = 0xab; // ECT_SEQ
// rom_[0x36404] = 0x64;
//
// rom_[0xfc146f] = rom_[0xfc1470] = 0xea;
size_t ram_size = 0;
@ -932,7 +932,7 @@ class ConcreteMachine:
return joysticks_.get_joysticks();
}
private:
private:
CPU::WDC65816::Processor<ConcreteMachine, false> m65816_;
MemoryMap memory_;

View File

@ -20,7 +20,7 @@
namespace Apple::IIgs {
class MemoryMap {
public:
public:
// MARK: - Initial construction and configuration.
MemoryMap(bool is_rom03) : auxiliary_switches_(*this), language_card_(*this) {
@ -106,7 +106,7 @@ class MemoryMap {
// With a further twist: the modulo and pointer are indexed on ::IsShadowed to eliminate a branch
// even on that.
private:
private:
AuxiliaryMemorySwitches auxiliary_switches_;
LanguageCardSwitches language_card_;
friend AuxiliaryMemorySwitches;

View File

@ -17,7 +17,7 @@
namespace Apple::IIgs::Sound {
class GLU: public Outputs::Speaker::BufferSource<GLU, false> { // TODO: isn't this stereo?
public:
public:
GLU(Concurrency::AsyncTaskQueue<false> &audio_queue);
void set_control(uint8_t);
@ -39,7 +39,7 @@ class GLU: public Outputs::Speaker::BufferSource<GLU, false> { // TODO: isn't th
void set_sample_volume_range(std::int16_t range);
bool is_zero_level() const { return false; } // TODO.
private:
private:
Concurrency::AsyncTaskQueue<false> &audio_queue_;
uint16_t address_ = 0;

View File

@ -20,7 +20,7 @@ namespace Apple::IIgs::Video {
stretched cycle.
*/
class Video: public Apple::II::VideoSwitches<Cycles> {
public:
public:
Video();
void set_internal_ram(const uint8_t *);
@ -69,7 +69,7 @@ class Video: public Apple::II::VideoSwitches<Cycles> {
void clear_megaii_interrupts();
private:
private:
Outputs::CRT::CRT crt_;
// This is coupled to Apple::II::GraphicsMode, but adds detail for the IIgs.

View File

@ -24,7 +24,7 @@ namespace Apple::Macintosh {
a shade less than 4Mhz.
*/
class Audio: public ::Outputs::Speaker::BufferSource<Audio, false> {
public:
public:
Audio(Concurrency::AsyncTaskQueue<false> &task_queue);
/*!
@ -55,7 +55,7 @@ class Audio: public ::Outputs::Speaker::BufferSource<Audio, false> {
bool is_zero_level() const;
void set_sample_volume_range(std::int16_t range);
private:
private:
Concurrency::AsyncTaskQueue<false> &task_queue_;
// A queue of fetched samples; read from by one thread,

View File

@ -15,7 +15,7 @@
namespace Apple::Macintosh {
class DriveSpeedAccumulator {
public:
public:
/*!
Accepts fetched motor control values.
*/
@ -31,7 +31,7 @@ class DriveSpeedAccumulator {
delegate_ = delegate;
}
private:
private:
static constexpr int samples_per_bucket = 20;
int sample_count_ = 0;
int sample_total_ = 0;

View File

@ -83,7 +83,7 @@ enum class Key: uint16_t {
};
class Keyboard {
public:
public:
void set_input(bool data) {
switch(mode_) {
case Mode::Waiting:
@ -218,7 +218,7 @@ class Keyboard {
key_queue_.insert(key_queue_.begin(), (is_pressed ? 0x00 : 0x80) | uint8_t(key));
}
private:
private:
/// Performs the pre-ADB Apple keyboard protocol command @c command, returning
/// the proper result if the command were to terminate now. So, it treats inquiry
/// and instant as the same command.

View File

@ -79,7 +79,7 @@ template <Analyser::Static::Macintosh::Target::Model model> class ConcreteMachin
public Configurable::Device,
public DriveSpeedAccumulator::Delegate,
public ClockingHint::Observer {
public:
public:
using Target = Analyser::Static::Macintosh::Target;
ConcreteMachine(const Target &target, const ROMMachine::ROMFetcher &rom_fetcher) :
@ -527,7 +527,7 @@ template <Analyser::Static::Macintosh::Target::Model model> class ConcreteMachin
}
}
private:
private:
bool quickboot_ = false;
void set_component_prefers_clocking(ClockingHint::Source *, ClockingHint::Preference) final {

View File

@ -28,7 +28,7 @@ constexpr int sync_end = 38;
This class also collects audio and 400kb drive-speed data, forwarding those values.
*/
class Video {
public:
public:
/*!
Constructs an instance of @c Video sourcing its pixel data from @c ram and
providing audio and drive-speed bytes to @c audio and @c drive_speed_accumulator.
@ -81,7 +81,7 @@ class Video {
*/
HalfCycles next_sequence_point();
private:
private:
DeferredAudio &audio_;
DriveSpeedAccumulator &drive_speed_accumulator_;

View File

@ -36,7 +36,7 @@ namespace {
namespace Atari2600 {
class Joystick: public Inputs::ConcreteJoystick {
public:
public:
Joystick(Bus *bus, std::size_t shift, std::size_t fire_tia_input) :
ConcreteJoystick({
Input(Input::Up),
@ -66,7 +66,7 @@ class Joystick: public Inputs::ConcreteJoystick {
}
}
private:
private:
Bus *bus_;
std::size_t shift_, fire_tia_input_;
};
@ -79,7 +79,7 @@ class ConcreteMachine:
public MachineTypes::AudioProducer,
public MachineTypes::ScanProducer,
public MachineTypes::JoystickMachine {
public:
public:
ConcreteMachine(const Target &target) : frequency_mismatch_warner_(*this) {
const std::vector<uint8_t> &rom = target.media.cartridges.front()->get_segments().front().data;
@ -187,7 +187,7 @@ class ConcreteMachine:
return confidence_counter_.get_confidence();
}
private:
private:
// The bus.
std::unique_ptr<Bus> bus_;

View File

@ -64,7 +64,7 @@ class ConcreteMachine:
public GI::AY38910::PortHandler,
public Configurable::Device,
public Video::RangeObserver {
public:
public:
ConcreteMachine(const Target &target, const ROMMachine::ROMFetcher &rom_fetcher) :
mc68000_(*this),
keyboard_acia_(Cycles(500000)),
@ -455,7 +455,7 @@ class ConcreteMachine:
}
}
private:
private:
forceinline void advance_time(HalfCycles length) {
// Advance the relevant counters.
cycles_since_audio_update_ += length;

View File

@ -19,7 +19,7 @@
namespace Atari::ST {
class DMAController: public WD::WD1770::Delegate, public ClockingHint::Source, public ClockingHint::Observer {
public:
public:
DMAController();
uint16_t read(int address);
@ -50,7 +50,7 @@ class DMAController: public WD::WD1770::Delegate, public ClockingHint::Source, p
// ClockingHint::Source.
ClockingHint::Preference preferred_clocking() const final;
private:
private:
HalfCycles running_time_;
struct WD1772: public WD::WD1770 {
WD1772(): WD::WD1770(WD::WD1770::P1772) {

View File

@ -54,7 +54,7 @@ class IntelligentKeyboard:
public Serial::Line<false>::ReadDelegate,
public ClockingHint::Source,
public Inputs::Mouse {
public:
public:
IntelligentKeyboard(Serial::Line<false> &input, Serial::Line<false> &output);
ClockingHint::Preference preferred_clocking() const final;
void run_for(HalfCycles duration);
@ -68,7 +68,7 @@ class IntelligentKeyboard:
return joysticks_;
}
private:
private:
// MARK: - Key queue.
std::mutex key_queue_mutex_;
std::vector<uint8_t> key_queue_;

View File

@ -31,7 +31,7 @@ struct LineLength {
(hopefully) to a subsystem.
*/
class Video {
public:
public:
Video();
/*!
@ -123,7 +123,7 @@ class Video {
*/
Range get_memory_access_range();
private:
private:
DeferredQueue<HalfCycles> deferrer_;
Outputs::CRT::CRT crt_;

View File

@ -38,7 +38,7 @@ namespace Commodore::C1540 {
The attention input is also connected to CA1, similarly invertedl; the CA1 wire will be high when the bus is low and vice versa.
*/
class SerialPortVIA: public MOS::MOS6522::IRQDelegatePortHandler {
public:
public:
SerialPortVIA(MOS::MOS6522::MOS6522<SerialPortVIA> &via);
uint8_t get_port_input(MOS::MOS6522::Port);
@ -48,7 +48,7 @@ class SerialPortVIA: public MOS::MOS6522::IRQDelegatePortHandler {
void set_serial_port(const std::shared_ptr<::Commodore::Serial::Port> &);
private:
private:
MOS::MOS6522::MOS6522<SerialPortVIA> &via_;
uint8_t port_b_ = 0x0;
std::weak_ptr<::Commodore::Serial::Port> serial_port_;
@ -76,7 +76,7 @@ class SerialPortVIA: public MOS::MOS6522::IRQDelegatePortHandler {
whether the disk head is being told to read or write, but it's unclear and I've yet to investigate. So, TODO.
*/
class DriveVIA: public MOS::MOS6522::IRQDelegatePortHandler {
public:
public:
class Delegate {
public:
virtual void drive_via_did_step_head(void *driveVIA, int direction) = 0;
@ -97,7 +97,7 @@ class DriveVIA: public MOS::MOS6522::IRQDelegatePortHandler {
void set_activity_observer(Activity::Observer *observer);
private:
private:
uint8_t port_b_ = 0xff, port_a_ = 0xff;
bool should_set_overflow_ = false;
bool drive_motor_ = false;
@ -110,11 +110,11 @@ class DriveVIA: public MOS::MOS6522::IRQDelegatePortHandler {
An implementation of the C1540's serial port; this connects incoming line levels to the serial-port VIA.
*/
class SerialPort : public ::Commodore::Serial::Port {
public:
public:
void set_input(::Commodore::Serial::Line, ::Commodore::Serial::LineLevel);
void set_serial_port_via(const std::shared_ptr<SerialPortVIA> &);
private:
private:
std::weak_ptr<SerialPortVIA> serial_port_VIA_;
};
@ -124,7 +124,7 @@ class MachineBase:
public DriveVIA::Delegate,
public Storage::Disk::Controller {
public:
public:
MachineBase(Personality personality, const ROM::Map &roms);
// to satisfy CPU::MOS6502::Processor
@ -140,7 +140,7 @@ class MachineBase:
/// Attaches the activity observer to this C1540.
void set_activity_observer(Activity::Observer *observer);
protected:
protected:
CPU::MOS6502::Processor<CPU::MOS6502::Personality::P6502, MachineBase, false> m6502_;
uint8_t ram_[0x800];

View File

@ -209,7 +209,7 @@ struct Description {
/// plus all the fields provided as @c flags .
std::string description(int flags) const;
private:
private:
template <typename FileNameT, typename CRC32T> Description(
Name name, std::string machine_name, std::string descriptive_name, FileNameT file_names, size_t size, CRC32T crc32s = uint32_t(0)
) : name{name}, machine_name{machine_name}, descriptive_name{descriptive_name}, file_names{file_names}, size{size}, crc32s{crc32s} {
@ -273,7 +273,7 @@ struct Request {
/// portion of a sentence, e.g. "Please supply" + request.description(0, L'*').
std::wstring description(int description_flags, wchar_t bullet_point);
private:
private:
struct Node {
enum class Type {
Any, All, One

View File

@ -14,13 +14,13 @@
namespace Utility {
class StringSerialiser {
public:
public:
StringSerialiser(const std::string &source, bool use_linefeed_only = false);
uint8_t head();
bool advance();
private:
private:
std::string input_string_;
std::size_t input_string_pointer_ = 0;
};

View File

@ -15,7 +15,7 @@
namespace Machine {
template<typename T> class TypedDynamicMachine: public ::Machine::DynamicMachine {
public:
public:
TypedDynamicMachine(std::unique_ptr<T> &&machine) : machine_(std::move(machine)) {}
T *get() { return machine_.get(); }
@ -47,7 +47,7 @@ template<typename T> class TypedDynamicMachine: public ::Machine::DynamicMachine
return get();
}
private:
private:
template <typename Class> Class *get() {
return dynamic_cast<Class *>(machine_.get());

View File

@ -63,7 +63,7 @@ class CharacterMapper {
fresh key transition is ready to be consumed.
*/
class Typer {
public:
public:
class Delegate: public MachineTypes::KeyActions {
public:
/// Informs the delegate that this typer has reached the end of its content.
@ -85,7 +85,7 @@ class Typer {
const char BeginString = 0x02; // i.e. ASCII start of text
const char EndString = 0x03; // i.e. ASCII end of text
private:
private:
std::string string_;
std::size_t string_pointer_ = 0;
@ -106,7 +106,7 @@ class Typer {
*/
template <typename CMapper>
class TypeRecipient: public Typer::Delegate {
protected:
protected:
template <typename... Args> TypeRecipient(Args&&... args) : character_mapper(std::forward<Args>(args)...) {}
/// Attaches a typer to this class that will type @c string using @c character_mapper as a source.
@ -144,7 +144,7 @@ class TypeRecipient: public Typer::Delegate {
virtual HalfCycles get_typer_frequency() const { return HalfCycles(0); }
std::unique_ptr<Typer> typer_;
private:
private:
std::unique_ptr<Typer> previous_typer_;
CMapper character_mapper;
};

View File

@ -26,8 +26,9 @@ constexpr uint8_t reverse_byte(uint8_t byte) {
}
/*! Provides a class capable of generating a CRC from source data. */
template <typename IntType, IntType reset_value, IntType output_xor, bool reflect_input, bool reflect_output> class Generator {
public:
template <typename IntType, IntType reset_value, IntType output_xor, bool reflect_input, bool reflect_output>
class Generator {
public:
/*!
Instantiates a CRC16 that will compute the CRC16 specified by the supplied
@c polynomial and @c reset_value.
@ -97,7 +98,7 @@ template <typename IntType, IntType reset_value, IntType output_xor, bool reflec
return get_value();
}
private:
private:
static constexpr int multibyte_shift = (sizeof(IntType) * 8) - 8;
IntType xor_table[256];
IntType value_;

View File

@ -40,7 +40,7 @@ template <> struct LSFRPolynomial<uint8_t> {
in the specified int type.
*/
template <typename IntType = uint64_t, IntType polynomial = LSFRPolynomial<IntType>::value> class LFSR {
public:
public:
/*!
Constructs an LFSR with a random initial value.
*/
@ -73,7 +73,7 @@ template <typename IntType = uint64_t, IntType polynomial = LSFRPolynomial<IntTy
return result;
}
private:
private:
IntType value_ = 0;
};

View File

@ -28,7 +28,7 @@ namespace Numeric {
/// = 65
///
template <int... Sizes> class NumericCoder {
public:
public:
/// Modifies @c target to hold @c value at @c index.
template <int index> static void encode(int &target, int value) {
static_assert(index < sizeof...(Sizes), "Index must be within range");
@ -41,7 +41,7 @@ template <int... Sizes> class NumericCoder {
return NumericDecoder<Sizes...>::template decode<index>(source);
}
private:
private:
template <int size, int... Tail>
struct NumericEncoder {

View File

@ -55,7 +55,7 @@ class Delegate {
colour phase for colour composite video.
*/
class CRT {
private:
private:
// The incoming clock lengths will be multiplied by @c time_multiplier_; this increases
// precision across the line.
int time_multiplier_ = 1;
@ -109,7 +109,7 @@ class CRT {
size_t allocated_data_length_ = std::numeric_limits<size_t>::min();
#endif
public:
public:
/*! Constructs the CRT with a specified clock rate, height and colour subcarrier frequency.
The requested number of buffers, each with the requested number of bytes per pixel,
is created for the machine to write raw pixel data to.
@ -353,7 +353,7 @@ class CRT {
ask its receiver to try a different display frequency.
*/
template <typename Receiver> class CRTFrequencyMismatchWarner: public Outputs::CRT::Delegate {
public:
public:
CRTFrequencyMismatchWarner(Receiver &receiver) : receiver_(receiver) {}
void crt_did_end_batch_of_frames(Outputs::CRT::CRT *, int number_of_frames, int number_of_unexpected_vertical_syncs) final {
@ -383,7 +383,7 @@ template <typename Receiver> class CRTFrequencyMismatchWarner: public Outputs::C
}
}
private:
private:
Receiver &receiver_;
struct FrameRecord {
int number_of_frames = 0;

View File

@ -229,7 +229,7 @@ struct Flywheel {
(counter_ >= expected_next_sync_ - (standard_period_ / 100));
}
private:
private:
const int standard_period_; // The idealised length of time between syncs.
const int retrace_time_; // A constant indicating the amount of time it takes to perform a retrace.
const int sync_error_window_; // A constant indicating the window either side of the next expected sync in which we'll accept other syncs.

View File

@ -22,15 +22,15 @@ namespace Outputs::Display {
to allow for host-client frame synchronisation.
*/
class Metrics {
public:
public:
/// Notifies Metrics of a beam event.
void announce_event(ScanTarget::Event event);
void announce_event(ScanTarget::Event);
/// Notifies Metrics that the size of the output buffer has changed.
void announce_did_resize();
/// Provides Metrics with a new data point for output speed estimation.
void announce_draw_status(size_t lines, std::chrono::high_resolution_clock::duration duration, bool complete);
void announce_draw_status(size_t lines, std::chrono::high_resolution_clock::duration, bool complete);
/// Provides Metrics with a new data point for output speed estimation, albeit without line-specific information.
void announce_draw_status(bool complete);
@ -44,7 +44,7 @@ class Metrics {
/// @returns The number of lines since vertical retrace ended.
int current_line() const;
private:
private:
int lines_this_frame_ = 0;
std::array<int, 20> line_total_history_;
size_t line_total_history_pointer_ = 0;

View File

@ -18,7 +18,7 @@ namespace Outputs::Display::OpenGL {
Provides a wrapper for drawing a solid, single-colour rectangle.
*/
class Rectangle {
public:
public:
/*!
Instantiates an instance of Rectange with the coordinates given.
*/
@ -29,7 +29,7 @@ class Rectangle {
*/
void draw(float red, float green, float blue);
private:
private:
Shader pixel_shader_;
GLuint drawing_vertex_array_ = 0, drawing_array_buffer_ = 0;
GLint colour_uniform_;

View File

@ -19,7 +19,7 @@ namespace Outputs::Display::OpenGL {
handles render-to-texture framebuffer objects.
*/
class TextureTarget {
public:
public:
/*!
Creates a new texture target. Contents are initially undefined.
@ -72,7 +72,7 @@ class TextureTarget {
*/
void draw(float aspect_ratio, float colour_threshold = 0.0f) const;
private:
private:
GLuint framebuffer_ = 0, texture_ = 0, renderbuffer_ = 0;
const GLsizei width_ = 0, height_ = 0;
GLsizei expanded_width_ = 0, expanded_height_ = 0;

View File

@ -36,7 +36,7 @@ namespace Outputs::Display::OpenGL {
drawn to the target framebuffer is a quad.
*/
class ScanTarget: public Outputs::Display::BufferingScanTarget { // TODO: use private inheritance and expose only display_metrics() and a custom cast?
public:
public:
ScanTarget(GLuint target_framebuffer = 0, float output_gamma = 2.2f);
~ScanTarget();
@ -47,7 +47,7 @@ class ScanTarget: public Outputs::Display::BufferingScanTarget { // TODO: use pr
/*! Processes all the latest input, at a resolution suitable for later output to a framebuffer of the specified size. */
void update(int output_width, int output_height);
private:
private:
static constexpr int LineBufferWidth = 2048;
static constexpr int LineBufferHeight = 2048;

View File

@ -33,7 +33,7 @@ namespace Outputs::Display {
This buffer rejects new data when full.
*/
class BufferingScanTarget: public Outputs::Display::ScanTarget {
public:
public:
/*! @returns The DisplayMetrics object that this ScanTarget has been providing with announcements and draw overages. */
const Metrics &display_metrics();
@ -164,7 +164,7 @@ class BufferingScanTarget: public Outputs::Display::ScanTarget {
/// Safe to call from any thread.
bool has_new_modals() const;
private:
private:
// ScanTarget overrides.
void set_modals(Modals) final;
Outputs::Display::ScanTarget::Scan *begin_scan() final;

View File

@ -100,7 +100,7 @@ class BufferSource {
///
template <typename SourceT, bool stereo, int divider = 1>
struct SampleSource: public BufferSource<SourceT, stereo> {
public:
public:
template <Action action>
void apply_samples(std::size_t number_of_samples, typename SampleT<stereo>::type *target) {
auto &source = *static_cast<SourceT *>(this);
@ -144,7 +144,7 @@ struct SampleSource: public BufferSource<SourceT, stereo> {
// typename SampleT<stereo>::type level() const;
// void advance();
private:
private:
int master_divider_{};
};

View File

@ -45,8 +45,9 @@ template <typename... S> constexpr bool are_properly_ordered() {
An owner may optionally assign relative volumes.
*/
template <typename... T> class CompoundSource:
public Outputs::Speaker::BufferSource<CompoundSource<T...>, ::Outputs::Speaker::is_stereo<T...>()> {
private:
public Outputs::Speaker::BufferSource<CompoundSource<T...>, ::Outputs::Speaker::is_stereo<T...>()>
{
private:
template <typename... S> class CompoundSourceHolder {
public:
static constexpr bool is_stereo = false;
@ -121,7 +122,7 @@ template <typename... T> class CompoundSource:
std::vector<MonoSample> conversion_source_;
};
public:
public:
using Sample = typename SampleT<::Outputs::Speaker::is_stereo<T...>()>::type;
// To ensure at most one mono to stereo conversion, require appropriate source ordering.
@ -168,7 +169,7 @@ template <typename... T> class CompoundSource:
return average_output_peak_;
}
private:
private:
void push_volumes() {
const double scale = source_holder_.total_scale(volumes_.data());
source_holder_.set_scaled_volume_range(volume_range_, volumes_.data(), scale);

View File

@ -23,7 +23,7 @@
namespace Outputs::Speaker {
template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker {
public:
public:
/*!
Sets the clock rate of the input audio.
*/
@ -52,7 +52,7 @@ template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker
filter_parameters_.parameters_are_dirty = true;
}
private:
private:
float get_ideal_clock_rate_in_range(float minimum, float maximum) final {
std::lock_guard lock_guard(filter_parameters_mutex_);
@ -237,7 +237,7 @@ template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker
return filter_parameters.input_rate_changed;
}
protected:
protected:
bool process(size_t length) {
const auto delegate = delegate_.load(std::memory_order_relaxed);
if(!delegate) return false;
@ -294,7 +294,7 @@ template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker
Provides a low-pass speaker to which blocks of samples are pushed.
*/
template <bool is_stereo> class PushLowpass: public LowpassBase<PushLowpass<is_stereo>, is_stereo> {
private:
private:
using BaseT = LowpassBase<PushLowpass<is_stereo>, is_stereo>;
friend BaseT;
using BaseT::process;
@ -316,7 +316,7 @@ template <bool is_stereo> class PushLowpass: public LowpassBase<PushLowpass<is_s
buffer_ += word_length;
}
public:
public:
void set_output_volume(float volume) final {
scale_.store(int(std::clamp(volume * 65536.0f, 0.0f, 65536.0f)));
}
@ -350,7 +350,7 @@ template <bool is_stereo> class PushLowpass: public LowpassBase<PushLowpass<is_s
lower-frequency output.
*/
template <typename SampleSource> class PullLowpass: public LowpassBase<PullLowpass<SampleSource>, SampleSource::is_stereo> {
public:
public:
PullLowpass(SampleSource &sample_source) : sample_source_(sample_source) {
// Propagate an initial volume level.
sample_source.set_sample_volume_range(32767);
@ -381,7 +381,7 @@ template <typename SampleSource> class PullLowpass: public LowpassBase<PullLowpa
});
}
private:
private:
using BaseT = LowpassBase<PullLowpass<SampleSource>, SampleSource::is_stereo>;
friend BaseT;
using BaseT::process;

View File

@ -61,7 +61,7 @@ template <bool stereo> struct SampleT {
audio output.
*/
class Speaker {
public:
public:
virtual ~Speaker() = default;
/*!
@ -136,7 +136,7 @@ class Speaker {
// This is primarily exposed for MultiSpeaker et al; it's not for general callers.
virtual void set_computed_output_rate(float cycles_per_second, int buffer_size, bool stereo) = 0;
protected:
protected:
void did_complete_samples(Speaker *, const std::vector<int16_t> &buffer, bool is_stereo) {
// Test the delegate for existence again, as it may have changed.
const auto delegate = delegate_.load(std::memory_order_relaxed);
@ -170,7 +170,7 @@ class Speaker {
}
std::atomic<Delegate *> delegate_{nullptr};
private:
private:
void compute_output_rate() {
// The input rate multiplier is actually used as an output rate divider,
// to confirm to the public interface of a generic speaker being output-centric.

View File

@ -142,7 +142,7 @@ class ProcessorBase: public ProcessorStorage {
can produce a minor runtime performance improvement.
*/
template <Personality personality, typename BusHandler, bool uses_ready_line> class Processor: public ProcessorBase {
public:
public:
/*!
Constructs an instance of the 6502 that will use @c bus_handler for all bus communications.
*/
@ -162,7 +162,7 @@ template <Personality personality, typename BusHandler, bool uses_ready_line> cl
*/
void set_ready_line(bool active);
private:
private:
BusHandler &bus_handler_;
};

View File

@ -28,7 +28,7 @@ using Type = CPU::MOS6502Esque::Type;
template <Type type, bool has_cias> class ConcreteAllRAMProcessor:
public AllRAMProcessor, public CPU::MOS6502Esque::BusHandlerT<type>
{
public:
public:
using typename CPU::MOS6502Esque::BusHandlerT<type>::AddressType;
ConcreteAllRAMProcessor(size_t memory_size) :
@ -145,7 +145,7 @@ template <Type type, bool has_cias> class ConcreteAllRAMProcessor:
mos6502_.set_value_of(r, value);
}
private:
private:
CPU::MOS6502Esque::Processor<type, ConcreteAllRAMProcessor, false> mos6502_;
int instructions_ = 0;

View File

@ -34,7 +34,7 @@ enum ExtendedBusOutput {
#include "Implementation/65816Storage.hpp"
class ProcessorBase: protected ProcessorStorage {
public:
public:
inline void set_power_on(bool);
inline void set_irq_line(bool);
inline void set_nmi_line(bool);
@ -64,7 +64,7 @@ class ProcessorBase: protected ProcessorStorage {
};
template <typename BusHandler, bool uses_ready_line> class Processor: public ProcessorBase {
public:
public:
/*!
Constructs an instance of the 6502 that will use @c bus_handler for all bus communications.
*/
@ -75,7 +75,7 @@ template <typename BusHandler, bool uses_ready_line> class Processor: public Pro
@param cycles The number of cycles to run the 6502 for.
*/
void run_for(const Cycles cycles);
void run_for(const Cycles);
/*!
Sets the current level of the RDY line.
@ -84,7 +84,7 @@ template <typename BusHandler, bool uses_ready_line> class Processor: public Pro
*/
void set_ready_line(bool active);
private:
private:
BusHandler &bus_handler_;
};

View File

@ -108,7 +108,7 @@ struct CPU::WDC65816::ProcessorStorageConstructor {
storage_.micro_ops_.push_back(OperationDecode);
}
private:
private:
PatternTable::iterator install(Generator generator, AccessType access_type = AccessType::Read) {
// Check whether this access type + addressing mode generator has already been generated.

View File

@ -438,7 +438,7 @@ namespace CPU::MC68000 {
*/
template <class BusHandler, bool dtack_is_implicit = true, bool permit_overrun = true, bool signal_will_perform = false>
class Processor: private ProcessorBase {
public:
public:
Processor(BusHandler &bus_handler) : ProcessorBase(), bus_handler_(bus_handler) {}
Processor(const Processor& rhs) = delete;
Processor& operator=(const Processor& rhs) = delete;
@ -491,7 +491,7 @@ class Processor: private ProcessorBase {
void reset();
private:
private:
BusHandler &bus_handler_;
};

View File

@ -17,7 +17,7 @@
namespace CPU {
class AllRAMProcessor {
public:
public:
AllRAMProcessor(std::size_t memory_size);
HalfCycles get_timestamp();
void set_data_at_address(size_t startAddress, size_t length, const uint8_t *data);
@ -30,7 +30,7 @@ class AllRAMProcessor {
void set_trap_handler(TrapHandler *trap_handler);
void add_trap_address(uint16_t address);
protected:
protected:
std::vector<uint8_t> memory_;
HalfCycles timestamp_;
@ -40,7 +40,7 @@ class AllRAMProcessor {
}
}
private:
private:
TrapHandler *trap_handler_;
std::vector<bool> traps_;
};

View File

@ -376,7 +376,7 @@ struct PartialMachineCycle {
}
PartialMachineCycle(const PartialMachineCycle &rhs) noexcept;
PartialMachineCycle(Operation operation, HalfCycles length, uint16_t *address, uint8_t *value, bool was_requested) noexcept;
PartialMachineCycle(Operation, HalfCycles, uint16_t *address, uint8_t *value, bool was_requested) noexcept;
PartialMachineCycle() noexcept;
};
@ -386,7 +386,7 @@ struct PartialMachineCycle {
handler.
*/
class BusHandler {
public:
public:
/*!
Announces that the Z80 has performed the partial machine cycle defined by @c cycle.
@ -395,7 +395,7 @@ class BusHandler {
during some periods or may impose wait states so predictably that it's more efficient just to add them
via this mechanism.
*/
HalfCycles perform_machine_cycle([[maybe_unused]] const PartialMachineCycle &cycle) {
HalfCycles perform_machine_cycle([[maybe_unused]] const PartialMachineCycle &) {
return HalfCycles(0);
}
};
@ -406,7 +406,7 @@ class BusHandler {
A base class from which the Z80 descends; separated for implementation reasons only.
*/
class ProcessorBase: public ProcessorStorage {
public:
public:
/*!
Gets the value of a register.
@ -439,7 +439,7 @@ class ProcessorBase: public ProcessorStorage {
how many cycles before now the line changed state. The value may not be longer than the
current machine cycle. If called at any other time, this must be zero.
*/
inline void set_interrupt_line(bool value, HalfCycles offset = 0);
inline void set_interrupt_line(bool, HalfCycles offset = 0);
/*!
Gets the value of the interrupt line.
@ -451,7 +451,7 @@ class ProcessorBase: public ProcessorStorage {
@param offset See discussion in set_interrupt_line.
*/
inline void set_non_maskable_interrupt_line(bool value, HalfCycles offset = 0);
inline void set_non_maskable_interrupt_line(bool, HalfCycles offset = 0);
/*!
Gets the value of the non-maskable interrupt line.
@ -461,7 +461,7 @@ class ProcessorBase: public ProcessorStorage {
/*!
Sets the logical value of the reset line.
*/
inline void set_reset_line(bool value);
inline void set_reset_line(bool);
/*!
Gets whether the Z80 would reset at the next opportunity.
@ -493,7 +493,7 @@ class ProcessorBase: public ProcessorStorage {
support either can produce a minor runtime performance improvement.
*/
template <class T, bool uses_bus_request, bool uses_wait_line> class Processor: public ProcessorBase {
public:
public:
Processor(T &bus_handler);
/*!
@ -505,12 +505,12 @@ template <class T, bool uses_bus_request, bool uses_wait_line> class Processor:
@param cycles The number of cycles to run for.
*/
void run_for(const HalfCycles cycles);
void run_for(const HalfCycles);
/*!
Sets the logical value of the bus request line, having asserted that this Z80 supports the bus request line.
*/
void set_bus_request_line(bool value);
void set_bus_request_line(bool);
/*!
Gets the logical value of the bus request line.
@ -520,17 +520,17 @@ template <class T, bool uses_bus_request, bool uses_wait_line> class Processor:
/*!
Sets the logical value of the wait line, having asserted that this Z80 supports the wait line.
*/
void set_wait_line(bool value);
void set_wait_line(bool);
/*!
Gets the logical value of the bus request line.
*/
bool get_wait_line() const;
private:
private:
T &bus_handler_;
void assemble_page(InstructionPage &target, InstructionTable &table, bool add_offsets);
void assemble_page(InstructionPage &, InstructionTable &, bool add_offsets);
void copy_program(const MicroOp *source, std::vector<MicroOp> &destination);
};