DC1394_ISO_SPEED_3200);
}
- // should a specific mode be used
- if (userMode >= 0)
+ dc1394video_modes_t videoModes;
+ dc1394_video_get_supported_modes(dcCam, &videoModes);
+ // should a specific mode be used
+ while (userMode >= 0) // 'if' semantic, no real loop here
{
dc1394video_mode_t wantedMode;
- dc1394video_modes_t videoModes;
- dc1394_video_get_supported_modes(dcCam, &videoModes);
-
- //set mode from number, for example the second supported mode, i.e userMode = 1
if (userMode < (int)videoModes.num)
{
+ // set mode from number, for example the second supported mode, i.e userMode = 1
wantedMode = videoModes.modes[userMode];
}
-
- //set modes directly from DC134 constants (from dc1394video_mode_t)
- else if ((userMode >= DC1394_VIDEO_MODE_MIN) && (userMode <= DC1394_VIDEO_MODE_MAX ))
+ else if ((userMode >= DC1394_VIDEO_MODE_MIN) && (userMode <= DC1394_VIDEO_MODE_MAX))
{
+ // set modes directly from DC134 constants (from dc1394video_mode_t)
+
//search for wanted mode, to check if camera supports it
int j = 0;
- while ((j< (int)videoModes.num) && videoModes.modes[j]!=userMode)
+ while ((j < (int)videoModes.num) && videoModes.modes[j] != userMode)
{
j++;
}
-
- if ((int)videoModes.modes[j]==userMode)
- {
- wantedMode = videoModes.modes[j];
- }
- else
+ if (!(j < (int)videoModes.num))
{
userMode = -1; // wanted mode not supported, search for best mode
+ break;
}
+
+ wantedMode = videoModes.modes[j];
}
else
{
- userMode = -1; // wanted mode not supported, search for best mode
+ userMode = -1; // wanted mode not supported, search for best mode
+ break;
}
+
//if userMode is available: set it and update size
- if (userMode != -1)
{
code = dc1394_video_set_mode(dcCam, wantedMode);
- uint32_t width, height;
+ uint32_t width = 0, height = 0;
dc1394_get_image_size_from_video_mode(dcCam, wantedMode, &width, &height);
frameWidth = (int)width;
frameHeight = (int)height;
}
+ break;
}
if (userMode == -1 && (frameWidth > 0 || frameHeight > 0))
{
- dc1394video_mode_t bestMode = (dc1394video_mode_t) - 1;
- dc1394video_modes_t videoModes;
- dc1394_video_get_supported_modes(dcCam, &videoModes);
+ dc1394video_mode_t bestMode = (dc1394video_mode_t)(-1);
for (i = 0; i < (int)videoModes.num; i++)
{
dc1394video_mode_t mode = videoModes.modes[i];