summaryrefslogtreecommitdiff
path: root/multimedia/xawtv/files/patch-console::vbi-tty.c
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/xawtv/files/patch-console::vbi-tty.c')
-rw-r--r--multimedia/xawtv/files/patch-console::vbi-tty.c152
1 files changed, 152 insertions, 0 deletions
diff --git a/multimedia/xawtv/files/patch-console::vbi-tty.c b/multimedia/xawtv/files/patch-console::vbi-tty.c
new file mode 100644
index 000000000000..1265408050b0
--- /dev/null
+++ b/multimedia/xawtv/files/patch-console::vbi-tty.c
@@ -0,0 +1,152 @@
+--- console/vbi-tty.c.orig Tue Feb 10 22:41:06 2004
++++ console/vbi-tty.c Tue Feb 10 22:42:03 2004
+@@ -19,7 +19,7 @@
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+
+-#include <linux/fb.h>
++/*#include <linux/fb.h>*/
+
+ #include "vbi-data.h"
+ #include "vbi-tty.h"
+@@ -65,7 +65,7 @@
+ }
+
+ /* --------------------------------------------------------------------- */
+-
++#ifdef WITH_LINUX_FB_H
+ static int have_fb = 0;
+ static int fb_fmt = VBI_PIXFMT_RGBA32_LE;
+ static int switch_last;
+@@ -74,7 +74,7 @@
+ {
+ fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
+ }
+-
++#endif
+ /* --------------------------------------------------------------------- */
+
+ struct vbi_tty {
+@@ -133,6 +133,7 @@
+ vbi_fetch_vt_page(tty->vbi->dec,&tty->pg,tty->pgno,tty->subno,
+ VBI_WST_LEVEL_1p5,25,1);
+ vbi_fix_head(tty,tty->pg.text);
++#ifdef WITH_LINUX_FB_H
+ if (have_fb) {
+ vbi_draw_vt_page_region(&tty->pg, fb_fmt,
+ fb_mem + fb_mem_offset,
+@@ -142,13 +143,16 @@
+ 0,1);
+
+ } else {
++#endif
+ len = vbi_export_txt(data,nl_langinfo(CODESET),25*41*8,
+ &tty->pg,&vbi_fullrect,VBI_ANSICOLOR);
+ tty_goto(0,0);
+ fwrite(data,len,1,stderr);
+ tty_goto(42,0);
+ free(data);
++#ifdef WITH_LINUX_FB_H
+ }
++#endif
+ }
+
+ static void
+@@ -166,6 +170,7 @@
+ vbi_fetch_vt_page(tty->vbi->dec,&pg,pgno,subno,
+ VBI_WST_LEVEL_1p5,1,1);
+ vbi_fix_head(tty,pg.text);
++#ifdef WITH_LINUX_FB_H
+ if (have_fb) {
+ vbi_draw_vt_page_region(&pg, fb_fmt,
+ fb_mem + fb_mem_offset,
+@@ -175,13 +180,16 @@
+ 0,1);
+
+ } else {
++#endif
+ len = vbi_export_txt(data,nl_langinfo(CODESET),41*8,
+ &pg,&head,VBI_ANSICOLOR);
+ tty_goto(0,0);
+ fwrite(data,len,1,stderr);
+ tty_goto(42,0);
+ free(data);
++#ifdef WITH_LINUX_FB_H
+ }
++#endif
+ }
+
+ static void
+@@ -232,7 +240,7 @@
+ vbi = vbi_open(device,debug,sim);
+ if (NULL == vbi)
+ exit(1);
+-
++#ifdef WITH_LINUX_FB_H
+ if (0 /* 0 == fb_probe() */ ) {
+ have_fb = 1;
+ fb_init(NULL,NULL,0);
+@@ -240,14 +248,21 @@
+ fb_switch_init();
+ switch_last = fb_switch_state;
+ } else {
++#endif
+ if (-1 != ioctl(0,TIOCGWINSZ,&win) && win.ws_row < 26) {
+ fprintf(stderr,"Terminal too small (need 26 rows, have %d)\n",
+ win.ws_row);
+ exit(1);
+ }
++#ifdef WITH_LINUX_FB_H
+ }
++#endif
+ tty_raw();
++#ifdef WITH_LINUX_FB_H
+ have_fb ? fb_clear() : tty_clear();
++#else
++ tty_clear();
++#endif
+
+ tty = malloc(sizeof(*tty));
+ memset(tty,0,sizeof(*tty));
+@@ -264,14 +279,18 @@
+ rc = select(vbi->fd+1,&set,NULL,NULL,&tv);
+ if (-1 == rc) {
+ tty_restore();
++#ifdef WITH_LINUX_FB_H
+ if (have_fb)
+ fb_cleanup();
++#endif
+ perror("select");
+ exit(1);
+ }
+ if (0 == rc) {
++#ifdef WITH_LINUX_FB_H
+ if (have_fb)
+ fb_cleanup();
++#endif
+ tty_restore();
+ fprintf(stderr,"oops: timeout\n");
+ exit(1);
+@@ -289,7 +308,11 @@
+ break;
+ case 'L' & 0x1f:
+ /* refresh */
++#ifdef WITH_LINUX_FB_H
+ have_fb ? fb_clear() : tty_clear();
++#else
++ tty_clear();
++#endif
+ vbi_render_page(tty);
+ break;
+ case 'i':
+@@ -339,8 +362,10 @@
+ vbi_hasdata(vbi);
+ }
+ }
++#ifdef WITH_LINUX_FB_H
+ if (have_fb)
+ fb_cleanup();
++#endif
+ tty_goto(0,0);
+ tty_restore();
+ }