mirror of
https://github.com/IllusionMan1212/vitasdk-odin.git
synced 2026-10-24 02:12:38 +00:00
354 lines
11 KiB
Odin
354 lines
11 KiB
Odin
package commondialog
|
|
|
|
import "core:c"
|
|
import sce "../common"
|
|
import sceGxm "../Gxm"
|
|
import sceNet "../Net"
|
|
import scePspnet "../PspnetAdhoc"
|
|
|
|
SCE_COMMON_DIALOG_MAGIC_NUMBER :: 0xC0D1A109
|
|
|
|
/* Errors */
|
|
// TODO: should be c.int
|
|
SceCommonDialogErrorCode :: enum i64 {
|
|
BUSY = 0x80020401,
|
|
NULL = 0x80020402,
|
|
INVALID_ARGUMENT = 0x80020403,
|
|
NOT_RUNNING = 0x80020404,
|
|
NOT_SUPPORTED = 0x80020405,
|
|
ILLEGAL_CALLER_THREAD = 0x80020406,
|
|
NOT_CONFIGURED = 0x80020407,
|
|
NOT_AVAILABLE = 0x80020408,
|
|
NOT_FINISHED = 0x80020410,
|
|
NOT_IN_USE = 0x80020411,
|
|
INVALID_COLOR_FORMAT = 0x80020420,
|
|
INVALID_SURFACE_RESOLUTION = 0x80020421,
|
|
INVALID_SURFACE_STRIDE = 0x80020422,
|
|
INVALID_SURFACE_TYPE = 0x80020423,
|
|
WITHIN_SCENE = 0x80020424,
|
|
IME_IN_USE = 0x80020430,
|
|
INVALID_LANGUAGE = 0x80020431,
|
|
INVALID_ENTER_BUTTON_ASSIGN = 0x80020432,
|
|
INVALID_INFOBAR_PARAM = 0x80020433,
|
|
INVALID_BG_COLOR = 0x80020434,
|
|
INVALID_DIMMER_COLOR = 0x80020435,
|
|
GXM_IS_UNINITIALIZED = 0x80020436,
|
|
UNEXPECTED_FATAL = 0x8002047F
|
|
}
|
|
|
|
SceCommonDialogConfigParam :: struct {
|
|
sdkVersion: sce.UInt32,
|
|
language: sce.SceSystemParamLang,
|
|
enterButtonAssign: sce.SceSystemParamEnterButtonAssign,
|
|
reserved: [32]sce.UInt8,
|
|
}
|
|
#assert(size_of(SceCommonDialogConfigParam) == 0x2C)
|
|
|
|
SceCommonDialogStatus :: enum c.int {
|
|
NONE = 0,
|
|
RUNNING = 1,
|
|
FINISHED = 2
|
|
}
|
|
|
|
SceCommonDialogResult :: enum c.int {
|
|
OK,
|
|
USER_CANCELED,
|
|
ABORTED
|
|
}
|
|
|
|
SceCommonDialogRenderTargetInfo :: struct {
|
|
depthSurfaceData: sce.PVoid,
|
|
colorSurfaceData: sce.PVoid,
|
|
surfaceType: sceGxm.SceGxmColorSurfaceType,
|
|
colorFormat: sceGxm.SceGxmColorFormat,
|
|
width: sce.UInt32,
|
|
height: sce.UInt32,
|
|
strideInPixels: sce.UInt32,
|
|
reserved: [32]sce.UInt8,
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceCommonDialogRenderTargetInfo) == 0x3C)
|
|
}
|
|
|
|
SceCommonDialogUpdateParam :: struct {
|
|
renderTarget: SceCommonDialogRenderTargetInfo,
|
|
displaySyncObject: ^sceGxm.SceGxmSyncObject,
|
|
reserved: [32]sce.UInt8,
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceCommonDialogUpdateParam) == 0x60)
|
|
}
|
|
|
|
SceCommonDialogInfobarParam :: struct {
|
|
visibility: sce.Int32,
|
|
color: sce.Int32,
|
|
transparency: sce.Int32,
|
|
reserved: [32]sce.UInt8,
|
|
}
|
|
#assert(size_of(SceCommonDialogInfobarParam) == 0x2C)
|
|
|
|
SceCommonDialogColor :: struct {
|
|
r: sce.UInt8,
|
|
g: sce.UInt8,
|
|
b: sce.UInt8,
|
|
a: sce.UInt8,
|
|
}
|
|
#assert(size_of(SceCommonDialogColor) == 4)
|
|
|
|
SceCommonDialogBgColor :: SceCommonDialogColor
|
|
#assert(size_of(SceCommonDialogBgColor) == 4)
|
|
|
|
SceCommonDialogParam :: struct {
|
|
infobarParam: ^SceCommonDialogInfobarParam,
|
|
bgColor: ^SceCommonDialogColor,
|
|
dimmerColor: ^SceCommonDialogColor,
|
|
reserved: [60]sce.UInt8,
|
|
magic: sce.UInt32,
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceCommonDialogParam) == 0x4C)
|
|
}
|
|
|
|
|
|
// TODO:
|
|
SceMsgDialogErrorCode :: enum c.uint {
|
|
//! Illegal parameter
|
|
SCE_MSG_DIALOG_ERROR_PARAM = 0x80100A01
|
|
}
|
|
|
|
//! Max length of a user message
|
|
SCE_MSG_DIALOG_USER_MSG_SIZE :: 512
|
|
|
|
SceMsgDialogMode :: enum c.int {
|
|
INVALID = 0,
|
|
USER_MSG = 1,
|
|
SYSTEM_MSG = 2,
|
|
ERROR_CODE = 3,
|
|
PROGRESS_BAR = 4
|
|
}
|
|
|
|
SceMsgDialogSystemMessageType :: enum c.int {
|
|
INVALID = 0,
|
|
//! Displays "Please wait."
|
|
WAIT = 1,
|
|
//! Displays "There is not enough free space on the memory card."
|
|
NOSPACE = 2,
|
|
//! Displays "Move away from the source of interference, or adjust the compass by moving your PS Vita system as shown below."
|
|
MAGNETIC_CALIBRATION = 3,
|
|
//! Displays "Please wait." in a small message dialog
|
|
WAIT_SMALL = 5,
|
|
//! Displays "Please wait..." with a cancel button
|
|
WAIT_CANCEL = 6,
|
|
//! Displays "Cannot continue the application. No memory card is inserted."
|
|
NEED_MC_CONTINUE = 7,
|
|
//! Displays "Cannot perform this operation. No memory card is inserted."
|
|
NEED_MC_OPERATION = 8,
|
|
//! Displays "You must enable the microphone."
|
|
TRC_MIC_DISABLED = 100,
|
|
//! Displays "You must use Wi-Fi to do this."
|
|
TRC_WIFI_REQUIRED_OPERATION = 101,
|
|
//! Displays "You must use Wi-Fi to use this application."
|
|
TRC_WIFI_REQUIRED_APPLICATION = 102,
|
|
//! Displays "No content is available yet."
|
|
TRC_EMPTY_STORE = 103
|
|
}
|
|
|
|
SceMsgDialogButtonType :: enum c.int {
|
|
TYPE_OK = 0,
|
|
TYPE_YESNO = 1,
|
|
TYPE_NONE = 2,
|
|
TYPE_OK_CANCEL = 3,
|
|
TYPE_CANCEL = 4,
|
|
TYPE_3BUTTONS = 5
|
|
}
|
|
|
|
SceMsgDialogButtonId :: enum c.int {
|
|
INVALID = 0,
|
|
OK = 1,
|
|
YES = 1,
|
|
NO = 2,
|
|
RETRY = 3,
|
|
BUTTON1 = 1,
|
|
BUTTON2 = 2,
|
|
BUTTON3 = 3
|
|
}
|
|
|
|
SceMsgDialogProgressBarType :: enum c.int {
|
|
PERCENTAGE = 0
|
|
}
|
|
|
|
SceMsgDialogProgressBarTarget :: enum c.int {
|
|
DEFAULT = 0
|
|
}
|
|
|
|
SceMsgDialogEnvFlag :: enum c.int {
|
|
DEFAULT = 0
|
|
}
|
|
|
|
SceMsgDialogFontSize :: enum c.int {
|
|
DEFAULT = 0,
|
|
SMALL = 1
|
|
}
|
|
|
|
SceMsgDialogButtonsParam :: struct {
|
|
msg1: cstring, //!< Text of the first button
|
|
fontSize1: sce.Int32, //!< Font size of the first button (one of ::SceMsgDialogFontSize)
|
|
msg2: cstring, //!< Text of the second button
|
|
fontSize2: sce.Int32, //!< Font size of the second button (one of ::SceMsgDialogFontSize)
|
|
msg3: cstring, //!< Text of the third button
|
|
fontSize3: sce.Int32, //!< Font size of the third button (one of ::SceMsgDialogFontSize)
|
|
reserved: [32]sce.Char8, //!< Reserved range
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceMsgDialogButtonsParam) == 0x38)
|
|
}
|
|
|
|
SceMsgDialogUserMessageParam :: struct {
|
|
buttonType: sce.Int32, //!< Type of button set (one of ::SceMsgDialogButtonType)
|
|
msg: cstring, //!< Displayed message
|
|
buttonParam: ^SceMsgDialogButtonsParam, //!< Buttons parameters
|
|
reserved: [28]sce.Char8, //!< Reserved range
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceMsgDialogUserMessageParam) == 0x28)
|
|
}
|
|
|
|
SceMsgDialogSystemMessageParam :: struct {
|
|
sysMsgType: sce.Int32, //!< System message type (one of ::SceMsgDialogSystemMessageType)
|
|
value: sce.Int32, //!< Additional value
|
|
reserved: [32]sce.Char8, //!< Reserved range
|
|
}
|
|
#assert(size_of(SceMsgDialogSystemMessageParam) == 0x28)
|
|
|
|
SceMsgDialogErrorCodeParam :: struct {
|
|
errorCode: sce.Int32, //!< Displayed error code
|
|
reserved: [32]sce.Char8, //!< Reserved range
|
|
}
|
|
#assert(size_of(SceMsgDialogErrorCodeParam) == 0x24)
|
|
|
|
SceMsgDialogProgressBarParam :: struct {
|
|
barType: sce.Int32, //!< Progress bar type (one of ::SceMsgDialogProgressBarType)
|
|
sysMsgParam: SceMsgDialogSystemMessageParam, //!< Displayed system message
|
|
msg: cstring, //!< Displayed user message
|
|
reserved: [8]sce.Int32, //!< Reserved range
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceMsgDialogProgressBarParam) == 0x50)
|
|
}
|
|
|
|
SceMsgDialogParam :: struct {
|
|
sdkVersion: sce.UInt32, //!< Required to use MsgDialog. Just use NULL
|
|
commonParam: SceCommonDialogParam, //!< Common parameter
|
|
mode: sce.Int32, //!< Mode of function (one of ::SceMsgDialogMode)
|
|
userMsgParam: ^SceMsgDialogUserMessageParam, //!< Parameter for user message
|
|
sysMsgParam: ^SceMsgDialogSystemMessageParam, //!< Parameter for system prepared message
|
|
errorCodeParam: ^SceMsgDialogErrorCodeParam, //!< Parameter for display error code
|
|
progBarParam: ^SceMsgDialogProgressBarParam, //!< Parameter for progress bar
|
|
flag: sce.Int32, //!< Settings for dialog environment (one of ::SceMsgDialogEnvFlag)
|
|
reserved: [32]sce.Char8, //!< Reserved range
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceMsgDialogParam) == 0x88)
|
|
}
|
|
|
|
SceMsgDialogResult :: struct {
|
|
mode: sce.Int32, //!< Mode of function (one of ::SceMsgDialogMode)
|
|
result: sce.Int32, //!< Result of executing function
|
|
buttonId: sce.Int32, //!< Id of button user selected (one of ::SceMsgDialogButtonId)
|
|
reserved: [32]sce.Char8, //!< Reserved range
|
|
}
|
|
#assert(size_of(SceMsgDialogResult) == 0x2C)
|
|
|
|
|
|
// TODO:
|
|
SceNetCheckDialoErrorCode :: enum c.uint {
|
|
PARAM = 0x80100C01,
|
|
INVALID_MODE = 0x80100C02,
|
|
LACK_OF_LIBHTTP_POOL_SIZE = 0x80100C03,
|
|
LACK_OF_LIBSSL_POOL_SIZE = 0x80100C04,
|
|
LATEST_PATCH_PKG_EXIST = 0x80100C05,
|
|
SIGN_OUT = 0x80100C06,
|
|
INVALID_PSPADHOC_PARAM = 0x80100C07,
|
|
INVALID_TIMEOUT_PARAM = 0x80100C08,
|
|
PSN_AGE_RESTRICTION = 0x80100C09
|
|
}
|
|
|
|
SCE_NETCHECK_DIALOG_LEAST_HTTP_POOL_SIZE :: (36 * 1024)
|
|
SCE_NETCHECK_DIALOG_LEAST_SSL_POOL_SIZE :: (96 * 1024)
|
|
SCE_NETCHECK_DIALOG_INITIAL_AGE_RESTRICTION :: (-1)
|
|
SCE_NETCHECK_DIALOG_COUNTRY_CODE_LEN :: (2)
|
|
SCE_NETCHECK_DIALOG_AGE_RESTRICTION_COUNT_MAX :: (200)
|
|
|
|
SceNetCheckDialogMode :: enum c.int {
|
|
INVALID = 0,
|
|
ADHOC_CONN = 1,
|
|
PSN = 2,
|
|
PSN_ONLINE = 3,
|
|
PS3_CONNECT = 4,
|
|
PSP_ADHOC_CONN = 5,
|
|
PSP_ADHOC_CREATE = 6,
|
|
PSP_ADHOC_JOIN = 7
|
|
}
|
|
|
|
SceNetCheckDialogPS3ConnectAction :: enum c.int {
|
|
ENTER = 0,
|
|
LEAVE = 1
|
|
}
|
|
|
|
SceNpCommunicationId :: struct {
|
|
data: [9]c.char,
|
|
term: c.char,
|
|
num: sce.UChar8,
|
|
dummy: c.char,
|
|
}
|
|
#assert(size_of(SceNpCommunicationId) == 0xC)
|
|
|
|
SceNetCheckDialogPS3ConnectParam :: struct {
|
|
action: sce.Int32,
|
|
ssid: [32 + 1]c.char,
|
|
wpaKey: [64 + 1]c.char,
|
|
titleId: [9 + 1]c.char,
|
|
}
|
|
#assert(size_of(SceNetCheckDialogPS3ConnectParam) == 0x70)
|
|
|
|
SceNetCheckDialogAgeRestriction :: struct {
|
|
countryCode: [SCE_NETCHECK_DIALOG_COUNTRY_CODE_LEN]c.char,
|
|
age: sce.Int8,
|
|
padding: sce.Int8,
|
|
}
|
|
#assert(size_of(SceNetCheckDialogAgeRestriction) == 4)
|
|
|
|
SceNetCheckDialogParam :: struct {
|
|
sdkVersion: sce.UInt32,
|
|
commonParam: SceCommonDialogParam,
|
|
mode: sce.Int32,
|
|
npCommunicationId: SceNpCommunicationId,
|
|
ps3ConnectParam: ^SceNetCheckDialogPS3ConnectParam,
|
|
groupName: ^scePspnet.SceNetAdhocctlGroupName,
|
|
timeoutUs: sce.UInt32,
|
|
defaultAgeRestriction: sce.Int8,
|
|
padding: [3]sce.Int8,
|
|
ageRestrictionCount: sce.Int32,
|
|
ageRestriction: ^SceNetCheckDialogAgeRestriction,
|
|
reserved: [104]sce.UInt8,
|
|
}
|
|
when size_of(rawptr) == 4 {
|
|
#assert(size_of(SceNetCheckDialogParam) == 0xE0)
|
|
}
|
|
|
|
SceNetCheckDialogResult :: struct {
|
|
result: sce.Int32,
|
|
psnModeSucceeded: sce.Bool,
|
|
reserved: [124]sce.UInt8,
|
|
}
|
|
#assert(size_of(SceNetCheckDialogResult) == 0x84)
|
|
|
|
SceNetCheckDialogPS3ConnectInfo :: struct {
|
|
inaddr: sceNet.SceNetInAddr,
|
|
nickname: [128]sce.UInt8,
|
|
macAddress: [6]sce.UInt8,
|
|
reserved: [6]sce.UInt8,
|
|
}
|
|
#assert(size_of(SceNetCheckDialogPS3ConnectInfo) == 0x90)
|
|
|