1 /*---------------------------------------------------------------------------*
2   Project:  Wii Connect 24
3   File:     NWC24MsgBoard.h
4 
5   Copyright (C) 2006 Nintendo. All Rights Reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Log: NWC24MsgBoard.h,v $
14   Revision 1.9  2007/09/21 00:33:35  hirose_kazuki
15   Removed NWC24ReadMsgMBUpdateSW().
16 
17   Revision 1.8  2007/07/12 10:58:40  hirose_kazuki
18   Added size value definitions for some data types.
19 
20   Revision 1.7  2007/06/04 12:54:19  hirose_kazuki
21   Added channel jump data accessor functions.
22 
23   Revision 1.6  2007/05/24 12:08:37  hirose_kazuki
24   Rollback. (cancelled the last change.)
25 
26   Revision 1.4  2006/11/01 13:34:37  hirose_kazuki
27   Added NWC24ReadMsgMBUpdateSW().
28 
29   Revision 1.3  2006/10/04 01:37:25  hirose_kazuki
30   Fixed names of arguments.
31 
32   Revision 1.2  2006/09/22 08:56:58  hirose_kazuki
33   Added definition of NWC24_MINIDATA_SIZE.
34 
35   Revision 1.1  2006/09/19 01:19:07  hirose_kazuki
36   Initial check in.
37 
38 
39  *---------------------------------------------------------------------------*/
40 
41 /*---------------------------------------------------------------------------*
42     NWC24 API for "Wii message board"
43 
44     These APIs give detailed control when a message is handled by
45     "Wii message board" which is a part of the system menu.
46  *---------------------------------------------------------------------------*/
47 #ifndef __NWC24MSGBOARD_H__
48 #define __NWC24MSGBOARD_H__
49 
50 #include <revolution/nwc24/NWC24Err.h>
51 #include <revolution/nwc24/NWC24Types.h>
52 
53 /*---------------------------------------------------------------------------*
54     Macros
55  *---------------------------------------------------------------------------*/
56 #define NWC24MSG_MB_YEAR_BASE       2000
57 #define NWC24MSG_MB_YEAR_LIMIT      2035
58 
59 #define NWC24_MINIDATA_SIZE         128
60 #define NWC24_MBTEMPLATE_SIZE_MAX   (120*1024)
61 #define NWC24_WIIPICTURE_SIZE_MAX   (80*1024)
62 
63 /*---------------------------------------------------------------------------*
64     API Prototypes
65  *---------------------------------------------------------------------------*/
66 struct OSCalendarTime;
67 
68 #ifdef __cplusplus
69 extern "C" {
70 #endif
71 
72 /*---------------------------------------------------------------------------*
73     Message creation APIs
74  *---------------------------------------------------------------------------*/
75 NWC24Err NWC24SetMsgMBNoReply   ( NWC24MsgObj* obj, BOOL noReply );
76 NWC24Err NWC24SetMsgMBRegDate   ( NWC24MsgObj* obj, u16 year, u8 month, u8 day );
77 NWC24Err NWC24SetMsgMBDelay     ( NWC24MsgObj* obj, u8 delayHours );
78 
79 /*---------------------------------------------------------------------------*
80     Message read APIs
81  *---------------------------------------------------------------------------*/
82 NWC24Err NWC24ReadMsgMBNoReply  ( const NWC24MsgObj* obj, BOOL* noReply );
83 NWC24Err NWC24ReadMsgMBRegDate  ( const NWC24MsgObj* obj, u16* year, u8* month, u8* day );
84 NWC24Err NWC24ReadMsgMBDelay    ( const NWC24MsgObj* obj, u8* delayHours );
85 
86 
87 /*---------------------------------------------------------------------------*
88     Channel Jump structure accessor APIs
89  *---------------------------------------------------------------------------*/
90 NWC24Err NWC24InitCHJumpObj     ( NWC24CHJumpObj* chjp, u32 dataSize );
91 NWC24Err NWC24CheckCHJumpObj    ( const NWC24CHJumpObj* chjp, u32 dataSize );
92 
93 NWC24Err NWC24SetCHJumpTitleId  ( NWC24CHJumpObj* chjp, u64 titleId );
94 NWC24Err NWC24SetCHJumpOptions  ( NWC24CHJumpObj* chjp, u32 options );
95 NWC24Err NWC24SetCHJumpBlockData( NWC24CHJumpObj* chjp,
96                                   const char* data, u32 size, u32 index );
97 
98 NWC24Err NWC24GetCHJumpTotalSize( const NWC24CHJumpObj* chjp, u32* size );
99 NWC24Err NWC24GetCHJumpTitleId  ( const NWC24CHJumpObj* chjp, u64* titleId );
100 NWC24Err NWC24GetCHJumpOptions  ( const NWC24CHJumpObj* chjp, u32* options );
101 NWC24Err NWC24GetCHJumpBlockSize( const NWC24CHJumpObj* chjp, u32* size, u32 index );
102 NWC24Err NWC24GetCHJumpBlockData( const NWC24CHJumpObj* chjp,
103                                   char* data, u32 size, u32 index );
104 
105 
106 
107 /*---------------------------------------------------------------------------*/
108 #ifdef __cplusplus
109 }
110 #endif
111 
112 #endif  // __NWC24MSGBOARD_H__
113 
114