56 #include <1394Camera.h> 
   74         m_nNumberOfCameras = nCameras;
 
   93         int i, number_of_cameras;
 
  100         cam = 
new C1394Camera();
 
  102         if (!cam->CheckLink())
 
  104                 number_of_cameras = cam->GetNumberCameras();
 
  106                 if (m_nNumberOfCameras == -1 || number_of_cameras < m_nNumberOfCameras)
 
  107                         m_nNumberOfCameras = number_of_cameras;
 
  111                 m_nNumberOfCameras = 0;
 
  118         if (m_nNumberOfCameras != 0)
 
  122                 m_ppCameras = 
new C1394Camera*[m_nNumberOfCameras];
 
  124                 m_ppCameras[0] = cam;
 
  125                 for (i = 1; i < m_nNumberOfCameras; i++)
 
  127                         m_ppCameras[i] = 
new C1394Camera();
 
  135         for (i = 0; i < m_nNumberOfCameras; i++)
 
  137                 cam = m_ppCameras[i];
 
  139                 if (cam->CheckLink())
 
  147                 cam->SelectCamera(i);
 
  149 #ifndef CMU1394_Version_645 
  150                 cam->m_cameraInitialized = 
false;    
 
  153 #ifndef CMU1394_Version_645 
  154                 cam->InquireControlRegisters();      
 
  158                 int format = -1, mode = -1, rate = -1;
 
  161                 if (m_nFormat == -1 || m_nMode == -1 || m_nRate == -1)
 
  163                         for (format = 0; format < 3; format++)
 
  165                                 for (mode = 0; mode < 8; mode++)
 
  167                                         for (rate = 5; rate >= 0; rate--)
 
  169 #ifdef CMU1394_Version_645 
  170                                                 if (cam->HasVideoFrameRate(format, mode, rate))
 
  172                                                 if (cam->m_videoFlags[format][mode][rate])
 
  190 #ifdef CMU1394_Version_645 
  191                         if (cam->HasVideoFrameRate(m_nFormat, m_nMode, m_nRate))
 
  193                         if (cam->m_videoFlags[m_nFormat][m_nMode][m_nRate])
 
  205                         cam->SetVideoFormat(format);
 
  206                         cam->SetVideoMode(mode);
 
  207                         cam->SetVideoFrameRate(rate);
 
  209                         if (cam->StartImageAcquisition() != CAM_SUCCESS)
 
  215 #ifdef CMU1394_Version_645 
  216                         cam->GetVideoFrameDimensions(&w, &h);
 
  220                         width = cam->m_width;      
 
  221                         height = cam->m_height;    
 
  236         return m_nNumberOfCameras;
 
  243         if (m_ppCameras != NULL)
 
  245                 for (i = 0; i < m_nNumberOfCameras; i++)
 
  247                         m_ppCameras[i]->StopImageAcquisition();
 
  248                         delete m_ppCameras[i];
 
  251                 delete [] m_ppCameras;
 
  262         int i, num_dropped_frames = -1;
 
  266         for (i = 0; i < m_nNumberOfCameras; i++)
 
  268                 cam = m_ppCameras[i];
 
  270                 if (cam->AcquireImageEx(
true, &num_dropped_frames) == CAM_SUCCESS)
 
  272                         cam->getRGB(ppImages[i]->pixels, height*width*3);
 
  283 #ifndef CMU1394_Version_645 
  285 void CCMU1394Capture::SetFocus(
int nFocus, 
int nCamera)
 
  289                 for (
int i = 0; i < m_nNumberOfCameras; i++)
 
  290                         m_ppCameras[i]->SetFocus(nFocus);
 
  294                 if (nCamera < 0 || nCamera >= m_nNumberOfCameras)
 
  295                         printf(
"error: parameter nCamera = %i is out of bounds (%i cameras available)\n", nCamera, m_nNumberOfCameras);
 
  297                         m_ppCameras[nCamera]->SetFocus(nFocus);
 
  306                 for (
int i = 0; i < m_nNumberOfCameras; i++)
 
  308                         C1394CameraControl *pFeature = m_ppCameras[i]->GetCameraControl(FEATURE_GAIN);
 
  311                                 pFeature->SetValue(nGain);
 
  313                                 printf(
"error: feature 'gain' not available for camera %i in CCMU1394Capture::SetGain\n", i);
 
  318                 if (nCamera < 0 || nCamera >= m_nNumberOfCameras)
 
  319                         printf(
"error: parameter nCamera = %i is out of bounds (%i cameras available) in CCMU1394Capture::SetGain\n", nCamera, m_nNumberOfCameras);
 
  322                         C1394CameraControl *pFeature = m_ppCameras[nCamera]->GetCameraControl(FEATURE_GAIN);
 
  325                                 pFeature->SetValue(nGain);
 
  327                                 printf(
"error: feature 'gain' not available for camera %i in CCMU1394Capture::SetGain\n", nCamera);
 
  338                 for (
int i = 0; i < m_nNumberOfCameras; i++)
 
  340                         C1394CameraControl *pFeature = m_ppCameras[i]->GetCameraControl(FEATURE_GAIN);
 
  343                                 pFeature->SetValue(nShutter);
 
  345                                 printf(
"error: feature 'shutter' not available for camera %i in CCMU1394Capture::SetShutter\n", i);
 
  350                 if (nCamera < 0 || nCamera >= m_nNumberOfCameras)
 
  351                         printf(
"error: parameter nCamera = %i is out of bounds (%i cameras available) in CCMU1394Capture::SetShutter\n", nCamera, m_nNumberOfCameras);
 
  354                         C1394CameraControl *pFeature = m_ppCameras[nCamera]->GetCameraControl(FEATURE_SHUTTER);
 
  357                                 pFeature->SetValue(nShutter);
 
  359                                 printf(
"error: feature 'shutter' not available for camera %i in CCMU1394Capture::SetShutter\n", nCamera);
 
  371                 for (
int i = 0; i < m_nNumberOfCameras; i++)
 
  373                         C1394CameraControl *pFeature = m_ppCameras[i]->GetCameraControl((CAMERA_FEATURE) nFeature);
 
  376                                 pFeature->SetValue(nValue);
 
  378                                 printf(
"error: feature %i not available for camera %i in CCMU1394Capture::SetFeature\n", nFeature, i);
 
  383                 if (nCamera < 0 || nCamera >= m_nNumberOfCameras)
 
  384                         printf(
"error: parameter nCamera = %i is out of bounds (%i cameras available) in CCMU1394Capture::SetFeature\n", nCamera, m_nNumberOfCameras);
 
  387                         C1394CameraControl *pFeature = m_ppCameras[nCamera]->GetCameraControl((CAMERA_FEATURE) nFeature);
 
  390                                 pFeature->SetValue(nValue);
 
  392                                 printf(
"error: feature %i not available for camera %i in CCMU1394Capture::SetFeature\n", nFeature, nCamera);
 
void SetGain(int nGain, int nCamera=-1)
void SetFeature(int nFeature, int nValue, int nCamera=-1)
CCMU1394Capture(int nFormat=-1, int nMode=-1, int nRate=-1, int nCameras=1)
void SetShutter(int nShutter, int nCamera=-1)
Data structure for the representation of 8-bit grayscale images and 24-bit RGB (or HSV) color images ...
bool CaptureImage(CByteImage **ppImages)