/* --orbit-pantilt.c--
 Author: Osamu Matsumoto<osamu-m@is.naist.jp>
	 http://robotics.naist.jp/~osamu-m/

 Description : OpenCV + PWC patch test program
 Compile:
    gcc -o orbit-pantilt `pkg-config opencv --clfags --libs` orbit-pantilt.c 
 
*/
#include <stdio.h>
#include <cv.h>
#include <highgui.h>

int main(int argc,char *argv[]){
	
	CvCapture *capture;
	IplImage *image;
	CvPanTilt angle;
	CvPanTiltRange range;
	int key;

	capture = cvCaptureFromCAM(0);
	range = cvRangePanTilt(capture);
	cvNamedWindow("image",1);
	
	cvAbsolutePanTilt(capture, cvPanTilt(0,0), range);

	//LEDの点滅を設定してみる (ON:OFF 100ms:100ms)
	cvSetLED(capture,100,100);
	printf("pan,tilt = %d,%d\n",angle.pan,angle.tilt);

	if(capture){
		while(1){
		angle.pan = angle.tilt = 0;
			cvGrabFrame(capture);
			image = cvRetrieveFrame(capture);
			if(image)
				cvShowImage("image",image);
			else 
				break;

			if((key = cvWaitKey(10))=='q') 
				break;
				
			switch(key){
			case 'l':
				angle.pan = 200;
				break;
			case 'h':
				angle.pan = -200;
				break;
			case 'k':
				angle.tilt = 100;
				break;
			case 'j':
				angle.tilt = -100;
				break;
			case 'q':
				break;
			}
			cvRelativePanTilt(capture,angle,range);
			cvGetPanTilt(capture,&angle);
			printf("pan,tilt = %d,%d\n",angle.pan,angle.tilt);
			
		}
		cvReleaseCapture(&capture);
	}
	
	return 0;
}
// orbit-pantilt.c ends here