From b5a4e77348ad5302884a717f65a04ff59a2bdd87 Mon Sep 17 00:00:00 2001 From: Lionel Le Folgoc Date: Sun, 3 Apr 2011 13:34:44 +0200 Subject: Port to libv4l1 In linux >= 2.6.38, has been dropped, so port the plugin to use the libv4l compatibility layer. --- configure.in.in | 1 + panel-plugin/Makefile.am | 4 +++- panel-plugin/v4l1.c | 24 +++++++++++------------- panel-plugin/xfce4-radio.h | 3 --- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/configure.in.in b/configure.in.in index b00b903..79b18ff 100644 --- a/configure.in.in +++ b/configure.in.in @@ -32,6 +32,7 @@ AC_HEADER_STDC dnl configure the panel plugin XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.3.22]) XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.3.22]) +XDT_CHECK_PACKAGE([LIBV4L1], [libv4l1], [0.2]) dnl check for i18n support XDT_I18N([@LINGUAS@]) diff --git a/panel-plugin/Makefile.am b/panel-plugin/Makefile.am index 32f81d3..dc09401 100644 --- a/panel-plugin/Makefile.am +++ b/panel-plugin/Makefile.am @@ -11,11 +11,13 @@ xfce4_radio_plugin_CFLAGS = \ -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ @LIBXFCE4PANEL_CFLAGS@ \ @LIBXFCEGUI4_CFLAGS@ \ + @LIBV4L1_CFLAGS@ \ -std=c99 xfce4_radio_plugin_LDADD = \ @LIBXFCE4PANEL_LIBS@ \ - @LIBXFCEGUI4_LIBS@ + @LIBXFCEGUI4_LIBS@ \ + @LIBV4L1_LIBS@ # .desktop file # diff --git a/panel-plugin/v4l1.c b/panel-plugin/v4l1.c index 6bfc316..5ad6eaa 100644 --- a/panel-plugin/v4l1.c +++ b/panel-plugin/v4l1.c @@ -15,14 +15,12 @@ #include #include -#include #include #include #include -#include #include -#include +#include #include "radio.h" typedef struct _V4L1RadioDev V4L1RadioDev; @@ -40,11 +38,11 @@ v4l1_radio_init(RadioDev *radio_dev, char *device) V4L1RadioDev *dev = (V4L1RadioDev*)radio_dev; struct video_tuner tuner; - if ((dev->fd = open(device, O_RDONLY)) < 0) + if ((dev->fd = v4l1_open(device, O_RDONLY)) < 0) return 0; tuner.tuner = 0; - if (ioctl (dev->fd, VIDIOCGTUNER, &tuner) < 0) + if (v4l1_ioctl (dev->fd, VIDIOCGTUNER, &tuner) < 0) dev->freq_fact = 16; else { @@ -85,7 +83,7 @@ v4l1_radio_set_freq(RadioDev *radio_dev, float freq) assert ((freq <= 108) && (freq > 65)); - if (ioctl(dev->fd, VIDIOCSFREQ, &ifreq) < 0) + if (v4l1_ioctl(dev->fd, VIDIOCSFREQ, &ifreq) < 0) perror ("VIDIOCSFREQ"); } @@ -98,7 +96,7 @@ v4l1_radio_mute(RadioDev *radio_dev, int mute) if (dev->fd<0) return; - if (ioctl(dev->fd, VIDIOCGAUDIO, &vid_aud)) { + if (v4l1_ioctl(dev->fd, VIDIOCGAUDIO, &vid_aud)) { perror("VIDIOCGAUDIO"); memset (&vid_aud, 0, sizeof (struct video_audio)); } @@ -109,7 +107,7 @@ v4l1_radio_mute(RadioDev *radio_dev, int mute) vid_aud.flags &= ~VIDEO_AUDIO_MUTE; vid_aud.mode = VIDEO_SOUND_STEREO; } - if (ioctl(dev->fd, VIDIOCSAUDIO, &vid_aud)) + if (v4l1_ioctl(dev->fd, VIDIOCSAUDIO, &vid_aud)) perror("VIDIOCSAUDIO"); } @@ -123,7 +121,7 @@ v4l1_radio_get_stereo(RadioDev *radio_dev) if (dev->fd<0) return -1; - if (ioctl (dev->fd, VIDIOCGAUDIO, &va) < 0) + if (v4l1_ioctl (dev->fd, VIDIOCGAUDIO, &va) < 0) return -1; if (va.mode == VIDEO_SOUND_STEREO) return 1; @@ -142,7 +140,7 @@ v4l1_radio_get_signal(RadioDev *radio_dev) return -1; memset(&vt,0,sizeof(vt)); - ioctl (dev->fd, VIDIOCGTUNER, &vt); + v4l1_ioctl (dev->fd, VIDIOCGTUNER, &vt); signal=vt.signal>>13; return signal; @@ -157,7 +155,7 @@ v4l1_radio_get_freq(RadioDev *radio_dev) if (dev->fd<0) return -1; - if (ioctl (dev->fd, VIDIOCGFREQ, &freq)) + if (v4l1_ioctl (dev->fd, VIDIOCGFREQ, &freq)) { perror ("VIDIOCGFREQ"); return -1; @@ -174,7 +172,7 @@ v4l1_radio_is_muted(RadioDev *radio_dev) if (dev->fd<0) return -1; - if (ioctl (dev->fd, VIDIOCGAUDIO, &vid_aud)) { + if (v4l1_ioctl (dev->fd, VIDIOCGAUDIO, &vid_aud)) { perror ("VIDIOCGAUDIO"); return -1; } @@ -188,7 +186,7 @@ v4l1_radio_finalize(RadioDev *radio_dev) V4L1RadioDev *dev = (V4L1RadioDev*)radio_dev; if (dev->fd >= 0) - close(dev->fd); + v4l1_close(dev->fd); free (dev); } diff --git a/panel-plugin/xfce4-radio.h b/panel-plugin/xfce4-radio.h index a8ad6fc..f2b8115 100644 --- a/panel-plugin/xfce4-radio.h +++ b/panel-plugin/xfce4-radio.h @@ -24,9 +24,6 @@ #include #include -#include -#include - #include #define FREQ_MIN 8750 -- 1.7.4.1