3545 Commits

Author SHA1 Message Date
rakslice
47e9921bb7 Switch windows ejection prevention to use IOCTL_STORAGE_EJECTION_CONTROL 2025-01-20 01:12:33 -08:00
rakslice
ca33a19cfd Process the remount collection in CDROMExit so the handles get cleaned up normally; some debug output 2025-01-20 01:11:35 -08:00
rakslice
61575d2d58 Safeguard for Windows to prevent incrementing the ejection prevention counter for a drive more than once 2025-01-19 19:54:41 -08:00
kanjitalk755
877aaf4d03
Merge pull request #246 from rakslice/cdrom_multiple_units
Make multiple CD-ROM drives work more realistically
2025-01-17 18:04:23 +09:00
kanjitalk755
5d11cb7d49 additional fix to sdl3 2025-01-11 15:30:44 +09:00
kanjitalk755
c3813dd752 fix player lock 2025-01-11 15:25:11 +09:00
rakslice
58706f582c actually sort out multiple cdrom drives 2025-01-10 03:51:37 -08:00
rakslice
772252f24c Revert "Best guess audio CD from data calls to allow multiple discs and testing different interface identifiers"
This reverts commit 35439819d35140291295312e34f9cadd4245f5bc.
2025-01-10 03:08:31 -08:00
kanjitalk755
9175c4285b test for bin/cue player lock 2025-01-10 15:45:09 +09:00
kanjitalk755
5b72b58226
Merge pull request #244 from rakslice/bincue_audio_output_conversion_fix
bin/cue: Fix gappy CD playback when the audio output is not set to CD quality
2025-01-09 13:33:16 +09:00
kanjitalk755
edfe4bc6b6
Merge pull request #245 from rakslice/b2_enable_posix_precise_timing
B2: Enable high precision timer for POSIX
2025-01-09 13:31:08 +09:00
rakslice
2816889d2e changes for b2 high precision timer for posix 2025-01-08 07:07:14 -08:00
rakslice
629d0d0874 bin/cue: Fix gappy CD playback when the audio format is not CD quality due to not converting enough source audio 2025-01-08 02:34:53 -08:00
kanjitalk755
1bedfac618
Merge pull request #243 from rakslice/bincue_cdscan_replacement
bin/cue: CD Scan (fast-forward/reverse) implementation
2025-01-08 19:24:49 +09:00
kanjitalk755
3498324bdb
Merge pull request #241 from rakslice/remove_mixaudio_volume
bin/cue: removed unused MixAudio volume param
2025-01-08 19:22:18 +09:00
kanjitalk755
51e3a90866
Merge pull request #236 from rakslice/bincue_motorola
bin/cue: Implement MOTOROLA keyword for big-endian audio data
2025-01-08 19:21:55 +09:00
rakslice
3eff56b91d Merge branch 'master' into remove_mixaudio_volume 2025-01-08 01:44:45 -08:00
rakslice
420a51ce6e bin/cue: support cue sheet "AUDIO" entry with "MOTOROLA" (big-endian raw audio) 2025-01-08 01:26:08 -08:00
rakslice
5b8d1064e5 Merge branch 'master' into bincue_motorola 2025-01-08 01:20:48 -08:00
rakslice
bc5b8237ed Merge branch 'master' into bincue_cdscan_replacement 2025-01-08 01:09:47 -08:00
kanjitalk755
36b5206b90
Merge pull request #235 from rakslice/sdl3_audio_interrupt_thread
SDL 3 audio: use a separate thread for audio interrupt with stream
2025-01-08 18:06:53 +09:00
kanjitalk755
2a859c323b
Merge pull request #237 from rakslice/bincue_main
bin/cue: opening/closing and fixes
2025-01-08 18:01:27 +09:00
kanjitalk755
08877b7aeb
Merge pull request #238 from rakslice/sdl_dnd_in_main_thread
Handle SDL drag-and-drop in main thread
2025-01-08 17:59:24 +09:00
kanjitalk755
749655f063
Merge pull request #242 from rakslice/bincue_no_play_data
bin/cue: prevent CDPlay_bincue of data track
2025-01-08 17:53:09 +09:00
kanjitalk755
774c537356
Merge pull request #240 from rakslice/bincue_underrun
SDL 3 audio: avoid underrun when only bin/cue is playing
2025-01-08 17:50:48 +09:00
kanjitalk755
40b9e5ce68
Merge pull request #234 from rakslice/bincue_volume_fix
SDL 3 audio, bin/cue: interim fix for CD audio volume controls
2025-01-08 17:32:15 +09:00
rakslice
55c5ecb464 bin/cue: replaced the Audio CD Scan (fast-forward/reverse) implementation 2025-01-07 23:08:45 -08:00
rakslice
b459223aa9 bin/cue: prevent CDPlay_bincue of data track 2025-01-07 21:49:14 -08:00
rakslice
5aacd4477c bin/cue: removed unused MixAudio volume param 2025-01-07 21:43:44 -08:00
rakslice
9b0ea7ce2c SDL 3 audio: avoid underrun when there is only bincue playback by increasing output target for that case also 2025-01-07 21:23:28 -08:00
rakslice
866aa59088 Remove declaration that belongs in a different commit 2025-01-07 21:21:22 -08:00
rakslice
1de5be48ed Handle SDL drag-and-drop events on the main thread to avoid hanging up the redraw thread 2025-01-07 20:22:24 -08:00
rakslice
28b211bb43 bin/cue audio playback: fix teardown nesting in close_bincue 2025-01-07 20:20:17 -08:00
rakslice
8e4d39b8c5 bin/cue: audio playback related fixes
- Refactored bin/cue CD player SDL streams' opening and closing
  * Added `CloseAudio_bincue` which closes CD player streams and leaves them in a state for `OpenAudio_bincue` to open the stream again without error
  * Save audio settings of most recent `OpenAudio_bincue` so that any new bin/cues opened later have their streams opened right away
