mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-07-31 05:02:24 -04:00
Linux 4.0
This commit is contained in:
parent
6534d1dd4d
commit
6ac25f7bad
@ -140,6 +140,7 @@ V4LThread::CloseSource()
|
|||||||
v4l2_munmap(buffers[i].start, buffers[i].length);
|
v4l2_munmap(buffers[i].start, buffers[i].length);
|
||||||
|
|
||||||
v4l2_close(fd);
|
v4l2_close(fd);
|
||||||
|
fd = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -152,24 +153,25 @@ V4LThread::set_sample_rate(double samp_rate)
|
|||||||
frequency.type = V4L2_TUNER_ADC;
|
frequency.type = V4L2_TUNER_ADC;
|
||||||
frequency.frequency = samp_rate / 1;
|
frequency.frequency = samp_rate / 1;
|
||||||
|
|
||||||
if (v4l2_ioctl(fd, VIDIOC_S_FREQUENCY, &frequency) == -1)
|
xioctl(fd, VIDIOC_S_FREQUENCY, &frequency);
|
||||||
perror("VIDIOC_S_FREQUENCY");
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cannot change freq while streaming in Linux 4.0
|
||||||
void
|
void
|
||||||
V4LThread::set_center_freq(double freq)
|
V4LThread::set_center_freq(double freq)
|
||||||
{
|
{
|
||||||
struct v4l2_frequency frequency;
|
struct v4l2_frequency frequency;
|
||||||
|
|
||||||
|
if (fd <= 0)
|
||||||
|
return;
|
||||||
memset (&frequency, 0, sizeof(frequency));
|
memset (&frequency, 0, sizeof(frequency));
|
||||||
frequency.tuner = 1;
|
frequency.tuner = 1;
|
||||||
frequency.type = V4L2_TUNER_RF;
|
frequency.type = V4L2_TUNER_RF;
|
||||||
frequency.frequency = freq;
|
frequency.frequency = freq;
|
||||||
|
|
||||||
if (v4l2_ioctl(fd, VIDIOC_S_FREQUENCY, &frequency) == -1)
|
xioctl(fd, VIDIOC_S_FREQUENCY, &frequency);
|
||||||
perror("VIDIOC_S_FREQUENCY");
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -189,8 +191,7 @@ V4LThread::set_bandwidth(double bandwidth)
|
|||||||
ext_ctrls.count = 1;
|
ext_ctrls.count = 1;
|
||||||
ext_ctrls.controls = &ext_ctrl;
|
ext_ctrls.controls = &ext_ctrl;
|
||||||
|
|
||||||
if (v4l2_ioctl(fd, VIDIOC_S_EXT_CTRLS, &ext_ctrls) == -1)
|
xioctl(fd, VIDIOC_S_EXT_CTRLS, &ext_ctrls);
|
||||||
perror("VIDIOC_S_EXT_CTRLS");
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -201,6 +202,8 @@ V4LThread::set_tuner_gain(double gain)
|
|||||||
struct v4l2_ext_controls ext_ctrls;
|
struct v4l2_ext_controls ext_ctrls;
|
||||||
struct v4l2_ext_control ext_ctrl;
|
struct v4l2_ext_control ext_ctrl;
|
||||||
|
|
||||||
|
if (fd <= 0)
|
||||||
|
return;
|
||||||
memset (&ext_ctrl, 0, sizeof(ext_ctrl));
|
memset (&ext_ctrl, 0, sizeof(ext_ctrl));
|
||||||
ext_ctrl.id = CID_TUNER_GAIN;
|
ext_ctrl.id = CID_TUNER_GAIN;
|
||||||
ext_ctrl.value = gain;
|
ext_ctrl.value = gain;
|
||||||
@ -210,8 +213,7 @@ V4LThread::set_tuner_gain(double gain)
|
|||||||
ext_ctrls.count = 1;
|
ext_ctrls.count = 1;
|
||||||
ext_ctrls.controls = &ext_ctrl;
|
ext_ctrls.controls = &ext_ctrl;
|
||||||
|
|
||||||
if (v4l2_ioctl(fd, VIDIOC_S_EXT_CTRLS, &ext_ctrls) == -1)
|
xioctl(fd, VIDIOC_S_EXT_CTRLS, &ext_ctrls);
|
||||||
perror("VIDIOC_S_EXT_CTRLS");
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user