1 /*---------------------------------------------------------------------------*
2   Project:  SC library
3   File:     sc.h
4 
5   Copyright 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   $NoKeywords: $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef __SC_H__
17 #define __SC_H__
18 
19 #include <revolution/types.h>
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 extern void SCInit(void);
26 
27 #define SC_STATUS_OK        0
28 #define SC_STATUS_BUSY      1
29 #define SC_STATUS_ERROR     2
30 #define SC_STATUS_INTERNAL3 3 // Not returned by SCCheckStatus().
31 
32 extern u32 SCCheckStatus(void);
33 
34 typedef void (*SCFlushCallback)(u32 result);
35 
36 extern u32  SCFlush(void);
37 extern void SCFlushAsync(SCFlushCallback callback);
38 
39 #define SC_SOUND_MODE_MONO          0u
40 #define SC_SOUND_MODE_STEREO        1u
41 #define SC_SOUND_MODE_SURROUND      2u
42 #define SC_SOUND_MODE_DEFAULT       SC_SOUND_MODE_STEREO
43 
44 extern u8 SCGetSoundMode(void);
45 
46 #define SC_LANG_JAPANESE            0u
47 #define SC_LANG_ENGLISH             1u
48 #define SC_LANG_GERMAN              2u
49 #define SC_LANG_FRENCH              3u
50 #define SC_LANG_SPANISH             4u
51 #define SC_LANG_ITALIAN             5u
52 #define SC_LANG_DUTCH               6u
53 #define SC_LANG_SIMP_CHINESE        7u
54 #define SC_LANG_TRAD_CHINESE        8u
55 #define SC_LANG_KOREAN              9u
56 
57 extern u8 SCGetLanguage(void);
58 
59 #define SC_ASPECT_RATIO_4x3         0u
60 #define SC_ASPECT_RATIO_16x9        1u
61 #define SC_ASPECT_RATIO_DEFAULT     SC_ASPECT_RATIO_4x3
62 
63 extern u8 SCGetAspectRatio(void);
64 
65 #define SC_PROGRESSIVE_MODE_OFF     0u
66 #define SC_PROGRESSIVE_MODE_ON      1u
67 #define SC_PROGRESSIVE_MODE_DEFAULT SC_PROGRESSIVE_MODE_OFF
68 
69 extern u8 SCGetProgressiveMode(void);
70 
71 #define SC_EURGB60_MODE_OFF           0u
72 #define SC_EURGB60_MODE_ON            1u
73 #define SC_EURGB60_MODE_DEFAULT       SC_EURGB60_MODE_OFF // Temporary
74 
75 extern u8 SCGetEuRgb60Mode(void);
76 
77 extern BOOL SCCheckPCMessageRestriction(void);
78 extern BOOL SCCheckPCPassword(char *password);
79 
80 //////////////////////////////////////////////////////////////////////
81 // Emulated API (OBSOLETE; they do nothing and return FALSE).
82 //////////////////////////////////////////////////////////////////////
83 
84 extern BOOL SCEmuSetAspectRatio(u8 ratio);
85 extern BOOL SCEmuSetLanguage(u8 language);
86 
87 #ifdef __cplusplus
88 }
89 #endif
90 
91 #endif // __SC_H__
92