mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-11-23 06:19:57 +00:00
Multiple Functions (Part 3) (#207)
* sceAjmBatchJobInlineBuffer * sceAjmInstanceCodecType * sceGnmDebugHardwareStatus * sceGnmDeleteEqEvent * sceImeDialogInit * sceLoginDialogUpdateStatus * sceNetBandwidthControlSetDefaultParam * sceNpSignalingSetContextOption * sceNpWebApi2PushEventCreateFilter * sceNpWebApi2PushEventCreateHandle * sceNpWebApi2PushEventRegisterCallback * sceSigninDialogGetResult * sceSslFreeCaCerts * sceSslGetCaCerts * sceUsbStorageInit * sceVideoOutAddDriver * sceVoiceResumePortAll * Fixes * + * Fix build * + * + * + * + * + * + * + * + * + * + --------- Co-authored-by: red-prig <vdpasha@mail.ru>
This commit is contained in:
parent
b9eab2c9d4
commit
72a5a16616
@ -69,12 +69,12 @@ uses
|
||||
ps4_libSceShareUtility,
|
||||
ps4_libSceSocialScreen,
|
||||
ps4_libSceVideoRecording,
|
||||
ps4_libSceWebBrowserDialog,
|
||||
ps4_libSceCompanionHttpd,
|
||||
ps4_libSceCompanionUtil,
|
||||
ps4_libSceContentExport,
|
||||
ps4_libSceConvertKeycode,
|
||||
ps4_libSceUsbd,
|
||||
ps4_libSceUsbStorage,
|
||||
ps4_libSceAudiodecCpu,
|
||||
ps4_libSceDepth,
|
||||
ps4_libSceNpTus,
|
||||
|
@ -305,6 +305,11 @@ begin
|
||||
if not FAjmMap.Delete(uiContext) then Result:=SCE_AJM_ERROR_INVALID_CONTEXT;
|
||||
end;
|
||||
|
||||
function ps4_sceAjmInstanceCodecType(uiCodec:SceAjmCodecType):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=uiCodec shr $E;
|
||||
end;
|
||||
|
||||
function ps4_sceAjmInstanceCreate(uiContext:SceAjmContextId;
|
||||
uiCodec:SceAjmCodecType;
|
||||
uiFlags:QWORD;
|
||||
@ -391,6 +396,19 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
function ps4_sceAjmBatchJobInlineBuffer(
|
||||
const pBatchPosition :Pointer;
|
||||
const pDataInput :Pointer;
|
||||
const szDataInputSize:QWORD;
|
||||
const pBatchAddress :PPointer):Pointer; SysV_ABI_CDecl;
|
||||
begin
|
||||
PDWORD(pBatchPosition)^ :=PDWORD(pBatchPosition)^ and $ffffffe0 or 7;
|
||||
PDWORD(pBatchPosition + 4)^:=(szDataInputSize + 7) and $fffffff8;
|
||||
Move(pDataInput^, Pointer(pBatchPosition + 8)^, szDataInputSize);
|
||||
pBatchAddress^:=(pBatchPosition + 8);
|
||||
Result:=pBatchPosition + 8 + ((szDataInputSize + 7) and $fffffffffffffff8);
|
||||
end;
|
||||
|
||||
function ps4_sceAjmBatchJobRunBufferRa(
|
||||
pBatchPosition:Pointer;
|
||||
uiInstance:SceAjmInstanceId;
|
||||
@ -477,9 +495,11 @@ begin
|
||||
lib^.set_proc($43777216EC069FAE,@ps4_sceAjmModuleRegister);
|
||||
lib^.set_proc($5A2EC3B652D5F8A2,@ps4_sceAjmModuleUnregister);
|
||||
lib^.set_proc($307BABEAA0AC52EB,@ps4_sceAjmFinalize);
|
||||
lib^.set_proc($7625E340D88CBBFB,@ps4_sceAjmInstanceCodecType);
|
||||
lib^.set_proc($031A03AC8369E09F,@ps4_sceAjmInstanceCreate);
|
||||
lib^.set_proc($45B2DBB8ABFCCE1A,@ps4_sceAjmInstanceDestroy);
|
||||
lib^.set_proc($7660F26CDFFF167F,@ps4_sceAjmBatchJobControlBufferRa);
|
||||
lib^.set_proc($B2D96086789CDC97,@ps4_sceAjmBatchJobInlineBuffer);
|
||||
lib^.set_proc($125B25382A4E227B,@ps4_sceAjmBatchJobRunBufferRa);
|
||||
lib^.set_proc($EE37405CAFB67CCA,@ps4_sceAjmBatchJobRunSplitBufferRa);
|
||||
lib^.set_proc($7C5164934C5F196B,@ps4_sceAjmBatchStartBuffer);
|
||||
|
@ -61,6 +61,13 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceNpSignalingSetContextOption(ctxId:DWORD;
|
||||
optname:Integer;
|
||||
optval:Integer):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function Load_libSceNpSignaling(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
@ -73,6 +80,7 @@ begin
|
||||
lib^.set_proc($E7262311D778B7C6,@ps4_sceNpSignalingCreateContext);
|
||||
lib^.set_proc($7432CD15D63C770B,@ps4_sceNpSignalingCreateContextA);
|
||||
lib^.set_proc($53C01032538505CF,@ps4_sceNpSignalingGetLocalNetInfo);
|
||||
lib^.set_proc($207443BD9A1D3D86,@ps4_sceNpSignalingSetContextOption);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -272,6 +272,18 @@ type
|
||||
responseDataSize:QWORD;
|
||||
end;
|
||||
|
||||
pSceNpWebApi2ExtdPushEventExtdDataKey=^SceNpWebApi2ExtdPushEventExtdDataKey;
|
||||
SceNpWebApi2ExtdPushEventExtdDataKey=packed record
|
||||
val:array[0..SCE_NP_WEBAPI_EXTD_PUSH_EVENT_EXTD_DATA_KEY_LEN_MAX] of AnsiChar;
|
||||
end;
|
||||
|
||||
pSceNpWebApi2PushEventFilterParameter=^SceNpWebApi2PushEventFilterParameter;
|
||||
SceNpWebApi2PushEventFilterParameter=packed record
|
||||
dataType :SceNpWebApi2ExtdPushEventExtdDataKey;
|
||||
pExtdDataKey :Pointer;
|
||||
extdDataKeyNum:QWORD;
|
||||
end;
|
||||
|
||||
const
|
||||
SCE_NP_WEBAPI2_PUSH_EVENT_UUID_LENGTH=36;
|
||||
|
||||
@ -325,6 +337,28 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceNpWebApi2PushEventCreateHandle(libCtxId:Integer):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceNpWebApi2PushEventCreateFilter(libCtxId:Integer;
|
||||
handleId:Integer;
|
||||
pNpServiceName:PChar;
|
||||
npServiceLabel:DWORD;
|
||||
pFilterParam:pSceNpWebApi2PushEventFilterParameter;
|
||||
filterParamNum:QWORD):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceNpWebApi2PushEventRegisterCallback(libCtxId:Integer;
|
||||
cbFunc:Pointer;
|
||||
pUserArg:Pointer):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
//NpWebApi2
|
||||
|
||||
function Load_libSceNpWebApi(Const name:RawByteString):TElf_node;
|
||||
@ -375,6 +409,9 @@ begin
|
||||
lib^.set_proc($B24E786E2E85B583,@ps4_sceNpWebApi2CreateUserContext);
|
||||
lib^.set_proc($41A7F179933758AE,@ps4_sceNpWebApi2PushEventDeletePushContext);
|
||||
lib^.set_proc($7A038EBEB9C5EA62,@ps4_sceNpWebApi2AddHttpRequestHeader);
|
||||
lib^.set_proc($595D46C0CDF63606,@ps4_sceNpWebApi2PushEventCreateHandle);
|
||||
lib^.set_proc($32C685851FA53C4E,@ps4_sceNpWebApi2PushEventCreateFilter);
|
||||
lib^.set_proc($7D8DD0A9E36417C9,@ps4_sceNpWebApi2PushEventRegisterCallback);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -7,6 +7,20 @@ interface
|
||||
uses
|
||||
ps4_program;
|
||||
|
||||
type
|
||||
pSceSslData=^SceSslData;
|
||||
SceSslData=packed record
|
||||
ptr :PChar;
|
||||
size:QWORD;
|
||||
end;
|
||||
|
||||
pSceSslCaCerts=^SceSslCaCerts;
|
||||
SceSslCaCerts=packed record
|
||||
certData :pSceSslData;
|
||||
certDataNum:QWORD;
|
||||
pool :Pointer;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
function ps4_sceSslInit(poolSize:size_t):Integer; SysV_ABI_CDecl;
|
||||
@ -21,6 +35,20 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceSslGetCaCerts(libsslCtxId:Integer;
|
||||
caCerts:pSceSslCaCerts):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Writeln('sceSslGetCaCerts:',libsslCtxId);
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceSslFreeCaCerts(libsslCtxId:Integer;
|
||||
caCerts:pSceSslCaCerts):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Writeln('sceSslFreeCaCerts:',libsslCtxId);
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function Load_libSceSsl(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
@ -32,6 +60,8 @@ begin
|
||||
|
||||
lib^.set_proc($85DA551140C55B7B,@ps4_sceSslInit);
|
||||
lib^.set_proc($D0AD7243A2EFFD87,@ps4_sceSslTerm);
|
||||
lib^.set_proc($4C37D0A8EFE031B6,@ps4_sceSslGetCaCerts);
|
||||
lib^.set_proc($A88BCBB34818C62D,@ps4_sceSslFreeCaCerts);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -8,6 +8,7 @@ uses
|
||||
ps4_program,
|
||||
Classes,
|
||||
SysUtils,
|
||||
ps4_libSceIme,
|
||||
ps4_libSceSaveData;
|
||||
|
||||
implementation
|
||||
@ -458,6 +459,20 @@ const
|
||||
SCE_SIGNIN_DIALOG_STATUS_RUNNING =2;
|
||||
SCE_SIGNIN_DIALOG_STATUS_FINISHED =3;
|
||||
|
||||
//SceSigninDialogResultType
|
||||
SCE_SIGNIN_DIALOG_RESULT_OK =0;
|
||||
SCE_SIGNIN_DIALOG_RESULT_USER_CANCELED=1;
|
||||
|
||||
type
|
||||
pSceSigninDialogResultType=^SceSigninDialogResultType;
|
||||
SceSigninDialogResultType=Integer;
|
||||
|
||||
pSceSigninDialogResult=^SceSigninDialogResult;
|
||||
SceSigninDialogResult=packed record
|
||||
_result :SceSigninDialogResultType;
|
||||
reserved:array[0..2] of Integer;
|
||||
end;
|
||||
|
||||
var
|
||||
status_signin_dialog:Integer=SCE_SIGNIN_DIALOG_STATUS_NONE;
|
||||
|
||||
@ -468,6 +483,11 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceSigninDialogGetResult(_result:pSceSigninDialogResult):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceSigninDialogTerminate():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Writeln('sceSigninDialogTerminate');
|
||||
@ -508,14 +528,55 @@ const
|
||||
SCE_IME_DIALOG_STATUS_RUNNING =1;
|
||||
SCE_IME_DIALOG_STATUS_FINISHED=2;
|
||||
|
||||
type
|
||||
pSceImeDialogParam=^SceImeDialogParam;
|
||||
SceImeDialogParam=packed record
|
||||
userId :Integer;
|
||||
_type :SceImeType;
|
||||
supportedLanguages :QWORD;
|
||||
enterLabel :SceImeEnterLabel;
|
||||
inputMethod :SceImeInputMethod;
|
||||
filter :SceImeTextFilter;
|
||||
option :DWORD;
|
||||
maxTextLength :DWORD;
|
||||
inputTextBuffer :PWideChar;
|
||||
posx :Single;
|
||||
posy :Single;
|
||||
horizontalAlignment:SceImeHorizontalAlignment;
|
||||
verticalAlignment :SceImeVerticalAlignment;
|
||||
placeholder :PWideChar;
|
||||
title :PWideChar;
|
||||
reserved :array[0..15] of ShortInt;
|
||||
end;
|
||||
|
||||
pSceImeParamExtended=^SceImeParamExtended;
|
||||
SceImeParamExtended=packed record
|
||||
option :DWORD;
|
||||
colorBase :SceImeColor;
|
||||
colorLine :SceImeColor;
|
||||
colorTextField :SceImeColor;
|
||||
colorPreedit :SceImeColor;
|
||||
colorButtonDefault :SceImeColor;
|
||||
colorButtonFunction :SceImeColor;
|
||||
colorButtonSymbol :SceImeColor;
|
||||
colorText :SceImeColor;
|
||||
colorSpecial :SceImeColor;
|
||||
priority :SceImePanelPriority;
|
||||
additionalDictionaryPath:PChar;
|
||||
extKeyboardFilter :SceImeExtKeyboardFilter;
|
||||
disableDevice :DWORD;
|
||||
extKeyboardMode :DWORD;
|
||||
reserved :array[0..59] of ShortInt;
|
||||
end;
|
||||
|
||||
var
|
||||
status_ime_dialog:Integer=SCE_IME_DIALOG_STATUS_NONE;
|
||||
|
||||
//function ps4_sceImeDialogInit(param:pSceImeDialogParam;
|
||||
// extended:pSceImeParamExtended
|
||||
// ):Integer; SysV_ABI_CDecl;
|
||||
//
|
||||
//nop nid:libSceImeDialog:354781ACDEE1CDFD:sceImeDialogInit
|
||||
function ps4_sceImeDialogInit(const param:pSceImeDialogParam;
|
||||
const extended:pSceImeParamExtended):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceImeDialogGetStatus:Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
@ -529,6 +590,11 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceLoginDialogUpdateStatus():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
//
|
||||
|
||||
function ps4_sceHmdSetupDialogInitialize():Integer; SysV_ABI_CDecl;
|
||||
@ -572,6 +638,23 @@ end;
|
||||
|
||||
//
|
||||
|
||||
function ps4_sceWebBrowserDialogUpdateStatus():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceWebBrowserDialogGetStatus():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceWebBrowserDialogTerminate():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
//
|
||||
|
||||
function Load_libSceCommonDialog(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
@ -676,6 +759,7 @@ begin
|
||||
lib^.set_proc($9A56067E6A84DDF4,@ps4_sceSigninDialogInitialize);
|
||||
lib^.set_proc($265A49568456BFB5,@ps4_sceSigninDialogOpen);
|
||||
lib^.set_proc($070DF59624C54F70,@ps4_sceSigninDialogUpdateStatus);
|
||||
lib^.set_proc($9EA1BBAEA9D8C355,@ps4_sceSigninDialogGetResult);
|
||||
lib^.set_proc($2D79664BA3EF25D5,@ps4_sceSigninDialogTerminate);
|
||||
end;
|
||||
|
||||
@ -696,6 +780,7 @@ begin
|
||||
Result:=TElf_node.Create;
|
||||
Result.pFileName:=name;
|
||||
lib:=Result._add_lib('libSceImeDialog');
|
||||
lib^.set_proc($354781ACDEE1CDFD,@ps4_sceImeDialogInit);
|
||||
lib^.set_proc($2000E60F8B527016,@ps4_sceImeDialogGetStatus);
|
||||
end;
|
||||
|
||||
@ -707,6 +792,7 @@ begin
|
||||
Result.pFileName:=name;
|
||||
lib:=Result._add_lib('libSceLoginDialog');
|
||||
lib^.set_proc($A8FFC4BD0465D877,@ps4_sceLoginDialogInitialize);
|
||||
lib^.set_proc($DAB73E7A049F6F90,@ps4_sceLoginDialogUpdateStatus);
|
||||
end;
|
||||
|
||||
function Load_libSceHmdSetupDialog(Const name:RawByteString):TElf_node;
|
||||
@ -744,6 +830,19 @@ begin
|
||||
lib^.set_proc($F7E83D88EABEEE48,@ps4_sceInvitationDialogUpdateStatus);
|
||||
end;
|
||||
|
||||
function Load_libSceWebBrowserDialog(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
begin
|
||||
Result:=TElf_node.Create;
|
||||
Result.pFileName:=name;
|
||||
|
||||
lib:=Result._add_lib('libSceWebBrowserDialog');
|
||||
lib^.set_proc($875751FEDE484A08,@ps4_sceWebBrowserDialogUpdateStatus);
|
||||
lib^.set_proc($0854C6E9AF138CE5,@ps4_sceWebBrowserDialogGetStatus);
|
||||
lib^.set_proc($A1C1EDC81C077F2B,@ps4_sceWebBrowserDialogTerminate);
|
||||
end;
|
||||
|
||||
initialization
|
||||
ps4_app.RegistredPreLoad('libSceCommonDialog.prx' ,@Load_libSceCommonDialog);
|
||||
ps4_app.RegistredPreLoad('libSceErrorDialog.prx' ,@Load_libSceErrorDialog);
|
||||
@ -758,6 +857,7 @@ initialization
|
||||
ps4_app.RegistredPreLoad('libSceHmdSetupDialog.prx' ,@Load_libSceHmdSetupDialog);
|
||||
ps4_app.RegistredPreLoad('libSceNpFriendListDialog.prx' ,@Load_libSceNpFriendListDialog);
|
||||
ps4_app.RegistredPreLoad('libSceInvitationDialog.prx' ,@Load_libSceInvitationDialog);
|
||||
ps4_app.RegistredPreLoad('libSceWebBrowserDialog.prx' ,@Load_libSceWebBrowserDialog);
|
||||
|
||||
end.
|
||||
|
||||
|
@ -23,6 +23,7 @@ uses
|
||||
sys_kernel,
|
||||
ps4_queue,
|
||||
ps4_libkernel,
|
||||
ps4_kernel_file,
|
||||
ps4_libSceVideoOut{, ps4_pssl};
|
||||
|
||||
const
|
||||
@ -2105,6 +2106,12 @@ var
|
||||
|
||||
ComputeEvents:array[0..6] of Thamt64locked;
|
||||
|
||||
procedure ps4_sceGnmDebugHardwareStatus(flag:DWORD); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (flag<>0) then Exit;
|
||||
//kmd_dump_status(g_gcHandle,0,0);
|
||||
end;
|
||||
|
||||
function _sceGnmAddEqEvent(eq:SceKernelEqueue;id:Integer;udata:Pointer):Integer;
|
||||
var
|
||||
pEvents:Phamt64locked;
|
||||
@ -2159,6 +2166,46 @@ begin
|
||||
_sig_unlock;
|
||||
end;
|
||||
|
||||
function _sceGnmDeleteEqEvent(eq:SceKernelEqueue;id:Integer):Integer;
|
||||
var
|
||||
pEvents:Phamt64locked;
|
||||
P:PPointer;
|
||||
node:PKEventNode;
|
||||
begin
|
||||
Writeln('sceGnmDeleteEqEvent:',id);
|
||||
|
||||
Case id of
|
||||
kEqEventCompute0RelMem..kEqEventCompute6RelMem
|
||||
|
||||
:pEvents:=@ComputeEvents[id];
|
||||
kEqEventGfxEop :pEvents:=@EopEvents;
|
||||
else
|
||||
Exit(SCE_KERNEL_ERROR_EINVAL);
|
||||
end;
|
||||
|
||||
pEvents^.LockWr;
|
||||
P:=HAMT_search64(@pEvents^.hamt,QWORD(eq));
|
||||
if (P<>nil) then
|
||||
begin
|
||||
node:=P^;
|
||||
_free_kevent_node(node);
|
||||
end else
|
||||
begin
|
||||
pEvents^.Unlock;
|
||||
Exit(SCE_KERNEL_ERROR_ENOENT);
|
||||
end;
|
||||
pEvents^.Unlock;
|
||||
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceGnmDeleteEqEvent(eq:SceKernelEqueue;id:Integer):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
_sig_lock;
|
||||
Result:=_sceGnmDeleteEqEvent(eq,id);
|
||||
_sig_unlock;
|
||||
end;
|
||||
|
||||
procedure _on_trigger_eop(data,userdata:Pointer);
|
||||
var
|
||||
node:PKEventNode;
|
||||
@ -2269,7 +2316,10 @@ begin
|
||||
|
||||
lib^.set_proc($4CB5789ACC226780,@ps4_sceGnmDriverCaptureInProgress);
|
||||
|
||||
lib^.set_proc($AA91884F33C4F997,@ps4_sceGnmDebugHardwareStatus);
|
||||
|
||||
lib^.set_proc($6F4C729659D563F2,@ps4_sceGnmAddEqEvent);
|
||||
lib^.set_proc($3D54FE7EEA12F605,@ps4_sceGnmDeleteEqEvent);
|
||||
|
||||
lib^.set_proc($6F4F0082D3E51CF8,@ps4_sceGnmAreSubmitsAllowed);
|
||||
|
||||
|
@ -595,10 +595,10 @@ type
|
||||
end;
|
||||
|
||||
SceImeEditText=packed record
|
||||
str:pWideChar;
|
||||
str :pWideChar;
|
||||
caretIndex:DWORD;
|
||||
areaNum:DWORD;
|
||||
textArea:array[0..SCE_IME_MAX_TEXT_AREA-1] of SceImeTextAreaProperty;
|
||||
areaNum :DWORD;
|
||||
textArea :array[0..SCE_IME_MAX_TEXT_AREA-1] of SceImeTextAreaProperty;
|
||||
end;
|
||||
|
||||
SceImePositionAndForm=packed record
|
||||
@ -631,30 +631,30 @@ type
|
||||
|
||||
pSceImeKeyboardInfo=^SceImeKeyboardInfo;
|
||||
SceImeKeyboardInfo=packed record
|
||||
userId:Integer;
|
||||
device:Integer; //SceImeKeyboardDeviceType
|
||||
_type:Integer; //SceImeKeyboardType
|
||||
userId :Integer;
|
||||
device :Integer; //SceImeKeyboardDeviceType
|
||||
_type :Integer; //SceImeKeyboardType
|
||||
repeatDelay:DWORD;
|
||||
repeatRate :DWORD;
|
||||
status:Integer; //SceImeKeyboardStatus
|
||||
reserved:array[0..11] of Byte;
|
||||
status :Integer; //SceImeKeyboardStatus
|
||||
reserved :array[0..11] of Byte;
|
||||
end;
|
||||
|
||||
pSceImeKeyboardResourceIdArray=^SceImeKeyboardResourceIdArray;
|
||||
SceImeKeyboardResourceIdArray=packed record
|
||||
userId:Integer;
|
||||
userId :Integer;
|
||||
resourceId:array[0..SCE_IME_KEYBOARD_MAX_NUMBER-1] of DWORD;
|
||||
end;
|
||||
|
||||
SceImeKeycode=packed record
|
||||
keycode:Word;
|
||||
character:WideChar;
|
||||
status:DWORD;
|
||||
_type:Integer; //SceImeKeyboardType
|
||||
userId:Integer;
|
||||
keycode :Word;
|
||||
character :WideChar;
|
||||
status :DWORD;
|
||||
_type :Integer; //SceImeKeyboardType
|
||||
userId :Integer;
|
||||
resourceId:DWORD;
|
||||
_align:Integer;
|
||||
timestamp:QWORD; //SceRtcTick
|
||||
_align :Integer;
|
||||
timestamp :QWORD; //SceRtcTick
|
||||
end;
|
||||
|
||||
pSceImeEventParam=^SceImeEventParam;
|
||||
@ -680,14 +680,51 @@ type
|
||||
param:SceImeEventParam;
|
||||
end;
|
||||
|
||||
pSceImeType=^SceImeType;
|
||||
SceImeType=Integer;
|
||||
|
||||
pSceImeEnterLabel=^SceImeEnterLabel;
|
||||
SceImeEnterLabel=Integer;
|
||||
|
||||
pSceImeInputMethod=^SceImeInputMethod;
|
||||
SceImeInputMethod=Integer;
|
||||
|
||||
pSceImeTextFilter=^SceImeTextFilter;
|
||||
SceImeTextFilter=packed record
|
||||
outText :PWideChar;
|
||||
outTextLength:PDWORD;
|
||||
srcText :PWideChar;
|
||||
srcTextLength:DWORD;
|
||||
end;
|
||||
|
||||
pSceImeHorizontalAlignment=^SceImeHorizontalAlignment;
|
||||
SceImeHorizontalAlignment=Integer;
|
||||
|
||||
pSceImeVerticalAlignment=^SceImeVerticalAlignment;
|
||||
SceImeVerticalAlignment=Integer;
|
||||
|
||||
pSceImePanelPriority=^SceImePanelPriority;
|
||||
SceImePanelPriority=Integer;
|
||||
|
||||
pSceImeKeyboardType=^SceImeKeyboardType;
|
||||
SceImeKeyboardType=Integer;
|
||||
|
||||
pSceImeExtKeyboardFilter=^SceImeExtKeyboardFilter;
|
||||
SceImeExtKeyboardFilter=packed record
|
||||
srcKeycode:SceImeKeycode;
|
||||
outKeycode:Word;
|
||||
outStatus :PDWORD;
|
||||
reserved :Pointer;
|
||||
end;
|
||||
|
||||
SceImeEventHandler=procedure(arg:Pointer;e:pSceImeEvent); SysV_ABI_CDecl;
|
||||
|
||||
pSceImeKeyboardParam=^SceImeKeyboardParam;
|
||||
SceImeKeyboardParam=packed record
|
||||
option:DWORD;
|
||||
option :DWORD;
|
||||
reserved1:DWORD;
|
||||
arg:Pointer;
|
||||
handler:SceImeEventHandler;
|
||||
arg :Pointer;
|
||||
handler :SceImeEventHandler;
|
||||
reserved2:QWORD;
|
||||
end;
|
||||
|
||||
|
@ -467,6 +467,11 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceNetBandwidthControlSetDefaultParam(param1:Pointer;param2:Integer):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceNetCtlInit:Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
@ -779,6 +784,7 @@ begin
|
||||
lib^.set_proc($3975D7E26524DEE9,@ps4_sceNetConnect);
|
||||
lib^.set_proc($76B8C86C36C0ED44,@ps4_sceNetEpollWait);
|
||||
lib^.set_proc($227A7595F2FE25DC,@ps4_sceNetEpollDestroy);
|
||||
lib^.set_proc($3F8CD95C4EDBA6C0,@ps4_sceNetBandwidthControlSetDefaultParam);
|
||||
end;
|
||||
|
||||
function Load_libSceNetCtl(Const name:RawByteString):TElf_node;
|
||||
|
35
src/ps4_libsceusbstorage.pas
Normal file
35
src/ps4_libsceusbstorage.pas
Normal file
@ -0,0 +1,35 @@
|
||||
unit ps4_libSceUsbStorage;
|
||||
|
||||
{$mode ObjFPC}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
ps4_program,
|
||||
Classes,
|
||||
SysUtils,
|
||||
sys_pthread;
|
||||
|
||||
implementation
|
||||
|
||||
function ps4_sceUsbStorageInit(pAttr:p_pthread_attr_t):Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function Load_libSceUsbStorage(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
begin
|
||||
Result:=TElf_node.Create;
|
||||
Result.pFileName:=name;
|
||||
|
||||
lib:=Result._add_lib('libSceUsbStorage');
|
||||
lib^.set_proc($0430D9C05E64B937,@ps4_sceUsbStorageInit);
|
||||
end;
|
||||
|
||||
initialization
|
||||
ps4_app.RegistredPreLoad('libSceUsbStorage.prx' ,@Load_libSceUsbStorage);
|
||||
|
||||
end.
|
||||
|
@ -757,6 +757,15 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
function ps4_sceVideoOutAddDriver(driver_id:Integer; //driver id
|
||||
cbs :Pointer; //cbs table
|
||||
param_3 :PDWORD;
|
||||
param_4 :QWORD):Pointer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Assert(false,'TODO:abstract driver structure');
|
||||
Result:=nil; //need link to *t_driver structure
|
||||
end;
|
||||
|
||||
function ps4_sceVideoOutAddFlipEvent(eq:SceKernelEqueue;hVideo:Integer;udata:Pointer):Integer; SysV_ABI_CDecl;
|
||||
var
|
||||
H:TVideoOut;
|
||||
@ -2038,6 +2047,7 @@ begin
|
||||
lib^.set_proc($32DE101C793190E7,@ps4_sceVideoOutGetEventCount);
|
||||
lib^.set_proc($AD651370A7645334,@ps4_sceVideoOutGetEventData);
|
||||
lib^.set_proc($536249B52A8D2992,@ps4_sceVideoOutGetEventId);
|
||||
lib^.set_proc($1EDC127781F64F0B,@ps4_sceVideoOutAddDriver);
|
||||
lib^.set_proc($1D7CE32BDC88DF49,@ps4_sceVideoOutAddFlipEvent);
|
||||
lib^.set_proc($5EBBBDDB01C94668,@ps4_sceVideoOutAddVblankEvent);
|
||||
lib^.set_proc($8BAFEC47DD56B7FE,@ps4_sceVideoOutSetBufferAttribute);
|
||||
|
@ -176,6 +176,11 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceVoiceResumePortAll():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function Load_libSceVoice(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
@ -194,6 +199,7 @@ begin
|
||||
lib^.set_proc($710E831AC4048D5E,@ps4_sceVoiceReadFromOPort);
|
||||
lib^.set_proc($4011680088C9A174,@ps4_sceVoiceSetVolume);
|
||||
lib^.set_proc($8305329E41203456,@ps4_sceVoiceSetMuteFlag);
|
||||
lib^.set_proc($8DB909166399F54D,@ps4_sceVoiceResumePortAll);
|
||||
end;
|
||||
|
||||
function Load_libSceVoiceQoS(Const name:RawByteString):TElf_node;
|
||||
|
@ -1,53 +0,0 @@
|
||||
unit ps4_libSceWebBrowserDialog;
|
||||
|
||||
{$mode ObjFPC}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
ps4_program,
|
||||
Classes,
|
||||
SysUtils;
|
||||
|
||||
const
|
||||
//SceCommonDialogStatus
|
||||
SCE_COMMON_DIALOG_STATUS_NONE =0;
|
||||
SCE_COMMON_DIALOG_STATUS_INITIALIZED=1;
|
||||
SCE_COMMON_DIALOG_STATUS_RUNNING =2;
|
||||
SCE_COMMON_DIALOG_STATUS_FINISHED =3;
|
||||
|
||||
implementation
|
||||
|
||||
function ps4_sceWebBrowserDialogUpdateStatus():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceWebBrowserDialogGetStatus():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function ps4_sceWebBrowserDialogTerminate():Integer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function Load_libSceWebBrowserDialog(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
begin
|
||||
Result:=TElf_node.Create;
|
||||
Result.pFileName:=name;
|
||||
|
||||
lib:=Result._add_lib('libSceWebBrowserDialog');
|
||||
lib^.set_proc($875751FEDE484A08,@ps4_sceWebBrowserDialogUpdateStatus);
|
||||
lib^.set_proc($0854C6E9AF138CE5,@ps4_sceWebBrowserDialogGetStatus);
|
||||
lib^.set_proc($A1C1EDC81C077F2B,@ps4_sceWebBrowserDialogTerminate);
|
||||
end;
|
||||
|
||||
initialization
|
||||
ps4_app.RegistredPreLoad('libSceWebBrowserDialog.prx',@Load_libSceWebBrowserDialog);
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user