aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/dib0700_devices.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dib0700_devices.c')
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_devices.c370
1 files changed, 186 insertions, 184 deletions
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 7b0263f89de7..d1d6f4491403 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -509,7 +509,8 @@ static int dib0700_rc_query_legacy(struct dvb_usb_device *d, u32 *event,
509 return 0; 509 return 0;
510 } 510 }
511 for (i=0;i<d->props.rc_key_map_size; i++) { 511 for (i=0;i<d->props.rc_key_map_size; i++) {
512 if (keymap[i].custom == key[3-2] && keymap[i].data == key[3-3]) { 512 if (rc5_custom(&keymap[i]) == key[3-2] &&
513 rc5_data(&keymap[i]) == key[3-3]) {
513 st->rc_counter = 0; 514 st->rc_counter = 0;
514 *event = keymap[i].event; 515 *event = keymap[i].event;
515 *state = REMOTE_KEY_PRESSED; 516 *state = REMOTE_KEY_PRESSED;
@@ -522,7 +523,8 @@ static int dib0700_rc_query_legacy(struct dvb_usb_device *d, u32 *event,
522 default: { 523 default: {
523 /* RC-5 protocol changes toggle bit on new keypress */ 524 /* RC-5 protocol changes toggle bit on new keypress */
524 for (i = 0; i < d->props.rc_key_map_size; i++) { 525 for (i = 0; i < d->props.rc_key_map_size; i++) {
525 if (keymap[i].custom == key[3-2] && keymap[i].data == key[3-3]) { 526 if (rc5_custom(&keymap[i]) == key[3-2] &&
527 rc5_data(&keymap[i]) == key[3-3]) {
526 if (d->last_event == keymap[i].event && 528 if (d->last_event == keymap[i].event &&
527 key[3-1] == st->rc_toggle) { 529 key[3-1] == st->rc_toggle) {
528 st->rc_counter++; 530 st->rc_counter++;
@@ -616,8 +618,8 @@ static int dib0700_rc_query_v1_20(struct dvb_usb_device *d, u32 *event,
616 618
617 /* Find the key in the map */ 619 /* Find the key in the map */
618 for (i = 0; i < d->props.rc_key_map_size; i++) { 620 for (i = 0; i < d->props.rc_key_map_size; i++) {
619 if (keymap[i].custom == poll_reply.system_lsb && 621 if (rc5_custom(&keymap[i]) == poll_reply.system_lsb &&
620 keymap[i].data == poll_reply.data) { 622 rc5_data(&keymap[i]) == poll_reply.data) {
621 *event = keymap[i].event; 623 *event = keymap[i].event;
622 found = 1; 624 found = 1;
623 break; 625 break;
@@ -684,193 +686,193 @@ static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
684 686
685static struct dvb_usb_rc_key dib0700_rc_keys[] = { 687static struct dvb_usb_rc_key dib0700_rc_keys[] = {
686 /* Key codes for the tiny Pinnacle remote*/ 688 /* Key codes for the tiny Pinnacle remote*/
687 { 0x07, 0x00, KEY_MUTE }, 689 { 0x0700, KEY_MUTE },
688 { 0x07, 0x01, KEY_MENU }, // Pinnacle logo 690 { 0x0701, KEY_MENU }, /* Pinnacle logo */
689 { 0x07, 0x39, KEY_POWER }, 691 { 0x0739, KEY_POWER },
690 { 0x07, 0x03, KEY_VOLUMEUP }, 692 { 0x0703, KEY_VOLUMEUP },
691 { 0x07, 0x09, KEY_VOLUMEDOWN }, 693 { 0x0709, KEY_VOLUMEDOWN },
692 { 0x07, 0x06, KEY_CHANNELUP }, 694 { 0x0706, KEY_CHANNELUP },
693 { 0x07, 0x0c, KEY_CHANNELDOWN }, 695 { 0x070c, KEY_CHANNELDOWN },
694 { 0x07, 0x0f, KEY_1 }, 696 { 0x070f, KEY_1 },
695 { 0x07, 0x15, KEY_2 }, 697 { 0x0715, KEY_2 },
696 { 0x07, 0x10, KEY_3 }, 698 { 0x0710, KEY_3 },
697 { 0x07, 0x18, KEY_4 }, 699 { 0x0718, KEY_4 },
698 { 0x07, 0x1b, KEY_5 }, 700 { 0x071b, KEY_5 },
699 { 0x07, 0x1e, KEY_6 }, 701 { 0x071e, KEY_6 },
700 { 0x07, 0x11, KEY_7 }, 702 { 0x0711, KEY_7 },
701 { 0x07, 0x21, KEY_8 }, 703 { 0x0721, KEY_8 },
702 { 0x07, 0x12, KEY_9 }, 704 { 0x0712, KEY_9 },
703 { 0x07, 0x27, KEY_0 }, 705 { 0x0727, KEY_0 },
704 { 0x07, 0x24, KEY_SCREEN }, // 'Square' key 706 { 0x0724, KEY_SCREEN }, /* 'Square' key */
705 { 0x07, 0x2a, KEY_TEXT }, // 'T' key 707 { 0x072a, KEY_TEXT }, /* 'T' key */
706 { 0x07, 0x2d, KEY_REWIND }, 708 { 0x072d, KEY_REWIND },
707 { 0x07, 0x30, KEY_PLAY }, 709 { 0x0730, KEY_PLAY },
708 { 0x07, 0x33, KEY_FASTFORWARD }, 710 { 0x0733, KEY_FASTFORWARD },
709 { 0x07, 0x36, KEY_RECORD }, 711 { 0x0736, KEY_RECORD },
710 { 0x07, 0x3c, KEY_STOP }, 712 { 0x073c, KEY_STOP },
711 { 0x07, 0x3f, KEY_CANCEL }, // '?' key 713 { 0x073f, KEY_CANCEL }, /* '?' key */
712 /* Key codes for the Terratec Cinergy DT XS Diversity, similar to cinergyT2.c */ 714 /* Key codes for the Terratec Cinergy DT XS Diversity, similar to cinergyT2.c */
713 { 0xeb, 0x01, KEY_POWER }, 715 { 0xeb01, KEY_POWER },
714 { 0xeb, 0x02, KEY_1 }, 716 { 0xeb02, KEY_1 },
715 { 0xeb, 0x03, KEY_2 }, 717 { 0xeb03, KEY_2 },
716 { 0xeb, 0x04, KEY_3 }, 718 { 0xeb04, KEY_3 },
717 { 0xeb, 0x05, KEY_4 }, 719 { 0xeb05, KEY_4 },
718 { 0xeb, 0x06, KEY_5 }, 720 { 0xeb06, KEY_5 },
719 { 0xeb, 0x07, KEY_6 }, 721 { 0xeb07, KEY_6 },
720 { 0xeb, 0x08, KEY_7 }, 722 { 0xeb08, KEY_7 },
721 { 0xeb, 0x09, KEY_8 }, 723 { 0xeb09, KEY_8 },
722 { 0xeb, 0x0a, KEY_9 }, 724 { 0xeb0a, KEY_9 },
723 { 0xeb, 0x0b, KEY_VIDEO }, 725 { 0xeb0b, KEY_VIDEO },
724 { 0xeb, 0x0c, KEY_0 }, 726 { 0xeb0c, KEY_0 },
725 { 0xeb, 0x0d, KEY_REFRESH }, 727 { 0xeb0d, KEY_REFRESH },
726 { 0xeb, 0x0f, KEY_EPG }, 728 { 0xeb0f, KEY_EPG },
727 { 0xeb, 0x10, KEY_UP }, 729 { 0xeb10, KEY_UP },
728 { 0xeb, 0x11, KEY_LEFT }, 730 { 0xeb11, KEY_LEFT },
729 { 0xeb, 0x12, KEY_OK }, 731 { 0xeb12, KEY_OK },
730 { 0xeb, 0x13, KEY_RIGHT }, 732 { 0xeb13, KEY_RIGHT },
731 { 0xeb, 0x14, KEY_DOWN }, 733 { 0xeb14, KEY_DOWN },
732 { 0xeb, 0x16, KEY_INFO }, 734 { 0xeb16, KEY_INFO },
733 { 0xeb, 0x17, KEY_RED }, 735 { 0xeb17, KEY_RED },
734 { 0xeb, 0x18, KEY_GREEN }, 736 { 0xeb18, KEY_GREEN },
735 { 0xeb, 0x19, KEY_YELLOW }, 737 { 0xeb19, KEY_YELLOW },
736 { 0xeb, 0x1a, KEY_BLUE }, 738 { 0xeb1a, KEY_BLUE },
737 { 0xeb, 0x1b, KEY_CHANNELUP }, 739 { 0xeb1b, KEY_CHANNELUP },
738 { 0xeb, 0x1c, KEY_VOLUMEUP }, 740 { 0xeb1c, KEY_VOLUMEUP },
739 { 0xeb, 0x1d, KEY_MUTE }, 741 { 0xeb1d, KEY_MUTE },
740 { 0xeb, 0x1e, KEY_VOLUMEDOWN }, 742 { 0xeb1e, KEY_VOLUMEDOWN },
741 { 0xeb, 0x1f, KEY_CHANNELDOWN }, 743 { 0xeb1f, KEY_CHANNELDOWN },
742 { 0xeb, 0x40, KEY_PAUSE }, 744 { 0xeb40, KEY_PAUSE },
743 { 0xeb, 0x41, KEY_HOME }, 745 { 0xeb41, KEY_HOME },
744 { 0xeb, 0x42, KEY_MENU }, /* DVD Menu */ 746 { 0xeb42, KEY_MENU }, /* DVD Menu */
745 { 0xeb, 0x43, KEY_SUBTITLE }, 747 { 0xeb43, KEY_SUBTITLE },
746 { 0xeb, 0x44, KEY_TEXT }, /* Teletext */ 748 { 0xeb44, KEY_TEXT }, /* Teletext */
747 { 0xeb, 0x45, KEY_DELETE }, 749 { 0xeb45, KEY_DELETE },
748 { 0xeb, 0x46, KEY_TV }, 750 { 0xeb46, KEY_TV },
749 { 0xeb, 0x47, KEY_DVD }, 751 { 0xeb47, KEY_DVD },
750 { 0xeb, 0x48, KEY_STOP }, 752 { 0xeb48, KEY_STOP },
751 { 0xeb, 0x49, KEY_VIDEO }, 753 { 0xeb49, KEY_VIDEO },
752 { 0xeb, 0x4a, KEY_AUDIO }, /* Music */ 754 { 0xeb4a, KEY_AUDIO }, /* Music */
753 { 0xeb, 0x4b, KEY_SCREEN }, /* Pic */ 755 { 0xeb4b, KEY_SCREEN }, /* Pic */
754 { 0xeb, 0x4c, KEY_PLAY }, 756 { 0xeb4c, KEY_PLAY },
755 { 0xeb, 0x4d, KEY_BACK }, 757 { 0xeb4d, KEY_BACK },
756 { 0xeb, 0x4e, KEY_REWIND }, 758 { 0xeb4e, KEY_REWIND },
757 { 0xeb, 0x4f, KEY_FASTFORWARD }, 759 { 0xeb4f, KEY_FASTFORWARD },
758 { 0xeb, 0x54, KEY_PREVIOUS }, 760 { 0xeb54, KEY_PREVIOUS },
759 { 0xeb, 0x58, KEY_RECORD }, 761 { 0xeb58, KEY_RECORD },
760 { 0xeb, 0x5c, KEY_NEXT }, 762 { 0xeb5c, KEY_NEXT },
761 763
762 /* Key codes for the Haupauge WinTV Nova-TD, copied from nova-t-usb2.c (Nova-T USB2) */ 764 /* Key codes for the Haupauge WinTV Nova-TD, copied from nova-t-usb2.c (Nova-T USB2) */
763 { 0x1e, 0x00, KEY_0 }, 765 { 0x1e00, KEY_0 },
764 { 0x1e, 0x01, KEY_1 }, 766 { 0x1e01, KEY_1 },
765 { 0x1e, 0x02, KEY_2 }, 767 { 0x1e02, KEY_2 },
766 { 0x1e, 0x03, KEY_3 }, 768 { 0x1e03, KEY_3 },
767 { 0x1e, 0x04, KEY_4 }, 769 { 0x1e04, KEY_4 },
768 { 0x1e, 0x05, KEY_5 }, 770 { 0x1e05, KEY_5 },
769 { 0x1e, 0x06, KEY_6 }, 771 { 0x1e06, KEY_6 },
770 { 0x1e, 0x07, KEY_7 }, 772 { 0x1e07, KEY_7 },
771 { 0x1e, 0x08, KEY_8 }, 773 { 0x1e08, KEY_8 },
772 { 0x1e, 0x09, KEY_9 }, 774 { 0x1e09, KEY_9 },
773 { 0x1e, 0x0a, KEY_KPASTERISK }, 775 { 0x1e0a, KEY_KPASTERISK },
774 { 0x1e, 0x0b, KEY_RED }, 776 { 0x1e0b, KEY_RED },
775 { 0x1e, 0x0c, KEY_RADIO }, 777 { 0x1e0c, KEY_RADIO },
776 { 0x1e, 0x0d, KEY_MENU }, 778 { 0x1e0d, KEY_MENU },
777 { 0x1e, 0x0e, KEY_GRAVE }, /* # */ 779 { 0x1e0e, KEY_GRAVE }, /* # */
778 { 0x1e, 0x0f, KEY_MUTE }, 780 { 0x1e0f, KEY_MUTE },
779 { 0x1e, 0x10, KEY_VOLUMEUP }, 781 { 0x1e10, KEY_VOLUMEUP },
780 { 0x1e, 0x11, KEY_VOLUMEDOWN }, 782 { 0x1e11, KEY_VOLUMEDOWN },
781 { 0x1e, 0x12, KEY_CHANNEL }, 783 { 0x1e12, KEY_CHANNEL },
782 { 0x1e, 0x14, KEY_UP }, 784 { 0x1e14, KEY_UP },
783 { 0x1e, 0x15, KEY_DOWN }, 785 { 0x1e15, KEY_DOWN },
784 { 0x1e, 0x16, KEY_LEFT }, 786 { 0x1e16, KEY_LEFT },
785 { 0x1e, 0x17, KEY_RIGHT }, 787 { 0x1e17, KEY_RIGHT },
786 { 0x1e, 0x18, KEY_VIDEO }, 788 { 0x1e18, KEY_VIDEO },
787 { 0x1e, 0x19, KEY_AUDIO }, 789 { 0x1e19, KEY_AUDIO },
788 { 0x1e, 0x1a, KEY_MEDIA }, 790 { 0x1e1a, KEY_MEDIA },
789 { 0x1e, 0x1b, KEY_EPG }, 791 { 0x1e1b, KEY_EPG },
790 { 0x1e, 0x1c, KEY_TV }, 792 { 0x1e1c, KEY_TV },
791 { 0x1e, 0x1e, KEY_NEXT }, 793 { 0x1e1e, KEY_NEXT },
792 { 0x1e, 0x1f, KEY_BACK }, 794 { 0x1e1f, KEY_BACK },
793 { 0x1e, 0x20, KEY_CHANNELUP }, 795 { 0x1e20, KEY_CHANNELUP },
794 { 0x1e, 0x21, KEY_CHANNELDOWN }, 796 { 0x1e21, KEY_CHANNELDOWN },
795 { 0x1e, 0x24, KEY_LAST }, /* Skip backwards */ 797 { 0x1e24, KEY_LAST }, /* Skip backwards */
796 { 0x1e, 0x25, KEY_OK }, 798 { 0x1e25, KEY_OK },
797 { 0x1e, 0x29, KEY_BLUE}, 799 { 0x1e29, KEY_BLUE},
798 { 0x1e, 0x2e, KEY_GREEN }, 800 { 0x1e2e, KEY_GREEN },
799 { 0x1e, 0x30, KEY_PAUSE }, 801 { 0x1e30, KEY_PAUSE },
800 { 0x1e, 0x32, KEY_REWIND }, 802 { 0x1e32, KEY_REWIND },
801 { 0x1e, 0x34, KEY_FASTFORWARD }, 803 { 0x1e34, KEY_FASTFORWARD },
802 { 0x1e, 0x35, KEY_PLAY }, 804 { 0x1e35, KEY_PLAY },
803 { 0x1e, 0x36, KEY_STOP }, 805 { 0x1e36, KEY_STOP },
804 { 0x1e, 0x37, KEY_RECORD }, 806 { 0x1e37, KEY_RECORD },
805 { 0x1e, 0x38, KEY_YELLOW }, 807 { 0x1e38, KEY_YELLOW },
806 { 0x1e, 0x3b, KEY_GOTO }, 808 { 0x1e3b, KEY_GOTO },
807 { 0x1e, 0x3d, KEY_POWER }, 809 { 0x1e3d, KEY_POWER },
808 810
809 /* Key codes for the Leadtek Winfast DTV Dongle */ 811 /* Key codes for the Leadtek Winfast DTV Dongle */
810 { 0x00, 0x42, KEY_POWER }, 812 { 0x0042, KEY_POWER },
811 { 0x07, 0x7c, KEY_TUNER }, 813 { 0x077c, KEY_TUNER },
812 { 0x0f, 0x4e, KEY_PRINT }, /* PREVIEW */ 814 { 0x0f4e, KEY_PRINT }, /* PREVIEW */
813 { 0x08, 0x40, KEY_SCREEN }, /* full screen toggle*/ 815 { 0x0840, KEY_SCREEN }, /* full screen toggle*/
814 { 0x0f, 0x71, KEY_DOT }, /* frequency */ 816 { 0x0f71, KEY_DOT }, /* frequency */
815 { 0x07, 0x43, KEY_0 }, 817 { 0x0743, KEY_0 },
816 { 0x0c, 0x41, KEY_1 }, 818 { 0x0c41, KEY_1 },
817 { 0x04, 0x43, KEY_2 }, 819 { 0x0443, KEY_2 },
818 { 0x0b, 0x7f, KEY_3 }, 820 { 0x0b7f, KEY_3 },
819 { 0x0e, 0x41, KEY_4 }, 821 { 0x0e41, KEY_4 },
820 { 0x06, 0x43, KEY_5 }, 822 { 0x0643, KEY_5 },
821 { 0x09, 0x7f, KEY_6 }, 823 { 0x097f, KEY_6 },
822 { 0x0d, 0x7e, KEY_7 }, 824 { 0x0d7e, KEY_7 },
823 { 0x05, 0x7c, KEY_8 }, 825 { 0x057c, KEY_8 },
824 { 0x0a, 0x40, KEY_9 }, 826 { 0x0a40, KEY_9 },
825 { 0x0e, 0x4e, KEY_CLEAR }, 827 { 0x0e4e, KEY_CLEAR },
826 { 0x04, 0x7c, KEY_CHANNEL }, /* show channel number */ 828 { 0x047c, KEY_CHANNEL }, /* show channel number */
827 { 0x0f, 0x41, KEY_LAST }, /* recall */ 829 { 0x0f41, KEY_LAST }, /* recall */
828 { 0x03, 0x42, KEY_MUTE }, 830 { 0x0342, KEY_MUTE },
829 { 0x06, 0x4c, KEY_RESERVED }, /* PIP button*/ 831 { 0x064c, KEY_RESERVED }, /* PIP button*/
830 { 0x01, 0x72, KEY_SHUFFLE }, /* SNAPSHOT */ 832 { 0x0172, KEY_SHUFFLE }, /* SNAPSHOT */
831 { 0x0c, 0x4e, KEY_PLAYPAUSE }, /* TIMESHIFT */ 833 { 0x0c4e, KEY_PLAYPAUSE }, /* TIMESHIFT */
832 { 0x0b, 0x70, KEY_RECORD }, 834 { 0x0b70, KEY_RECORD },
833 { 0x03, 0x7d, KEY_VOLUMEUP }, 835 { 0x037d, KEY_VOLUMEUP },
834 { 0x01, 0x7d, KEY_VOLUMEDOWN }, 836 { 0x017d, KEY_VOLUMEDOWN },
835 { 0x02, 0x42, KEY_CHANNELUP }, 837 { 0x0242, KEY_CHANNELUP },
836 { 0x00, 0x7d, KEY_CHANNELDOWN }, 838 { 0x007d, KEY_CHANNELDOWN },
837 839
838 /* Key codes for Nova-TD "credit card" remote control. */ 840 /* Key codes for Nova-TD "credit card" remote control. */
839 { 0x1d, 0x00, KEY_0 }, 841 { 0x1d00, KEY_0 },
840 { 0x1d, 0x01, KEY_1 }, 842 { 0x1d01, KEY_1 },
841 { 0x1d, 0x02, KEY_2 }, 843 { 0x1d02, KEY_2 },
842 { 0x1d, 0x03, KEY_3 }, 844 { 0x1d03, KEY_3 },
843 { 0x1d, 0x04, KEY_4 }, 845 { 0x1d04, KEY_4 },
844 { 0x1d, 0x05, KEY_5 }, 846 { 0x1d05, KEY_5 },
845 { 0x1d, 0x06, KEY_6 }, 847 { 0x1d06, KEY_6 },
846 { 0x1d, 0x07, KEY_7 }, 848 { 0x1d07, KEY_7 },
847 { 0x1d, 0x08, KEY_8 }, 849 { 0x1d08, KEY_8 },
848 { 0x1d, 0x09, KEY_9 }, 850 { 0x1d09, KEY_9 },
849 { 0x1d, 0x0a, KEY_TEXT }, 851 { 0x1d0a, KEY_TEXT },
850 { 0x1d, 0x0d, KEY_MENU }, 852 { 0x1d0d, KEY_MENU },
851 { 0x1d, 0x0f, KEY_MUTE }, 853 { 0x1d0f, KEY_MUTE },
852 { 0x1d, 0x10, KEY_VOLUMEUP }, 854 { 0x1d10, KEY_VOLUMEUP },
853 { 0x1d, 0x11, KEY_VOLUMEDOWN }, 855 { 0x1d11, KEY_VOLUMEDOWN },
854 { 0x1d, 0x12, KEY_CHANNEL }, 856 { 0x1d12, KEY_CHANNEL },
855 { 0x1d, 0x14, KEY_UP }, 857 { 0x1d14, KEY_UP },
856 { 0x1d, 0x15, KEY_DOWN }, 858 { 0x1d15, KEY_DOWN },
857 { 0x1d, 0x16, KEY_LEFT }, 859 { 0x1d16, KEY_LEFT },
858 { 0x1d, 0x17, KEY_RIGHT }, 860 { 0x1d17, KEY_RIGHT },
859 { 0x1d, 0x1c, KEY_TV }, 861 { 0x1d1c, KEY_TV },
860 { 0x1d, 0x1e, KEY_NEXT }, 862 { 0x1d1e, KEY_NEXT },
861 { 0x1d, 0x1f, KEY_BACK }, 863 { 0x1d1f, KEY_BACK },
862 { 0x1d, 0x20, KEY_CHANNELUP }, 864 { 0x1d20, KEY_CHANNELUP },
863 { 0x1d, 0x21, KEY_CHANNELDOWN }, 865 { 0x1d21, KEY_CHANNELDOWN },
864 { 0x1d, 0x24, KEY_LAST }, 866 { 0x1d24, KEY_LAST },
865 { 0x1d, 0x25, KEY_OK }, 867 { 0x1d25, KEY_OK },
866 { 0x1d, 0x30, KEY_PAUSE }, 868 { 0x1d30, KEY_PAUSE },
867 { 0x1d, 0x32, KEY_REWIND }, 869 { 0x1d32, KEY_REWIND },
868 { 0x1d, 0x34, KEY_FASTFORWARD }, 870 { 0x1d34, KEY_FASTFORWARD },
869 { 0x1d, 0x35, KEY_PLAY }, 871 { 0x1d35, KEY_PLAY },
870 { 0x1d, 0x36, KEY_STOP }, 872 { 0x1d36, KEY_STOP },
871 { 0x1d, 0x37, KEY_RECORD }, 873 { 0x1d37, KEY_RECORD },
872 { 0x1d, 0x3b, KEY_GOTO }, 874 { 0x1d3b, KEY_GOTO },
873 { 0x1d, 0x3d, KEY_POWER }, 875 { 0x1d3d, KEY_POWER },
874}; 876};
875 877
876/* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */ 878/* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */