qtmobility/plugins/multimedia/v4l/radio/v4lradiocontrol.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 5 453da2cfceef
--- a/qtmobility/plugins/multimedia/v4l/radio/v4lradiocontrol.cpp	Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/plugins/multimedia/v4l/radio/v4lradiocontrol.cpp	Mon May 03 13:18:40 2010 +0300
@@ -344,31 +344,32 @@
 
 bool V4LRadioControl::isSearching() const
 {
-    //TODO
-    return false;
+    return scanning;
 }
 
 void V4LRadioControl::cancelSearch()
 {
-    //TODO
+    scanning = false;
+    timer->stop();
 }
 
 void V4LRadioControl::searchForward()
 {
     // Scan up
     if(scanning) {
-        scanning = false;
+        cancelSearch();
         return;
     }
     scanning = true;
     forward  = true;
+    timer->start();
 }
 
 void V4LRadioControl::searchBackward()
 {
     // Scan down
     if(scanning) {
-        scanning = false;
+        cancelSearch();
         return;
     }
     scanning = true;
@@ -407,12 +408,16 @@
 
     if(!scanning) return;
 
+    if (signal > 25) {
+        cancelSearch();
+        return;
+    }
+
     if(forward) {
         setFrequency(currentFreq+step);
     } else {
         setFrequency(currentFreq-step);
     }
-    emit signalStrengthChanged(signalStrength());
 }
 
 bool V4LRadioControl::initRadio()
@@ -426,7 +431,7 @@
     available = false;
     freqMin = freqMax = currentFreq = 0;
 
-    fd = ::open("/dev/radio", O_RDWR);
+    fd = ::open("/dev/radio0", O_RDWR);
 
     if(fd != -1) {
         // Capabilites
@@ -479,8 +484,6 @@
             }
         }
 
-        qWarning()<<"min="<<freqMin<<", max="<<freqMax<<", current="<<currentFreq;
-
         // stereo
         bool stereo = false;
         memset( &tuner, 0, sizeof( tuner ) );