Thomas Harte
ee1d7eb61f
Makes more buffer-specific stuff private.
2020-07-23 23:06:14 -04:00
Thomas Harte
e260f92988
Privatises write_pointers_mutex_
and write_pointers_
.
...
Also gives subclasses control over write-area texture space allocation.
2020-07-23 22:54:40 -04:00
Thomas Harte
74788ccf8e
Pulls the BufferingScanTarget into a separate file.
2020-07-22 22:16:47 -04:00
Thomas Harte
0da5c07942
Starts splitting ring-buffer stuff from OpenGL stuff.
...
Initially via two very codependent classes.
2020-07-21 22:49:46 -04:00
Thomas Harte
2230ac6c38
Merge pull request #800 from TomHarte/QtProject
...
UNREADY. Adds a provisional Qt target.
2020-07-06 22:33:39 -04:00
Thomas Harte
7431d56166
Ensures is_in_retrace is properly initialised.
2020-06-19 23:09:02 -04:00
Thomas Harte
495024d6fe
Cleans up all redundant lock/unique_guard declarations.
2020-06-15 00:24:10 -04:00
Thomas Harte
530ff7471d
Adds a virtual destructor, given how these things might be held.
2020-06-14 21:14:51 -04:00
Thomas Harte
73131735fa
Further qmake warning corrections.
2020-05-30 19:31:17 -04:00
Thomas Harte
48afc54af6
Cuts down unused parameter warnings to just a few that may well indicate implementation errors.
2020-05-30 01:06:43 -04:00
Thomas Harte
267006782f
Starts to add Qt target; resolves many build warnings.
2020-05-30 00:37:06 -04:00
Thomas Harte
ecb44711d1
Add glext.h.
2020-05-27 21:20:43 -04:00
Melissa Goad
603b747ac5
Fix Windows MSYS2 build (mostly)
2020-05-27 18:09:56 -05: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
66c2eb0414
Further tightens const
and constexpr
usage.
2020-05-12 22:22:21 -04:00
Thomas Harte
c41028cdc7
Adds further exposition.
2020-05-10 00:44:03 -04:00
Thomas Harte
25996ce180
Further doubles down on construction syntax for type conversions.
2020-05-09 23:00:39 -04:00
Thomas Harte
31c6faf3c8
Adds a bunch of const
s.
2020-05-09 21:23:52 -04:00
Thomas Harte
eed357abb4
Introduces concept of 'average peak volume' in order better to normalise audio sources like the OPLL.
2020-05-09 17:57:21 -04:00
Thomas Harte
b0abc4f7bb
Implements enough wiring that the Master System will instantiate and talk to an OPLL.
2020-04-03 20:05:36 -04:00
Thomas Harte
9087bb9b08
Allows audio volume to be set.
2020-03-21 22:00:47 -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
fa933952f7
Throws in additional asserts, so far without uncovering anything.
2020-02-19 23:14:18 -05:00
Thomas Harte
3715e6b48a
Resolves potential data race on write_area_texture_.
2020-02-18 22:41:46 -05:00
Thomas Harte
95756f9716
Resolves data race on write_pointers_ close to machine setup.
2020-02-18 20:41:51 -05:00
Thomas Harte
a5e1765ce4
Eliminates potential race conditions on validity of delegate_
.
2020-02-18 20:33:31 -05:00
Thomas Harte
1e4356f83a
Adds a sensible is_stereo to the MultiSpeaker.
2020-02-16 18:50:34 -05:00
Thomas Harte
545a6177bb
Makes CompoundSource mono/stereo-aware.
2020-02-16 18:45:36 -05:00
Thomas Harte
50d356be2f
Ensures all audio sources, including compound sources, announce whether they're stereo correctly.
2020-02-16 18:31:45 -05:00
Thomas Harte
9835e800ec
Fixed: individual audio generators now either are or are not stereo. The speaker acts accordingly.
2020-02-16 18:28:03 -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
d55d077a95
Fixes the input buffer partial-keep step in stereo.
2020-02-16 00:20:22 -05:00
Thomas Harte
e66a3523b6
Makes some attempt at stereo support, with the Amstrad CPC being the test case.
2020-02-15 18:55:19 -05:00
Thomas Harte
e02d109864
Nudges the LowpassSpeaker towards supporting stereo generation.
2020-02-15 18:03:12 -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
6bda4034c6
Ensures no input data is dropped when changing output rates.
...
I think this 'completely' deals with the problem. At least until someone wants dynamic output buffer sizes or something like that. We'll see.
2020-02-09 19:14:25 -05:00
Thomas Harte
b04daca98e
Picks a safer default construction.
2020-02-09 19:13:21 -05:00
Thomas Harte
6ae42d07a7
Retains existing output when switching filter coefficients.
...
This eliminates an issue with dynamic rate matching and throwing away the beginnings of buffers.
2020-02-09 16:42:07 -05:00
Thomas Harte
b5d6126a2d
Avoids unnecessary filter recalculation.
2020-02-09 16:32:32 -05:00
Thomas Harte
f95b07efea
Continues edging towards raster racing and/or time warping.
2020-02-06 23:35:03 -05:00
Thomas Harte
b41920990f
Moves submit
step to end of line, rather than end of scan.
2020-02-04 22:15:20 -05:00
Thomas Harte
709c229cd7
Gets a bit more explicit with ScanTarget documentation.
2020-02-04 20:19:46 -05:00
Thomas Harte
8aabf1b374
Allows receivers of nullptr from begin_data to output any quantity of data.
2020-02-01 21:43:48 -05:00
Thomas Harte
019474300d
Centralises responsibility for picking irrelevant numbers for a computer-style monitor.
2020-01-30 23:26:02 -05:00
Thomas Harte
f9ce50d2bb
Adds some debugging `asserts.
2020-01-29 22:45:44 -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
Thomas Harte
9136917f00
Enables the Oric for 50/60Hz mode switching, inventing PAL60 for the purpose.
2020-01-23 22:14:02 -05:00
Thomas Harte
428d141bc9
Factors out the logic behind the Atari 2600's frequency switching.
2020-01-23 20:12:44 -05:00