testing n-Bed with a Logitech C270 camera

Dependencies:   USBHost mbed

Fork of USBHostC270_example by Norimasa Okamoto

Committer:
chalikias
Date:
Thu May 21 11:59:47 2015 +0000
Revision:
14:449f809d07eb
Parent:
12:ea4badc78215
camera resolution reduced to 160x120, else memory overflow issues...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 12:ea4badc78215 1 // CamInfo.cpp
va009039 12:ea4badc78215 2 #include "USBHostCam.h"
va009039 12:ea4badc78215 3
va009039 12:ea4badc78215 4 // Logitech C270
va009039 12:ea4badc78215 5 #define C270_VID 0x046d
va009039 12:ea4badc78215 6 #define C270_PID 0x0825
va009039 12:ea4badc78215 7 #define C270_160x120 2
va009039 12:ea4badc78215 8 #define C270_176x144 3
va009039 12:ea4badc78215 9 #define C270_320x176 4
va009039 12:ea4badc78215 10 #define C270_320x240 5
va009039 12:ea4badc78215 11 #define C270_352x288 6
va009039 12:ea4badc78215 12 #define C270_432x240 7
va009039 12:ea4badc78215 13 #define C270_640x480 1
va009039 12:ea4badc78215 14 #define C270_544x288 8
va009039 12:ea4badc78215 15 #define C270_640x360 9
va009039 12:ea4badc78215 16 #define C270_752x416 10
va009039 12:ea4badc78215 17 #define C270_800x448 11
va009039 12:ea4badc78215 18 #define C270_800x600 12
va009039 12:ea4badc78215 19
va009039 12:ea4badc78215 20 #define C270_MJPEG 2
va009039 12:ea4badc78215 21 #define C270_YUV2 1
va009039 12:ea4badc78215 22
va009039 12:ea4badc78215 23 #define C270_EN 0x81
va009039 12:ea4badc78215 24 #define C270_MPS 192
va009039 12:ea4badc78215 25 #define C270_IF_ALT_192 1
va009039 12:ea4badc78215 26 #define C270_IF_ALT(A) C270_IF_ALT_##A
va009039 12:ea4badc78215 27
va009039 12:ea4badc78215 28 #define C270_INFO(SIZE) {C270_VID, C270_PID, _##SIZE, 0, \
va009039 12:ea4badc78215 29 "C270", \
va009039 12:ea4badc78215 30 C270_MJPEG, \
va009039 12:ea4badc78215 31 C270_##SIZE, \
va009039 12:ea4badc78215 32 _5FPS, \
va009039 12:ea4badc78215 33 C270_EN, \
va009039 12:ea4badc78215 34 192, \
va009039 12:ea4badc78215 35 C270_IF_ALT(192), \
va009039 12:ea4badc78215 36 4, \
va009039 12:ea4badc78215 37 3}
va009039 12:ea4badc78215 38
va009039 12:ea4badc78215 39 #define C210_PID 0x819
va009039 12:ea4badc78215 40 #define C210_INFO(SIZE) {C270_VID, C210_PID, _##SIZE, 0, \
va009039 12:ea4badc78215 41 "C270", \
va009039 12:ea4badc78215 42 C270_MJPEG, \
va009039 12:ea4badc78215 43 C270_##SIZE, \
va009039 12:ea4badc78215 44 _5FPS, \
va009039 12:ea4badc78215 45 C270_EN, \
va009039 12:ea4badc78215 46 192, \
va009039 12:ea4badc78215 47 C270_IF_ALT(192), \
va009039 12:ea4badc78215 48 4, \
va009039 12:ea4badc78215 49 3}
va009039 12:ea4badc78215 50
va009039 12:ea4badc78215 51 // Logitech Qcam Orbit AF QCAM-200R
va009039 12:ea4badc78215 52 #define Q200R_VID 0x046d
va009039 12:ea4badc78215 53 #define Q200R_PID 0x0994
va009039 12:ea4badc78215 54 #define Q200R_160x120 1
va009039 12:ea4badc78215 55 #define Q200R_176x144 2
va009039 12:ea4badc78215 56 #define Q200R_320x240 3
va009039 12:ea4badc78215 57 #define Q200R_352x288 4
va009039 12:ea4badc78215 58 #define Q200R_640x480 5
va009039 12:ea4badc78215 59 #define Q200R_800x600 6
va009039 12:ea4badc78215 60
va009039 12:ea4badc78215 61 #define Q200R_MJPEG 1
va009039 12:ea4badc78215 62 #define Q200R_YUV2 2
va009039 12:ea4badc78215 63
va009039 12:ea4badc78215 64 #define Q200R_EN 0x81
va009039 12:ea4badc78215 65 #define Q200R_MPS 192
va009039 12:ea4badc78215 66 #define Q200R_IF_ALT_192 1
va009039 12:ea4badc78215 67 #define Q200R_IF_ALT_384 2
va009039 12:ea4badc78215 68 #define Q200R_IF_ALT_512 3
va009039 12:ea4badc78215 69 #define Q200R_IF_ALT_640 4
va009039 12:ea4badc78215 70 #define Q200R_IF_ALT_800 5
va009039 12:ea4badc78215 71 #define Q200R_IF_ALT_944 6
va009039 12:ea4badc78215 72 #define Q200R_IF_ALT(A) Q200R_IF_ALT_##A
va009039 12:ea4badc78215 73 #define Q200R_INFO(SIZE) {Q200R_VID, Q200R_PID, _##SIZE, 0, \
va009039 12:ea4badc78215 74 "Q200R", \
va009039 12:ea4badc78215 75 Q200R_MJPEG, \
va009039 12:ea4badc78215 76 Q200R_##SIZE, \
va009039 12:ea4badc78215 77 _5FPS, \
va009039 12:ea4badc78215 78 Q200R_EN, \
va009039 12:ea4badc78215 79 192, \
va009039 12:ea4badc78215 80 Q200R_IF_ALT(192), \
va009039 12:ea4badc78215 81 4, \
va009039 12:ea4badc78215 82 3}
va009039 12:ea4badc78215 83
va009039 12:ea4badc78215 84 //LifeCam VX700 / VX500
va009039 12:ea4badc78215 85 #define VX700_VID 0x045e
va009039 12:ea4badc78215 86 #define VX700_PID 0x074a
va009039 12:ea4badc78215 87
va009039 12:ea4badc78215 88 #define VX700_160x120 5
va009039 12:ea4badc78215 89 #define VX700_176x144 4
va009039 12:ea4badc78215 90 #define VX700_320x240 3
va009039 12:ea4badc78215 91 #define VX700_352x288 2
va009039 12:ea4badc78215 92 #define VX700_640x480 1
va009039 12:ea4badc78215 93
va009039 12:ea4badc78215 94 #define VX700_MJPEG 1
va009039 12:ea4badc78215 95
va009039 12:ea4badc78215 96 #define VX700_EN 0x81
va009039 12:ea4badc78215 97 #define VX700_MPS 128
va009039 12:ea4badc78215 98 #define VX700_IF_ALT_128 1
va009039 12:ea4badc78215 99 #define VX700_IF_ALT(A) VX700_IF_ALT_##A
va009039 12:ea4badc78215 100 #define VX700_INFO(SIZE) {VX700_VID, VX700_PID, _##SIZE, 0, \
va009039 12:ea4badc78215 101 "VX700", \
va009039 12:ea4badc78215 102 VX700_MJPEG, \
va009039 12:ea4badc78215 103 VX700_##SIZE, \
va009039 12:ea4badc78215 104 _5FPS, \
va009039 12:ea4badc78215 105 VX700_EN, \
va009039 12:ea4badc78215 106 128, \
va009039 12:ea4badc78215 107 VX700_IF_ALT(128), \
va009039 12:ea4badc78215 108 4, \
va009039 12:ea4badc78215 109 3}
va009039 12:ea4badc78215 110
va009039 12:ea4badc78215 111 //Sonix USB 2.0 Camera
va009039 12:ea4badc78215 112 #define SONIX_160x120 5
va009039 12:ea4badc78215 113 #define SONIX_176x144 4
va009039 12:ea4badc78215 114 #define SONIX_320x240 3
va009039 12:ea4badc78215 115 #define SONIX_352x288 2
va009039 12:ea4badc78215 116 #define SONIX_640x480 1
va009039 12:ea4badc78215 117
va009039 12:ea4badc78215 118 #define SONIX_IF_ALT_128 1
va009039 12:ea4badc78215 119 #define SONIX_IF_ALT_256 2
va009039 12:ea4badc78215 120 #define SONIX_IF_ALT_512 3
va009039 12:ea4badc78215 121 #define SONIX_IF_ALT_600 4
va009039 12:ea4badc78215 122 #define SONIX_IF_ALT_800 5
va009039 12:ea4badc78215 123 #define SONIX_IF_ALT_956 6
va009039 12:ea4badc78215 124 #define SONIX_IF_ALT(A) SONIX_IF_ALT_##A
va009039 12:ea4badc78215 125 #define SONIX_INFO(SIZE) {0x0c45, 0x62c0, _##SIZE, 0, \
va009039 12:ea4badc78215 126 "SONIX", \
va009039 12:ea4badc78215 127 1, \
va009039 12:ea4badc78215 128 SONIX_##SIZE, \
va009039 12:ea4badc78215 129 _5FPS, \
va009039 12:ea4badc78215 130 0x81, \
va009039 12:ea4badc78215 131 128, \
va009039 12:ea4badc78215 132 SONIX_IF_ALT(128), \
va009039 12:ea4badc78215 133 4, \
va009039 12:ea4badc78215 134 3}
va009039 12:ea4badc78215 135
va009039 12:ea4badc78215 136 static const CamInfo CamInfoList[] = {
va009039 12:ea4badc78215 137 // Logitech C270
va009039 12:ea4badc78215 138 C270_INFO(160x120),
va009039 12:ea4badc78215 139 C270_INFO(176x144),
va009039 12:ea4badc78215 140 C270_INFO(320x176),
va009039 12:ea4badc78215 141 C270_INFO(320x240),
va009039 12:ea4badc78215 142 C270_INFO(352x288),
va009039 12:ea4badc78215 143 C270_INFO(432x240),
va009039 12:ea4badc78215 144 C270_INFO(640x480),
va009039 12:ea4badc78215 145 C270_INFO(544x288),
va009039 12:ea4badc78215 146 C270_INFO(640x360),
va009039 12:ea4badc78215 147 C270_INFO(752x416),
va009039 12:ea4badc78215 148 C270_INFO(800x448),
va009039 12:ea4badc78215 149 C270_INFO(800x600),
va009039 12:ea4badc78215 150
va009039 12:ea4badc78215 151 // Logitech C210
va009039 12:ea4badc78215 152 C210_INFO(160x120),
va009039 12:ea4badc78215 153 C210_INFO(176x144),
va009039 12:ea4badc78215 154 C210_INFO(320x176),
va009039 12:ea4badc78215 155 C210_INFO(320x240),
va009039 12:ea4badc78215 156 C210_INFO(352x288),
va009039 12:ea4badc78215 157 C210_INFO(432x240),
va009039 12:ea4badc78215 158 C210_INFO(640x480),
va009039 12:ea4badc78215 159 C210_INFO(544x288),
va009039 12:ea4badc78215 160 C210_INFO(640x360),
va009039 12:ea4badc78215 161 C210_INFO(752x416),
va009039 12:ea4badc78215 162 C210_INFO(800x448),
va009039 12:ea4badc78215 163 C210_INFO(800x600),
va009039 12:ea4badc78215 164
va009039 12:ea4badc78215 165 // Logitech Qcam Orbit AF QCAM-200R
va009039 12:ea4badc78215 166 Q200R_INFO(160x120),
va009039 12:ea4badc78215 167 Q200R_INFO(176x144),
va009039 12:ea4badc78215 168 Q200R_INFO(320x240),
va009039 12:ea4badc78215 169 Q200R_INFO(352x288),
va009039 12:ea4badc78215 170 Q200R_INFO(640x480),
va009039 12:ea4badc78215 171 Q200R_INFO(800x600),
va009039 12:ea4badc78215 172
va009039 12:ea4badc78215 173 // LifeCam VX700
va009039 12:ea4badc78215 174 VX700_INFO(160x120),
va009039 12:ea4badc78215 175 VX700_INFO(176x144),
va009039 12:ea4badc78215 176 VX700_INFO(320x240),
va009039 12:ea4badc78215 177 VX700_INFO(352x288),
va009039 12:ea4badc78215 178 VX700_INFO(640x480),
va009039 12:ea4badc78215 179
va009039 12:ea4badc78215 180 // Sonix USB 2.0 Camera
va009039 12:ea4badc78215 181 SONIX_INFO(160x120),
va009039 12:ea4badc78215 182 SONIX_INFO(176x144),
va009039 12:ea4badc78215 183 SONIX_INFO(320x240),
va009039 12:ea4badc78215 184 SONIX_INFO(352x288),
va009039 12:ea4badc78215 185 SONIX_INFO(640x480),
va009039 12:ea4badc78215 186
va009039 12:ea4badc78215 187 // Not found
va009039 12:ea4badc78215 188 {0,0,0,0},
va009039 12:ea4badc78215 189 };
va009039 12:ea4badc78215 190
va009039 12:ea4badc78215 191 CamInfo* getCamInfoList() {
va009039 12:ea4badc78215 192 return const_cast<CamInfo*>(CamInfoList);
va009039 12:ea4badc78215 193 }