Commit graph

29 commits

Author SHA1 Message Date
Megamouse fb237dd568 Audio: Add mute/unmute and volume shortcuts
Also add auto repeat to volume shortcuts
2025-01-02 09:34:47 +01:00
Elad 575a245f8d
IDM: Implement lock-free smart pointers (#16403)
Replaces `std::shared_pointer` with `stx::atomic_ptr` and `stx::shared_ptr`.

Notes to programmers:

* This pr kills the use of `dynamic_cast`, `std::dynamic_pointer_cast` and `std::weak_ptr` on IDM objects, possible replacement is to save the object ID on the base object, then use idm::check/get_unlocked to the destination type via the saved ID which may be null. Null pointer check is how you can tell type mismatch (as dynamic cast) or object destruction (as weak_ptr locking).
* Double-inheritance on IDM objects should be used with care, `stx::shared_ptr` does not support constant-evaluated pointer offsetting to parent/child type.
* `idm::check/get_unlocked` can now be used anywhere.

Misc fixes:
* Fixes some segfaults with RPCN with interaction with IDM.
* Fix deadlocks in access violation handler due locking recursion.
* Fixes race condition in process exit-spawn on memory containers read.
* Fix bug that theoretically can prevent RPCS3 from booting - fix `id_manager::typeinfo` comparison to compare members instead of `memcmp` which can fail spuriously on padding bytes.
* Ensure all IDM inherited types of base, either has `id_base` or `id_type` defined locally, this allows to make getters such as `idm::get_unlocked<lv2_socket, lv2_socket_raw>()` which were broken before. (requires save-states invalidation)
* Removes broken operator[] overload of `stx::shared_ptr` and `stx::single_ptr` for non-array types.
2024-12-22 20:59:48 +02:00
Megamouse 2f53d58cd9 fix some warnings 2024-04-15 19:28:28 +02:00
Megamouse bbb4c109d7 audio: allow to choose channel layouts 2024-03-28 07:17:26 +01:00
Eladash d78bbbf69a Savestates: Fix audio_out_configuration initialization 2023-12-29 11:11:53 +02:00
Megamouse 907e0fa8c8 Fix fxo dependencies 2023-12-15 18:08:07 +01:00
Megamouse 7c9a38e0f3 rsxaudio: fix ensure order 2023-12-14 15:51:11 +01:00
Megamouse 4a4f537ee8 recording: Implement audio recording for rsx audio 2023-11-30 09:55:36 +01:00
Megamouse 3cec3b866d cellRec: implement audio mixing 2023-11-23 21:19:31 +01:00
Eladash b2e969eb8f Savestates: Fix rsxaudio 2023-10-05 05:07:46 +03:00
Eladash 020bff1485 Savestates: add sys_rsxaudio 2023-10-02 15:38:58 +03:00
oltolm 0c94606fcf
Make compile with msvc, clang and gcc on Windows 2023-07-11 21:40:30 +03:00
Megamouse cd9ff08235 Decrease some include madness 2023-04-26 21:37:44 +02:00
Megamouse 9375e255e1 overlays: add pages to home menu 2023-02-09 20:36:35 +01:00
Vestral a1f9ff0aaa Cubeb: rewrite locking 2022-10-21 22:15:49 +02:00
Vestrel 98b730c806
Audio: device switching and channel count detection (#12246) 2022-07-08 17:13:38 +02:00
Megamouse 2a1e3b2b77 sys_rsxaudio: use max channel count from configured sound_modes 2022-06-09 18:59:13 +02:00
Megamouse 61823a5d62 sys_rsxaudio: only update config if the fxo is initialized 2022-06-09 18:59:13 +02:00
Megamouse ba96c6f3bb cellAudioOut: properly implement downMixer
If the PS3 downMixer is enabled, the game uses 8 channel input and 2 or 6 channel output
2022-06-09 18:59:13 +02:00
Megamouse 3402835c8e cellAudioOut: apply review fixes, add some comments 2022-06-02 13:12:04 +02:00
Megamouse 72e1e242a3 cellAudio: use format instead of downmix 2022-06-02 13:12:04 +02:00
Megamouse d47f1ef406 cellAudio: Implement application based downmix settings 2022-06-02 13:12:04 +02:00
Vestral 5b0badc215 sys_rsxaudio: timer fix 2022-05-29 14:59:12 +02:00
Vestral 608f823516 sys_rsxaudio: Add id to kernel explorer and some fixes 2022-05-23 13:10:46 +02:00
Vestrel d1e468fefb
sys_rsxaudio: Initial implementation (#11907) 2022-05-05 15:47:44 +02:00
clienthax 65b2a0d538 stub rsxaudio 2021-07-18 21:08:03 +03:00
RipleyTom af8c661a64 Remove BOM markers 2020-12-06 15:30:12 +03:00
Megamouse fe75311be2 move config structs to own files and clean up some headers 2020-02-17 15:08:17 +03:00
Eladash 1915fe75a4 VSH: Stubs 2020-02-08 23:07:03 +03:00