Thomas Harte
16423b8a1f
Introduce concept of a resettable machine.
2026-05-26 11:19:21 -04:00
Thomas Harte
4ec043a4c7
Wire though unicode character lookup.
2026-04-14 18:17:29 -04:00
Thomas Harte
105272630e
Definitively eliminate per-logger state.
2025-09-11 23:29:47 -04:00
Thomas Harte
4d302da9fa
Allow logging of errors but not info.
2025-09-05 14:25:56 -04:00
Thomas Harte
d825c03372
Prefer references for delegate protocols.
2025-08-30 00:09:38 -04:00
Thomas Harte
8fded8f210
Add consts, remove get_s.
2025-08-29 22:55:50 -04:00
Thomas Harte
0823fc32fe
Eliminate file-relative paths.
2025-02-28 12:30:25 -05:00
Thomas Harte
49fec1bc10
Remove meaningless 'volatile'.
2025-02-27 11:56:24 -05:00
Thomas Harte
4b19a3f4ed
Split interface, make const.
2025-02-25 22:58:36 -05:00
Thomas Harte
00b1865fc8
Fix boundary condition.
2025-01-17 21:46:43 -05:00
Thomas Harte
a6e453a452
Introdice alternative tape timings for the +4.
2025-01-15 22:11:26 -05:00
Thomas Harte
d3ed485e7a
Take another big swing at indentation, some consts.
2024-12-01 21:44:14 -05:00
Thomas Harte
7248470950
Roll formatting and const tweaks into Inputs.
2024-11-30 18:57:56 -05:00
Thomas Harte
bd97fd5973
Improve indentation, constness of 'Activity' and dynamic analyser.
2024-11-29 17:23:05 -05:00
Thomas Harte
71d337c10e
Avoid std::memory_order::.
2024-05-29 21:51:07 -04:00
Thomas Harte
2200940efe
Update logging.
2024-01-19 14:22:23 -05:00
Thomas Harte
a3d37640aa
Switch include guards to #pragma once.
2024-01-16 23:34:46 -05:00
Thomas Harte
9344f6a824
Indicate whether a keypress is a repeat. Treat appropriately in the Apple II.
2023-12-28 15:05:55 -05:00
Thomas Harte
2b56b7be0d
Simplify namespace syntax.
2023-05-10 16:02:18 -05:00
Thomas Harte
8f2e94a1d8
Switch name back to emphasise _async_.
2022-07-16 14:41:04 -04:00
Thomas Harte
bf03bda314
Generalise AsyncTaskQueue, DeferringAsyncTaskQueue and AsyncUpdater into a single template.
2022-07-14 16:39:26 -04:00
Thomas Harte
693b889fdd
Ensures that the MultiKeyboard functions.
2020-07-31 21:48:20 -04:00
Thomas Harte
f34a9b4346
Corrects audio output from the multi-speaker.
...
Specifically: local duplication of the delegate is unnecessary, and leads to confusion.
2020-07-31 18:18:19 -04:00
Thomas Harte
cdde57fcf2
Remove unused code.
2020-07-30 23:02:01 -04:00
Thomas Harte
c0a61ac1ee
Ensures proper handover of speaker state when picking in a multimachine.
2020-07-30 22:50:32 -04:00
Thomas Harte
495024d6fe
Cleans up all redundant lock/unique_guard declarations.
2020-06-15 00:24:10 -04:00
Thomas Harte
267006782f
Starts to add Qt target; resolves many build warnings.
2020-05-30 00:37:06 -04:00
Thomas Harte
51d684820f
Attempts to add array support to ::set and BSON deserialisation.
2020-05-26 22:55:55 -04:00
Thomas Harte
4d34d9ae2b
Implements BSON deserialisation, other than arrays.
2020-05-25 23:39:00 -04:00
Thomas Harte
512a52e88d
Increases const correctness, marks some additional constructors as constexpr, switches std::atomic construction style.
2020-05-20 23:34:26 -04:00
Thomas Harte
4481386a3d
Extends Reflection::Struct slightly to capture the lengths of arrays.
2020-05-14 22:59:44 -04:00
Thomas Harte
f82e4ee923
Makes additional minor const improvements.
2020-05-12 00:31:16 -04:00
Thomas Harte
fcb8bd00b6
Adds further costs.
2020-05-09 23:42:42 -04:00
Thomas Harte
25996ce180
Further doubles down on construction syntax for type conversions.
2020-05-09 23:00:39 -04:00
Thomas Harte
fe3942c5b3
Updates comments.
2020-04-01 23:49:07 -04:00
Thomas Harte
f417fa82a4
Splits 'CRTMachine' into three parts: ScanProducer, AudioProducer, TimedMachine.
...
Simultaneously cleans up some of the naming conventions and tries to make things a bit more template-compatible.
2020-04-01 23:19:34 -04:00
Thomas Harte
60aa383c95
Makes a not-quite-correct attempt at a .description for reflective structs.
2020-03-30 00:24:49 -04:00
Thomas Harte
9087bb9b08
Allows audio volume to be set.
2020-03-21 22:00:47 -04:00
Thomas Harte
23aa7ea85f
Revives MultiConfigurable.
2020-03-19 21:02:14 -04:00
Thomas Harte
394ee61c78
Starts a switch to reflectable-style runtime options.
...
The Amstrad CPC and ZX80/81 have made the jump so far, subject to caveats. The macOS build is unlikely currently to work properly.
2020-03-16 23:25:05 -04:00
Thomas Harte
8e3bf0dbca
Starts moving towards a Deflectable-based system of runtime options.
2020-03-15 23:48:53 -04:00
Thomas Harte
1f41d9c5f5
Further improvement: if in physical mode, but pressing an unrecognised key, attempt to 'type' it.
2020-03-02 22:08:54 -05:00
Thomas Harte
ed18092088
Extends logic for when to fall back on standard keypress logic even in logical mode.
2020-03-01 20:25:12 -05:00
Thomas Harte
1e4356f83a
Adds a sensible is_stereo to the MultiSpeaker.
2020-02-16 18:50:34 -05:00
Thomas Harte
90856a0e7a
Adds mixdown/up capability to Speaker.
...
To deal with occasions when the host machine just always is either mono or stereo, and the emulated machine must cope.
2020-02-16 13:50:18 -05:00
Thomas Harte
49b8e771b5
Adds the messaging that would allow a Speaker to output stereo, semantically.
2020-02-15 13:40:19 -05:00
Thomas Harte
9ca2d8f9f2
Tried to be less lazy with lambda captures.
...
This is primarily defensive.
2020-02-14 23:39:08 -05:00
Thomas Harte
7316a3aa88
Merge branch 'master' into FinalOverride
2020-01-26 23:42:25 -05:00
Thomas Harte
b514756272
Adds the option to run machines at a multiple of their real speeds.
...
Exposed to SDL users only, for now.
2020-01-26 13:25:23 -05:00
Thomas Harte
294e09f275
All these 'override's can be 'final's.
...
At least for the purpose of being communicative. I doubt there's much to gain in terms of compiler output — the DiskImageHolder can avoid some virtual lookups but nothing else leaps out.
2020-01-23 22:57:51 -05:00