make menu text translatable
[enigma2.git] / lib / driver / avswitch.cpp
index 0fc53da55efdf189d02c22e1c3f46eb9453f3b3a..1f2765ec1fdd75918720198a8e3026794459d45a 100644 (file)
@@ -46,7 +46,14 @@ int eAVSwitch::getVCRSlowBlanking()
        int val=0;
        if (m_fp_fd >= 0)
        {
-               if (ioctl(m_fp_fd, FP_IOCTL_GET_VCR, &val) < 0)
+               FILE *f = fopen("/proc/stb/fp/vcr_fns", "r");
+               if (f)
+               {
+                       if (fscanf(f, "%d", &val) != 1)
+                               eDebug("read /proc/stb/fp/vcr_fns failed!! (%m)");
+                       fclose(f);
+               }
+               else if (ioctl(m_fp_fd, FP_IOCTL_GET_VCR, &val) < 0)
                        eDebug("FP_GET_VCR failed (%m)");
        }
        return val;
@@ -61,11 +68,24 @@ void eAVSwitch::fp_event(int what)
        }
        else
        {
-               int val = FP_EVENT_VCR_SB_CHANGED;  // ask only for this event
-               if (ioctl(m_fp_fd, FP_IOCTL_GET_EVENT, &val) < 0)
-                       eDebug("FP_IOCTL_GET_EVENT failed (%m)");
-               else if (val & FP_EVENT_VCR_SB_CHANGED)
-                       /* emit */ vcr_sb_notifier(getVCRSlowBlanking());
+               FILE *f = fopen("/proc/stb/fp/events", "r");
+               if (f)
+               {
+                       int events;
+                       if (fscanf(f, "%d", &events) != 1)
+                               eDebug("read /proc/stb/fp/events failed!! (%m)");
+                       else if (events & FP_EVENT_VCR_SB_CHANGED)
+                               /* emit */ vcr_sb_notifier(getVCRSlowBlanking());
+                       fclose(f);
+               }
+               else
+               {
+                       int val = FP_EVENT_VCR_SB_CHANGED;  // ask only for this event
+                       if (ioctl(m_fp_fd, FP_IOCTL_GET_EVENT, &val) < 0)
+                               eDebug("FP_IOCTL_GET_EVENT failed (%m)");
+                       else if (val & FP_EVENT_VCR_SB_CHANGED)
+                               /* emit */ vcr_sb_notifier(getVCRSlowBlanking());
+               }
        }
 }