summaryrefslogtreecommitdiff
path: root/tuner.c
diff options
context:
space:
mode:
Diffstat (limited to 'tuner.c')
-rw-r--r--tuner.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/tuner.c b/tuner.c
index 3d8e1ff..0f7b3f7 100644
--- a/tuner.c
+++ b/tuner.c
@@ -104,22 +104,6 @@ static unsigned long tuner_get_tuned_freq()
return v4l_to_hz(t_freq.frequency);
}
-static uint16_t tuner_get_signal()
-{
- struct v4l2_tuner t_tuner = {
- .index = TUNER_DEVICE_ID
- };
-
- g_return_val_if_fail(tuner_is_open(), 0);
-
- if (ioctl(tuner_fd, VIDIOC_G_TUNER, &t_tuner) < 0) {
- g_warning("Failed to get signal level: %s", strerror(errno));
- return 0;
- }
-
- return t_tuner.signal;
-}
-
bool configure_tuner(bool on)
{
if (on) {
@@ -182,6 +166,7 @@ bool tuner_set_frequency(double mhz)
g_message("Tuned to %.1f Mhz", mhz);
server_notify_tuned(mhz);
tuner_freq = hz;
+ signal_reset();
rds_reset();
return true;
}
@@ -189,6 +174,22 @@ bool tuner_set_frequency(double mhz)
return false;
}
+uint16_t tuner_get_signal()
+{
+ struct v4l2_tuner t_tuner = {
+ .index = TUNER_DEVICE_ID
+ };
+
+ g_return_val_if_fail(tuner_is_open(), 0);
+
+ if (ioctl(tuner_fd, VIDIOC_G_TUNER, &t_tuner) < 0) {
+ g_warning("Failed to get signal level: %s", strerror(errno));
+ return 0;
+ }
+
+ return t_tuner.signal;
+}
+
bool tuner_search(bool forward)
{
struct v4l2_hw_freq_seek t_freq_seek = {
@@ -213,6 +214,7 @@ bool tuner_search(bool forward)
// Got new frequency, fire signals.
tuner_freq = hz;
server_notify_tuned(hz_to_mhz(hz));
+ signal_reset();
rds_reset();
return true;
}