Simple USBHost WebCam for EA LPC4088 QSB/LPC1768 test program

Dependencies:   LPC4088-USBHost mbed

EA LPC4088 QSB/LPC1768をUSBホストにしてWebカメラからJPEG画像を読み取るテストプログラムです。

The usage is the same as KL46Z-USBHostC270_example.
使い方はKL46Z-USBHostC270_exampleと同じです。
動作確認: Logitech C270,Logitech Q200R(Qcam Orbit AF)
/media/uploads/va009039/lpc4088-c270-480x360.jpg

Committer:
va009039
Date:
Thu Apr 24 05:38:45 2014 +0000
Revision:
0:c972ee42b455
first commit,sync rev.29.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:c972ee42b455 1 #pragma once
va009039 0:c972ee42b455 2
va009039 0:c972ee42b455 3 template<class K,class T>
va009039 0:c972ee42b455 4 class mymap {
va009039 0:c972ee42b455 5 struct mypair {
va009039 0:c972ee42b455 6 K first;
va009039 0:c972ee42b455 7 T second;
va009039 0:c972ee42b455 8 };
va009039 0:c972ee42b455 9 public:
va009039 0:c972ee42b455 10 mymap() {
va009039 0:c972ee42b455 11 m_size = 0;
va009039 0:c972ee42b455 12 }
va009039 0:c972ee42b455 13 T& operator[](const K& key) {
va009039 0:c972ee42b455 14 int it;
va009039 0:c972ee42b455 15 if (count(key) == 0) {
va009039 0:c972ee42b455 16 it = insert(key, 0);
va009039 0:c972ee42b455 17 } else {
va009039 0:c972ee42b455 18 it = find(key);
va009039 0:c972ee42b455 19 }
va009039 0:c972ee42b455 20 return m_buf[it].second;
va009039 0:c972ee42b455 21 }
va009039 0:c972ee42b455 22 bool empty() { return m_size == 0 ? true : false; }
va009039 0:c972ee42b455 23 int size() { return m_size; }
va009039 0:c972ee42b455 24 void clear() { m_size = 0; }
va009039 0:c972ee42b455 25 int count(K key) {
va009039 0:c972ee42b455 26 for(int i = 0; i < m_size; i++) {
va009039 0:c972ee42b455 27 if (m_buf[i].first == key) {
va009039 0:c972ee42b455 28 return 1;
va009039 0:c972ee42b455 29 }
va009039 0:c972ee42b455 30 }
va009039 0:c972ee42b455 31 return 0;
va009039 0:c972ee42b455 32 }
va009039 0:c972ee42b455 33
va009039 0:c972ee42b455 34 private:
va009039 0:c972ee42b455 35 int find(K key) {
va009039 0:c972ee42b455 36 for(int i = 0; i < m_size; i++) {
va009039 0:c972ee42b455 37 if (m_buf[i].first == key) {
va009039 0:c972ee42b455 38 return i;
va009039 0:c972ee42b455 39 }
va009039 0:c972ee42b455 40 }
va009039 0:c972ee42b455 41 return -1;
va009039 0:c972ee42b455 42 }
va009039 0:c972ee42b455 43 int insert(K key, T value) {
va009039 0:c972ee42b455 44 int it = find(key);
va009039 0:c972ee42b455 45 if (it != -1) {
va009039 0:c972ee42b455 46 m_buf[it].second = value;
va009039 0:c972ee42b455 47 return it;
va009039 0:c972ee42b455 48 }
va009039 0:c972ee42b455 49 mypair* new_buf = new mypair[m_size+1];
va009039 0:c972ee42b455 50 if (m_size > 0) {
va009039 0:c972ee42b455 51 for(int i = 0; i < m_size; i++) {
va009039 0:c972ee42b455 52 new_buf[i] = m_buf[i];
va009039 0:c972ee42b455 53 }
va009039 0:c972ee42b455 54 delete[] m_buf;
va009039 0:c972ee42b455 55 }
va009039 0:c972ee42b455 56 m_buf = new_buf;
va009039 0:c972ee42b455 57 it = m_size++;
va009039 0:c972ee42b455 58 m_buf[it].first = key;
va009039 0:c972ee42b455 59 m_buf[it].second = value;
va009039 0:c972ee42b455 60 return it;
va009039 0:c972ee42b455 61 }
va009039 0:c972ee42b455 62
va009039 0:c972ee42b455 63 int m_size;
va009039 0:c972ee42b455 64 mypair *m_buf;
va009039 0:c972ee42b455 65 };