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   $Log: sc.h,v $
14   Revision 1.6  08/08/2006 12:42:00  kawaset
15   Added SCGetWpadMotorMode, SCGetWpadSensorBarPosition, SCGetWpadSpeakerVolume, SCSetWpadMotorMode, SCSetWpadSensorBarPosition, and SCSetWpadSpeakerVolume.
16   Deleted SCEmuSetAspectRatio and SCEmuSetLanguage.
17 
18   Revision 1.5  06/01/2006 11:08:35  kawaset
19   Deleted timezone.
20 
21   Revision 1.4  05/26/2006 12:39:58  kawaset
22   Full model change.
23 
24   Revision 1.3  02/09/2006 07:26:43  kawaset
25   Changed defines.
26 
27   Revision 1.2  02/09/2006 01:59:32  kawaset
28   Changed SCTimeZoneInfo.
29 
30   Revision 1.1  02/03/2006 12:57:04  kawaset
31   Initial check-in.
32 
33 
34   $NoKeywords: $
35  *---------------------------------------------------------------------------*/
36 
37 #ifndef __SC_H__
38 #define __SC_H__
39 
40 #include <revolution/types.h>
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 extern void SCInit(void);
47 
48 #define SC_STATUS_OK        0
49 #define SC_STATUS_BUSY      1
50 #define SC_STATUS_ERROR     2
51 #define SC_STATUS_INTERNAL3 3 // not returned by SCCheckStatus()
52 
53 extern u32 SCCheckStatus(void);
54 
55 typedef void (*SCFlushCallback)(u32 result);
56 
57 extern u32  SCFlush(void);
58 extern void SCFlushAsync(SCFlushCallback callback);
59 
60 #define SC_SOUND_MODE_MONO          0u
61 #define SC_SOUND_MODE_STEREO        1u
62 #define SC_SOUND_MODE_SURROUND      2u
63 #define SC_SOUND_MODE_DEFAULT       SC_SOUND_MODE_STEREO
64 
65 extern u8 SCGetSoundMode(void);
66 extern BOOL SCSetSoundMode(u8 mode);
67 
68 #define SC_LANG_JAPANESE            0u
69 #define SC_LANG_ENGLISH             1u
70 #define SC_LANG_GERMAN              2u
71 #define SC_LANG_FRENCH              3u
72 #define SC_LANG_SPANISH             4u
73 #define SC_LANG_ITALIAN             5u
74 #define SC_LANG_DUTCH               6u
75 
76 extern u8 SCGetLanguage(void);
77 
78 #define SC_ASPECT_RATIO_4x3         0u
79 #define SC_ASPECT_RATIO_16x9        1u
80 #define SC_ASPECT_RATIO_DEFAULT     SC_ASPECT_RATIO_4x3
81 
82 extern u8 SCGetAspectRatio(void);
83 
84 #define SC_PROGRESSIVE_MODE_OFF     0u
85 #define SC_PROGRESSIVE_MODE_ON      1u
86 #define SC_PROGRESSIVE_MODE_DEFAULT SC_PROGRESSIVE_MODE_OFF
87 
88 extern u8 SCGetProgressiveMode(void);
89 extern BOOL SCSetProgressiveMode(u8 mode);
90 
91 #define SC_EURGB60_MODE_OFF           0u
92 #define SC_EURGB60_MODE_ON            1u
93 #define SC_EURGB60_MODE_DEFAULT       SC_EURGB60_MODE_OFF // temporary
94 
95 extern u8 SCGetEuRgb60Mode(void);
96 extern BOOL SCSetEuRgb60Mode(u8 mode);
97 
98 #define SC_WPAD_MOTOR_MODE_OFF        0u
99 #define SC_WPAD_MOTOR_MODE_ON         1u
100 #define SC_WPAD_MOTOR_MODE_DEFAULT    SC_WPAD_MOTOR_MODE_ON
101 
102 extern u8 SCGetWpadMotorMode(void);
103 extern BOOL SCSetWpadMotorMode(u8 mode);
104 
105 #define SC_WPAD_SENSOR_BAR_POSITION_LOWER   0u
106 #define SC_WPAD_SENSOR_BAR_POSITION_UPPER   1u
107 #define SC_WPAD_SENSOR_BAR_POSITION_DEFAULT SC_WPAD_SENSOR_BAR_POSITION_LOWER
108 
109 extern u8 SCGetWpadSensorBarPosition(void);
110 extern BOOL SCSetWpadSensorBarPosition(u8 position);
111 
112 #define SC_WPAD_SPEAKER_VOLUME_MIN     0u
113 #define SC_WPAD_SPEAKER_VOLUME_MAX     127u
114 #define SC_WPAD_SPEAKER_VOLUME_DEFAULT SC_WPAD_SPEAKER_VOLUME_MAX
115 
116 extern u8 SCGetWpadSpeakerVolume(void);
117 extern BOOL SCSetWpadSpeakerVolume(u8 volume);
118 
119 //////////////////////////////////////////////////////////////////////
120 // Emulated API (OBSOLETE; they do nothing and return FALSE)
121 //////////////////////////////////////////////////////////////////////
122 
123 extern BOOL SCEmuSetAspectRatio(u8 ratio);
124 extern BOOL SCEmuSetLanguage(u8 language);
125 
126 #ifdef __cplusplus
127 }
128 #endif
129 
130 #endif // __SC_H__
131