/*
This file is part of jpcsp.
Jpcsp is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Jpcsp is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Jpcsp. If not, see <http://www.gnu.org/licenses/>.
*/
package jpcsp.HLE.kernel.types;
public class SceUtilityHtmlViewerParams extends pspUtilityBaseDialog {
public int dataAddr;
public int dataSize;
public int bookmarkNum;
public int bookmarkAddr;
public SceUtilityHtmlViewerBookmark bookmark;
public int urlAddr;
public String url;
public int tabNum;
public int userInterfaceLevel;
public final static int PSP_UTILITY_HTMLVIEWER_USER_INTERFACE_FULL = 0;
public final static int PSP_UTILITY_HTMLVIEWER_USER_INTERFACE_PARTIAL = 1;
public final static int PSP_UTILITY_HTMLVIEWER_USER_INTERFACE_NONE= 2;
public int initFlag;
public final static int PSP_UTILITY_HTMLVIEWER_USE_START_SCREEN = 0x1;
public final static int PSP_UTILITY_HTMLVIEWER_DISABLE_RESTRICTIONS = 0x2;
public SceUtilityHtmlViewerFile fileDownload;
public SceUtilityHtmlViewerFile fileUpload;
public int fileConfigAddr;
public SceUtilityHtmlViewerConfig fileConfig;
public int disconnectAutoFlag;
public final static int PSP_UTILITY_HTMLVIEWER_DISCONNECT_AUTO_ON = 0;
public final static int PSP_UTILITY_HTMLVIEWER_DISCONNECT_AUTO_OFF = 1;
public final static int PSP_UTILITY_HTMLVIEWER_DISCONNECT_AUTO_ASK = 2;
public static class SceUtilityHtmlViewerBookmark extends pspAbstractMemoryMappedStructure {
public int urlAddr;
public String url;
public int titleAddr;
public String title;
public int unk1;
public int unk2;
@Override
protected void read() {
urlAddr = read32();
url = readStringZ(urlAddr);
titleAddr = read32();
title = readStringZ(titleAddr);
unk1 = read32();
unk2 = read32();
}
@Override
protected void write() {
write32(urlAddr);
writeStringZ(url, urlAddr);
write32(titleAddr);
writeStringZ(title, titleAddr);
write32(unk1);
write32(unk2);
}
@Override
public int sizeof() {
return 4 * 4;
}
@Override
public String toString() {
return String.format("SceUtilityHtmlViewerBookmark[url='%s', title='%s']", url, title);
}
}
public static class SceUtilityHtmlViewerFile extends pspAbstractMemoryMappedStructure {
public int pathAddr;
public String path;
public int fileNameAddr;
public String fileName;
@Override
protected void read() {
pathAddr = read32();
path = readStringZ(pathAddr);
fileNameAddr = read32();
fileName = readStringZ(fileNameAddr);
}
@Override
protected void write() {
write32(pathAddr);
writeStringZ(path, pathAddr);
write32(fileNameAddr);
writeStringZ(fileName, fileNameAddr);
}
@Override
public int sizeof() {
return 2 * 4;
}
@Override
public String toString() {
return String.format("SceUtilityHtmlViewerFile[path='%s', fileName='%s']", path, fileName);
}
}
public static class SceUtilityHtmlViewerConfig extends pspAbstractMemoryMappedStructure {
public int cookiePolicyFlag;
public final static int PSP_UTILITY_HTMLVIEWER_COOKIE_POLICY_REJECT = 0;
public final static int PSP_UTILITY_HTMLVIEWER_COOKIE_POLICY_ACCEPT = 1;
public final static int PSP_UTILITY_HTMLVIEWER_COOKIE_POLICY_ASK = 2;
public final static int PSP_UTILITY_HTMLVIEWER_COOKIE_POLICY_DEFAULT = 2;
public int cacheSize;
public int homeUrlAddr;
public String homeUrl;
@Override
protected void read() {
cookiePolicyFlag = read32();
cacheSize = read32();
homeUrlAddr = read32();
homeUrl = readStringZ(homeUrlAddr);
}
@Override
protected void write() {
write32(cookiePolicyFlag);
write32(cacheSize);
write32(homeUrlAddr);
writeStringZ(homeUrl, homeUrlAddr);
}
@Override
public int sizeof() {
return 3 * 4;
}
@Override
public String toString() {
return String.format("SceUtilityHtmlViewerConfig[cookiePolicy=0x%X, cacheSize=0x%X, homeUrl='%s']", cookiePolicyFlag, cacheSize, homeUrl);
}
}
@Override
protected void read() {
base = new pspUtilityDialogCommon();
read(base);
setMaxSize(base.totalSizeof());
dataAddr = read32();
dataSize = read32();
bookmarkNum = read32();
bookmarkAddr = read32();
if (bookmarkAddr != 0) {
bookmark = new SceUtilityHtmlViewerBookmark();
bookmark.read(mem, bookmarkAddr);
} else {
bookmark = null;
}
urlAddr = read32();
url = readStringZ(urlAddr);
tabNum = read32();
userInterfaceLevel = read32();
initFlag = read32();
fileDownload = new SceUtilityHtmlViewerFile();
read(fileDownload);
fileUpload = new SceUtilityHtmlViewerFile();
read(fileUpload);
fileConfig = new SceUtilityHtmlViewerConfig();
read(fileConfig);
disconnectAutoFlag = read32();
}
@Override
protected void write() {
write(base);
setMaxSize(base.totalSizeof());
write32(dataAddr);
write32(dataSize);
write32(bookmarkNum);
write32(bookmarkAddr);
if (bookmark != null && bookmarkAddr != 0) {
bookmark.write(mem, bookmarkAddr);
}
write32(urlAddr);
writeStringUTF16Z(urlAddr, url);
write32(tabNum);
write32(userInterfaceLevel);
write32(initFlag);
write(fileDownload);
write(fileUpload);
write(fileConfig);
write32(disconnectAutoFlag);
}
@Override
public int sizeof() {
return base.totalSizeof();
}
@Override
public String toString() {
return String.format("SceUtilityHtmlViewerParams[dataAddr=0x%08X, dataSize=0x%X, bookmarkNum=%d, url='%s', fileDownload=%s, fileUpload=%s, fileConfig=%s]", dataAddr, dataSize, bookmarkNum, url, fileDownload, fileUpload, fileConfig);
}
}