1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: camera_Types.h 4 5 Copyright (C)2009 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: 35159 $ 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 EFFECT_SOLARIZE_A_01, // 171 EFFECT_SOLARIZE_A_02, // 172 EFFECT_SOLARIZE_A_03, // 173 EFFECT_SOLARIZE_A_04, // 174 EFFECT_SOLARIZE_A_05, // 175 EFFECT_SOLARIZE_A_06, // 176 EFFECT_SOLARIZE_A_07, // 177 EFFECT_SOLARIZE_A_08, // 178 EFFECT_SOLARIZE_A_09, // 179 EFFECT_SOLARIZE_A_10, // 180 EFFECT_SOLARIZE_B_01, // 181 EFFECT_SOLARIZE_B_02, // 182 EFFECT_SOLARIZE_B_03, // 183 EFFECT_SOLARIZE_B_04, // 184 EFFECT_SOLARIZE_B_05, // 185 EFFECT_SOLARIZE_B_06, // 186 EFFECT_SOLARIZE_B_07, // 187 EFFECT_SOLARIZE_B_08, // 188 EFFECT_SOLARIZE_B_09, // 189 EFFECT_SOLARIZE_B_10, // 190 191 EFFECT_MAX 192 }; 193 /* Please see man pages for details 194 195 */ 196 enum Contrast 197 { 198 CONTRAST_PATTERN_01, // 199 CONTRAST_PATTERN_02, // 200 CONTRAST_PATTERN_03, // 201 CONTRAST_PATTERN_04, // 202 CONTRAST_PATTERN_05, // 203 CONTRAST_PATTERN_06, // 204 CONTRAST_PATTERN_07, // 205 CONTRAST_PATTERN_08, // 206 CONTRAST_PATTERN_09, // 207 CONTRAST_PATTERN_10, // 208 CONTRAST_PATTERN_11, // 209 210 CONTRAST_MAX, 211 212 CONTRAST_LOW = CONTRAST_PATTERN_05, // 213 CONTRAST_NORMAL = CONTRAST_PATTERN_06, // 214 CONTRAST_HIGH = CONTRAST_PATTERN_07 // 215 }; 216 /* Please see man pages for details 217 218 219 220 221 */ 222 enum LensCorrection 223 { 224 LENS_CORRECTION_OFF, // 225 LENS_CORRECTION_ON_70, // 226 LENS_CORRECTION_ON_90, // 227 228 LENS_CORRECTION_MAX, 229 230 LENS_CORRECTION_DARK = LENS_CORRECTION_OFF, // 231 LENS_CORRECTION_NORMAL = LENS_CORRECTION_ON_70, // 232 LENS_CORRECTION_BRIGHT = LENS_CORRECTION_ON_90 // 233 }; 234 /* Please see man pages for details 235 236 237 238 239 */ 240 enum OutputFormat 241 { 242 OUTPUT_YUV_422, // 243 OUTPUT_RGB_565, // 244 245 OUTPUT_MAX 246 }; 247 /* Please see man pages for details 248 249 */ 250 enum ShutterSoundType 251 { 252 SHUTTER_SOUND_TYPE_NORMAL, // 253 SHUTTER_SOUND_TYPE_MOVIE, // 254 SHUTTER_SOUND_TYPE_MOVIE_END, // 255 SHUTTER_SOUND_TYPE_MAX 256 }; 257 258 /* Please see man pages for details 259 260 */ 261 struct PackageParameterCameraSelect 262 { 263 util::SizedEnum1<CameraSelect> camera; // 264 265 s8 exposure; // 266 util::SizedEnum1<WhiteBalance> whiteBalance; // 267 s8 sharpness; // 268 bool autoExposureOn; // 269 bool autoWhiteBalanceOn; // 270 util::SizedEnum1<FrameRate> frameRate; // 271 util::SizedEnum1<PhotoMode> photoMode; // 272 util::SizedEnum1<Contrast> contrast; // 273 util::SizedEnum1<LensCorrection> lensCorrection; // 274 bool noiseFilterOn; // 275 NN_PADDING1; 276 s16 autoExposureWindowStartX; // 277 s16 autoExposureWindowStartY; // 278 s16 autoExposureWindowWidth; // 279 s16 autoExposureWindowHeight; // 280 s16 autoWhiteBalanceWindowStartX; // 281 s16 autoWhiteBalanceWindowStartY; // 282 s16 autoWhiteBalanceWindowWidth; // 283 s16 autoWhiteBalanceWindowHeight; // 284 }; 285 286 /* Please see man pages for details 287 288 289 */ 290 struct PackageParameterContext 291 { 292 util::SizedEnum1<CameraSelect> camera; // 293 util::SizedEnum1<Context> context; // 294 295 util::SizedEnum1<Flip> flip; // 296 util::SizedEnum1<Effect> effect; // 297 util::SizedEnum1<Size> size; // 298 }; 299 300 /* Please see man pages for details 301 302 303 */ 304 struct PackageParameterContextDetail 305 { 306 util::SizedEnum1<CameraSelect> camera; // 307 util::SizedEnum1<Context> context; // 308 309 util::SizedEnum1<Flip> flip; // 310 util::SizedEnum1<Effect> effect; // 311 s16 width; // 312 s16 height; // 313 s16 cropX0; // 314 s16 cropY0; // 315 s16 cropX1; // 316 s16 cropY1; // 317 }; 318 319 } // namespace CTR 320 } // namespace camera 321 } // namespace nn 322 323 #endif //NN_CAMERA_CTR_CAMERA_TYPES_H_ 324