- Fix a crash where the bincue's entry remains in the collection when closed
- When a bin/cue that is currently playing is closed, stop it first, to avoid a crash
- When a preconfigured cdrom (which isn't closed when ejecting) is ejected, stop it first to avoid an uncontrollable audio stream continuing in the case of a bin/cue
2025-01-07 17:10:15 -08:00
rakslice
075db1949b bin/cue: support cue sheet "AUDIO" entry with "MOTOROLA" (big-endian raw audio) 2025-01-07 16:24:27 -08:00
rakslice
64cd8155e0 sdl3: use a separate thread for audio interrupt; connect to the stream callback with another stream
This change puts the audio interrupt SoundComponentData handling part of the stream callback in a separate thread,
and connects to remaining callback with an SDL stream rather than a queue of bytes, and uses the
stream for format conversion as necessary.

- Taking the audio interrupt cycle out of the main callback isolates the possibly high latency
  of that from SDL3 drivers that are very sensitive to the callback taking too long (e.g. pipewire).

- Handles conversion of the audio from the SoundComponentData when necessary; generates the appropriate amount of silence if the format is unknown
2025-01-07 15:52:34 -08:00
rakslice
7ae4a71c6c SDL audio, bin/cue: quick fix for volume controls 2025-01-07 15:39:32 -08:00
kanjitalk755
d59278dd96 fix #233 2025-01-07 17:28:41 +09:00
kanjitalk755
f39b6e8e62
Merge pull request #231 from rakslice/sdl3_volume_control
sdl3 audio: provide float volume control value for sdl3
2025-01-01 14:21:34 +09:00
rakslice
64a72eaea2 sdl3 audio: provide float volume control value for sdl3 2024-12-31 04:46:02 -08:00
kanjitalk755
97bbac8770
Merge pull request #230 from rakslice/sdl3_audio_fixes
SDL 3 audio fixes
2024-12-31 20:52:38 +09:00
rakslice
fd81480959 sdl 3 audio: fix flipped return value in startup wav stream load 2024-12-30 22:24:21 -08:00
rakslice
44d3df3c4b sdl 3 audio: fix audio close to handle close/reopen for mac audio settings change 2024-12-30 22:24:21 -08:00
rakslice
d57d0689c0 sdl 3 audio: improve audio pushing to reduce stuttering and errors 2024-12-30 22:24:21 -08:00
kanjitalk755
e013a88546
Merge pull request #229 from rakslice/unix_microseconds_fix
Fix Microseconds() implementation for clock_gettime and other posix
2024-12-30 10:17:40 +09:00
kanjitalk755
3d1cffdc20
Merge pull request #227 from rakslice/gtk3_volume_list_dnd
Add volume list file drag-and-drop to the Unix gtk3 UI
2024-12-30 10:15:14 +09:00
rakslice
2a1353896f another faux time-since-boot implementation for Microseconds() for clock_gettime and other posix 2024-12-29 15:18:27 -08:00
kanjitalk755
96e7f8566c
Merge pull request #226 from rakslice/makedepend_fixups
Update depend targets for single obj build directory
2024-12-29 20:23:57 +09:00
kanjitalk755
53a47339c6
Merge pull request #225 from rakslice/reset_ethernet_allocation
Invalidate cached ethernet allocation when system is reset
2024-12-29 20:23:17 +09:00
rakslice
62b934e641 Add volume list file drag-and-drop to the Unix gtk3 UI 2024-12-29 03:05:25 -08:00