mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
コミット忘れ。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1886 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
4a2cd58a70
commit
1e362017ae
@ -0,0 +1,198 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlIPL
|
||||
File: setWireless.c
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include <twl.h>
|
||||
#include <twl/na.h>
|
||||
#include <nitro/fs/sysarea.h>
|
||||
#include "getSysMenuVersion.h"
|
||||
|
||||
// テスト表示
|
||||
#if 1
|
||||
#define DEBUGPRINT OS_TPrintf
|
||||
#else
|
||||
#define DEBUGPRINT(...) ((void)0)
|
||||
#endif
|
||||
|
||||
|
||||
// define data----------------------------------
|
||||
#define FS_VERSION_FILE "verinfo:/version.bin"
|
||||
#define FS_EULA_URL_FILE "verinfo:/eula_url.bin"
|
||||
#define FS_NUP_HOSTNAME_FILE "verinfo:/nup_host.bin"
|
||||
#define FS_TIMESTAMP_FILE "verinfo:/time_stamp.bin"
|
||||
|
||||
typedef struct SystemMenuVersion {
|
||||
u16 major;
|
||||
u16 minor;
|
||||
u16 str[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
|
||||
}SystemMenuVersion;
|
||||
|
||||
// extern data----------------------------------
|
||||
// function's prototype-------------------------
|
||||
// static variable------------------------------
|
||||
static BOOL s_isRead = FALSE;
|
||||
static SystemMenuVersion s_version;
|
||||
static u8 s_eulaURL[ TWL_EULA_URL_LEN ];
|
||||
static u8 s_nupHostName[ TWL_NUP_HOSTNAME_LEN ];
|
||||
static u32 s_timestamp;
|
||||
|
||||
// const data-----------------------------------
|
||||
|
||||
|
||||
// システムメニューバージョンのリード
|
||||
BOOL ReadSystemMenuVersionInfo( void *pWork, u32 workSize )
|
||||
{
|
||||
BOOL retval = TRUE;
|
||||
|
||||
// 既にリード実行済みなら何もせず終了
|
||||
if( s_isRead ) {
|
||||
return TRUE;
|
||||
}
|
||||
s_isRead = TRUE;
|
||||
|
||||
// SystemMenuVersionのマウント(認証含む)
|
||||
if( !NA_LoadVersionInfoArchive( pWork, workSize ) ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ついでにユーザー領域MAXサイズも読み込んでおく
|
||||
(void)FSi_GetTotalUserAreaSize();
|
||||
|
||||
// バージョンの読み出し
|
||||
{
|
||||
FSFile file;
|
||||
s32 len;
|
||||
|
||||
FS_InitFile(&file);
|
||||
|
||||
if (!FS_OpenFileEx(&file, FS_VERSION_FILE, FS_FILEMODE_R)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
len = FS_ReadFile(&file, &s_version, (s32)sizeof(s_version));
|
||||
FS_CloseFile(&file);
|
||||
|
||||
if (len < 0) {
|
||||
retval = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// EULA URLの読み出し
|
||||
{
|
||||
FSFile file;
|
||||
s32 len;
|
||||
|
||||
FS_InitFile(&file);
|
||||
|
||||
if (!FS_OpenFileEx(&file, FS_EULA_URL_FILE, FS_FILEMODE_R)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
len = FS_ReadFile(&file, s_eulaURL, (s32)sizeof(s_eulaURL));
|
||||
FS_CloseFile(&file);
|
||||
|
||||
if (len < 0) {
|
||||
retval = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// NUP HOST NAME の読み出し
|
||||
{
|
||||
FSFile file;
|
||||
s32 len;
|
||||
|
||||
FS_InitFile(&file);
|
||||
|
||||
if (!FS_OpenFileEx(&file, FS_NUP_HOSTNAME_FILE, FS_FILEMODE_R)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
len = FS_ReadFile(&file, s_nupHostName, (s32)sizeof(s_nupHostName));
|
||||
FS_CloseFile(&file);
|
||||
|
||||
if (len < 0) {
|
||||
retval = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// タイムスタンプ の読み出し
|
||||
{
|
||||
FSFile file;
|
||||
s32 len;
|
||||
|
||||
FS_InitFile(&file);
|
||||
|
||||
if (!FS_OpenFileEx(&file, FS_TIMESTAMP_FILE, FS_FILEMODE_R)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
len = FS_ReadFile(&file, &s_timestamp, (s32)sizeof(s_timestamp));
|
||||
FS_CloseFile(&file);
|
||||
|
||||
if (len < 0) {
|
||||
retval = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// SystemMenuVersionのアンマウント
|
||||
if( !NA_UnloadVersionInfoArchive() ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
// バージョン文字列の取得
|
||||
const u16 *GetSystemMenuVersionString( void )
|
||||
{
|
||||
return s_isRead ? s_version.str : NULL;
|
||||
}
|
||||
|
||||
|
||||
// メジャーバージョンの取得
|
||||
u16 GetSystemMenuMajorVersion( void )
|
||||
{
|
||||
return s_isRead ? s_version.major : (u16)65535;
|
||||
}
|
||||
|
||||
|
||||
// マイナーバージョンの取得
|
||||
u16 GetSystemMenuMinorVersion( void )
|
||||
{
|
||||
return s_isRead ? s_version.minor : (u16)65535;
|
||||
}
|
||||
|
||||
|
||||
// EULA URLの取得
|
||||
const u8 *GetEULA_URL( void )
|
||||
{
|
||||
return s_isRead ? s_eulaURL : NULL;
|
||||
}
|
||||
|
||||
|
||||
// NUP HostNameの取得
|
||||
const u8 *GetNUP_HostName( void )
|
||||
{
|
||||
return s_isRead ? s_nupHostName : NULL;
|
||||
}
|
||||
|
||||
|
||||
// SystemMenuVersion情報のタイムスタンプの取得
|
||||
u32 GetSystemMenuVersionTimeStamp( void )
|
||||
{
|
||||
return s_isRead ? s_timestamp : (u32)0;
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlIPL
|
||||
File: MachineSetting.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __GET_SYSMENU_VERSION_H__
|
||||
#define __GET_SYSMENU_VERSION_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <twl.h>
|
||||
|
||||
|
||||
// define data----------------------------------------------------------
|
||||
#define TWL_SYSMENU_VER_STR_LEN 28 // システムメニューバージョン文字列MAX bytes
|
||||
#define TWL_EULA_URL_LEN 128
|
||||
#define TWL_NUP_HOSTNAME_LEN 64
|
||||
|
||||
// システムメニューバージョン情報もろもろのリード
|
||||
extern BOOL ReadSystemMenuVersionInfo( void *pWork, u32 workSize );
|
||||
|
||||
|
||||
// バージョン文字列の取得
|
||||
extern const u16 *GetSystemMenuVersionString( void );
|
||||
|
||||
|
||||
// メジャーバージョンの取得
|
||||
extern u16 GetSystemMenuMajorVersion( void );
|
||||
|
||||
|
||||
// マイナーバージョンの取得
|
||||
extern u16 GetSystemMenuMinorVersion( void );
|
||||
|
||||
// EULA URLの取得
|
||||
extern const u8 *GetEULA_URL( void );
|
||||
|
||||
// NUP HostNameの取得
|
||||
extern const u8 *GetNUP_HostName( void );
|
||||
|
||||
// SystemMenuVersion情報のタイムスタンプの取得
|
||||
extern u32 GetSystemMenuVersionTimeStamp( void );
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __GET_SYSMENU_VERSION_H__
|
||||
Loading…
Reference in New Issue
Block a user