00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #include <qvgui/qvcamerawidget.h>
00026
00027 QVCameraWidget::QVCameraWidget(QVCamera *cam, QWidget *parent):QWidget(parent)
00028 {
00029 setupUi(this);
00030 this->camera = cam;
00031 this->sliderActive = true;
00032 if (this->camera->isLiveCamera())
00033 seekSlider->setEnabled(false);
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 connect(pause_button,SIGNAL(pressed()),camera,SLOT(pauseCam()));
00049 connect(play_button,SIGNAL(pressed()),camera,SLOT(unpauseCam()));
00050 connect(next_button,SIGNAL(pressed()),camera,SLOT(nextFrameCam()));
00051 connect(stop_button, SIGNAL(pressed()),camera,SLOT(closeCam()));
00052
00054 connect(seekSlider,SIGNAL(sliderPressed()),this,SLOT(seekPressed()));
00055 connect(seekSlider,SIGNAL(sliderReleased()),this,SLOT(seekReleased()));
00056 connect(seekSlider,SIGNAL(valueChanged(int)),this,SLOT(seekMoved()));
00057 connect(seekSlider,SIGNAL(sliderMoved(int)),this,SLOT(seekMoved()));
00058
00059 connect(this,SIGNAL(seek_pressed(QVCamera::TSeekType,double)), camera,SLOT(seekCam(QVCamera::TSeekType,double)));
00060
00061
00062 connect(speed_button,SIGNAL(pressed()),this,SLOT(speedPressed()));
00063 connect(this,SIGNAL(speed_pressed(double)), camera,SLOT(setSpeedCam(double)));
00064
00065
00066
00067 connect(camera,SIGNAL(newRead()), this, SLOT(updateCameraVisibleInfoSlot()));
00068 connect(camera,SIGNAL(newGrab()), this, SLOT(updateCameraVisibleInfoSlot()));
00069 connect(camera,SIGNAL(statusChange(QVCamera::TCameraStatus)),
00070 this,SLOT(updateCameraStateSlot(QVCamera::TCameraStatus)));
00071
00072
00073
00074 }
00075
00076 void QVCameraWidget::seekPressed()
00077 {
00078 sliderActive = false;
00079 }
00080
00081 void QVCameraWidget::seekReleased()
00082 {
00083 sliderActive = true;
00084 emit seek_pressed((QVCamera::TSeekType)1,seekSlider->value());
00085 }
00086
00087 void QVCameraWidget::seekMoved()
00088 {
00089
00090 }
00091
00092 void QVCameraWidget::speedPressed()
00093 {
00094 emit speed_pressed(speed_spin_box->value());
00095 }
00096
00097
00098 void QVCameraWidget::updateCameraVisibleInfoSlot()
00099 {
00100
00101
00102 filename_label->setText(camera->getUrlBase());
00103 fps_orig_label->setText(QString("fps: %1").
00104 arg(static_cast<int>(camera->getFPS())));
00105 speed_label->setText(QString("speed: x %1")
00106 .arg(camera->getSpeed(),0,'f',2));
00107 size_label->setText(QString("size: %1x%2").
00108 arg(camera->getRows()).arg(camera->getCols()));
00109
00110
00111 frames_label->setText(QString("frames grabbed/read: %1/%2").
00112 arg(camera->getFramesGrabbed()).
00113 arg(camera->getFramesRead()));
00114 pos_label->setText(QString("secs: %1/%2").
00115 arg(camera->getTimePos()).
00116 arg(camera->getTimeLength()));
00117 int percen = (int)((100*camera->getTimePos())/camera->getTimeLength());
00118 if (sliderActive) seekSlider->setValue(percen);
00119 }
00120
00121 void QVCameraWidget::updateCameraStateSlot(QVCamera::TCameraStatus status)
00122 {
00123 switch(status)
00124 {
00125
00126 case QVCamera::Closed:
00127 stop_button->setEnabled(FALSE);
00128 pause_button->setEnabled(FALSE);
00129 play_button->setEnabled(FALSE);
00130 next_button->setEnabled(FALSE);
00131 break;
00132
00133 case QVCamera::Running:
00134 pause_button->setEnabled(TRUE);
00135 play_button->setEnabled(FALSE);
00136 next_button->setEnabled(FALSE);
00137 break;
00138
00139 case QVCamera::RunningOneStep:
00140 case QVCamera::Paused:
00141 pause_button->setEnabled(FALSE);
00142 play_button->setEnabled(TRUE);
00143 next_button->setEnabled(TRUE);
00144 break;
00145
00146 default:
00147 break;
00148 }
00149 }
00150