guest_error_dialog opens a dialog owned by the message dialog library and
terminates libSceErrorDialog: the other dialog keeps capturing input and its
answer is still delivered.
guest_error_dialog opens a dialog with a 40 ms bound and never reads its view:
it runs until the bound, then finishes on the next update call and the session
releases the input. A dialog whose view was read keeps running past the bound
and finishes when confirmed.
guest_error_dialog closes a shown dialog (the session closes and a second close
fails), terminates a waiting dialog (the session is reset and releases the
input), and checks that a dialog the session refuses because another one is
showing, and one opened with no presenter, finish on the first update call.
guest_error_dialog opens a dialog with a presenter: the view carries the error
code with one focused OK button, status calls keep it running, a confirm or a
cancel input finishes it, and both update and get status report the result.
The six libSceErrorDialog exports were throwing stubs. They now implement the dialog's
NONE -> INITIALIZED -> RUNNING -> FINISHED state machine without a visible window, so a title
that opens an error dialog and waits for it never blocks:
- sceErrorDialogInitialize -> INITIALIZED, or 0x80ED0002 if already initialized
- sceErrorDialogOpen -> checks the state and the 16-byte parameter, then RUNNING
- sceErrorDialogUpdateStatus -> turns RUNNING into FINISHED and returns the status
- sceErrorDialogGetStatus -> returns the status
- sceErrorDialogClose -> FINISHED, or 0x80ED0005 when no dialog is running
- sceErrorDialogTerminate -> NONE, or 0x80ED0001 when not initialized
Re-opening is allowed once a previous dialog has finished. The status values and error codes
are the documented SCE error-dialog ones. Adds a CMakeLists.txt so the library can carry its
guest test.
New test core/libs/tests/GuestErrorDialog.cpp drives the whole state machine (the
not-initialized and already-initialized errors, the state and parameter checks of open,
open/update/close and re-open after finish). It fails on main (the stubs throw) and passes
with the change.