Repository navigation
feat(libSceVoiceQoS): implement endpoints and connections to unblock - #6026
Conversation
Progress report (40255d7 → b868190)📈 System libraries: 89.35% (+0.19%, +7 implemented functions) ✅ 7 implemented
|
|
Note: I noticed that PR #5877 also touches |
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
adriadam10
left a comment
There was a problem hiding this comment.
Thanks, the build and both guest tests pass here, and they fail without the change. Two points:
core/libs/prx/libSceVoiceQoS/Export.cpp:103sceVoiceQoSCreateLocalEndpointtakes 3 arguments, but fpPS4 (src/ps4_libscevoice.pas,ps4_sceVoiceQoSCreateLocalEndpoint) declares(pLocalId, userId, deviceInId, deviceOutId). Please take the 4-argument form (or say what evidence supports 3) and name the source indocs/dev/debt/libSceVoiceQoS.mdinstead of "the PS4 signatures". Same file lists no source for the other six signatures; cite whichever reference you used for each, or state that none exists.Export.cpp:55-61,:123-126and:66: rejecting a duplicateConnect, deleting a connected endpoint, andsize <= 0inSetLocalEndpointAttributeare invented behaviour (the debt note says it was not measured). A title that does one of these would now get an error where it may get success on a console. Either return success for those cases (track nothing the console is not known to enforce), or point to a reference for each rejection, and keep the test (GuestVoiceQoS.cpp:45-61) in line with whichever you choose.
|
Updated accordingly:
|
adriadam10
left a comment
There was a problem hiding this comment.
Both points addressed: sceVoiceQoSCreateLocalEndpoint takes the 4-argument form (fpPS4), the unmeasured rejections are gone, and the debt note names its sources. Checked the build, the 36 tests in scope, and that guest_voice_qos / guest_voice_qos_app_type_0x10000000 fail without the change; merging.
What
Implements the
libSceVoiceQoSendpoint and connection calls that Aliens: Fireteam Elite (PPSA03393) uses on its first load path:sceVoiceQoSCreateLocalEndpoint/sceVoiceQoSDeleteLocalEndpointsceVoiceQoSCreateRemoteEndpoint/sceVoiceQoSDeleteRemoteEndpointsceVoiceQoSConnect/sceVoiceQoSDisconnectsceVoiceQoSSetLocalEndpointAttributeEndpoints and connections are tracked in the library state: ids are unique, a pair connects once, an endpoint that is part of a connection cannot be deleted, unknown ids return
ARGUMENT_INVALID, calls beforesceVoiceQoSInitreturn the not-initialized error, andsceVoiceQoSEnddrops every endpoint and connection. Local endpoint attributes are stored as given. Every other endpoint and packet call stays a throwing stub.On
main, PPSA03393 stops right after it registers the local talker:I added the calls one at a time. With any one of the seven left unimplemented, the title stops again on the same path with
what(): <function> not implemented:The five other stubs (
SetConnectionAttribute,SetRemoteEndpointAttribute,ReadPacket,WritePacket,GetLocalEndpointAttribute) are not reached by this title and stayNotImplemented_nid_no_patch.Unverified behaviour is recorded in
docs/dev/debt/libSceVoiceQoS.md:libSceVoiceQoSones, not confirmed on a PS5. The title only shows that these calls are made.0x804E0901is assumed from the0x804E09xxnumbering.Tested
tools/check_conventions.pyandtools/check_test_registration.pypass;ctest -R voice_qos(guest_voice_qos,guest_voice_qos_app_type_0x10000000) passes, withcore/libs/tests/GuestVoiceQoS.cppextended.sceNetEpollControl(ADD) failed,SetNonBlocking failed,NetDriverListenFailure), which this PR does not address.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)