qv4l2: fix querystd and query_dv_timings
authorHans Verkuil <hans.verkuil@cisco.com>
Wed, 23 Jul 2014 11:35:15 +0000 (13:35 +0200)
committerHans Verkuil <hans.verkuil@cisco.com>
Wed, 23 Jul 2014 11:35:15 +0000 (13:35 +0200)
Error messages in case of a missing signal were not displayed, and the
querystd return code check was inverted.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
utils/qv4l2/general-tab.cpp
utils/qv4l2/general-tab.h

index 49895cf..74534d0 100644 (file)
@@ -1750,7 +1750,7 @@ void GeneralTab::qryStdClicked()
 {
        v4l2_std_id std;
 
-       if (!query_std(std))
+       if (query_std(std))
                return;
 
        if (std == V4L2_STD_UNKNOWN) {
@@ -1813,10 +1813,25 @@ void GeneralTab::updateTimings()
 void GeneralTab::qryTimingsClicked()
 {
        v4l2_dv_timings timings;
+       int err = query_dv_timings(timings);
 
-       if (!query_dv_timings(timings)) {
+       switch (err) {
+       case ENOLINK:
+               info("No signal found\n");
+               break;
+       case ENOLCK:
+               info("Could not lock to signal\n");
+               break;
+       case ERANGE:
+               info("Frequency out of range\n");
+               break;
+       case 0:
                s_dv_timings(timings);
                updateTimings();
+               break;
+       default:
+               error(err);
+               break;
        }
 }
 
index b1b2e5b..ac9868e 100644 (file)
@@ -182,6 +182,10 @@ private:
        {
                g_mw->error(error);
        }
+       virtual void error(int error)
+       {
+               g_mw->error(error);
+       }
        v4l_fd *g_v4l_fd() { return m_fd->g_v4l_fd(); }
 
        __u32 g_type() const { return m_fd->g_type(); }