Require PIN for browser if browser access restricted
This commit is contained in:
18
include/fs.h
18
include/fs.h
@@ -35,8 +35,26 @@ extern FS_Archive ArchiveSD;
|
|||||||
extern FS_Archive ArchiveHomeExt;
|
extern FS_Archive ArchiveHomeExt;
|
||||||
extern FS_Archive ArchiveThemeExt;
|
extern FS_Archive ArchiveThemeExt;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u32 enable : 1;
|
||||||
|
u32 browser: 1;
|
||||||
|
u32 stereoscopic : 1;
|
||||||
|
u32 media_share : 1;
|
||||||
|
u32 online : 1;
|
||||||
|
u32 streetpass : 1;
|
||||||
|
u32 friends : 1;
|
||||||
|
u32 dsdownload : 1;
|
||||||
|
u32 shopping : 1;
|
||||||
|
u32 videos : 1;
|
||||||
|
u32 miiverse : 1;
|
||||||
|
u32 post : 1;
|
||||||
|
u32 null : 19;
|
||||||
|
u32 coppa : 1;
|
||||||
|
} Parental_Restrictions_s;
|
||||||
|
|
||||||
Result open_archives(void);
|
Result open_archives(void);
|
||||||
Result close_archives(void);
|
Result close_archives(void);
|
||||||
|
Result load_parental_controls(Parental_Restrictions_s *restrictions);
|
||||||
|
|
||||||
u32 file_to_buf(FS_Path path, FS_Archive archive, char** buf);
|
u32 file_to_buf(FS_Path path, FS_Archive archive, char** buf);
|
||||||
u32 zip_memory_to_buf(char *file_name, void * zip_memory, size_t zip_size, char ** buf);
|
u32 zip_memory_to_buf(char *file_name, void * zip_memory, size_t zip_size, char ** buf);
|
||||||
|
|||||||
11
source/fs.c
11
source/fs.c
@@ -111,6 +111,17 @@ Result close_archives(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result load_parental_controls(Parental_Restrictions_s *restrictions)
|
||||||
|
{
|
||||||
|
char parental_data[0xC0] = {0};
|
||||||
|
Result res;
|
||||||
|
|
||||||
|
if (R_FAILED(res = CFG_GetConfigInfoBlk8(0xC0, 0x000C0000, &parental_data))) return res;
|
||||||
|
memcpy(restrictions, parental_data, 4);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
u32 file_to_buf(FS_Path path, FS_Archive archive, char** buf)
|
u32 file_to_buf(FS_Path path, FS_Archive archive, char** buf)
|
||||||
{
|
{
|
||||||
Handle file;
|
Handle file;
|
||||||
|
|||||||
@@ -490,6 +490,26 @@ bool themeplaza_browser(EntryMode mode)
|
|||||||
{
|
{
|
||||||
bool downloaded = false;
|
bool downloaded = false;
|
||||||
|
|
||||||
|
Parental_Restrictions_s restrictions = {0};
|
||||||
|
Result res = load_parental_controls(&restrictions);
|
||||||
|
if (R_SUCCEEDED(res))
|
||||||
|
{
|
||||||
|
if (restrictions.enable && restrictions.browser)
|
||||||
|
{
|
||||||
|
SwkbdState swkbd;
|
||||||
|
char entered[5] = {0};
|
||||||
|
swkbdInit(&swkbd, SWKBD_TYPE_NUMPAD, 2, 4);
|
||||||
|
swkbdSetFeatures(&swkbd, SWKBD_PARENTAL);
|
||||||
|
|
||||||
|
swkbdInputText(&swkbd, entered, 5);
|
||||||
|
SwkbdResult swkbd_res = swkbdGetResult(&swkbd);
|
||||||
|
if (swkbd_res != SWKBD_PARENTAL_OK)
|
||||||
|
{
|
||||||
|
return downloaded;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool preview_mode = false;
|
bool preview_mode = false;
|
||||||
int preview_offset = 0;
|
int preview_offset = 0;
|
||||||
audio_s * audio = NULL;
|
audio_s * audio = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user