1 /*---------------------------------------------------------------------------* 2 Project: TwlSDK - library - camera 3 File: camera.c 4 5 Copyright 2007-2008 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 $Date:: 2008-09-18#$ 14 $Rev: 8573 $ 15 $Author: okubata_ryoma $ 16 *---------------------------------------------------------------------------*/ 17 #include <twl.h> 18 #include <twl/camera.h> 19 20 21 /*---------------------------------------------------------------------------* 22 Name: CAMERA_SizeToWidth 23 24 Description: retrieve width from CAMERASize enum. 25 26 Arguments: size one of CAMERASize 27 28 Returns: width in pixels 29 *---------------------------------------------------------------------------*/ CAMERA_SizeToWidthCore(CAMERASize size)30u16 CAMERA_SizeToWidthCore( CAMERASize size ) 31 { 32 switch (size) 33 { 34 case CAMERA_SIZE_VGA: return 640; 35 case CAMERA_SIZE_QVGA: return 320; 36 case CAMERA_SIZE_QQVGA: return 160; 37 case CAMERA_SIZE_CIF: return 352; 38 case CAMERA_SIZE_QCIF: return 176; 39 case CAMERA_SIZE_DS_LCD: return 256; 40 case CAMERA_SIZE_DS_LCDx4: return 512; 41 } 42 return 0; 43 } 44 45 /*---------------------------------------------------------------------------* 46 Name: CAMERA_SizeToHeight 47 48 Description: retrieve height from CAMERASize enum. 49 50 Arguments: size one of CAMERASize 51 52 Returns: height in pixels 53 *---------------------------------------------------------------------------*/ CAMERA_SizeToHeightCore(CAMERASize size)54u16 CAMERA_SizeToHeightCore( CAMERASize size ) 55 { 56 switch (size) 57 { 58 case CAMERA_SIZE_VGA: return 480; 59 case CAMERA_SIZE_QVGA: return 240; 60 case CAMERA_SIZE_QQVGA: return 120; 61 case CAMERA_SIZE_CIF: return 288; 62 case CAMERA_SIZE_QCIF: return 144; 63 case CAMERA_SIZE_DS_LCD: return 192; 64 case CAMERA_SIZE_DS_LCDx4: return 384; 65 } 66 return 0; 67 } 68 69 /*---------------------------------------------------------------------------* 70 Name: CAMERA_SizeToPixels 71 72 Description: retrieve total pixels from CAMERASize enum. 73 74 Arguments: size one of CAMERASize 75 76 Returns: pixels 77 *---------------------------------------------------------------------------*/ CAMERA_SizeToPixelsCore(CAMERASize size)78u32 CAMERA_SizeToPixelsCore( CAMERASize size ) 79 { 80 switch (size) 81 { 82 case CAMERA_SIZE_VGA: return 640*480; 83 case CAMERA_SIZE_QVGA: return 320*240; 84 case CAMERA_SIZE_QQVGA: return 160*120; 85 case CAMERA_SIZE_CIF: return 352*288; 86 case CAMERA_SIZE_QCIF: return 176*144; 87 case CAMERA_SIZE_DS_LCD: return 256*192; 88 case CAMERA_SIZE_DS_LCDx4: return 512*384; 89 } 90 return 0; 91 } 92 93 /*---------------------------------------------------------------------------* 94 Name: CAMERA_WidthHeightToSize 95 96 Description: retrieve CAMERASize enum from width and height. 97 98 Arguments: width frame width 99 height frame height 100 101 Returns: one of CAMERASize 102 *---------------------------------------------------------------------------*/ CAMERA_WidthHeightToSizeCore(u16 width,u16 height)103CAMERASize CAMERA_WidthHeightToSizeCore( u16 width, u16 height ) 104 { 105 int size; 106 for (size = 0; size < CAMERA_SIZE_MAX; size++) 107 { 108 if (width == CAMERA_SizeToWidthCore((CAMERASize)size)) 109 { 110 if (height == CAMERA_SizeToHeightCore((CAMERASize)size)) 111 { 112 break; 113 } 114 return CAMERA_SIZE_MAX; 115 } 116 } 117 return (CAMERASize)size; 118 } 119 120 /*---------------------------------------------------------------------------* 121 Name: CAMERA_WidthToSize 122 123 Description: retrieve CAMERASize enum from width. 124 125 Arguments: width frame width 126 127 Returns: one of CAMERASize 128 *---------------------------------------------------------------------------*/ CAMERA_WidthToSizeCore(u16 width)129CAMERASize CAMERA_WidthToSizeCore( u16 width ) 130 { 131 int size; 132 for (size = 0; size < CAMERA_SIZE_MAX; size++) 133 { 134 if (width == CAMERA_SizeToWidthCore((CAMERASize)size)) 135 { 136 break; 137 } 138 } 139 return (CAMERASize)size; 140 } 141 142 /*---------------------------------------------------------------------------* 143 Name: CAMERA_HeightToSize 144 145 Description: retrieve CAMERASize enum from height. 146 147 Arguments: height frame height 148 149 Returns: one of CAMERASize 150 *---------------------------------------------------------------------------*/ CAMERA_HeightToSizeCore(u16 height)151CAMERASize CAMERA_HeightToSizeCore( u16 height ) 152 { 153 int size; 154 for (size = 0; size < CAMERA_SIZE_MAX; size++) 155 { 156 if (height == CAMERA_SizeToHeightCore((CAMERASize)size)) 157 { 158 break; 159 } 160 } 161 return (CAMERASize)size; 162 } 163 164 /*---------------------------------------------------------------------------* 165 Name: CAMERA_PixelsToSize 166 167 Description: retrieve CAMERASize enum from total pixels. 168 169 Arguments: pixels total pixels 170 171 Returns: one of CAMERASize 172 *---------------------------------------------------------------------------*/ CAMERA_PixelsToSizeCore(u32 pixels)173CAMERASize CAMERA_PixelsToSizeCore( u32 pixels ) 174 { 175 int size; 176 for (size = 0; size < CAMERA_SIZE_MAX; size++) 177 { 178 if (pixels == CAMERA_SizeToPixelsCore((CAMERASize)size)) 179 { 180 break; 181 } 182 } 183 return (CAMERASize)size; 184 } 185