1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: camera_Types.h 4 5 Copyright (C)2009-2012 Nintendo Co., Ltd. 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 $Rev: 48613 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_CAMERA_CTR_CAMERA_TYPES_H_ 17 #define NN_CAMERA_CTR_CAMERA_TYPES_H_ 18 19 #include <nn/Result.h> 20 #include <nn/camera/CTR/camera_CalibrationTypes.h> 21 22 namespace nn { 23 namespace csnd { 24 namespace CTR { 25 26 struct DataInfo; 27 28 struct ChannelParam; 29 30 struct OptionInfo; 31 32 } 33 } 34 } 35 36 namespace nn { 37 namespace camera { 38 namespace CTR { 39 /* Please see man pages for details 40 41 */ 42 enum CameraSelect 43 { 44 SELECT_NONE = 0, // 45 SELECT_OUT1 = (1<<0), // 46 SELECT_IN1 = (1<<1), // 47 SELECT_IN1_OUT1 = (SELECT_OUT1|SELECT_IN1), // 48 SELECT_OUT2 = (1<<2), // 49 SELECT_OUT1_OUT2 = (SELECT_OUT1|SELECT_OUT2), // 50 SELECT_IN1_OUT2 = (SELECT_IN1|SELECT_OUT2), // 51 SELECT_ALL = (SELECT_OUT1|SELECT_IN1|SELECT_OUT2) // 52 }; 53 /* Please see man pages for details 54 55 */ 56 enum Port 57 { 58 PORT_NONE = 0, // 59 PORT_CAM1 = (1<<0), // 60 PORT_CAM2 = (1<<1), // 61 PORT_BOTH = (PORT_CAM1|PORT_CAM2) // 62 }; 63 /* Please see man pages for details 64 65 */ 66 enum Context 67 { 68 CONTEXT_NONE = 0, // 69 CONTEXT_A = (1<<0), // 70 CONTEXT_B = (1<<1), // 71 CONTEXT_BOTH = (CONTEXT_A|CONTEXT_B) // 72 }; 73 /* Please see man pages for details 74 75 */ 76 enum Flip 77 { 78 FLIP_NONE = 0, // 79 FLIP_HORIZONTAL, // 80 FLIP_VERTICAL, // 81 FLIP_REVERSE, // 82 FLIP_MAX 83 }; 84 /* Please see man pages for details 85 86 */ 87 enum Size 88 { 89 SIZE_VGA, // 90 SIZE_QVGA, // 91 SIZE_QQVGA, // 92 SIZE_CIF, // 93 SIZE_QCIF, // 94 SIZE_DS_LCD, // 95 SIZE_DS_LCDx4, // 96 SIZE_CTR_TOP_LCD, // 97 98 CAMERA_SIZE_MAX, 99 100 SIZE_CTR_BOTTOM_LCD = SIZE_QVGA // 101 }; 102 /* Please see man pages for details 103 104 */ 105 enum FrameRate 106 { 107 FRAME_RATE_15 = 0, // 108 FRAME_RATE_15_TO_5, // 109 FRAME_RATE_15_TO_2, // 110 FRAME_RATE_10, // 111 FRAME_RATE_8_5, // 112 FRAME_RATE_5, // 113 FRAME_RATE_20, // 114 FRAME_RATE_20_TO_5, // 115 FRAME_RATE_30, // 116 FRAME_RATE_30_TO_5, // 117 FRAME_RATE_15_TO_10, // 118 FRAME_RATE_20_TO_10, // 119 FRAME_RATE_30_TO_10, // 120 FRAME_RATE_MAX 121 }; 122 /* Please see man pages for details 123 124 */ 125 enum WhiteBalance 126 { 127 WHITE_BALANCE_AUTO, 128 129 WHITE_BALANCE_3200K, 130 WHITE_BALANCE_4150K, 131 WHITE_BALANCE_5200K, 132 WHITE_BALANCE_6000K, 133 WHITE_BALANCE_7000K, 134 135 WHITE_BALANCE_MAX, 136 137 // alias 138 WHITE_BALANCE_NORMAL = WHITE_BALANCE_AUTO, // 139 WHITE_BALANCE_TUNGSTEN = WHITE_BALANCE_3200K, // 140 WHITE_BALANCE_WHITE_FLUORESCENT_LIGHT = WHITE_BALANCE_4150K, // 141 WHITE_BALANCE_DAYLIGHT = WHITE_BALANCE_5200K, // 142 WHITE_BALANCE_CLOUDY = WHITE_BALANCE_6000K, // 143 WHITE_BALANCE_HORIZON = WHITE_BALANCE_6000K, // 144 WHITE_BALANCE_SHADE = WHITE_BALANCE_7000K // 145 }; 146 /* Please see man pages for details 147 148 */ 149 enum PhotoMode 150 { 151 PHOTO_MODE_NORMAL, // 152 PHOTO_MODE_PORTRAIT, // 153 PHOTO_MODE_LANDSCAPE, // 154 PHOTO_MODE_NIGHTVIEW, // 155 PHOTO_MODE_LETTER, // 156 157 PHOTO_MODE_MAX 158 }; 159 /* Please see man pages for details 160 161 */ 162 enum Effect 163 { 164 EFFECT_NONE, // 165 EFFECT_MONO, // 166 EFFECT_SEPIA, // 167 EFFECT_NEGATIVE, // 168 EFFECT_NEGAFILM, // 169 EFFECT_SEPIA01, // 170 171 EFFECT_MAX 172 }; 173 /* Please see man pages for details 174 175 */ 176 enum Contrast 177 { 178 CONTRAST_PATTERN_01, // 179 CONTRAST_PATTERN_02, // 180 CONTRAST_PATTERN_03, // 181 CONTRAST_PATTERN_04, // 182 CONTRAST_PATTERN_05, // 183 CONTRAST_PATTERN_06, // 184 CONTRAST_PATTERN_07, // 185 CONTRAST_PATTERN_08, // 186 CONTRAST_PATTERN_09, // 187 CONTRAST_PATTERN_10, // 188 CONTRAST_PATTERN_11, // 189 190 CONTRAST_MAX, 191 192 CONTRAST_LOW = CONTRAST_PATTERN_05, // 193 CONTRAST_NORMAL = CONTRAST_PATTERN_06, // 194 CONTRAST_HIGH = CONTRAST_PATTERN_07 // 195 }; 196 /* Please see man pages for details 197 198 199 200 201 */ 202 enum LensCorrection 203 { 204 LENS_CORRECTION_OFF, // 205 LENS_CORRECTION_ON_70, // 206 LENS_CORRECTION_ON_90, // 207 208 LENS_CORRECTION_MAX, 209 210 LENS_CORRECTION_DARK = LENS_CORRECTION_OFF, // 211 LENS_CORRECTION_NORMAL = LENS_CORRECTION_ON_70, // 212 LENS_CORRECTION_BRIGHT = LENS_CORRECTION_ON_90 // 213 }; 214 /* Please see man pages for details 215 216 217 218 219 */ 220 enum OutputFormat 221 { 222 OUTPUT_YUV_422, // 223 OUTPUT_RGB_565, // 224 225 OUTPUT_MAX 226 }; 227 /* Please see man pages for details 228 229 */ 230 enum ShutterSoundType 231 { 232 SHUTTER_SOUND_TYPE_NORMAL, // 233 SHUTTER_SOUND_TYPE_MOVIE, // 234 SHUTTER_SOUND_TYPE_MOVIE_END, // 235 SHUTTER_SOUND_TYPE_MAX 236 }; 237 238 /* Please see man pages for details 239 240 */ 241 struct PackageParameterCameraSelect 242 { 243 util::SizedEnum1<CameraSelect> camera; // 244 245 s8 exposure; // 246 util::SizedEnum1<WhiteBalance> whiteBalance; // 247 s8 sharpness; // 248 bool autoExposureOn; // 249 bool autoWhiteBalanceOn; // 250 util::SizedEnum1<FrameRate> frameRate; // 251 util::SizedEnum1<PhotoMode> photoMode; // 252 util::SizedEnum1<Contrast> contrast; // 253 util::SizedEnum1<LensCorrection> lensCorrection; // 254 bool noiseFilterOn; // 255 NN_PADDING1; 256 s16 autoExposureWindowStartX; // 257 s16 autoExposureWindowStartY; // 258 s16 autoExposureWindowWidth; // 259 s16 autoExposureWindowHeight; // 260 s16 autoWhiteBalanceWindowStartX; // 261 s16 autoWhiteBalanceWindowStartY; // 262 s16 autoWhiteBalanceWindowWidth; // 263 s16 autoWhiteBalanceWindowHeight; // 264 }; 265 266 /* Please see man pages for details 267 268 269 */ 270 struct PackageParameterContext 271 { 272 util::SizedEnum1<CameraSelect> camera; // 273 util::SizedEnum1<Context> context; // 274 275 util::SizedEnum1<Flip> flip; // 276 util::SizedEnum1<Effect> effect; // 277 util::SizedEnum1<Size> size; // 278 }; 279 280 /* Please see man pages for details 281 282 283 */ 284 struct PackageParameterContextDetail 285 { 286 util::SizedEnum1<CameraSelect> camera; // 287 util::SizedEnum1<Context> context; // 288 289 util::SizedEnum1<Flip> flip; // 290 util::SizedEnum1<Effect> effect; // 291 s16 width; // 292 s16 height; // 293 s16 cropX0; // 294 s16 cropY0; // 295 s16 cropX1; // 296 s16 cropY1; // 297 }; 298 299 } // namespace CTR 300 } // namespace camera 301 } // namespace nn 302 303 #endif //NN_CAMERA_CTR_CAMERA_TYPES_H_ 304