Possible Uninstall Fix, plus cleanup, more keysets
[pierogi] / keysets / rca.cpp
index 08a2d0e..e6ed72b 100644 (file)
@@ -1,5 +1,6 @@
 #include "rca.h"
 #include "protocols/lircprotocol.h"
+#include "protocols/rcaprotocol.h"
 
 RCATV1::RCATV1(
   QObject *guiObject,
@@ -9,69 +10,65 @@ RCATV1::RCATV1(
       RCA_Make,
       index)
 {
-  LIRCProtocol *lp = new LIRCProtocol(
-    guiObject,
-    index,
-    500, 1000,
-    500, 2000,
-    64500, true);
-
-  threadableProtocol = lp;
-
-  lp->setHeaderPair(4000, 4000);
-  lp->setTrailerPulse(500);
-
-//  lp->setMinimumRepetitions(1);
+  threadableProtocol = new RCAProtocol(guiObject, index);
 
   setPreData(0xF, 4);
 
-  addKey("vol-left", VolumeDown_Key, 0x2E0D1, 20);
-  addKey("vol-right", VolumeUp_Key, 0x2F0D0, 20);
-  addKey("mute", Mute_Key, 0x3F0C0, 20);
-  addKey("tv-on-off", Power_Key, 0x2A0D5, 20);
-  addKey("tv-who", Unmapped_Key, 0x6109E, 20);
-  addKey("tv-fetch", Unmapped_Key, 0x9306C, 20);
-  addKey("tv-go-back", PrevChannel_Key, 0x270D8, 20);
-  addKey("tv-ch+", ChannelUp_Key, 0x2D0D2, 20);
-  addKey("tv-ch-", ChannelDown_Key, 0x2C0D3, 20);
-  addKey("tv-guide", Guide_Key, 0x1A0E5, 20);
-  addKey("tv-info", Info_Key, 0x3C0C3, 20);
-  addKey("tv-menu", Menu_Key, 0x080F7, 20);
-  addKey("tv-clear", Clear_Key, 0x060F9, 20);
-  addKey("tv-clear", Exit_Key, 0x060F9, 20);
-  addKey("tv-ok", Select_Key, 0xF400B, 20);
-  addKey("tv-up", Up_Key, 0x590A6, 20);
-  addKey("tv-down", Down_Key, 0x580A7, 20);
-  addKey("tv-left", Left_Key, 0x560A9, 20);
-  addKey("tv-right", Right_Key, 0x570A8, 20);
-  addKey("tv-1", One_Key, 0x310CE, 20);
-  addKey("tv-2", Two_Key, 0x320CD, 20);
-  addKey("tv-3", Three_Key, 0x330CC, 20);
-  addKey("tv-4", Four_Key, 0x340CB, 20);
-  addKey("tv-5", Five_Key, 0x350CA, 20);
-  addKey("tv-6", Six_Key, 0x360C9, 20);
-  addKey("tv-7", Seven_Key, 0x370C8, 20);
-  addKey("tv-8", Eight_Key, 0x380C7, 20);
-  addKey("tv-9", Nine_Key, 0x390C6, 20);
-  addKey("tv-0", Zero_Key, 0x300CF, 20);
-  addKey("tv-input", Input_Key, 0xA305C, 20);
-  addKey("tv-antenna", AntennaInput_Key, 0x050FA, 20);
-  addKey("tv-reverse", Rewind_Key, 0x1D0E2, 20);
-  addKey("tv-play", Play_Key, 0x150EA, 20);
-  addKey("tv-forward", FastForward_Key, 0x1C0E3, 20);
-  addKey("tv-record", Record_Key, 0x170E8, 20);
-  addKey("tv-stop", Stop_Key, 0x1F0E0, 20);
-  addKey("tv-pause", Pause_Key, 0x190E6, 20);
-  addKey("skip", Advance_Key, 0x530AC, 20);
-  addKey("pgm", Program_Key, 0xE101E, 20);
-  addKey("Sleep", Sleep_Key, 0x070F8, 20);
-  addKey("CC", Captions_Key, 0x8007F, 20);
-  addKey("Presets", Unmapped_Key, 0x120ED, 20);
-  addKey("Sound", SoundMode_Key, 0x5A0A5, 20);
-  addKey("Fav", Favorites_Key, 0x000FF, 20);
-  addKey("tv_again", Unmapped_Key, 0xBA045, 20);
-  addKey("vport", Unmapped_Key, 0x99066, 20);
-  addKey("tv", Unmapped_Key, 0x3A0C5, 20);
+  addKey("Fav", Favorites_Key, 0x00, 8);
+  addKey("tv-antenna", AntennaInput_Key, 0x05, 8);
+  addKey("tv-clear", Clear_Key, 0x06, 8);
+  addKey("tv-clear", Exit_Key, 0x06, 8);
+  addKey("Sleep", Sleep_Key, 0x07, 8);
+  addKey("tv-menu", Menu_Key, 0x08, 8);
+  addKey("Presets", Unmapped_Key, 0x12, 8);
+  addKey("tv-play", Play_Key, 0x15, 8);
+  addKey("tv-record", Record_Key, 0x17, 8);
+  addKey("setup-", Unmapped_Key, 0x18, 8);
+  addKey("tv-pause", Pause_Key, 0x19, 8);
+  addKey("tv-guide", Guide_Key, 0x1A, 8);
+  addKey("pip", PIP_Key, 0x1B, 8);
+  addKey("tv-forward", FastForward_Key, 0x1C, 8);
+  addKey("tv-reverse", Rewind_Key, 0x1D, 8);
+  addKey("tv-stop", Stop_Key, 0x1F, 8);
+  addKey("tv-go-back", PrevChannel_Key, 0x27, 8); // "pc"
+  addKey("tv-on-off", Power_Key, 0x2A, 8);
+  addKey("tv-ch-", ChannelDown_Key, 0x2C, 8);
+  addKey("tv-ch+", ChannelUp_Key, 0x2D, 8);
+  addKey("vol-left", VolumeDown_Key, 0x2E, 8);
+  addKey("vol-right", VolumeUp_Key, 0x2F, 8);
+  addKey("tv-0", Zero_Key, 0x30, 8);
+  addKey("tv-1", One_Key, 0x31, 8);
+  addKey("tv-2", Two_Key, 0x32, 8);
+  addKey("tv-3", Three_Key, 0x33, 8);
+  addKey("tv-4", Four_Key, 0x34, 8);
+  addKey("tv-5", Five_Key, 0x35, 8);
+  addKey("tv-6", Six_Key, 0x36, 8);
+  addKey("tv-7", Seven_Key, 0x37, 8);
+  addKey("tv-8", Eight_Key, 0x38, 8);
+  addKey("tv-9", Nine_Key, 0x39, 8);
+  addKey("tv", PowerOn_Key, 0x3A, 8); // "on"
+  addKey("off", PowerOff_Key, 0x3B, 8);
+  addKey("tv-info", Info_Key, 0x3C, 8); // "display"
+  addKey("mute", Mute_Key, 0x3F, 8);
+  addKey("skip", Advance_Key, 0x53, 8);
+  addKey("tv-right", Right_Key, 0x57, 8);
+  addKey("tv-left", Left_Key, 0x56, 8);
+  addKey("tv-down", Down_Key, 0x58, 8);
+  addKey("tv-up", Up_Key, 0x59, 8);
+  addKey("Sound", SoundMode_Key, 0x5A, 8);
+  addKey("tv-who", Unmapped_Key, 0x61, 8);
+  addKey("vid+", Unmapped_Key, 0x64, 8);
+  addKey("setup+", Unmapped_Key, 0x65, 8);
+  addKey("CC", Captions_Key, 0x80, 8);
+  addKey("aspect", AspectRatio_Key, 0x90, 8);
+  addKey("tv-fetch", Unmapped_Key, 0x93, 8);
+  addKey("vport", Unmapped_Key, 0x99, 8);
+  addKey("tv-input", Input_Key, 0xA3, 8);
+  addKey("tv_again", Unmapped_Key, 0xBA, 8);
+  addKey("swap", PIPSwap_Key, 0xC3, 8);
+  addKey("pgm", Program_Key, 0xE1, 8);
+  addKey("vid-", Unmapped_Key, 0xE2, 8);
+  addKey("tv-ok", Select_Key, 0xF4, 8);
 }
 
 
@@ -82,61 +79,22 @@ RCATV1a::RCATV1a(
 {
   setKeysetName("TV Keyset 1a");
 
-  addKey("repeat", Repeat_Key, 0x050FA, 20);
-  addKey("pip", PIP_Key, 0x1B0E4, 20);
-  addKey("swap", PIPSwap_Key, 0xC303C, 20);
-  addKey("aspect", AspectRatio_Key, 0x9006F, 20);
+  addKey("repeat", Repeat_Key, 0x05, 8);
 }
 
 
-RCATV2::RCATV2(
+RCATV1b::RCATV1b(
   QObject *guiObject,
   unsigned int index)
-  : PIRKeysetMetaData(
-      "TV Keyset 2",
-      RCA_Make,
-      index)
+  : RCATV1(guiObject, index)
 {
-  LIRCProtocol *lp = new LIRCProtocol(
-    guiObject,
-    index,
-    500, 1000,
-    500, 2000,
-    12390, false);
+  setKeysetName("TV Keyset 1b");
 
-  threadableProtocol = lp;
-  lp->setHeaderPair(17355, 3978);
-  lp->setTrailerPulse(897);
-
-  setPreData(0xF, 4);
-
-  addKey("off", PowerOff_Key, 0x3B0C4, 20);
-  addKey("on", PowerOn_Key, 0x3A0C5, 20);
-  addKey("display", Info_Key, 0x3C0C3, 20);
-  addKey("reset", Reset_Key, 0x120ED, 20);
-  addKey("pc", PrevChannel_Key, 0x270D8, 20);
-  addKey("1", One_Key, 0x310CE, 20);
-  addKey("2", Two_Key, 0x320CD, 20);
-  addKey("3", Three_Key, 0x330CC, 20);
-  addKey("4", Four_Key, 0x340CB, 20);
-  addKey("5", Five_Key, 0x350CA, 20);
-  addKey("6", Six_Key, 0x360C9, 20);
-  addKey("7", Seven_Key, 0x370C8, 20);
-  addKey("8", Eight_Key, 0x380C7, 20);
-  addKey("9", Nine_Key, 0x390C6, 20);
-  addKey("0", Zero_Key, 0x300CF, 20);
-  addKey("ch+", ChannelUp_Key, 0x2D0D2, 20);
-  addKey("ch-", ChannelDown_Key, 0x2C0D3, 20);
-  addKey("vol+", VolumeUp_Key, 0x2F0D0, 20);
-  addKey("vol-", VolumeDown_Key, 0x2E0D1, 20);
-  addKey("vid+", Unmapped_Key, 0x6409B, 20);
-  addKey("vid-", Unmapped_Key, 0xE201D, 20);
-  addKey("setup+", Unmapped_Key, 0x6509A, 20);
-  addKey("setup-", Unmapped_Key, 0x180E7, 20);
-  addKey("mute", Mute_Key, 0x3F0C0, 20);
+  addKey("reset", Reset_Key, 0x12, 8);
 }
 
 
+/*
 RCAAux1::RCAAux1(
   QObject *guiObject,
   unsigned int index)
@@ -275,6 +233,7 @@ RCAAux2a::RCAAux2a(
   addKey("aux2_antenna", AntennaInput_Key, 0x413BE, 20);
   addKey("aux2_whoinput", Input_Key, 0x283D7, 20);
 }
+*/
 
 
 RCAVCR1::RCAVCR1(
@@ -285,121 +244,60 @@ RCAVCR1::RCAVCR1(
       RCA_Make,
       index)
 {
-  LIRCProtocol *lp = new LIRCProtocol(
-    guiObject,
-    index,
-    500, 1000,
-    500, 2000,
-    64500, true);
-
-  threadableProtocol = lp;
-
-  lp->setHeaderPair(4000, 4000);
-  lp->setTrailerPulse(500);
-
-//  lp->setMinimumRepetitions(1);
+  threadableProtocol = new RCAProtocol(guiObject, index);
 
   setPreData(0xE, 4);
 
-  addKey("vcr1-on-off", Power_Key, 0x2A1D5, 20);
-  addKey("vcr1-who", Unmapped_Key, 0x6119E, 20);
-  addKey("vcr1-ch+", ChannelUp_Key, 0x2D1D2, 20);
-  addKey("vcr1-ch-", ChannelDown_Key, 0x2C1D3, 20);
-  addKey("vcr1-fetch", Unmapped_Key, 0x9316C, 20);
-  addKey("vcr1-go-back", PrevChannel_Key, 0x271D8, 20);
-  addKey("vcr1-guide", Guide_Key, 0x1A1E5, 20);
-  addKey("vcr1-info", Info_Key, 0x3C1C3, 20);
-  addKey("vcr1-ok", Select_Key, 0xF410B, 20);
-  addKey("vcr1-up", Up_Key, 0x591A6, 20);
-  addKey("vcr1-down", Down_Key, 0x581A7, 20);
-  addKey("vcr1-left", Left_Key, 0x561A9, 20);
-  addKey("vcr1-right", Right_Key, 0x571A8, 20);
-  addKey("vcr1-menu", Menu_Key, 0x081F7, 20);
-  addKey("vcr1-clear", Clear_Key, 0x061F9, 20);
-  addKey("vcr1-clear", Exit_Key, 0x061F9, 20);
-  addKey("vcr1-1", One_Key, 0x311CE, 20);
-  addKey("vcr1-2", Two_Key, 0x321CD, 20);
-  addKey("vcr1-3", Three_Key, 0x331CC, 20);
-  addKey("vcr1-4", Four_Key, 0x341CB, 20);
-  addKey("vcr1-5", Five_Key, 0x351CA, 20);
-  addKey("vcr1-6", Six_Key, 0x361C9, 20);
-  addKey("vcr1-7", Seven_Key, 0x371C8, 20);
-  addKey("vcr1-8", Eight_Key, 0x381C7, 20);
-  addKey("vcr1-9", Nine_Key, 0x391C6, 20);
-  addKey("vcr1-0", Zero_Key, 0x301CF, 20);
-  addKey("vcr1-input", Input_Key, 0x471B8, 20);
-  addKey("vcr1-antenna", AntennaInput_Key, 0x051FA, 20);
-  addKey("vcr1-reverse", Rewind_Key, 0x1D1E2, 20);
-  addKey("vcr1-play", Play_Key, 0x151EA, 20);
-  addKey("vcr1-forward", FastForward_Key, 0x1C1E3, 20);
-  addKey("vcr1-record", Record_Key, 0x171E8, 20);
-  addKey("vcr1-stop", Stop_Key, 0x1F1E0, 20);
-  addKey("vcr1-pause", Pause_Key, 0x191E6, 20);
-  addKey("skip", Advance_Key, 0x531AC, 20);
-  addKey("vcr", Unmapped_Key, 0x3A1C5, 20);
-  addKey("vcr_again", Unmapped_Key, 0x461B9, 20);
-  addKey("trackplus", TrackingPlus_Key, 0x0B1F4, 20);
-  addKey("trackminus", TrackingMinus_Key, 0x0A1F5, 20);
+  addKey("vcr1-antenna", AntennaInput_Key, 0x05, 8);
+  addKey("vcr1-clear", Clear_Key, 0x06, 8);
+  addKey("vcr1-clear", Exit_Key, 0x06, 8);
+  addKey("vcr1-menu", Menu_Key, 0x08, 8);
+  addKey("trackminus", TrackingMinus_Key, 0x0A, 8);
+  addKey("trackplus", TrackingPlus_Key, 0x0B, 8);
+  addKey("vcr1-play", Play_Key, 0x15, 8);
+  addKey("vcr1-record", Record_Key, 0x17, 8);
+  addKey("vcr1-pause", Pause_Key, 0x19, 8);
+  addKey("vcr1-guide", Guide_Key, 0x1A, 8);
+  addKey("vcr1-forward", FastForward_Key, 0x1C, 8);
+  addKey("vcr1-reverse", Rewind_Key, 0x1D, 8);
+  addKey("vcr1-stop", Stop_Key, 0x1F, 8);
+  addKey("vcr1-go-back", PrevChannel_Key, 0x27, 8);
+  addKey("vcr1-on-off", Power_Key, 0x2A, 8);
+  addKey("vcr1-ch-", ChannelDown_Key, 0x2C, 8);
+  addKey("vcr1-ch+", ChannelUp_Key, 0x2D, 8);
+  addKey("vcr1-0", Zero_Key, 0x30, 8);
+  addKey("vcr1-1", One_Key, 0x31, 8);
+  addKey("vcr1-2", Two_Key, 0x32, 8);
+  addKey("vcr1-3", Three_Key, 0x33, 8);
+  addKey("vcr1-4", Four_Key, 0x34, 8);
+  addKey("vcr1-5", Five_Key, 0x35, 8);
+  addKey("vcr1-6", Six_Key, 0x36, 8);
+  addKey("vcr1-7", Seven_Key, 0x37, 8);
+  addKey("vcr1-8", Eight_Key, 0x38, 8);
+  addKey("vcr1-9", Nine_Key, 0x39, 8);
+  addKey("vcr", Unmapped_Key, 0x3A, 8);
+  addKey("vcr1-info", Info_Key, 0x3C, 8);
+  addKey("vcr_again", Unmapped_Key, 0x46, 8);
+  addKey("vcr1-input", Input_Key, 0x47, 8);
+  addKey("skip", Advance_Key, 0x53, 8);
+  addKey("vcr1-left", Left_Key, 0x56, 8);
+  addKey("vcr1-right", Right_Key, 0x57, 8);
+  addKey("vcr1-down", Down_Key, 0x58, 8);
+  addKey("vcr1-up", Up_Key, 0x59, 8);
+  addKey("vcr1-who", Unmapped_Key, 0x61, 8);
+  addKey("vcr1-fetch", Unmapped_Key, 0x93, 8);
+  addKey("vcr1-ok", Select_Key, 0xF4, 8);
 }
 
 
-RCAVCR2::RCAVCR2(
+RCAVCR1a::RCAVCR1a(
   QObject *guiObject,
   unsigned int index)
-  : PIRKeysetMetaData(
-      "VCR(alt?) Keyset 2",
-      RCA_Make,
-      index)
+  : RCAVCR1(guiObject, index)
 {
-  LIRCProtocol *lp = new LIRCProtocol(
-    guiObject,
-    index,
-    500, 1000,
-    500, 2000,
-    64500, true);
-
-  threadableProtocol = lp;
-
-  lp->setHeaderPair(4000, 4000);
-  lp->setTrailerPulse(500);
+  setKeysetName("VCR(alt) Keyset 1a");
 
   setPreData(0xD, 4);
-
-  addKey("vcr2-on-off", Power_Key, 0x2A2D5, 20);
-  addKey("vcr2-who", Unmapped_Key, 0x6129E, 20);
-  addKey("vcr2-ch+", ChannelUp_Key, 0x2D2D2, 20);
-  addKey("vcr2-ch-", ChannelDown_Key, 0x2C2D3, 20);
-  addKey("vcr2-fetch", Unmapped_Key, 0x9326C, 20);
-  addKey("vcr2-go-back", PrevChannel_Key, 0x272D8, 20);
-  addKey("vcr2-guide", Guide_Key, 0x1A2E5, 20);
-  addKey("vcr2-info", Info_Key, 0x3C2C3, 20);
-  addKey("vcr2-ok", Select_Key, 0xF420B, 20);
-  addKey("vcr2-up", Up_Key, 0x592A6, 20);
-  addKey("vcr2-down", Down_Key, 0x582A7, 20);
-  addKey("vcr2-left", Left_Key, 0x562A9, 20);
-  addKey("vcr2-right", Right_Key, 0x572A8, 20);
-  addKey("vcr2-menu", Menu_Key, 0x082F7, 20);
-  addKey("vcr2-clear", Clear_Key, 0x062F9, 20);
-  addKey("vcr2-clear", Exit_Key, 0x062F9, 20);
-  addKey("vcr2-1", One_Key, 0x312CE, 20);
-  addKey("vcr2-2", Two_Key, 0x322CD, 20);
-  addKey("vcr2-3", Three_Key, 0x332CC, 20);
-  addKey("vcr2-4", Four_Key, 0x342CB, 20);
-  addKey("vcr2-5", Five_Key, 0x352CA, 20);
-  addKey("vcr2-6", Six_Key, 0x362C9, 20);
-  addKey("vcr2-7", Seven_Key, 0x372C8, 20);
-  addKey("vcr2-8", Eight_Key, 0x382C7, 20);
-  addKey("vcr2-9", Nine_Key, 0x392C6, 20);
-  addKey("vcr2-0", Zero_Key, 0x302CF, 20);
-  addKey("vcr2-input", Input_Key, 0x472B8, 20);
-  addKey("vcr2-antenna", AntennaInput_Key, 0x052FA, 20);
-  addKey("vcr2-reverse", Rewind_Key, 0x1D2E2, 20);
-  addKey("vcr2-play", Play_Key, 0x152EA, 20);
-  addKey("vcr2-forward", FastForward_Key, 0x1C2E3, 20);
-  addKey("vcr2-record", Record_Key, 0x172E8, 20);
-  addKey("vcr2-stop", Stop_Key, 0x1F2E0, 20);
-  addKey("vcr2-pause", Pause_Key, 0x192E6, 20);
-  addKey("skip", Advance_Key, 0x532AC, 20);
 }
 
 
@@ -411,60 +309,50 @@ RCADVD1::RCADVD1(
       RCA_Make,
       index)
 {
-  LIRCProtocol *lp = new LIRCProtocol(
-    guiObject,
-    index,
-    500, 1000,
-    500, 2000,
-    64500, true);
-
-  threadableProtocol = lp;
-
-  lp->setHeaderPair(4000, 4000);
-  lp->setTrailerPulse(500);
+  threadableProtocol = new RCAProtocol(guiObject, index);
 
   setPreData(0x5, 4);
 
-  addKey("dvd-on-off", Power_Key, 0x2AAD5, 20);
-  addKey("dvd-who", Unmapped_Key, 0x61A9E, 20);
-  addKey("dvd-ch+", ChannelUp_Key, 0x2DAD2, 20);
-  addKey("dvd-ch-", ChannelDown_Key, 0x2CAD3, 20);
-  addKey("dvd-fetch", Unmapped_Key, 0x93A6C, 20);
-  addKey("dvd-go-back", PrevChannel_Key, 0x27AD8, 20);
-  addKey("dvd-guide", Guide_Key, 0x1AAE5, 20);
-  addKey("dvd-info", Info_Key, 0x3CAC3, 20);
-  addKey("dvd-ok", Select_Key, 0xF4A0B, 20);
-  addKey("dvd-up", Up_Key, 0x59AA6, 20);
-  addKey("dvd-down", Down_Key, 0x58AA7, 20);
-  addKey("dvd-left", Left_Key, 0x56AA9, 20);
-  addKey("dvd-right", Right_Key, 0x57AA8, 20);
-  addKey("dvd-menu", Menu_Key, 0x08AF7, 20);
-  addKey("dvd-clear", Clear_Key, 0x06AF9, 20);
-  addKey("dvd-clear", Exit_Key, 0x06AF9, 20);
-  addKey("dvd-1", One_Key, 0x31ACE, 20);
-  addKey("dvd-2", Two_Key, 0x32ACD, 20);
-  addKey("dvd-3", Three_Key, 0x33ACC, 20);
-  addKey("dvd-4", Four_Key, 0x34ACB, 20);
-  addKey("dvd-5", Five_Key, 0x35ACA, 20);
-  addKey("dvd-6", Six_Key, 0x36AC9, 20);
-  addKey("dvd-7", Seven_Key, 0x37AC8, 20);
-  addKey("dvd-8", Eight_Key, 0x38AC7, 20);
-  addKey("dvd-9", Nine_Key, 0x39AC6, 20);
-  addKey("dvd-0", Zero_Key, 0x30ACF, 20);
-  addKey("dvd-input", Input_Key, 0x47AB8, 20);
-  addKey("dvd-antenna", AntennaInput_Key, 0x05AFA, 20); // tv_vcr
-  addKey("dvd-reverse", Rewind_Key, 0x1DAE2, 20);
-  addKey("dvd-play", Play_Key, 0x15AEA, 20);
-  addKey("dvd-forward", FastForward_Key, 0x1CAE3, 20);
-  addKey("dvd-record", Record_Key, 0x17AE8, 20);
-  addKey("dvd-stop", Stop_Key, 0x1FAE0, 20);
-  addKey("dvd-pause", Pause_Key, 0x19AE6, 20);
-  addKey("skip", Advance_Key, 0x53AAC, 20);
-  addKey("dvd_again", Replay_Key, 0xBAA45, 20);
-  addKey("dvd_open_close", Eject_Key, 0x40ABF, 20);
-  addKey("dvd_zoom", Zoom_Key, 0x90A6F, 20);
-  addKey("dvd_preset", Unmapped_Key, 0x12AED, 20);
-  addKey("dvd", Unmapped_Key, 0x3AAC5, 20);
+  addKey("dvd-antenna", AntennaInput_Key, 0x05, 8); // tv_vcr
+  addKey("dvd-clear", Clear_Key, 0x06, 8);
+  addKey("dvd-clear", Exit_Key, 0x06, 8);
+  addKey("dvd-menu", Menu_Key, 0x08, 8);
+  addKey("dvd_preset", Unmapped_Key, 0x12, 8);
+  addKey("dvd-play", Play_Key, 0x15, 8);
+  addKey("dvd-record", Record_Key, 0x17, 8);
+  addKey("dvd-pause", Pause_Key, 0x19, 8);
+  addKey("dvd-guide", Guide_Key, 0x1A, 8);
+  addKey("dvd-forward", FastForward_Key, 0x1C, 8);
+  addKey("dvd-reverse", Rewind_Key, 0x1D, 8);
+  addKey("dvd-stop", Stop_Key, 0x1F, 8);
+  addKey("dvd-go-back", PrevChannel_Key, 0x27, 8);
+  addKey("dvd-on-off", Power_Key, 0x2A, 8);
+  addKey("dvd-ch-", ChannelDown_Key, 0x2C, 8);
+  addKey("dvd-ch+", ChannelUp_Key, 0x2D, 8);
+  addKey("dvd-0", Zero_Key, 0x30, 8);
+  addKey("dvd-1", One_Key, 0x31, 8);
+  addKey("dvd-2", Two_Key, 0x32, 8);
+  addKey("dvd-3", Three_Key, 0x33, 8);
+  addKey("dvd-4", Four_Key, 0x34, 8);
+  addKey("dvd-5", Five_Key, 0x35, 8);
+  addKey("dvd-6", Six_Key, 0x36, 8);
+  addKey("dvd-7", Seven_Key, 0x37, 8);
+  addKey("dvd-8", Eight_Key, 0x38, 8);
+  addKey("dvd-9", Nine_Key, 0x39, 8);
+  addKey("dvd", Unmapped_Key, 0x3A, 8);
+  addKey("dvd-info", Info_Key, 0x3C, 8);
+  addKey("dvd_open_close", Eject_Key, 0x40, 8);
+  addKey("dvd-input", Input_Key, 0x47, 8);
+  addKey("skip", Advance_Key, 0x53, 8);
+  addKey("dvd-left", Left_Key, 0x56, 8);
+  addKey("dvd-right", Right_Key, 0x57, 8);
+  addKey("dvd-down", Down_Key, 0x58, 8);
+  addKey("dvd-up", Up_Key, 0x59, 8);
+  addKey("dvd-who", Unmapped_Key, 0x61, 8);
+  addKey("dvd_zoom", Zoom_Key, 0x90, 8);
+  addKey("dvd-fetch", Unmapped_Key, 0x93, 8);
+  addKey("dvd_again", Replay_Key, 0xBA, 8);
+  addKey("dvd-ok", Select_Key, 0xF4, 8);
 }
 
 
@@ -475,8 +363,8 @@ RCADVD1a::RCADVD1a(
 {
   setKeysetName("DVD Keyset 1a");
 
-  addKey("dvd_ch+", ChannelUp_Key, 0x20ADF, 20);
-  addKey("dvd_ch-", ChannelDown_Key, 0x22ADD, 20);
+  addKey("dvd_ch+", ChannelUp_Key, 0x20, 8);
+  addKey("dvd_ch-", ChannelDown_Key, 0x22, 8);
 }
 
 
@@ -488,60 +376,50 @@ RCASat1::RCASat1(
       RCA_Make,
       index)
 {
-  LIRCProtocol *lp = new LIRCProtocol(
-    guiObject,
-    index,
-    500, 1000,
-    500, 2000,
-    64500, true);
-
-  threadableProtocol = lp;
-
-  lp->setHeaderPair(4000, 4000);
-  lp->setTrailerPulse(500);
+  threadableProtocol = new RCAProtocol(guiObject, index);
 
   setPreData(0x7, 4);
 
-  addKey("on-off", Power_Key, 0x2A8D5, 20);
-  addKey("who", Unmapped_Key, 0x6189E, 20); // "cc", "-"
-  addKey("ch+", ChannelUp_Key, 0x2D8D2, 20);
-  addKey("ch-", ChannelDown_Key, 0x2C8D3, 20);
-  addKey("fetch", Unmapped_Key, 0x9386C, 20);
-  addKey("go-back", PrevChannel_Key, 0x278D8, 20);
-  addKey("guide", Guide_Key, 0x1A8E5, 20);
-  addKey("info", Info_Key, 0x3C8C3, 20);
-  addKey("ok", Select_Key, 0xF480B, 20);
-  addKey("ok", Enter_Key, 0xF480B, 20);
-  addKey("up", Up_Key, 0x598A6, 20);
-  addKey("down", Down_Key, 0x588A7, 20);
-  addKey("left", Left_Key, 0x568A9, 20);
-  addKey("right", Right_Key, 0x578A8, 20);
-  addKey("menu", Menu_Key, 0x088F7, 20);
-  addKey("clear", Clear_Key, 0x068F9, 20);
-  addKey("clear", Exit_Key, 0x068F9, 20);
-  addKey("1", One_Key, 0x318CE, 20);
-  addKey("2", Two_Key, 0x328CD, 20);
-  addKey("3", Three_Key, 0x338CC, 20);
-  addKey("4", Four_Key, 0x348CB, 20);
-  addKey("5", Five_Key, 0x358CA, 20);
-  addKey("6", Six_Key, 0x368C9, 20);
-  addKey("7", Seven_Key, 0x378C8, 20);
-  addKey("8", Eight_Key, 0x388C7, 20);
-  addKey("9", Nine_Key, 0x398C6, 20);
-  addKey("0", Zero_Key, 0x308CF, 20);
-  addKey("hd-input", Input_Key, 0x478B8, 20);
-  addKey("antenna", AntennaInput_Key, 0x058FA, 20); // "TV/VCR"
-  addKey("hd-reverse", Rewind_Key, 0x1D8E2, 20);
-  addKey("hd-play", Play_Key, 0x158EA, 20);
-  addKey("hd-forward", FastForward_Key, 0x1C8E3, 20);
-  addKey("hd-record", Record_Key, 0x178E8, 20);
-  addKey("hd-stop", Stop_Key, 0x1F8E0, 20);
-  addKey("hd-pause", Pause_Key, 0x198E6, 20);
-  addKey("skip", Advance_Key, 0x538AC, 20);
-  addKey("SAT", CableInput_Key, 0x3A8C5, 20);
-  addKey("PIP", PIP_Key, 0x1B8E4, 20);
-  addKey("SWAP", PIPSwap_Key, 0xC383C, 20);
-  addKey("INPUT", Unmapped_Key, 0x6189E, 20);
+  addKey("antenna", AntennaInput_Key, 0x05, 8); // "TV/VCR"
+  addKey("clear", Clear_Key, 0x06, 8);
+  addKey("clear", Exit_Key, 0x06, 8);
+  addKey("menu", Menu_Key, 0x08, 8);
+  addKey("hd-play", Play_Key, 0x15, 8);
+  addKey("hd-record", Record_Key, 0x17, 8);
+  addKey("hd-pause", Pause_Key, 0x19, 8);
+  addKey("guide", Guide_Key, 0x1A, 8);
+  addKey("PIP", PIP_Key, 0x1B, 8);
+  addKey("hd-forward", FastForward_Key, 0x1C, 8);
+  addKey("hd-reverse", Rewind_Key, 0x1D, 8);
+  addKey("hd-stop", Stop_Key, 0x1F, 8);
+  addKey("go-back", PrevChannel_Key, 0x27, 8);
+  addKey("on-off", Power_Key, 0x2A, 8);
+  addKey("ch-", ChannelDown_Key, 0x2C, 8);
+  addKey("ch+", ChannelUp_Key, 0x2D, 8);
+  addKey("0", Zero_Key, 0x30, 8);
+  addKey("1", One_Key, 0x31, 8);
+  addKey("2", Two_Key, 0x32, 8);
+  addKey("3", Three_Key, 0x33, 8);
+  addKey("4", Four_Key, 0x34, 8);
+  addKey("5", Five_Key, 0x35, 8);
+  addKey("6", Six_Key, 0x36, 8);
+  addKey("7", Seven_Key, 0x37, 8);
+  addKey("8", Eight_Key, 0x38, 8);
+  addKey("9", Nine_Key, 0x39, 8);
+  addKey("info", Info_Key, 0x3C, 8);
+  addKey("SAT", Unmapped_Key, 0x3A, 8);
+  addKey("hd-input", Input_Key, 0x47, 8);
+  addKey("skip", Advance_Key, 0x53, 8);
+  addKey("left", Left_Key, 0x56, 8);
+  addKey("right", Right_Key, 0x57, 8);
+  addKey("down", Down_Key, 0x58, 8);
+  addKey("up", Up_Key, 0x59, 8);
+  addKey("INPUT", Input_Key, 0x61, 8);
+//  addKey("who", Unmapped_Key, 0x61, 8); // "cc", "-"
+  addKey("fetch", Unmapped_Key, 0x93, 8);
+  addKey("SWAP", PIPSwap_Key, 0xC3, 8);
+  addKey("ok", Select_Key, 0xF4, 8);
+  addKey("ok", Enter_Key, 0xF4, 8);
 }