- To: Linux and Kernel Video <video4linux-list@xxxxxxxxxx>
- Subject: [patch] Add support for BeholdTV cards and Manli remote control
- From: Michael Tokarev <mjt@xxxxxxxxxx>
- Date: Sun, 30 Jan 2005 00:36:10 +0300
- Organization: Telecom Service, JSC
- Reply-to: Linux and Kernel Video <video4linux-list@xxxxxxxxxx>
- User-agent: Mozilla Thunderbird 0.8 (X11/20040918)
Against latest (20050124-173723) video4linus snapshot.
I'm still waiting for comments from Bill Jackson
<bill.jackson@xxxxxxxxxxxxx> (and fighting with that
idiotic spamBlocker thing @earchlink) about his
Sabrent card (which seems to be very similar to the
two already covered by this patch), but even if he
will reply with some changes/suggestions, the keytable
will not change significantly.
As suggested before, the patch just modifies comments
for two Manli cards in saa7134-cards.c to include
BeholdTV cards (which are very similar if not the same
as Manli). Additionally, it defines the remote control
support for these cards. The keytable will probably be
useful with sabrent card as well.
Thanks.
/mjt
The patch adds support for remote control as used with
Manli MuchTV M-TV00[12] boards, and adds two more cards
(only names really) - BeholdTV 401 and BeholdTV 403 FM,
which very similar (if not the same) as Manli cards,
including the remote control. The patch is against
20050124-173723 video4linux snapshot.
Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx>
--- video4linux.orig/saa7134-cards.c Thu Jan 13 20:27:01 2005
+++ video4linux/saa7134-cards.c Sat Jan 29 23:05:26 2005
@@ -808,7 +808,7 @@ struct saa7134_board saa7134_boards[] =
},
[SAA7134_BOARD_MANLI_MTV002] = {
/* Ognjen Nastic <ognjen@xxxxxxxxxxx> */
- .name = "Manli MuchTV M-TV002",
+ .name = "Manli MuchTV M-TV002 or Behold TV 403 FM",
.audio_clock = 0x00200000,
.tuner_type = TUNER_PHILIPS_PAL,
.inputs = {{
@@ -836,7 +836,7 @@ struct saa7134_board saa7134_boards[] =
},
[SAA7134_BOARD_MANLI_MTV001] = {
/* Ognjen Nastic <ognjen@xxxxxxxxxxx> UNTESTED */
- .name = "Manli MuchTV M-TV001",
+ .name = "Manli MuchTV M-TV001 or Behold TV 401",
.audio_clock = 0x00200000,
.tuner_type = TUNER_PHILIPS_PAL,
.inputs = {{
@@ -853,6 +853,7 @@ struct saa7134_board saa7134_boards[] =
.amux = LINE2,
.tv = 1,
}},
+ /* should there be mute too? */
},
[SAA7134_BOARD_TG3000TV] = {
/* TransGear 3000TV */
@@ -1836,8 +1837,8 @@ int saa7134_board_init1(struct saa7134_d
case SAA7134_BOARD_AVERMEDIA_307:
// case SAA7134_BOARD_SABRENT_SBTTVFM: /* not finished yet */
case SAA7134_BOARD_VIDEOMATE_TV_PVR:
- dev->has_remote = 1;
- break;
+ case SAA7134_BOARD_MANLI_MTV002:
+ case SAA7134_BOARD_MANLI_MTV001:
case SAA7134_BOARD_AVACSSMARTTV:
dev->has_remote = 1;
break;
--- video4linux.orig/saa7134-input.c Fri Dec 10 16:07:00 2004
+++ video4linux/saa7134-input.c Sun Jan 30 00:18:09 2005
@@ -308,6 +308,102 @@ static IR_KEYTAB_TYPE videomate_tv_pvr_c
[ 32 ] = KEY_LANGUAGE,
[ 33 ] = KEY_SLEEP,
};
+
+/* Michael Tokarev <mjt@xxxxxxxxxx>
+ http://www.corpit.ru/mjt/beholdTV/remote_control.jpg
+ keytable is used by MANLI MTV00[12] and BeholdTV 40[13] at
+ least, and probably by SABRENT_SBTTVFM.
+ The "ascii-art picture" below (in comments, first row
+ is the keycode in hex, and subsequent row(s) shows
+ the button labels (several variants when appropriate)
+ helps to descide which keycodes to assign to the buttons.
+ */
+static IR_KEYTAB_TYPE manli_codes[IR_KEYTAB_SIZE] = {
+
+ /* 0x1c 0x12 *
+ * FUNCTION POWER *
+ * FM (|) *
+ * */
+ [ 0x1c ] = KEY_RADIO, /*XXX*/
+ [ 0x12 ] = KEY_POWER,
+
+ /* 0x01 0x02 0x03 *
+ * 1 2 3 *
+ * *
+ * 0x04 0x05 0x06 *
+ * 4 5 6 *
+ * *
+ * 0x07 0x08 0x09 *
+ * 7 8 9 *
+ * */
+ [ 0x01 ] = KEY_KP1,
+ [ 0x02 ] = KEY_KP2,
+ [ 0x03 ] = KEY_KP3,
+ [ 0x04 ] = KEY_KP4,
+ [ 0x05 ] = KEY_KP5,
+ [ 0x06 ] = KEY_KP6,
+ [ 0x07 ] = KEY_KP7,
+ [ 0x08 ] = KEY_KP8,
+ [ 0x09 ] = KEY_KP9,
+
+ /* 0x0a 0x00 0x17 *
+ * RECALL 0 +100 *
+ * PLUS *
+ * */
+ [ 0x0a ] = KEY_AGAIN, /*XXX KEY_REWIND? */
+ [ 0x00 ] = KEY_KP0,
+ [ 0x17 ] = KEY_DIGITS, /*XXX*/
+
+ /* 0x14 0x10 *
+ * MENU INFO *
+ * OSD */
+ [ 0x14 ] = KEY_MENU,
+ [ 0x10 ] = KEY_INFO,
+
+ /* 0x0b *
+ * Up *
+ * *
+ * 0x18 0x16 0x0c *
+ * Left Ok Right *
+ * *
+ * 0x015 *
+ * Down *
+ * */
+ [ 0x0b ] = KEY_UP, /*XXX KEY_SCROLLUP? */
+ [ 0x18 ] = KEY_LEFT, /*XXX KEY_BACK? */
+ [ 0x16 ] = KEY_OK, /*XXX KEY_SELECT? KEY_ENTER? */
+ [ 0x0c ] = KEY_RIGHT, /*XXX KEY_FORWARD? */
+ [ 0x15 ] = KEY_DOWN, /*XXX KEY_SCROLLDOWN? */
+
+ /* 0x11 0x0d *
+ * TV/AV MODE *
+ * SOURCE STEREO *
+ * */
+ [ 0x11 ] = KEY_TV, /*XXX*/
+ [ 0x0d ] = KEY_MODE, /*XXX there's no KEY_STEREO */
+
+ /* 0x0f 0x1b 0x1a *
+ * AUDIO Vol+ Chan+ *
+ * TIMESHIFT??? *
+ * *
+ * 0x0e 0x1f 0x1e *
+ * SLEEP Vol- Chan- *
+ * */
+ [ 0x0f ] = KEY_AUDIO,
+ [ 0x1b ] = KEY_VOLUMEUP,
+ [ 0x1a ] = KEY_CHANNELUP,
+ [ 0x0e ] = KEY_SLEEP, /*XXX maybe KEY_PAUSE */
+ [ 0x1f ] = KEY_VOLUMEDOWN,
+ [ 0x1e ] = KEY_CHANNELDOWN,
+
+ /* 0x13 0x19 *
+ * MUTE SNAPSHOT*
+ * */
+ [ 0x13 ] = KEY_MUTE,
+ [ 0x19 ] = KEY_RECORD, /*XXX*/
+
+ // 0x1d unused ?
+};
/* ---------------------------------------------------------------------- */
static int build_key(struct saa7134_dev *dev)
@@ -418,6 +514,14 @@ int saa7134_input_init1(struct saa7134_d
ir_codes = videomate_tv_pvr_codes;
mask_keycode = 0x00003F;
mask_keyup = 0x400000;
+ polling = 50; // ms
+ break;
+ case SAA7134_BOARD_MANLI_MTV002:
+ case SAA7134_BOARD_MANLI_MTV001:
+ ir_codes = manli_codes;
+ mask_keycode = 0x001f00;
+ mask_keyup = 0x004000;
+ mask_keydown = 0x002000;
polling = 50; // ms
break;
}
--
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
[Home]
[Older V4L]
[Linux DVB]
[Video Disk Recorder]
[Video Technology]
[Asterisk]
[Photo]
[DCCP]
[Netdev]
[Plasma TVs]
[Video Projectors]
[PDAs]
[Xorg]
[Util Linux NG]
[Xfree86]
[Devices]
[Big List of Linux Books]
[Free Photo Albums]
[LCD TVs]
[Fedora Users]
[Webcams]
[Fedora Women]
[HDTV]
[ALSA Users]
[ALSA Devel]
[Stuff]
[SSH]
[Linux USB]