diff options
Diffstat (limited to 'multimedia/xawtv/files/patch-libng__plugins__drv0-bsd.c')
-rw-r--r-- | multimedia/xawtv/files/patch-libng__plugins__drv0-bsd.c | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/multimedia/xawtv/files/patch-libng__plugins__drv0-bsd.c b/multimedia/xawtv/files/patch-libng__plugins__drv0-bsd.c new file mode 100644 index 000000000000..62801a53a196 --- /dev/null +++ b/multimedia/xawtv/files/patch-libng__plugins__drv0-bsd.c @@ -0,0 +1,131 @@ +--- libng/plugins/drv0-bsd.c.orig Wed Mar 12 17:45:56 2003 ++++ libng/plugins/drv0-bsd.c Tue May 24 11:32:55 2005 +@@ -23,10 +23,12 @@ + + #ifdef HAVE_DEV_IC_BT8XX_H + # include <dev/ic/bt8xx.h> +-#endif +-#ifdef HAVE_MACHINE_IOCTL_BT848_H ++#elif defined(HAVE_MACHINE_IOCTL_BT848_H) + # include <machine/ioctl_bt848.h> + # include <machine/ioctl_meteor.h> ++#else ++# include <dev/bktr/ioctl_bt848.h> ++# include <dev/bktr/ioctl_meteor.h> + #endif + + #include "grab-ng.h" +@@ -127,7 +129,7 @@ + { 3, "CSVIDEO" }, + { -1, NULL } + }; +-static int inputs_map[] = { ++static long inputs_map[] = { + METEOR_INPUT_DEV1, + METEOR_INPUT_DEV0, + METEOR_INPUT_DEV_SVIDEO, +@@ -144,7 +146,7 @@ + { 6, "RSVD" }, + { -1, NULL } + }; +-static int norms_map[] = { ++static long norms_map[] = { + BT848_IFORM_F_NTSCM, + BT848_IFORM_F_NTSCJ, + BT848_IFORM_F_PALBDGHI, +@@ -160,7 +162,7 @@ + { 2, "Intern" }, + { -1, NULL } + }; +-static int audio_map[] = { ++static long audio_map[] = { + AUDIO_TUNER, + AUDIO_EXTERN, + AUDIO_INTERN, +@@ -242,7 +244,7 @@ + #define PREFIX "bktr: ioctl: " + + static int +-xioctl(int fd, int cmd, void *arg) ++xioctl(int fd, unsigned long cmd, void *arg) + { + int rc; + +@@ -296,7 +298,7 @@ + break; + } + default: +- fprintf(stderr,PREFIX "UNKNOWN(cmd=0x%x)",cmd); ++ fprintf(stderr,PREFIX "UNKNOWN(cmd=0x%x)",(int)cmd); + break; + } + fprintf(stderr,": %s\n",(rc == 0) ? "ok" : strerror(errno)); +@@ -474,7 +476,7 @@ + /* ---------------------------------------------------------------------- */ + + static int +-bsd_get_range(int id, int *get, int *set) ++bsd_get_range(int id, int *get, long *set) + { + switch (id) { + case ATTR_ID_HUE: +@@ -502,19 +504,20 @@ + static int bsd_read_attr(struct ng_attribute *attr) + { + struct bsd_handle *h = attr->handle; +- int arg, get, set, i; ++ int get, i; ++ long arg, set; + int value = -1; + + switch (attr->id) { + case ATTR_ID_NORM: + if (-1 != xioctl(h->fd,BT848GFMT,&arg)) +- for (i = 0; i < sizeof(norms_map)/sizeof(int); i++) ++ for (i = 0; i < sizeof(norms_map)/sizeof(*norms_map); i++) + if (arg == norms_map[i]) + value = i; + break; + case ATTR_ID_INPUT: + if (-1 != xioctl(h->fd,METEORGINPUT,&arg)) +- for (i = 0; i < sizeof(inputs_map)/sizeof(int); i++) ++ for (i = 0; i < sizeof(inputs_map)/sizeof(*inputs_map); i++) + if (arg == inputs_map[i]) + value = i; + break; +@@ -532,7 +535,7 @@ + break; + case ATTR_ID_COUNT+1: /* AUDIO */ + if (-1 != xioctl(h->tfd, BT848_GAUDIO, &arg)) +- for (i = 0; i < sizeof(audio_map)/sizeof(int); i++) ++ for (i = 0; i < sizeof(audio_map)/sizeof(*audio_map); i++) + if (arg == audio_map[i]) + value = i; + break; +@@ -545,7 +548,8 @@ + static void bsd_write_attr(struct ng_attribute *attr, int value) + { + struct bsd_handle *h = attr->handle; +- int arg, get, set; ++ int get; ++ long arg, set; + + switch (attr->id) { + case ATTR_ID_NORM: +@@ -599,7 +603,15 @@ + + static int bsd_tuned(void *handle) + { +- return 0; ++ struct bsd_handle *h = handle; ++ int signal; ++ ++ usleep(10000); ++ ++ if (-1 == xioctl(h->tfd, TVTUNER_GETSTATUS, &signal)) ++ return 0; ++ ++ return signal == 106 ? 1 : 0; + } + + /* ---------------------------------------------------------------------- */ |